© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Message Session Relay Protocol (MSRP) Jonathan Rosenberg Cisco Fellow.

Slides:



Advertisements
Similar presentations
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 Chapter 22 Simple Mail Transfer Protocol (SMTP)
Advertisements

1 © 2001, Cisco Systems, Inc. Updated_ Mobile IP Lessons Learned The early years.
Re-INVITE Handling draft-camarillo-sipping-reinvite-00.txt
MCT620 – Distributed Systems
IM Delivery and Read Reports Hisham Khartabil
Message Sessions Draft-campbell-simple-im-sessions-01 Ben Campbell
Virtual Trunk Protocol
Copyright © 2003 Pearson Education, Inc. Slide 7-1 The Web Wizards Guide to PHP by David Lash.
© 2007 Cisco Systems, Inc. All rights reserved.ISCW-Mod3_L7 1 Network Security 2 Module 6 – Configure Remote Access VPN.
SIP, Presence and Instant Messaging
SIP, Firewalls and NATs Oh My!. SIP Summit SIP, Firewalls and NATs, Oh My! Getting SIP Through Firewalls Firewalls Typically.
Presence, Security and Privacy. VON The Current Environment Many Faces of Security Authentication Verify someone is who they.
SIP and Instant Messaging. SIP Summit SIP and Instant Messaging What Does Presence Have to Do With SIP? How to Deliver.
IMPP Update: SIP. Spring PIM 2001 IMPP Update SIMPLE Group SIMPLE = SIP for Instant Messaging Leveraging Extensions BoF Session Held.
IM May 24, 2000 Introduction to SIP Jonathan Rosenberg Chief Scientist.
Fall VoN 2000 SIP Servers SIP Servers: A Buyers Guide 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.
Open Issues in bis 12/6/2001 5:28 PM Jonathan Rosenberg dynamicsoft.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 MPLS –TP Fault OAM draft-ietf-mpls-tp-fault-01 George Swallow
M2M middleware service Inge Grønbæk, Telenor R&I ETSI Workshop on RFID and The Internet Of Things, 3rd and 4th December 2007.
An Introduction to Megaco/H.248
Communicating over the Network
1 IP Telephony (VoIP) CSI4118 Fall Introduction (1) A recent application of Internet technology – Voice over IP (VoIP): Transmission of voice.
Yunling Wang VoIP Security COMS 4995 Nov 24, 2008 XCAP The Extensible Markup Language (XML) Configuration Access Protocol (XCAP)
What is access control list (ACL)?
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 8: Subnetting IP Networks Network Fundamentals.
Johan Garcia Karlstads Universitet Datavetenskap 1 Datakommunikation II Signaling/Voice over IP / SIP Based on material from Henning Schulzrinne, Columbia.
1 Network Address Translation (NAT) Relates to Lab 7. Module about private networks and NAT.
Hypertext Transfer PROTOCOL ----HTTP Sen Wang CSE5232 Network Programming.
Early Media Authorization Under what conditions should negotiated media flow prior to 200 OK (INVITE)? Richard Ejzak.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.1 Module 10 Routing Fundamentals and Subnets.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 EN0129 PC AND NETWORK TECHNOLOGY I NETWORK LAYER AND IP Derived From CCNA Network Fundamentals.
Network Fundamentals – Chapter 4 Sandra Coleman, CCNA, CCAI
© 2006 Cisco Systems, Inc. All rights reserved. MPLS v2.2—5-1 MPLS VPN Implementation Configuring BGP as the Routing Protocol Between PE and CE Routers.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA TCP/IP Protocol Suite and IP Addressing Halmstad University Olga Torstensson
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.1 Module 11 TCP/IP Transport and Application Layers.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.1 Module 9 TCP/IP Protocol Suite and IP Addressing.
Presenter: James Huang Date: Sept. 29,  HTTP and WWW  Bottle Web Framework  Request Routing  Sending Static Files  Handling HTML  HTTP Errors.
Off-the-Record Communication, or, Why Not To Use PGP
TCP/IP Protocol Suite 1 Chapter 18 Upon completion you will be able to: Remote Login: Telnet Understand how TELNET works Understand the role of NVT in.
Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Topics Acronyms in Action SOAP 6 November 2008 CIS 340.
H. 323 Chapter 4.
Camarillo / Schulzrinne / Kantola November 26th, 2001 SIP over SCTP performance analysis
CCNA – Network Fundamentals
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
K. Salah 1 Chapter 31 Security in the Internet. K. Salah 2 Figure 31.5 Position of TLS Transport Layer Security (TLS) was designed to provide security.
Introduction to SIP Speaker: Min-Hua Yang Advisor: Ho-Ting Wu Date:2005/3/29.
Understanding Networks Charles Zangla. Network Models Before I can explain how connections are made from across the country, I would like to provide you.
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.
Improving the Routing Efficiency of SIP Instant Message SIP 即時傳訊之繞送效能研究 adviser : Quincy Wu speaker : Wenping Zhang date :
Packet Filtering Chapter 4. Learning Objectives Understand packets and packet filtering Understand approaches to packet filtering Set specific filtering.
Presented By Team Netgeeks SIP Session Initiation Protocol.
Omar A. Abouabdalla Network Research Group (USM) SIP – Functionality and Structure of the Protocol SIP – Functionality and Structure of the Protocol By.
Security, NATs and Firewalls Ingate Systems. Basics of SIP Security.
SIP working group IETF#70 Essential corrections Keith Drage.
SIP-H.323 Interworking Group RRR-1 IETF-48 SIP-H.323 Interworking Requirements draft-agrawal-sip-h323-interworking-reqs-00.txt Hemant.
MSRP & Relays Ben Campbell Cullen Jennings Rohan Mahy.
Teacher:Quincy Wu Presented by: Ying-Neng Hseih
The Session Initiation Protocol - SIP
K. Salah1 Security Protocols in the Internet IPSec.
MSRP (The Message Session Relay Protocol) 姓名:張文萍 日期: 2007/04/02.
Chapter 7: Transport Layer
draft-ietf-simple-message-sessions-00 Ben Campbell
Understand the OSI Model Part 2
Session Initiation Protocol (SIP)
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Presentation transcript:

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Message Session Relay Protocol (MSRP) Jonathan Rosenberg Cisco Fellow

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 2 Historical Context  SIP for IM first proposed in June 2000  Specification evolved into RFC 3428 – “MESSAGE method”, published December 2002  RFC3428 known as pager mode messaging – Each instant message unrelated to previous – like SMS – No “start” or “stop” – Each message routed through proxies

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 3 Drawbacks of Pager Mode IM  Message size limit at 1200 bytes due to UDP fragmentation issues “Who will ever need more than 640k of memory?” “No one will want to send large SMS”  Performance issues of every IM going through each proxy – the lesson of SMS in the SS7 network  IM security end-to-end extremely hard in pager mode  Message overhead substantial  SIP features based on INVITE primitives don’t apply for pager mode IM  Doesn’t easily support multiple devices

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 4 Session Mode IM  Session mode IM treats IM like an RTP stream  Session starts and ends with an INVITE and BYE  SIP/SDP used to negotiate an IM channel directly between endpoints – There are techniques for intermediaries, just like for RTP  IETF protocol for the actual IM session is Message Session Relay Protocol (MSRP) UA 1UA 2Proxy SIP INVITE/BYE MSRP IM Session Mode

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 5 MSRP: A Looooonnnnngggg Road  July 2001: first proposal. Actual IM protocol was RFC 3428 MESSAGE method, signaled with SDP.  Pushback on using SIP. IM Transport Protocol (IMTP) proposed in November 2001 – SIP minus unnecessary features.  IMTP perceived as a hack. Back to using MESSAGE, May  October 2002: send CPIM messages as the IM transport protocol  April 2003: CPIM alone doesn’t work; a shim protocol called MSRP is introduced, built in relay support  November 2003: Adopted as a SIMPLE working item  October 2004: Relays split off as a separate specification  September 2007: MSRP published as RFC 4975, MSRP Relays as RFC 4976

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 6 MSRP Cliff Notes  Text based protocol, syntactically similar to SIP  TCP only  Defines a URI – MSRP URI – which are signaled in SDP  Provides chunking – the ability to split a message into smaller pieces  Provides delivery reports  Responses can be optionally omitted  SDP negotiation primarily concerned with supported content types  Carries arbitrary MIME content

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 7 An Example Invitation  Indicates MSRP  Port and IP are IGNORED  MSRP URI indicates where messages should be sent  Allowed content types INVITE SIP/2.0 To: From: ;tag=786 Call-ID: 3413an89KU Content-Type: application/sdp c=IN IP4 atlanta.example.com m=message 7654 TCP/MSRP * a=accept-types:text/plain a=path:msrp://atlanta.example.com:7654/jshA7weztas;tcp

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 8 Example MSRP Message  Request line has protocol name, transaction ID and method  To-Path indicates series of hops to recipient  From-Path has path from sender  Message ID unique per message  Byte-Range for chunking (later)  Content-Type but NO length  End of message indicator MSRP a786hjs2 SEND To-Path: msrp://biloxi.example. com:12763/kjhd37s2s20w2a;tcp From-Path: msrp://atlanta.exam ple.com:7654/jshA7weztas;tcp Message-ID: Byte-Range: 1-25/25 Content-Type: text/plain Hey Bob, are you there? a786hjs2$

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 9 Anatomy of an MSRP URI msrp://atlanta.example.com:7654/jshA7weztas;tcp Method is msrp or msrps for secure – meaning TLS on each hop Host or IP address. DNS Resolved using A or AAAA. Port. No default but 2855 recommended For firewall config. Session ID. MSRP URI identify a specific session. Session ID Are unique within host – not globally unique Others allowed in the future

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 10 Basic Flow  INVITE and 183 contain MSRP of each side  Offerer opens a TCP connection to answerer by resolving answerer’s MSRP URI  Offerer sends IM to bind connection to From-Path URI – So that answerer sends IM back over same connection  First IM can be empty or have real content Alice Bob INVITE msrp:// /ffd2 183 msrp:// /9876 TCP connect SEND To-Path: msrp:// /9876 From-Path:// /ffd2 You there?

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 11 Framing  MSRP uses boundary framing  No length up front  Each message ends with an end- of-message marker  Marker is equal to – 7 dashes ( ) – The transaction ID from the request line – A +, # or a $: +: more chunks coming #: aborted message $: last chunk in message  Allows messages to be interrupted  Allows for messages whose length is not known up front MSRP a786hjs2 SEND To-Path: msrp://biloxi.example. com:12763/kjhd37s2s20w2a;tcp From-Path: msrp://atlanta.exam ple.com:7654/jshA7weztas;tcp Message-ID: Byte-Range: 1-25/25 Content-Type: text/plain Hey Bob, are you there? a786hjs2$

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 12 Chunking  All chunks have same message ID  Message ID is globally unique  Byte-Range is firstByte-LastByte/TotalBytes Total size: 2100 Message-ID: Byte-Range: /2100 Message-ID: Byte-Range: /2100 Message-ID: Byte-Range: /2100

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 13 Interruptability  LastByte can be set to * if a chunk is interruptible – MUST be used for chunks over 2048  To interrupt, send CRLF and end of chunk marker with continuation flag (+)  Receiver needs to be prepared for LastByte to be incorrect in case a chunk was interrupted without * LastByte  Total Length can also be set to *, and recipient will figure out length by putting together all chunks. – Knows last chunk by $ marker  Interruptability allows sender to abort – just cut off message and terminate with #

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 14 Purpose of Interruptability: HOL Blocking Starts sending a video. M-ID: 1 Byte-Range: 1-*/ User types, “this is a neat video” Client ends message at byte Sends new text message MID: 2 Byte-Range: 1-19/19 This is a neat video Transmission of file continues MID: 1 Byte-Range: * / Avoids a separate TCP/TLS connection for each message or session

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 15 Content Type Negotiation  Accept-types indicates supported types including container types – Anything listed here can appear as the top-level type or wrapped in a container  Accept-wrapped-types indicates types that can ONLY appear in a container – But doesn’t specify which container if there is more than one  Max-Size indicates largest message size – Refers to overall message size, not chunk size  415 error response when receiving unsupported types a=accept-types: message/cpim text/plain a=accept-wrapped-types: text/html a=max-size: 7665

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 16 Example Container MSRP d93kswow SEND To-Path: msrp://bobpc.example.com:8888/9di4eae923wzd;tcp From-Path: msrp://alicepc.example.com:7654/iau39soe2843z;tcp Message-ID: 12339sdqwer Byte-Range: 1-137/148 Content-Type: message/cpim To: Bob From: Alice DateTime: T15:02:31-03:00 Content-Type: text/plain ABCD d93kswow+ CPIM wrapper

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 17 Delivery Reports  Without a doubt the most complex part of MSRP – many options  Failure-Report header field indicates whether reports should be sent on failures – Yes (default) – No – Partial  Success-Report header field indicates whether reports should be sent on successes – Yes – No (default)

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 18 Success Reports  Sent if Failure-Report = yes in SEND  Include a Byte-Range header field indicating range of bytes received  Carries same message-ID as message being reported  Byte-Ranges in REPORT and SEND don’t have to match – i.e., recipient can batch up reports  Status header includes response code namespace (000 is only one specified) and code  To-Path and From-Path like SEND  Extremely useful for file-transfer – allows resumption when tcp connections fail SEND 1-20 SEND SEND REPORT 1-50 MSRP dkei38sd REPORT To-Path: msrp://alicepc.e xample.com:7777/iau39soe 2843z;tcp From-Path: msrp://bob.example.com:8888/9di4ea e923wzd;tcp Message-ID: 12339sdqwer Byte-Range: 1-50/* Status: OK

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 19 Failure Reports  Sent if Failure-Report = yes, partial or absent  If error known immediately at receiver, send error response  If delivery results not known, send 200 OK response (only if report=yes) and then send report later if failure  Example cases: – Gateways to other protocols – MSRP relays  Looks like success report MSRP dkei38sd REPORT To-Path: msrp://alicepc.e xample.com:7777/iau39soe 2843z;tcp From-Path: msrp://bob.example.com:8888/9di4ea e923wzd;tcp Message-ID: 12339sdqwer Byte-Range: 1-50/* Status: Timeout

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 20 Transaction Responses  Only generated for SEND, not REPORT  Only sent for SEND when – Failure-Report was yes – Failure-Report was partial and the response is an error  SEND error responses are Hop-By-Hop – To-Path contains a single URI – that of previous hop  Response code and transaction ID in start line MSRP d93kswow 200 OK To-Path: msrp://alicepc.exampl e.com:7777/iau39soe2843z;tcp From-Path: msrp://bob.exampl e.com:8888/9di4eae923wzd;tcp d93kswow$

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 21 MSRP Security  Signaling links protected by TLS  Crypto-random MSRP URI  Msrps URI results in TLS connection for messages – but certs can be ignored (clients often won’t have them)  Clients reject messages with MSRP URI not matching those of signaling links  Provides message encryption only  Authenticity is not cryptographically assured; that requires SIP Identity (RFC 4474) or stronger

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 22 MSRP Relays in Brief  Client configured with one or more relays  Connects to relay and authenticates with AUTH – digest  Relay provides an MSRP URI that client places in its SDP Client Relay AUTH Use-Path: msrp:// /sd8 INVITE msrp:// /887 msrp:// /sd

© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 23