Reference articles on history, science, culture and more
Encyclopedia

Message Session Relay Protocol

Computer network 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 Description Protocol (SDP) over Session Initiation Protocol (SIP) or other rendezvous methods.

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

MSRP is used in the RCS context, especially for the instant messaging, file transfer and photo sharing features.

01Protocol design

MSRP syntax is similar to other IETF text based protocols such as SIP, HTTP and RTSP.

MSRP requires a reliable transport layer, like TCP. Each message is either a request or a response and uses URIs; a message contains headers and a body that can carry any type of data, including binary information.

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.

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

02Usage in SIP

MSRP can be used within a SIP session:

MSRP session is set up through SIP's offer-answer model. The SDP m-line media type is message and the protocol 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 address and port are contained in the c- and m-lines, but also in the path attribute on an a-line. Generally, other media types use the c-line and m-line to describe the address and port, but the MSRP RFC 4975 section 8.1 says the path attribute is the authoritative source for MSRP.

Watch videos about Message Session Relay ProtocolExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Message Session Relay Protocol, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.