VoIP: Not your grandmother's phone any more Henning Schulzrinne Dept. of Computer Science, Columbia University, New York (based on work in collaboration.

Slides:



Advertisements
Similar presentations
SIP, Presence and Instant Messaging
Advertisements

SIP and Instant Messaging. SIP Summit SIP and Instant Messaging What Does Presence Have to Do With SIP? How to Deliver.
IM May 24, 2000 Introduction to SIP Jonathan Rosenberg Chief Scientist.
VON Europe /19/00 SIP and the Future of VON Protocols SIP and the Future of VON Protocols: Presence and IM Jonathan Rosenberg.
Fall VoN 2000 SIP for IP Communications Jonathan Rosenberg Chief Scientist.
Vishal K. Singh, Henning Schulzrinne
Voice over IP Fundamentals
Session Initiation Protocol Winelfred G. Pasamba.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Application Layer – Lecture.
SUPE z2z: Discovering Zeroconf Services Beyond Local Link Jae Woo Lee, Henning Schulzrinne Columbia University Wolfgang Kellerer, Zoran Despotovic.
Session Initiation Protocol (SIP) By: Zhixin Chen.
VoIP Using SIP/RTP by George Fu, UCCS CS 522 Semester Project Fall 2004.
A Generic Event Notification System Using XML and SIP Knarig Arabshian and Henning Schulzrinne Department of Computer Science Columbia University
VoIP - beyond replicating the limitations of the past Henning Schulzrinne Dept. of Computer Science, Columbia University, New York (based on work in collaboration.
DYSWIS1 Managing (VoIP) Applications – DYSWIS Henning Schulzrinne Dept. of Computer Science Columbia University July 2005.
Making Peer-to-Peer Work for SIP Henning Schulzrinne with Salman Baset, Jae Woo Lee Dept. of Computer Science, Columbia University, New York
The SIMPLE Presence and Event Architecture Henning Schulzrinne (*) Dept. of Computer Science Columbia University (*) The SIMPLE architecture is a collaboration.
From data delivery to control: rich presence and multimedia Henning Schulzrinne, Ron Shacham, Xiaotao Wu Columbia University, New York Wolfgang Kellerer,
Peer-to-peer Communication Services
SIP, Session Initiation Protocol Internet Draft, IETF, RFC 2543.
An Introduction to SIP Moshe Sambol Services Research Lab November 18, 1998.
Internet Telephony Helen J. Wang Network Reading Group, Jan 27, 99 Acknowledgement: Jimmy, Bhaskar.
Identity, Spheres and Privacy Rules Henning Schulzrinne (with Hannes Tschofenig and Richard Barnes) Workshop on Identity, Information and Context October.
Topics in Reliable Distributed Systems Fall Dr. Idit Keidar.
Peer-to-peer Communication Services Project Status Presentation Sep 18, 2007 Henning Schulzrinne, Jae Woo Lee, Salman Baset Columbia University Wolfgang.
SIMPLEStone – A presence server performance benchmarking standard SIMPLEStone – A presence server performance benchmarking standard Presented by Vishal.
Presence Vishal Kumar Singh and Henning Schulzrinne Feb 10, 2006.
Introduction to SIP Speaker: Min-Hua Yang Advisor: Ho-Ting Wu Date:2005/3/29.
CFP 2005 (Seattle) -- April 2005 Location-based services – an IETF perspective Henning Schulzrinne (+ Xiaotao Wu, Ron Shacham) Dept. of Computer Science.
December 2007IETF 70 - SIPPING1 SIP URI Service Discovery using DNS-SD draft-lee-sip-dns-sd-uri-02 Presented by Henning Schulzrinne Jae Woo Lee & Henning.
Session Initiation Protocol Team Members: Manjiri Ayyar Pallavi Murudkar Sriusha Kottalanka Vamsi Ambati Girish Satya LeeAnn Tam.
P2PSIP Charter Proposal Many people helped write this charter…
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
 Introduction  VoIP  P2P Systems  Skype  SIP  Skype - SIP Similarities and Differences  Conclusion.
1 Kommunikatsiooniteenuste arendus IRT0080 Loeng 8 Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
1 © NOKIA 1999 FILENAMs.PPT/ DATE / NN SIP Service Architecture Markus Isomäki Nokia Research Center.
Call Control with SIP Brian Elliott, Director of Engineering, NMS.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Introduction Slide 1 A Communications Model Source: generates.
Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.
Internet2 spring meeting1 Making the phone not ring Henning Schulzrinne Department of Computer Science Columbia University Internet2.
11/6/20061 Presence By, Ram Vaithilingam. 11/6/20062 Philosophy transition One computer, many users One computer, one user Many computers, one user anywhere,
Draft-rosen-ecrit-emergency- framework-00 Brian Rosen NeuStar CPa
Presented By Team Netgeeks SIP Session Initiation Protocol.
VoN September ‘98 1 9/17/98 VoN Standards Update Jonathan Rosenberg Bell Laboratories September 17, 1998.
IETF P2P efforts & Testbeds Salman Abdul Baset, Gaurav Gupta, Jae Woo Lee and Henning Schulzrinne Columbia University SIP 2009 (Paris, January 2009)
OS Services And Networking Support Juan Wang Qi Pan Department of Computer Science Southeastern University August 1999.
SIP:Session Initiation Protocol Che-Yu Kuo Computer & Information Science Department University of Delaware May 11, 2010 CISC 856: TCP/IP and Upper Layer.
Omar A. Abouabdalla Network Research Group (USM) SIP – Functionality and Structure of the Protocol SIP – Functionality and Structure of the Protocol By.
William Stallings Data and Computer Communications
Session Initiation Protocol (SIP) Chapter 5 speaker : Wenping Zhang data :
March 2007IETF68 - SIP1 SIP URI Service Discovery using DNS-SD draft-lee-sip-dns-sd-uri-00 Henning Schulzrinne Jae Woo Lee Columbia University.
Project Objectives A multi-function programmable SIP user agent for multimedia communications, such as audio, video, white board, desktop sharing, shared.
Core VoIP and 911 issues and alternatives Henning Schulzrinne Columbia University August 2003.
ORBIT: Location- based services Henning Schulzrinne Columbia University.
Interactive Connectivity Establishment : ICE
Internet protocols for the SmartGrid – architectural consideration Henning Schulzrinne Columbia University 1.
1 Internet Telephony: Architecture and Protocols an IETF Perspective Authors:Henning Schulzrinne, Jonathan Rosenberg. Presenter: Sambhrama Mundkur.
The Session Initiation Protocol - SIP
Location-Based Services Henning Schulzrinne Columbia University.
S Postgraduate Course in Radio Communications. Application Layer Mobility in WLAN Antti Keurulainen,
Peer-to-Peer Protocol (P2PP) Salman Baset, Henning Schulzrinne Columbia University.
jitsi. org advanced real-time communication.
SOSIMPLE: A Serverless, Standards- based, P2P SIP Communication System David A. Bryan and Bruce B. Lowekamp College of William and Mary Cullen Jennings.
Skype.
Postech DP&NM Lab Session Initiation Protocol (SIP) Date: Seongcheol Hong DP&NM Lab., Dept. of CSE, POSTECH Date: Seongcheol.
IP Telephony (VoIP).
Session Initiation Protocol (SIP)
SIP URI Service Discovery using DNS-SD draft-lee-sip-dns-sd-uri-02
Making the phone not ring Henning Schulzrinne Department of Computer Science Columbia University Internet2 spring meeting May 3, 2005.
SIP Basics Workshop Dennis Baron July 20, 2005.
Presentation transcript:

VoIP: Not your grandmother's phone any more Henning Schulzrinne Dept. of Computer Science, Columbia University, New York (based on work in collaboration with IRT students & staff, as well as the IETF GEOPRIV and SIMPLE WGs) Rutgers University April 2009

2 Outline VoIP maturing: vision vs. reality –presence and location-based services –user-programmable services VoIP challenges –scaling –peer-to-peer systems –spam/SPIT –emergency calling The state of SIP standardization, year 11 –developments in 2006 & upcoming highlights –trouble in standards land –interoperability

3 The three Cs of Internet applications communications communitycommerce grossly simplified... research focus what users care about

4 Killer Application Carriers looking for killer application –justify huge infrastructure investment –“video conferencing” (*1950 – †2000) –?–? “There is no killer application” –Network television block buster  YouTube hit –“Army of one” –Users create their own custom applications that are important to them –Little historical evidence that carriers (or equipment vendors) will find that application if it exists Killer app = application that kills the carrier

5 Collaboration in transition intra-organization; small number of systems (meeting rooms) inter-organization multiple technology generations diverse end points proprietary (single- vendor) systems standards-based solutions

6 Evolution of VoIP “amazing – the phone rings” “does it do call transfer?” “How can I make it stop ringing?” catching up with the digital PBX long-distance calling, ca going beyond the black phone “Can it really replace the phone system?” replacing the global phone system

7 IETF VoIP efforts SIP (protocol) SIPPING (usage, requirements) ECRIT (emergency calling) AVT (RTP, SRTP, media) ENUM (E.164 translation) IPTEL (tel URL) SIMPLE (presence) GEOPRIV (geo + privacy) usesmay use uses provides usually used with IETF RAI area MMUSIC (SDP, RTSP, ICE) XCON (conf. control) SPEERMINT (peering) uses SPEECHSC (speech services) SIGTRAN (signaling transport) uses

8 Old vs. new old realitynew ideanew reality service provider ILEC, CLEC -like, run by enterprise, homes E.164-driven; MSOs, some ILECs, Skype, European SIP providers, Vonage, SunRocket media4 kHz audiowideband audio, video, IM, shared apps, … 4 kHz audio servicesCLASS (CLID, call forwarding, 3-way calling,...) user-created services (web model) presence still CLASS user IDsE.164 -likeE.164 IM handles

9 SIP Overview

10 Internet services – the missing entry Service/deliverysynchronousasynchronous pushinstant messaging presence event notification session setup media-on-demand messaging pulldata retrieval file download remote procedure call peer-to-peer file sharing

11 Filling in the protocol gap Service/deliverysynchronousasynchronous pushSIP RTSP, RTP SMTP pullHTTP ftp SunRPC, Corba, SOAP (not yet standardized)

12 SIP as service enabler Rendezvous protocol –lets users find each other by only knowing a permanent identifier Mobility enabler: –personal mobility one person, multiple terminals –terminal mobility one terminal, multiple IP addresses –session mobility one user, multiple terminals in sequence or in parallel –service mobility services move with user

13 What is SIP? Session Initiation Protocol  protocol that establishes, manages (multimedia) sessions also used for IM, presence & event notification uses SDP to describe multimedia sessions Developed at Columbia U. (with others) Standardized by IETF (RFC et al) 3GPP (for 3G wireless) PacketCable About 100 companies produce SIP products Microsoft’s Windows Messenger (≥4.7) includes SIP

14 Philosophy Session establishment & event notification Any session type, from audio to circuit emulation Provides application-layer anycast service Provides terminal and session mobility Based on HTTP in syntax, but different in protocol operation Peer-to-peer system, with optional support by proxies –even stateful proxies only keep transaction state, not call (session, dialogue) state –transaction: single request + retransmissions –proxies can be completely stateless

15 Basic SIP message flow

16 SIP trapezoid outbound proxy registrar 1 st request 2 nd, 3 rd, … request voice traffic RTP destination proxy (identified by SIP URI domain)

17 SIP message format SDP INVITE SIP/2.0 Via: SIP/2.0/UDP here.com:5060 From: Alice To: Bob Call-ID: CSeq: 1 INVITE Subject: just testing Contact: Content-Type: application/sdp Content-Length: 147 v=0 o=alice IN IP4 here.com s=Session SDP c=IN IP t=0 0 m=audio RTP/AVP 0 a=rtpmap:0 PCMU/8000 SIP/ OK Via: SIP/2.0/UDP here.com:5060 From: Alice To: Bob Call-ID: CSeq: 1 INVITE Subject: just testing Contact: Content-Type: application/sdp Content-Length: 134 v=0 o=bob IN IP4 there.com s=Session SDP c=IN IP t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 message body header fields request line request response

18 PSTN vs. Internet Telephony Signaling & Media Signaling Media PSTN: Internet telephony: China Belgian customer, currently visiting US Australia

19 SIP addressing Users identified by SIP or tel URIs tel: URIs describe E.164 number, not dialed digits (RFC 2806bis) tel URIs  SIP URIs by outbound proxy A person can have any number of SIP URIs The same SIP URI can reach many different phones, in different networks –sequential & parallel forking SIP URIs can be created dynamically: –GRUUs –conferences –device identifiers Registration binds SIP URIs (e.g., device addresses) to SIP “address-of-record” (AOR) tel:110 domain  via NAPTR + SRV

20 3G Architecture (Registration) visited IM domain home IM domain serving CSCF interrogating proxy interrogating mobility management signaling registration signaling (SIP)_

Presence and event notification

22 We need glue! Lots of devices and services –cars –household –environment Generally, stand-alone –e.g., GPS can’t talk to camera Home –home control networks have generally failed cost, complexity Environment –“Internet of things” –tag bus stops, buildings, cars,...

23 Left to do: event notification notify (small) group of users when something of interest happens –presence = change of communications state – , voic alerts –environmental conditions –vehicle status –emergency alerts kludges –HTTP with pending response –inverse HTTP --> doesn’t work with NATs Lots of research (e.g., SIENA) IETF efforts starting –SIP-based –XMPP

24 Context-aware communication context = “the interrelated conditions in which something exists or occurs” anything known about the participants in the (potential) communication relationship both at caller and callee timeCPL capabilitiescaller preferences locationlocation-based call routing location events activity/availabilitypresence sensor data (mood, bio)privacy issues similar to location data

25 The role of presence Guess-and-ring –high probability of failure: “telephone tag” inappropriate time (call during meeting) inappropriate media (audio in public place) –current solutions: voice mail  tedious, doesn’t scale, hard to search and catalogue, no indication of when call might be returned automated call back  rarely used, too inflexible –  most successful calls are now scheduled by Presence-based –facilitates unscheduled communications –provide recipient-specific information –only contact in real-time if destination is willing and able –appropriately use synchronous vs. asynchronous communication –guide media use (text vs. audio) –predict availability in the near future (timed presence) Prediction: almost all (professional) communication will be presence-initiated or pre-scheduled

26 GEOPRIV and SIMPLE architectures target location server location recipient rule maker presentity caller presence agent watcher callee GEOPRIV SIP presence SIP call PUBLISH NOTIFY SUBSCRIBE INVITE publication interface notification interface XCAP (rules) INVITE DHCP

27 Presentity and Watchers Bob’s status, location Watchers Invisible Available, Busy, Somewhat available, Invisible wife son external world PUBLISH SUBSCRIBE NOTIFY Bob’s Presentity Watchers Bob’s Presence User Agents (PUA) PC-IM Client R u there ? Bob’s play station Cell Phone BUZZ PUBLISH Bob’s Filters (Rules), PIDF *) Presence Server (PS) *) - PIDF = Presence Information Data Format friend

28 Basic presence Role of presence –initially: “can I send an instant message and expect a response?” –now: “should I use voice or IM? is my call going to interrupt a meeting? is the callee awake?” Yahoo, MSN, Skype presence services: –on-line & off-line useful in modem days – but many people are (technically) on-line 24x7 thus, need to provide more context –+ simple status (“not at my desk”) entered manually  rarely correct does not provide enough context for directing interactive communications

29 Presence data architecture raw presence document create view (compose) privacy filtering draft-ietf-simple-presence-data-model composition policy privacy policy presence sources XCAP (not defined yet) depends on watcher select best source resolve contradictions PUBLISH

30 Presence data architecture candidate presence document watcher filter raw presence document post-processing composition (merging) final presence document difference to previous notification SUBSCRIBE NOTIFY remove data not of interest watcher

31 Presence data model “calendar”“cell”“manual” audio, video, text video person (presentity) (views) services devices

32 Rich presence More information automatically derived from –sensors: physical presence, movement –electronic activity: calendars Rich information: –multiple contacts per presentity device (cell, PDA, phone, …) service (“audio”) –activities, current and planned –surroundings (noise, privacy, vehicle, …) –contact information –composing (typing, recording audio/video IM, …)

33 RPID: rich presence

34 RPID = rich presence Provide watchers with better information about the what, where, how of presentities facilitate appropriate communications: –“wait until end of meeting” –“use text messaging instead of phone call” –“make quick call before flight takes off” designed to be derivable from calendar information –or provided by sensors in the environment allow filtering by “sphere” – the parts of our life –don’t show recreation details to colleagues

35 CIPID: Contact Information More long-term identification of contacts Elements: –card – contact Information –home page –icon – to represent user –map – pointer to map for user –sound – presentity is available

36 The role of presence for call routing Two modes: –watcher uses presence information to select suitable contacts advisory – caller may not adhere to suggestions and still call when you’re in a meeting –user call routing policy informed by presence likely less flexible – machine intelligence “if activities indicate meeting, route to tuple indicating assistant” “try most-recently-active contact first” (seq. forking) LESS translate RPID CPL PA PUBLISH NOTIFY INVITE

37 Presence and privacy All presence data, particularly location, is highly sensitive Basic location object (PIDF-LO) describes –distribution (binary) –retention duration Policy rules for more detailed access control –who can subscribe to my presence –who can see what when <gml:Point gml:id="point1“ srsName="epsg:4326"> 37:46:30N 122:25:10W no T04:57:29Z T20:57:29Z

38 Privacy policy relationships geopriv-specificpresence-specific common policy RPIDCIPID future

39 Privacy rules Conditions –identity, sphere –time of day –current location –identity as or + Actions –watcher confirmation Transformations –include information –reduced accuracy User gets maximum of permissions across all matching rules –privacy-safe composition: removal of a rule can only reduce privileges Extendable to new presence data –rich presence –biological sensors –mood sensors

40 Example rules document allow sip mailto true bare

41 Creating and manipulating rules Uploaded in whole or part via XCAP XML not user-visible Web or application UI, similar to mail filtering Can also be location-dependent –“if at home, colleagues don’t get presence information” Possibly implementation-defined “privacy levels”

Location-based services

43 Location-based services Finding services based on location –physical services (stores, restaurants, ATMs, …) –electronic services (media I/O, printer, display, …) –not covered here Using location to improve (network) services –communication incoming communications changes based on where I am –configuration devices in room adapt to their current users –awareness others are (selectively) made aware of my location –security proximity grants temporary access to local resources

44 Location-based SIP services Location-aware inbound routing –do not forward call if time at callee location is [11 pm, 8 am] –only forward time-for-lunch if destination is on campus –do not ring phone if I’m in a theater outbound call routing –contact nearest emergency call center –send to nearest location-based events –subscribe to locations, not people –Alice has entered the meeting room –subscriber may be device in room  our lab stereo changes CDs for each person that enters the room

45 Location delivery DHCP HTTP GPS HELD LLDP-MED wire map

46 Location-based service language false true NOTIFY action alert conditions proximity occupancy time IM actions alert message log call transfer join events incoming outgoing notify message subscription

47 Program location-based services

48

49 *) - Verizon Service Assurance Business Intelligence Toolkit Application: Verizon SABIT PALS SABIT = web-based mobile employee productivity management system PALS - Presence-Aware Location-Based Service –Advanced communication services based on aggregation of presence information –Enhanced vehicle management system Presence/availability information of a user is combined with the location information (of the vehicle) to achieve an integrated communication environment –“only call when vehicle is stopped”

50 SABIT PALS Solution Integrates: Status and diagnostic information of the vehicle Mobile employee’s location data obtained from a GPS device in a vehicle Mobile employee’s presence information data obtained from his/her cell-phone Laptop-based IM/VoIP soft client

51 GPS EVDO WiFi VZ Data/Real Time VZ VPN Field Tech Laptop-Connect via WiFi or Ethernet Components of PALS architecture Integrated In-Vehicle Device (IIVD – Vehicle Events) SABIT System HTTP-SIP Gateway (LBS Presence User Agent) Media Server Watcher or Supervisor Application Presence Server (PS)

52 SABIT PALS Architecture PUBLISH Presence Server NOTIFY DB MSC/HLR SUBSCRIBE Watcher SABIT System Mobile Employee’s status is relayed through multiple devices EVDO GPS SIP Proxy Systems View DB HTTP/ SIP Gateway HTTP Location from vehicle PUBLISH Media Server Gateway SABIT Supervisor “sees” mobile employees via the web-interface

53 SABIT PALS Supervisor Application

54 Communications Webpage

55 Roadmap Introduction Presence Location-based services Server scaling P2P SIP Standardization and interoperability

56 SIP server overload Proxies will return > retry elsewhere Just adds more load Retransmissions exacerbate the problem overloaded INVITE 503 Springsteen tickets!! earthquake vote for your favorite…

57 Avalanche restart Large number of terminals all start at once Typically, after power outage Overwhelms registrar Possible loss of registrations due to retransmission time-out #300,000 #1 reboot after power outage REGISTER

58 Overload control Current discussion in design team Feedback control: rate-based or window-based Avoid congestion collapse Deal with multiple upstream sources capacity goodput offered load

59 Coordinated Overload Control Architecture Coordinated overload control with explicit feedback ietf-hilt draft model Feedback scope: explicit feedback treated hop-by-hop vs. end-to-end hop-by-hop feedback is generally believed to be more feasible

60 Scaling servers & TCP Need TCP –TLS support: customer privacy, theft of service, … particularly for WiFi –many SIP messages now exceed reasonable UDP size (fragmentation) e.g., INVITE for IMS: 1182 bytes Concern: UA support –improving: 82% of systems at recent SIPit’19 had TCP support –only 45% support TLS Concern: TCP (and TLS) much less efficient than UDP –running series of tests to identify differences –difference mainly in connection setup cost message splitting (may need pre- parsing or incremental parsers) thread count (one per socket?) Our model: –300,000 customers/servers 0.1 Erlang, 180 sec/call –600,000 BHCA --> 167 req/sec –300,000 registrations --> 83 req/sec –$0.001/subscriber

61 SIP server measurements Initial INVITE measurements –OpenSER –400 calls/sec for TCP –roughly 260 calls/sec for TLS sipd REGISTER test Kumiko Ono, Charles Shen, Erich Nahum TCP

62 Roadmap Introduction Presence Location-based services Server scaling P2P SIP Standardization and interoperability

63 LAN P2P SIP Why? –no infrastructure available: emergency coordination –don’t want to set up infrastructure: small companies –Skype envy :-) P2P technology for –user location only modest impact on expenses but makes signaling encryption cheap –NAT traversal matters for relaying –services (conferencing, …) how prevalent? New IETF working group formed –likely, multiple DHTs –common control and look-up protocol? P2P provider A P2P provider B p2p network traditional provider DNS zeroconf generic DHT service

64 P2P SIP -- components Multicast-DNS (zeroconf) SIP enhancements for LAN –announce UAs and their capabilities Client-P2P protocol –GET, PUT mappings –mapping: proxy or UA P2P protocol –get routing table, join, leave, … –independent of DHT? –replaces DNS for SIP, not proxy

65 Zeroconf: solution for bootstrapping Three requirements for zero configuration networks: 1)IP address assignment without a DHCP server 2)Host name resolution without a DNS server 3)Local service discovery without any rendezvous server Solutions and implementations: –RFC3927: Link-local addressing standard for 1) –DNS-SD/mDNS: Apple’s protocol for 2) & 3) –Bonjour: DNS-SD/mDNS implementation by Apple –Avahi: DNS-SD/mDNS implementation for Linux and BSD

66 DNS-SD/mDNS overview DNS-Based Service Discovery (DNS-SD) adds a level of indirection to SRV using PTR: _daap._tcp.local. PTR Tom’s Music._daap._tcp.local. _daap._tcp.local. PTR Joe’s Music._daap._tcp.local. Tom’s Music._daap._tcp.local. SRV Toms-machine.local. Tom’s Music._daap._tcp.local. TXT "Version=196613" "iTSh Version=196608" "Machine ID=6070CABB0585" "Password=true” Toms-machine.local. A Multicast DNS (mDNS) –Run by every host in a local link –Queries & answers are sent via multicast –All record names end in “.local.” 1:n mapping

67 z2z: Zeroconf-to-Zeroconf interconnection rendezvous point - OpenDHT z2z Import/export services Zeroconf subnet A z2z Import/export services Zeroconf subnet B

68 Demo: global iTunes sharing Exporting iTunes shares under key “columbia”: $ z2z --export:opendht _daap._tcp --key “columbia” Importing services stored under key “columbia”: $ z2z --import:opendht --key “columbia”

69 How z2z works (exporting) OpenDHT z2z Send browse request (i.e., PTR query) for service type: _daap._tcp 1) Tom’s Music. _daap._tcp.local Joe’s Music. _daap._tcp.local Send resolve request (i.e., SRV, A, and TXT query) for each service 2) Tom’s Computer Password=true …… Joe’s Computer Password=false …… Export them by putting into OpenDHT 3) put: key= z2z._daap._tcp.columbia value= Tom’s Music :3689 Password=true ……

70 How z2z works (importing) OpenDHT z2z Issue get call into OpenDHT 1) Add “A” record into mDNS 2) Import services by registering them (i.e., add PTR, SRV, TXT records to the local mDNS) 3) get: key=z2z._daap._tcp.columbia value=Tom’s Music :3689 …… value=Joe’s Music …… mDNS “A” record for Tom’s Music._daap._tcp.local _remote local ……

71 z2z implementation C++ Prototype using xmlrpc-c for OpenDHT access –Proof of concept –Porting problem due to Bonjour and Cygwin incompatibility z2z v1.0 released –Rewritten in Java from scratch –Open-source (BSD license) –Available in SourceForge ( Paper describing design and implementation detail –z2z: Discovering Zeroconf Services Beyond Local Link Lee, Schulzrinne, Kellerer, and Despotovic –Submitted to IEEE Globecom’07 Workshop on Service Discovery

72 Zeroconf for SIP Enable SIP communication when proxy and registrar are not available –Good use case for z2z –Fill in the gap of P2P-SIP effort: local & small scale (10s to 100s) high mobility avoid construction of DHT Internet Draft published and presented at IETF-68 –SIP URI Service Discovery using DNS-SD Lee, Schulzrinne, Kellerer, and Despotovic

73 SIP URI advertisement Example _sipuri._udp.local. PTR _sipuri._udp.local. PTR SRV bobs-host.local. TXT txtvers=1 name=Bob Service instance name: Instance.Service.Domain –Instance = ( SIP-URI / SIPS-URI ) [ SP description ] –Service = “_sipuri._udp” / “_sipuri._tcp” / “_sipuri._sctp” –E.g.) - PDA._sipuri._udp.local. Contact TXT record attribute –Similar to Contact SIP header except: It contains only a single URI Non-SIP URIs are not allowed –UA capabilities advertised via field parameters (RFC3840)

Peer-to-Peer Protocol (P2PP) Salman Abdul Baset, Henning Schulzrinne Columbia University

75 Overview Objective: key  (opaque) data –distributed data structure with O(log N) or O(1) [rarely] Practical issues in peer-to-peer systems Peer-to-peer systems –file sharing –VoIP –streaming P2PSIP architecture Peer-to-peer protocol (P2PP) P2PP design issues Implementation

76 Practical issues in peer-to-peer systems Bootstrap / service discovery NAT and firewall traversal TCP or UDP? Routing-table management Operation during churn Availability and replication Identity and trust management

77 Peer-to-peer systems File sharing VoIPStreaming Low Medium High NAT Data size Performance impact / requirement Service discovery Replication

78 P2PSIP: Concepts Decentralized SIP –Replace SIP proxy and registrar with p2p endpoints Supernode architecture –P2PSIP peers participate in the p2p overlay –P2PSIP clients use peers to locate users and resources

79 P2PSIP architecture SIP P2PSTUN TLS / SSL A peer in P2PSIP NAT A client [ Bootstrap / authentication server ] Overlay1 Overlay2

80 Peer-to-Peer Protocol (P2PP) P2P applications have common requirements such as discovery, NAT traversal, relay selection, replication, and churn management. Goals –A protocol to potentially implement any structured or unstructured protocol. –Not dependent on a single DHT or p2p protocol Not a new DHT! It is hard! –Too many structured and unstructured p2p protocols –Too many design choices! Lets consider DHTs

81 DHTs DHTGeometry Distance function Lookup correctness (neighbor table) Lookup performance (routing table) Chord Accordion Ring Modulo numeric difference Successor listFinger table Tapestry, Pastry, Bamboo Hybrid = Tree + Ring Prefix match. If fails, then modulo numeric difference Leaf-set (Pastry)Routing table KademliaXORXOR of two IDsNoneRouting table

82 Kademlia XOR Finger table Parallel requests Recursive routingPastry Bamboo Chord Successor Modulo addition Prefix-match Leaf-set Routing-table stabilization Lookup correctness Lookup performance Proximity neighbor selection Proximity route selection Routing-table size Strict vs. surrogate routing OneHop Bootstrapping Updating routing-table from lookup requests Tapestry Ring Tree Hybrid Reactive recovery Periodic recovery Accordion Routing-table exploration

83 How to design P2PP? Structured –Identify commonalities in DHTs Routing table (finger table) Neighbor table (successor list, leaf-set) –Separate core routing mechanisms from from DHT-independent issues. Unstructured –may not always find all keys Incorporate mechanisms for –discovery –NAT / firewall traversal –churn, identity and trust management –request routing (recursive / iterative / parallel)

84 Parallel requests Recursive routing Routing-table stabilization Proximity neighbor selection Proximity route selection Bootstrapping Reactive vs. periodic recovery DHT-independent Kademlia XOR Pastry BambooChord Modulo addition Prefix-match OneHop Tapestry Ring Tree Hybrid DHT-specific Accordion Finger table / routing table Successor / leaf-set Lookup correctness Lookup performance Routing-table size Strict vs. surrogate routing Updating routing-table from lookup requests DHT-specific Not restricted to one DHT Routing-table exploration Geometry How to design P2PP?

85 Chord (Strict routing-table management) Neighbor table (successor) Node x+2 i x+2 i+1 x+2 i+2 x+2 i+3 id=x Routing table Immediately succeeds routing-table id

86 Peer-to-Peer Protocol (P2PP) A binary protocol Geared towards IP telephony but equally applicable to file sharing, streaming, and p2p-VoD Multiple DHT and unstructured p2p protocol support Application API NAT traversal –using STUN, TURN and ICE –ICE encoding in P2PP Request routing –recursive, iterative, parallel –per message Supports hierarchy (super nodes [peers], ordinary nodes [clients]) Reliable or unreliable transport (TCP or UDP)

87 Peer-to-Peer Protocol (P2PP) Security –DTLS, TLS, signatures Multiple hash function support –SHA1, SHA256, MD4, MD5 Diagnostics –churn rate, messages sent/received Node capabilities –bw determination, CPU utilization, number of neighbors, mobility

88 Join JPBSP5P7 1. Query P5, P30, P2P-Options 4. Join N(P9, P15) 5. Join P9 JP (P10) 8. Join N(P9, P15) 10. Transfer STUN (ICE candidate gathering)

89 Call establishment P1P3P5P7 1. Lookup-Peer (P7) (P7 Peer-Info) 2. Lookup-Peer (P7) 3. Lookup-Peer (P7) (P7 Peer-Info) (P7 Peer-Info) 7. INVITE Ok 9. ACK Media

90 Implementation Chord, Kademlia, Bamboo (in-progress) SHA1, SHA256, MD5, MD4 Windows, Linux Integrated with OpenWengo (VoIP phone) Available for download (Linux + Windows)

91 Implementation Transport / timers Node BigInt Parser / encoder UDPTCP Transactions ClientBootstrapChordPeerKadPeerOtherPeer Sys insert (key, value, callback) callback (resp) lookup (key, callback) Routing table Neighbor table Distance

92 Screen snapshot Alice and Bob are part of Kademlia network Alice calls Bob The lookup is performed using P2PP Call is established using SIP

93 P2P summary P2P techniques now becoming mainstream –motivated by low opex, ease of deployment –building block, rather than application Many operational issues –interconnection: z2z –local peering: Bonjour for SIP –start-up and recovery: cf. Skype failure P2PP: Common platform protocol –application-neutral –extensible mechanism

94 Roadmap Introduction Presence Location-based services Server scaling P2P SIP Standardization and interoperability

95 SIP, SIPPING & SIMPLE –00 drafts includes draft-ietf-*-00 and draft-personal-*-00

96 RFC publication

97 IETF WG: SIP in 2006 & 2007 ~ 44 SIP-related RFCs published in 2006 –BFCP, conferencing –SDP revision –rich presence Activities: –hitchhiker’s guide –infrastructure: GRUUs (random identifiers) URI lists XCAP configuration SIP MIB –services: rejecting anonymous requests consent framework location conveyance session policy –security: end-to-middle security certificates SAML sips clarification –NAT: connection re-use SIP outbound ICE (in MMUSIC) see

98 IETF WG: SIPPING 31 RFCs published in 2006 Policy –media policy –SBC functions Services –service examples –call transfer –configuration framework –spam and spit –text-over-IP –transcoding Testing and operations –IPv6 transition –race condition examples –IPv6 torture tests –SIP offer-answer examples –overload requirements –configuration –voice quality reporting

99 Interoperability Generally no interoperability problems for basic SIP functionality –basic call, digest registration (mostly...), call transfer, voice mail Weaker in advanced scenarios and backward compatibility –handling TCP, TLS –NAT support (symmetric RTP, ICE, STUN,...) –multipart bodies –SIP torture tests –call transfer, call pick-up –video and voice codec interoperability (H.264, anything beyond G.711) SIPit useful, but no equivalent of WiFi certification –most implementations still single-vendor (enterprise, carrier) or vendor- supplied (VSP) –SFTF (test framework) still limited Need profiles to guide implementers SIPREAL BOF at IETF 70?

100 Trouble in Standards Land Proliferation of transition standards: 2.5G, 2.6G, 3.5G, … –true even for emergency calling… Splintering of standardization efforts across SDOs –primary: IEEE, IETF, W3C, OASIS, ISO –architectural: PacketCable, ETSI, 3GPP, 3GPP2, OMA, UMA, ATIS, … –specialized: NENA –operational, marketing: SIP Forum, IPCC, … OASIS IEEE IETF W3C ISO (MPEG) L2.5-L7 protocols data exchange data formats L1-L2 3GPP PacketCable

101 IETF issues SIP WGs: small number (dozen?) of core authors (80/20) –some now becoming managers… –or moving to other topics IETF: research  engineering  maintenance –many groups are essentially maintaining standards written a decade (or two) ago DNS, IPv4, IPv6, BGP, DHCP; RTP, SIP, RTSP constrained by design choices made long ago –often dealing with transition to hostile & “random” network –network ossification Stale IETF leadership –often from core equipment vendors, not software vendors or carriers fair amount of not-invented-here syndrome late to recognize wide usage of XML and web standards late to deal with NATs security tends to be per-protocol (silo) –some efforts such as SAML and SASL tendency to re-invent the wheel in each group

102 IETF issue: timeliness Most drafts spend lots of time in 90%- complete state –lack of energy (moved on to new -00) –optimizers vs. satisfiers multiple choices that have non- commensurate trade-offs Notorious examples: –SIP request history: Feb – May 2005 (RFC 4244) –Session timers: Feb – May 2005 (RFC 4028) –Resource priority: Feb – Feb 2006 (RFC 4412) New framework/requirements phase adds 1-2 years of delay Three bursts of activity/year, with silence in-between –occasional interim meetings IETF meetings are often not productive –most topics gets 5-10 minutes  lack context, focus on minutiae –no background  same people as on mailing list –5 people discuss, 195 people read No formal issue tracking –some WGs use tools, haphazardly Gets worse over time: –dependencies increase, sometimes undiscovered –backwards compatibility issues –more background needed to contribute

103 IETF issues: timeliness WG chairs run meetings, but are not managing WG progress –very little control of deadlines e.g., all SIMPLE deadlines are probably a year behind –little push to come to working group last call (WGLC) –limited timeliness accountability of authors and editors –chairs often provide limited editorial feedback IESG review can get stuck in long feedback loop –author – AD – WG chairs –sometimes lack of accountability (AD-authored documents) RFC editor often takes 6+ months to process document –dependencies; IANA; editor queue; author delays –e.g., session timer: Aug – May 2005

104 Conclusion Even after 10+ years, VoIP mostly still “cheaper calls” New services and models: –(rich) presence –location-based services –user-programmable services –P2P SIP Scaling to carrier-scale and under duress Current standardization processes slow and complexity- inducing