Extensions to SIP and P2PSIP

Similar documents
Extensions to Session Initiation Protocol (SIP) and Peer-to-Peer SIP

P2PSIP, ICE, and RTCWeb

Session Initiation Protocol (SIP) Overview

Session Initiation Protocol (SIP) Overview

3GPP TR V7.0.0 ( )

3GPP TS V ( )

3GPP TR V ( )

3GPP TS V ( )

Department of Computer Science. Burapha University 6 SIP (I)

Chapter 3: IP Multimedia Subsystems and Application-Level Signaling

ETSI TS V8.0.0 ( ) Technical Specification

ETSI TS V ( ) Technical Specification

INTERFACE SPECIFICATION SIP Trunking. 8x8 SIP Trunking. Interface Specification. Version 2.0

ETSI TS V (201

ETSI TS V9.1.0 ( ) Technical Specification

ETSI TR V (201

ETSI TS V9.1.0 ( ) Technical Specification

ETSI TS V ( )

Tech-invite. RFC 3261's SIP Examples. biloxi.com Registrar. Bob's SIP phone

ETSI TS V ( )

Voice over IP Consortium

ETSI TS V ( )

Application Scenario 1: Direct Call UA UA

SIP Compliance APPENDIX

Session Initiation Protocol (SIP)

RELOAD P2P Overlay Access Protocol. Younghan Kim Soongsil University

Voice over IP (VoIP)

ETSI TS V8.7.0 ( ) Technical Specification

TSIN02 - Internetworking

Telecommunication Services Engineering Lab. Roch H. Glitho

SIP Reliable Provisional Response on CUBE and CUCM Configuration Example

Overview of SIP. Information About SIP. SIP Capabilities. This chapter provides an overview of the Session Initiation Protocol (SIP).

SIP Trunk design and deployment in Enterprise UC networks

Compliance with RFC 3261

Session Initiation Protocol (SIP) Basic Description Guide

Journal of Information, Control and Management Systems, Vol. X, (200X), No.X SIP OVER NAT. Pavel Segeč

ENSC 833-3: NETWORK PROTOCOLS AND PERFORMANCE. Implement Session Initiation Protocol (SIP) User Agent Prototype

ETSI TS V ( )

Multimedia Communication

Technical specifications for connecting SIP PBX to the Business Trunk service by Slovak Telekom without registration, with static routing.

Overview of the Session Initiation Protocol

3GPP TS V ( )

Request for Comments: Category: Standards Track Columbia U. G. Camarillo Ericsson A. Johnston WorldCom J. Peterson Neustar R.

The Session Initiation Protocol

PCP NAT64 Experiments

P2PSIP Draft Charter. Dean Willis March 2006

SIP Trunk design and deployment in Enterprise UC networks

Understanding SIP exchanges by experimentation

Session Initiation Protocol (SIP)

ICE: the ultimate way of beating NAT in SIP

This sequence diagram was generated with EventStudio System Designer (

Information About SIP Compliance with RFC 3261

SIP System Features. SIP Timer Values. Rules for Configuring the SIP Timers CHAPTER

Request for Comments: 3959 Category: Standards Track December 2004

Application Notes for Configuring Avaya IP Office 8.1 with Etisalat SIP Trunk service Issue 1.0

SIP Extensions and Service Creation

3GPP TS V7.2.0 ( )

OpenSIPS Workshop. Federated SIP with OpenSIPS and RTPEngine

The Session Initiation Protocol

3GPP TS V ( )

Network Address Translation (NAT) Background Material for Overlay Networks Course. Jan, 2013

Internet Engineering Task Force (IETF) Deutsche Telekom D. Alexeitsev TeleFLASH April 2013

SIPPING Working Group A. Johnston, Ed. Internet-Draft Avaya Intended status: BCP R. Sparks Expires: January 12, 2009 Estacado Systems C. Cunningham S.

SIP System Features. SIP Timer Values. Rules for Configuring the SIP Timers CHAPTER

SIP (Session Initiation Protocol)

Session Initiation Protocol

An Efficient NAT Traversal for SIP and Its Associated Media sessions

A DHT-based Distributed Location Service for Internet Applications

The search being performed may take a significant time so a forking proxy must send a 100 Trying response.

Avaya IP Office 4.1 SIP Customer Configuration Guide For use with AT&T IP Flexible Reach. Issue th April 2008

Desktop sharing with the Session Initiation Protocol

S Postgraduate Course in Radio Communications. Application Layer Mobility in WLAN. Antti Keurulainen,

TSM350G Midterm Exam MY NAME IS March 12, 2007

Implementation Profile for Interoperable Bridging Systems Interfaces (Phase 1)

Mohammad Hossein Manshaei 1393

Internet Engineering Task Force (IETF) S. McGlashan Hewlett-Packard May Media Control Channel Framework. Abstract

A Virtual and Distributed Control Layer with Proximity Awareness for Group Conferencing in P2PSIP

SIP Transparency. Supported Features CHAPTER

Internet Engineering Task Force (IETF) Request for Comments: Acme Packet January 2011

SIP Tutorial. Leonid Consulting V1.4. Copyright Leonid Consulting, LLC (2007) All rights reserved.

Internet Streaming Media. Reji Mathew NICTA & CSE UNSW COMP9519 Multimedia Systems S2 2006

Network Address Translation (NAT) Contents. Firewalls. NATs and Firewalls. NATs. What is NAT. Port Ranges. NAT Example

Proximus can't be held responsible for any damages due to the use of an outdated version of this specification.

SIP Trunk design and deployment in Enterprise UC networks

Internet Streaming Media

MRCP Version 1. A.1 Overview

N-Squared Software SIP Specialized Resource Platform SIP-SDP-RTP Protocol Conformance Statement. Version 2.3

Request for Comments: 4083 Category: Informational May 2005

This sequence diagram was generated with EventStudio System Designer (

RFC 3665 Basic Call Flow Examples

Session Initiation Protocol. Main Sources

Analysing Protocol Implementations

A RELOAD Usage for Distributed Conference Control (DisCo)

FortiOS Handbook - VoIP Solutions: SIP VERSION 6.0.1

[MS-EUMSDP]: Exchange Unified Messaging Session Description Protocol Extension

IMS signalling for multiparty services based on network level multicast

SIP System Features. Differentiated Services Codepoint CHAPTER

ETSI TS V ( ) Technical Specification

VoIP Basics. 2005, NETSETRA Corporation Ltd. All rights reserved.

Request for Comments: 5411 Category: Informational January A Hitchhiker s Guide to the Session Initiation Protocol (SIP)

Transcription:

Extensions to SIP and P2PSIP T-110.7100 Applications and Services in Internet 12.10.2010 Jouni Mäenpää NomadicLab, Ericsson Research

Contents Extending SIP Examples of SIP extensions Reliability of provisional responses Preconditions Caller preferences and user agent capabilities SIP-Specific Event Notification Signaling Compression (SigComp) Content Indirection Peer-to-Peer SIP (P2PSIP) Overview Operation Resource Location and Discovery (RELOAD) Page 2

Extending SIP Global interoperability possible since the core functionality of SIP as specified in RFC 3261 is present in every implementation A given SIP application can always assume that another SIP application is able to understand the core protocol However, many implementations require functionality beyond the core protocol Thus, extensions are required SIP is flexible and easy to extend Use of extensions can be negotiated during session establishment Two things are negotiated: the extensions the remote party supports and the extensions that will actually be employed in the session Page 3

SIP Extension Negotiation Mechanism Three header fields: Require, Supported and Unsupported When a dialog is being established, the UAC lists The names of the extensions it wants to use in a Require header field The names of the extensions it supports in a Supported header field The Unsupported header field is used in error responses The UAS can also request extra extensions Proxy-Require header field can be used to require support of extensions from proxies The extensions that a proxy or another UA supports can be queried by using an OPTIONS method The names of extensions are referred to as option tags Page 4

SIP Extension Negotiation Mechanism Alice Bob 1. INVITE Require: ext1, ext2 Supported: ext3, ext4 2. 200 OK Require: ext3 Alice wants to use extensions ext1 and ext2. In addition to these, Alice supports ext3 and ext4 Bob wants to use an extra extension, ext3 3. ACK Page 5

New Methods In a SIP dialog, UAs need to know which methods the other end understands An Allow header field lists all the methods a UA supports Allow: INVITE, ACK, CANCEL, OPTIONS, BYE However, the Allow header field cannot be used to express that a particular method is required in a dialog An option tag associated with the method can be used Processing of unknown methods and header fields: Proxies forward unknown methods and header fields Redirect servers ignore unknown header fields, methods and option tags in Require UASs ignore unknown header fields and reject unknown methods Page 6

Examples of SIP Extensions Reliability of provisional responses (RFC 3262) SIP-specific Event Notification (RFC 3265) User agent capabilities (RFC 3840) Caller preferences (RFC 3841) Preconditions (RFC 3312, 4032) Signaling Compression (RFC 3320, 3486) Content Indirection SIP REFER method Refer peers to third parties (RFC 3515) Can be used to implement e.g. call transfer Instant messaging (RFC 3428) The MESSAGE method allows the transfer of instant messages SIP UPDATE method (RFC 3311) Update the parameters of a session Event state publication (RFC 3903) The PUBLISH method to publish e.g. presence information Session timers in SIP (RFC 4028) Periodic refresh of SIP sessions SIP INFO method (RFC 2976) To carry session related control information generated during a session E.g. carrying DTMF digits generated during a SIP session And many others Page 7

Reliability of Provisional Responses Provisional responses are not transmitted reliably in RFC 3261 However, reliability is important in several cases RFC 3262 defines an extension providing reliable provisional responses The option tag of the extension is 100rel PRACK method is used to acknowledge provisional responses The reliability mechanism works by mirroring the current reliability mechanisms for 2xx final responses to INVITE Each provisional response is given a sequence number, carried in a RSeq header field in the response The PRACK message contains an RAck header field Page 8

Reliability of Provisional Responses Support of reliable provisional responses required Alice (1) INVITE Require: 100rel CSeq: 1 INVITE (2) 100 Trying Proxy 100 Trying is an exception; it is never sent reliably. (3) INVITE Require: 100rel CSeq: 1 INVITE Bob Contains the sequence number of RSeq, sequence number of CSeq and method of CSeq of the reliable provisional response (5) 180 Ringing CSeq: 1 INVITE RSeq: 12345 (6) PRACK RAck: 12345 1 INVITE (9) 200 OK (PRACK) (11) 200 OK (INVITE) (12) ACK (4) 180 Ringing CSeq: 1 INVITE RSeq: 12345 (7) PRACK RAck: 12345 1 INVITE (8) 200 OK (PRACK) (10) 200 OK (INVITE) (13) ACK Contains a sequence number in RSeq header field. Page 9

Preconditions A precondition is a set of constraints about the session which are introduced in the SDP offer The recipient of the offer generates an answer, but does not alert the user or proceed with session establishment RFC 3312 defines an extension allowing UAs to express preconditions The option tag of the extension is precondition A mixture between a SIP extension and a SDP extension The preconditions are encoded in SDP body There are two types of preconditions: access and end-to-end End-to-end (e2e) preconditions are useful when end-to-end resource reservation mechanisms are available Access preconditions are useful when both UAs perform resource reservations on their respective access networks (local and remote) Page 10

Example: Access Preconditions Alice Bob ese R So Q avr sn iot (1) INVITE a=curr:qos local none a=curr:qos remote none a=des:qos mandatory local sendrecv a=des:qos mandatory remote sendrecv (2) 183 Session Progress a=curr:qos local none a=curr:qos remote none a=des:qos mandatory local sendrecv a=des:qos mandatory remote sendrecv (3) PRACK (4) 200 OK (to PRACK) (5) UPDATE a=curr:qos local sendrecv a=curr:qos remote none a=des:qos mandatory local sendrecv a=des:qos mandatory remote sendrecv (6) 200 OK (to UPDATE) a=curr:qos local none a=curr:qos remote sendrecv a=des:qos mandatory local sendrecv a=des:qos mandatory remote sendrecv (7) 180 Ringing QoS Reservations Page 11

Caller Preferences and UA Capabilities RFC 3841 describes a set of extensions to SIP which allow a caller to express preferences about request handling in servers Ability to select which URI a request gets routed to Specify request handling directives in proxies and redirect servers Three new request header fields: Accept-Contact, Reject-Contact and Request-Disposition RFC 3840 defines mechanisms by which a SIP UA can convey its capabilities and characteristics to other UAs and to register for its domain Contact header field parameters are used Example: Alice has multiple UAs: an office phone and a home phone Page 12

User Agent Capabilities The REGISTER request below, carries user agent capabilities in its Contact header field: The UA is fixed as opposed to mobile Language of the human or automata represented by the UA REGISTER sip:example.com SIP/2.0 Via: SIP/2.0/UDP host.example.com;branch=z9hg4bknashds8 Max-Forwards: 70 From: sip:alice@example.com;tag=asd98 To: sip:alice@example.com Call-ID: hh89as0d-asd88jkk@host.example.com CSeq: 1 REGISTER Contact: <sip:alice@host.example.com>;audio;video; mobility="fixed"; class="business"; language="en,fi"; methods="invite,bye,options,ack,cancel" Content-Length: 0 The UA is used for business communications The UA supports audio and video communications The UA supports the listed SIP methods Page 13

Caller Preferences The Request-Disposition header field indicates how servers dealing with the request should handle it The Accept-Contact header field contains a description of the destination UAs to which it is OK to send the request The Reject-Contact header field contains a description of the UAs to which it is not OK to send the request INVITE sip:bob.jones@domain.com SIP/2.0 Via: SIP/2.0/UDP host1.domain2.com:5060;branch=z9hg4bk74oz98 Max-Forwards: 70 From: Alice <sip:alice.smith@domain2.com>;tag=79gy48298h8 To: Bob <sip:bob.jones@domain.com> Call-ID: 56902805845684069@192.0.0.1 CSeq: 1 INVITE Request-Disposition: proxy, parallel Accept-Contact: *;mobility= mobile ;methods= INVITE,OPTIONS,BYE,CANCEL,ACK,MESSAGE Reject-Contact: *;video Contact: <sip:alice@192.0.0.1> Content-Type: application/sdp Content-Length: 180 (Message body not shown) Page 14

SIP-Specific Event Notification (1/2) The SIP event notification framework can be used by SIP nodes to request notification from remote nodes These notifications indicate that certain events have occurred Examples: Buddy lists Automatic callback services Message waiting indications Entities in the network can subscribe To resource state of resources in the network To call state of calls in the network The entities receive notifications when the states of the resources/calls change The event notification framework uses two new SIP methods: SUBSCRIBE is used to subscribe to the status information of a resource NOTIFY is used to notify of the current status information of the resource and every time the status changes Page 15

SIP-Specific Event Notification (2/2) Example: Bob subscribes to the presence status of Alice Subscriber Bob (1) SUBSCRIBE sip:alice@xyz.com Event: presence Expires: 600 Alice s presence server Notifier Type of status information is defined by an Event header field. Desired duration of the subscription is 600 seconds. (2) 200 OK Expires: 600 (3) NOTIFY Event: presence Subscription-State: active; expires=599 Content-Type: application/pidf+xml (4) 200 OK The duration of the subscription will be 600 seconds. active indicates that subscription has been accepted. The remaining time on the subscription is 599 seconds. The body of the NOTIFY contains a Presence Information Data Format (PIDF) document (XML), which describes Alice s presence status. Page 16

Signaling Compression (SigComp) (1/5) SIP is not an efficient protocol regarding message size May be problematic e.g., in narrow-band wireless networks Signaling Compression (SigComp) is a protocol for compressing messages of application protocols SigComp messages carry compressed SIP messages in their payload The header contains a decompression algorithm (bytecode) SigComp defines a Universal Decompressor Virtual Machine (UDVM) Decompression algorithms are written in UDVM assembly language and compiled to bytecode using a UDVM interpreter The bytecode is run on the UDVM to decompress the payload A new parameter: comp=sigcomp Page 17

Why is SigComp needed? INVITE tel:+1-212-555-2222 SIP/2.0 Via: SIP/2.0/UDP [5555::aaa:bbb:ccc:ddd]:1357;comp=sigcomp;branch=z9hG4bKnashds7 Max-Forwards: 70 Route: <sip:pcscf1.visited1.net:7531;lr;comp=sigcomp>, <sip:scscf1.home1.net;lr> P-Preferred-Identity: "John Doe" <sip:user1_public1@home1.net> P-Access-Network-Info: 3GPP-UTRAN-TDD; utran-cell-id-3gpp=234151d0fce11 Privacy: none From: <sip:user1_public1@home1.net>;tag=171828 To: <tel:+1-212-555-2222> Call-ID: cb03a0s09a2sdfglkj490333 Cseq: 127 INVITE Require: precondition, sec-agree Proxy-Require: sec-agree Supported: 100rel Security-Verify: ipsec-3gpp; q=0.1; alg=hmac-sha-1-96; spi-c=98765432; spi-s=87654321; port-c=8642; port-s=7531 Contact: <sip:[5555::aaa:bbb:ccc:ddd]:1357;comp=sigcomp> Allow: INVITE, ACK, CANCEL, BYE, PRACK, UPDATE, REFER, MESSAGE Content-Type: application/sdp Content-Length: ( ) v=0 o=- 2987933615 2987933615 IN IP6 5555::aaa:bbb:ccc:ddd s=c=in IP6 5555::aaa:bbb:ccc:ddd t=0 0 m=video 3400 RTP/AVP 98 99 b=as:75 a=curr:qos local none a=curr:qos remote none a=des:qos mandatory local sendrecv a=des:qos none remote sendrecv a=rtpmap:98 H263 a=fmtp:98 profile-level-id=0 a=rtpmap:99 MP4V-ES m=audio 3456 RTP/AVP 97 96 b=as:25.4 a=curr:qos local none a=curr:qos remote none a=des:qos mandatory local sendrecv a=des:qos none remote sendrecv a=rtpmap:97 AMR a=fmtp:97 mode-set=0,2,5,7; mode-change-period=2 a=rtpmap:96 telephone-event a=maxptime:20 Page 18

Signaling Compression (2/5) Local application (SIP) Compressor dispatcher SIP message Interface from the application. Invokes a compressor Implements a compression algorithm Decompresses SIP messages Decompressed SIP message Decompressor dispatcher Receives a message, invokes the UDVM Compressor 1 Compressor 2 SigComp message State 1 State handler State 2 Carries the compressed SIP message and a decompression algorithm Stores and retrieves state Decompressor (UDVM) SigComp layer SigComp message Page 19 Transport layer

Signaling Compression (3/5) Basic idea: search for repeated patterns in the message I.e. exploit the redundancy within a message Replace the re-occurrences of a pattern with a pointer to the previous instance of the same pattern Some examples of repeated strings are shown in the figure INVITE sip:alice@domain.com SIP/2.0 Via: SIP/2.0/UDP p1.domain.com:5060;branch=xyz Via: SIP/2.0/UDP c1.domain2.com:5060;branch=abc; ;received=123.0.100.4 Max-Forwards: 69 From: Bob <sip:bob@domain2.com>;tag=123 To: Alice <sip:alice@domain.com> Call-ID: 123456789@123.0.100.4 Cseq: 1 INVITE Contact: <sip:bob@123.0.100.4> Content-Type: application/sdp Content-Length: 120 v=0 o=bob 2890844526 2890844526 IN IP4 c1.domain2.com s=c=in IP4 123.0.100.4 t=0 0 m=audio 20000 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Page 20

Signaling Compression (4/5) Often SIP messages belonging to the same dialog contain a lot of information that was also present in earlier messages of the same dialog This redundant information can be compressed efficiently Dynamic compression: compression relative to messages sent prior to the current compressed message Shared compression: messages are compressed relative to messages received prior to the current compressed message Page 21

Signaling Compression (5/5) SigComp Compression Note: in order to save space, header fields are not shown In correct format UAC wants to receive future requests and responses for this dialog compressed Compressed, because Via header field contains comp=sigcomp. comp=sigcomp added to Record- Route; since UAC wishes to receive compressed requests (Contact of INVITE) it is assumed that it would also like to send compressed requests Alice P1 Bob (1) INVITE Bob (compressed) Via: Alice;comp=sigcomp Route: P1;comp=sigcomp Contact: Alice;comp=sigcomp (4) 200 OK (compressed) Via: Alice;comp=sigcomp Contact: Bob Record-Route: P1;comp=sigcomp (5) ACK Bob (compressed) Via: Alice;comp=sigcomp Route: P1;comp=sigcomp Contact: Alice;comp=sigcomp (2) INVITE Bob Via: P1 Via: Alice;comp=sigcomp Record-Route: P1 Contact: Alice;comp=sigcomp (3) 200 OK Via: P1 Via: Alice;comp=sigcomp Record-Route: P1 Contact: Bob (6) ACK Bob Via: P1 Via: Alice;comp=sigcomp Contact: Alice;comp=sigcomp Page 22

Content Indirection (1/2) Content indirection allows one to replace a Multipurpose Internet Mail Extensions (MIME) body part with an external reference The reference is typically a HTTP URI The destination UA fetches the contents of the MIME body part using the references contained in the SIP message Motivation: Sometimes SIP message bodies are too large even after compression Reduce the load of proxies Content not residing on the endpoint Problems associated with IP fragmentation when message is transported over UDP (UDP does not provide transport-layer fragmentation) Example Document sharing during instant messaging Page 23

Content Indirection (2/2) Example: SDP as an external reference INVITE sip:bob@example.com SIP/2.0 From: <sip:alice@example.net>;tag=347242 To: <sip:bob@example.com> Call-ID: 3573853342923422@example.net CSeq: 2131 INVITE Accept: message/external-body application/sdp Inclusion of message/external-body MIME type in Accept header indicates support for content indirection. UAs supporting content indirection must support content indirection of application/sdp MIME type. The access-type parameter indicates that the external content is referenced by a URI. The expiration parameter specifies the time period for which the URI is valid. Content-Type: message/external-body; ACCESS-TYPE=URL; URL="http://www.example.net/party/10/2008/announcement"; EXPIRATION= Wed, 1 Oct 2008 12:00:00 GMT"; size=231 The purpose of the indirected Content-Length: 105 content. Here it describes a session. Content-Type: application/sdp Content-Disposition: session Content-ID: <4e5562cd1214427d@example.net> Specifies versioning information for the URI. If the content referred to by a URI changes, the Content-ID must change also. Page 24

Application Areas of SIP 3G IP Multimedia Subsystem (IMS) SIMPLE (SIP Instant Messaging and Presence Leveraging Extensions) SIP VoIP/IM clients (some examples) Pidgin (cross-platform) SIP Communicator (cross-platform) KPhone (Linux) Sipdroid (Android) Linphone (PCs, Android, iphone) SIP-T (SIP for Telephones) Interconnection of PSTN with IP, VoIP calls between gateways IP PBXs (Private Branch Exchange) Apple FaceTime (iphone 4) Skype Skype Connect (Skype for SIP) Page 25

Peer-to-Peer SIP Overview Conventional client/server SIP relies on centralized proxy-registrar servers In Peer-to-Peer SIP (P2PSIP), SIP is used in an environment where the centralized functions are replaced by a P2P overlay network In the overlay network, address-of-record to contact URI mappings are distributed amongst the peers in the overlay P2PSIP is being standardized in the P2PSIP working group of the IETF Standardized Skype P2PSIP Page 26 SIP Proxyregistrar

Peer-to-Peer SIP in IETF Standardized in the P2PSIP Working Group (WG) of the IETF The WG is responsible for: Defining concepts, terminology, rationale, and use cases for P2PSIP Standardizing a P2PSIP Peer Protocol Optionally, standardizing a P2PSIP Client Protocol Producing a usage document for P2PSIP Topics that are out of the scope of P2PSIP: Issues specific to applications other than locating users and resources for SIPbased communications and presence Research type of questions Locating resources based on something other than URIs Multicast and dynamic DNS based approaches as the core lookup mechanism Page 27

P2PSIP Overlay First point of contact for a peer joining the overlay. Can be located: - By remembering peers from the last time the peer was in the overlay - Through multicast discovery - Through manual configuration - By contacting a bootstrap server NAT P2PSIP Peer P2PSIP Overlay Joining peer is a node attempting to become a P2PSIP Peer. Admitting peer helps the joining peer join the network. P2PSIP Bootstrap Peer NAT P2PSIP Peer <Node-ID> Peer Protocol NAT The protocol spoken between P2PSIP Peers to share information and organize the P2PSIP Overlay network. A protocol called Resource Location and Discovery (RELOAD) is used as the peer protocol. <Resource-ID> P2PSIP Resource Record Participates in the P2PSIP overlay and provides storage and transport services to other nodes. Client Protocol The protocol spoken between clients and peers. RELOAD is also used as the client protocol. P2PSIP Client Interacts with the P2PSIP overlay through its associated peer using the Client Protocol. Does not run the distributed database algorithm. Page 28

P2PSIP Operations (1/2) P2PSIP peers are capable of performing operations such as: Joining and leaving Store and fetch Storing information on behalf of the overlay Transporting messages Joining: to join a P2PSIP overlay, a joining peer needs to: Contact an enrollment server Obtain an overlay configuration document, certificate and Node-ID Central enrollment process vs. self-generated certificates Contact a bootstrap peer The bootstrap peer will refer the joining peer to an admitting peer Contact an admitting peer The admitting peer will help the joining peer learn about other peers in the overlay and establish connections to them as appropriate Page 29

P2PSIP Operations (2/2) Storing data: to perform a user registration (i.e. to insert the user s contact information into the overlay), a user needs to: Calculate a hash of her user name (e.g. alice@example.com) to produce a Resource-ID Locate the peer that is responsible for that Resource-ID Store a Resource-ID to contact address mapping in the responsible peer Fetching data: to initiate a call: Calculate a hash of the callee s user name to produce a Resource-ID hash(alice@example.com) = 32B4A7F02C Locate the peer that is responsible for that Resource-ID in the P2PSIP overlay A P2PSIP Resource Record with contact information is obtained: alice@example.com Alice s Node-ID Establish a direct connection with the callee across NATs Send a SIP INVITE request to the callee Page 30

EXAMPLE: Alice Calling Bob (1/3) Bob sip:bob@p2psip.net Node-ID: 15 Resource-ID: hash(bob@p2psip.net)=4 15 0 1 2 (3) Forward Fetch request 3 Bob s Resource Record Resource-ID: 4 Content: Bob s Node- ID=15 1. Lookup 14 13 (2) Fetch Resource Record with Resource-ID 4 4 (4) Return Resource Record: Bob s Node- 5 ID = 15 Carol sip:carol@p2psip.net Node-ID: 4 (1) Calculate hash( bob@p2psip.net) = 4 12 (5) Forward Fetch response 6 11 7 Page 31 (6) Alice learns that Bob s Node-ID = Alice sip:alice@p2psip.net 15 10 9 Resource-ID: hash(alice@p2psip.net) =2 Node-ID: 11 8

EXAMPLE: Alice Calling Bob (2/3) 2. ATTACH (3) Return an Attach response to Alice Bob sip:bob@p2psip.net Node-ID: 15 Resource-ID: 4 13 14 15 0 1 (4) A direct connection for SIP between Alice and Bob (2) Send an Attach request to Bob 2 3 4 5 Bob s Resource Record Resource-ID: 4 Content: Bob s Node- ID=15 Carol sip:carol@p2psip.net Node-ID: 4 (1) Establish a connection with Node- ID 15 (Bob s terminal) 12 6 11 7 Page 32 Alice sip:alice@p2psip.net Resource-ID: 2 Node-ID: 11 10 9 8

EXAMPLE: Alice Calling Bob (3/3) 1 Bob sip:bob@p2psip.net Node-ID: 15 Resource-ID: 4 15 0 2 3 3. INVITE 14 (2) 200 OK 4 13 5 (1) INVITE 12 (3) ACK 6 11 7 Page 33 Alice sip:alice@p2psip.net Resource-ID: 2 Node-ID: 11 10 9 8

SOME Challenges for P2PSIP Security and identity assertion No fully distributed system for security exist which would be as robust as a centralized solution Solution: RELOAD uses a centralized entity contacted at enrollment time Network Address Translators (NATs) Most peers can be located behind NATs Solution: use of standardized NAT traversal protocols Session Traversal Utilities for NAT (STUN) Traversal Using Relays around NAT (TURN) Interactive Connectivity Establishment (ICE) Regulatory issues Lawful intercept, emergency calls Page 34

Resource Location and Discovery (RELOAD) A P2P signaling protocol specified by the P2PSIP WG Used between peers forming an overlay network to provide a selforganizing overlay network service, including Distributed storage Message forwarding Allows access from client nodes which don t route traffic or store data Provides the following features Security framework Usage model NAT traversal Routing Pluggable overlay algorithms Page 35

RELOAD Architecture Each application defines a RELOAD usage SIP Usage XMPP Usage Usage layer Messaging API Usages use RELOAD through Messaging API End-to-end reliability, request state management, dispatches messages and operations Message Transport Storage Topology Plugin Processes messages related to storage and retrieval of data. Implements an overlay algorithm. Provides packet forwarding services. Handles setting up connections across NATs using ICE. Forwarding and Link Management Overlay Link API TLS DTLS Page 36

RELOAD Features (1/2) Security framework Node-IDs and certificates are assigned by a central enrollment server Also self-signed certificates can be used Security at three levels: connections, messages, stored objects Usage model Allows the definition of new application usages RELOAD can be used also by other applications than P2PSIP NAT traversal Allows RELOAD to function in environments with NATs and firewalls Interactive Connectivity Establishment (ICE) is used to establish new RELOAD and application protocol connections Page 37

RELOAD features (2/2) Routing A lightweight forwarding header to minimize the load of intermediate peers Via list and destination list Basic routing mechanism is symmetric recursive Pluggable overlay algorithms RELOAD has an abstract interface to the overlay layer Each overlay can select an appropriate overlay algorithm All algorithms rely on the common RELOAD core protocol RELOAD defines three methods for overlay maintenance: Join, Leave and Update Chord DHT is mandatory to implement 1. Request Dest: D 2. Request Dest: D Via: A 3. Request Dest: D Via: A, B A B C D Page 38 6. Response Dest: A 5. Response Dest: B, A 4. Response Dest: C, B, A

NAT Traversal SIP and RELOAD use Interactive Connectivity Establishment (ICE) to set up connections across NATs ICE is used to discover a working path through NATs (1) Gather candidate addresses (2) Exchange candidates (3) Perform connectivity checks ICE makes use of STUN and TURN protocols STUN Session Traversal Utilities for NAT Determine IP address and port allocated by NAT Check connectivity Keep-alives TURN - Traversal Using Relays Around NAT Control the operation of a relay Page 39

NAT Traversal for Media in SIP TURN relay TURN relay Relayed candidate Relayed candidate Internet Server reflexive candidate NAT Private Server reflexive candidate NAT SIP proxy Host candidate Bob Host candidate Private Alice STUN/TURN SIP Connectivity checks Page 40