Message Session Relay Protocol

Message Session Relay Protocol

In computer networking, the Message Session Relay Protocol (MSRP) is a protocol for transmitting a series of related instant messages in the context of a communications session. An application instantiates the session with the Session Initiation Protocol (SIP) or other rendez-vous methods.

The MSRP protocol is defined in RFC 4975[1]. MSRP messages can also be transmitted by using intermediaries peers, by using the relay extensions defined in RFC 4976[2].

MSRP is used in the RCS context, especially for the Instant Messaging, File Transfer and Image Sharing features.

Contents

Protocol design

MSRP has similar syntax as other IETF text based protocol such as SIP, HTTP and RTSP. Each message is either a request or a response, uses URIs, a message contains headers and a body that can carry any type of data, including binary information. Unlike SIP, MSRP is much simpler. The first 2 headers must be To-Path and From-Path and the last must be Content-Type, this significantly reduces the complexity of parsers. Messages must also end with 7 dash ('-') characters, followed by a transaction identifier which appears in the first line, these are followed by a continuation flag, which is a single character and end of line (CRLF). This last line at the end of messages makes it rather simple to find and detect the message boundaries. MSRP is not defined for connection-less protocols, such as UDP, thus one be certain that a response to a request would arrive on the same connection. MSRP also relies on transport layer is reliable, that is, guarantees delivery and maintains the order of the messages, which further simplifies the protocol design.

An MSRP URI has a scheme (which is "msrp" or "msrps"), authority, as defined by RFC 3986, which holds the IP/domain name and possibly the port, an optional session identifier, the transport and additional optional parameters. For example:

msrp://atlanta.example.com:7654/jshA7weztas;tcp

  • msrp is the scheme
  • atlanta.example.com:7654 is the authority
  • jshA7weztas is the session identifier
  • tcp is the transport

Usage in SIP

MSRP can be used within a SIP session:

  • to do Instant Messaging in a one-to-one or one-to-many mode
  • to transfer file attachment
  • to do some Image Sharing based on prior exchange of capabilities between the user endpoints

MSRP session is set up through SIP's offer-answer[3] model. The SDP m-line media type is message and the proto is either TCP/MSRP for MSRP over TCP and TCP/TLS/MSRP for MSRP over secure TLS. Furthermore, the MSRP URI is specified in a path attribute.

A full SDP example, as provided by the RFC:

   v=0
   o=alice 2890844526 2890844527 IN IP4 alice.example.com
   s= -
   c=IN IP4 alice.example.com
   t=0 0
   m=message 7394 TCP/MSRP *
   a=accept-types:text/plain
   a=path:msrp://alice.example.com:7394/2s93i9ek2a;tcp

The fact that MSRP contains the address and port and at the same time the c-line holds the address and m-line contain the port is a cause for ambiguity. Generally, other media types use the c-line and m-line to describe the address, but the MSRP RFC states this information is actually specified by the MSRP path. This may cause some devices to improperly set up the session, in particular, a B2BUA may require to alter the path per each MSRP message between the different devices. To overcome this, a RFC draft changes the way devices compare the MSRP paths. Rather than comparing the entire path, only the session identifier should be compared. This approach simplifies many real life scenarios and improves the overall interoperability between devices in the network.

References

  1. ^ RFC 4975, The Message Session Relay Protocol (MSRP), B. Campbell (Ed.), R. Mahy (Ed.), C. Jennings (Ed.), The Internet Society (September 2007)
  2. ^ RFC 4976, Relay Extensions for the Message Session Relay Protocol (MSRP), C. Jennings (Ed.), R. Mahy (Ed.), A. B. Roach (Ed.), The Internet Society (September 2007)
  3. ^ RFC 3264, An Offer/Answer Model with the Session Description Protocol (SDP), IETF, The Internet Society (2002)

See also


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Session Initiation Protocol — The Session Initiation Protocol (SIP) is a signalling protocol, widely used for setting up and tearing down multimedia communication sessions such as voice and video calls over the Internet. Other feasible application examples include video… …   Wikipedia

  • Session Initiation Protocol — Pour les articles homonymes, voir SIP. Pile de protocoles 7.  Application 6.  …   Wikipédia en Français

  • Session Initiation Protocol — SIP (англ. Session Initiation Protocol  протокол установления сессии)  стандарт на способ установления и завершения пользовательского интернет сеанса, включающего обмен мультимедийным содержимым (видео и аудиоконференция, мгновенные сообщения,… …   Википедия

  • Protocol Data Unit — Pour les articles homonymes, voir PDU. Pile de protocoles 7.  Application 6.  …   Wikipédia en Français

  • Diameter (protocol) — Internet protocol suite Application layer BGP DHCP DNS FTP HTTP …   Wikipedia

  • Simple Mail Transfer Protocol — This article is about the Internet standard for electronic mail transmission. For the email delivery company, see SMTP (company). Internet protocol suite Application layer …   Wikipedia

  • Layer Two Tunneling Protocol — L2TP im TCP/IP‑Protokollstapel: Anwendung L2TP Transport UDP Internet IP (IPv4, IPv6) Netzzugang Ethernet Token …   Deutsch Wikipedia

  • Layer 2 Tunneling Protocol — L2TP im TCP/IP‑Protokollstapel: Anwendung L2TP Transport UDP Internet IP (IPv4, IPv6) Netzzugang Ethernet Token …   Deutsch Wikipedia

  • Internet Relay Chat — IRC redirects here. For other uses, see IRC (disambiguation). For IRC channels dedicated to Wikipedia, see Wikipedia:IRC Internet Relay Chat (IRC) is a protocol for real time Internet text messaging (chat) or synchronous conferencing.[1] It is… …   Wikipedia

  • Layer 2 Tunneling Protocol — In computer networking, the Layer 2 Tunneling Protocol (L2TP) is a tunneling protocol used to support virtual private networks (VPNs). History and future Published in 1999 as proposed standard RFC 2661, L2TP has its origins primarily in two older …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”