rfc-6135

An Alternative Connection Model for the Message Session Relay Protocol (MSRP)

C. Holmberg, S. Blau
date2011-02 streamIETF arearai wgsimple statusPROPOSED STANDARD pages8 canonicalhttps://www.rfc-editor.org/rfc/rfc6135 doi10.17487/RFC6135
This document defines an alternative connection model for Message Session Relay Protocol (MSRP) User Agents (UAs); this model uses the connection-oriented media (COMEDIA) mechanism in order to create the MSRP transport connection. The model allows MSRP UAs behind Network Address Translators (NATs) to negotiate which endpoint initiates the establishment of the Transmission Control Protocol (TCP) connection, in order for MSRP messages to traverse the NAT. [STANDARDS-TRACK]

Extracted elements (22)

design-rationale §1

COMEDIA is introduced for MSRP to allow endpoints behind NATs to negotiate which side initiates the TCP transport connection, avoiding the need for complex mechanisms such as ICE-TCP or relays. RFC 4975 mandates the SDP offerer is always active, but this is inflexible when the offerer is behind a NAT.

nat, realtime

design-rationale §4.5

Even when an MSRP UA initiates the TCP connection towards its relay, the UA will only send a SEND request if the UA is active based on the COMEDIA negotiation. The relay connection direction and the COMEDIA active/passive role are independent.

nat, realtime

design-rationale §1

The OMA 'Instant Message using SIMPLE' deployment motivated COMEDIA for MSRP: one UA of every MSRP session represents a media server with a globally reachable IP in the carrier network, and all OMA IM MSRP clients support COMEDIA for NAT traversal.

nat, realtime

interoperability-note §5

An MSRP UA conformant to this document can interoperate with a UA following the RFC 4975 connection model. However, if the COMEDIA UA is behind a NAT without an MSRP relay and the remote UA follows RFC 4975, NAT traversal requires ICE-TCP or SBC-assisted NAT traversal for TCP.

nat, realtime

interoperability-note §4.2.2

Some UAs detect NAT presence by comparing the IP address in the SIP Via sent-by parameter with the received parameter in the 200 OK response to REGISTER. This method fails when a SIP proxy sits between the UA and the NAT.

nat, sip

normative-requirement §4.2.1 MUST

An MSRP UA MUST always include an explicit a=setup attribute in its SDP offers and answers, so that the other endpoint and network entities can determine whether COMEDIA is supported.

realtime, nat

normative-requirement §4.2.2 MUST NOT

An MSRP UA MUST NOT use the a=setup 'passive' attribute value in an SDP offer.

realtime

normative-requirement §4.2.1 MUST

An MSRP UA MUST support the a=setup attribute values 'active', 'actpass', and 'passive'. An MSRP UA MUST NOT send the 'holdconn' attribute value.

realtime

normative-requirement §4.2.2 MUST

If an MSRP UA can provide a globally reachable IP address, the UA MUST use the a=setup 'actpass' attribute value in SDP offers, to allow the remote UA to answer with 'active' if behind a NAT and to maintain compatibility with non-COMEDIA UAs that act as passive endpoints.

nat, realtime

normative-requirement §4.2.2 MUST

If an MSRP UA cannot provide the actual transport address (e.g., it is behind a NAT without a relay), the UA MUST use the a=setup 'active' attribute value.

nat, realtime

normative-requirement §4.3 MUST

If an MSRP UA conformant to this document uses TLS, it MUST use the TLS mechanisms defined in RFC 4975 and RFC 4976.

tls, realtime, security

normative-requirement §4.5 MUST

If an MSRP UA is located behind an MSRP relay (RFC 4976), the UA MUST always initiate a transport connection towards the relay regardless of the value in the a=setup attribute.

nat, realtime

normative-requirement §4.2.1 MUST

If an MSRP UA receives the a=setup 'holdconn' attribute value, it MUST ignore it and process the message as if it did not contain an a=setup attribute.

realtime, nat

normative-requirement §4.2.2 SHOULD

If an SDP offer includes an a=setup 'actpass' value, the SDP answerer MAY include 'active' in the answer, but SHOULD include 'passive' if it knows it is not located behind a NAT.

nat, realtime

normative-requirement §4.4 MUST NOT

MSRP UAs MUST NOT use the SDP a=connection attribute. RFC 4975 defines connection reuse procedures for MSRP and this document does not modify those. If an MSRP UA receives an a=connection attribute, it MUST ignore it.

realtime

normative-requirement §4.2.2 MUST

Once the active UA has established the MSRP transport connection, the UA must immediately send an MSRP SEND request as defined in RFC 4975, allowing the passive party to bind the inbound TCP connection to the session.

realtime

normative-requirement §3 SHOULD

Support of this specification is OPTIONAL for MSRP UAs in general. UAs that are likely to be deployed in networks with NATs SHOULD support this specification to improve chances of successful TCP NAT traversal.

nat, realtime

normative-requirement §4.2.2 MUST

When the a=setup attribute value is 'actpass' or 'passive', the IP address and port values in the MSRP URI of the SDP a=path attribute MUST contain the actual address and port values on which the UA can receive a TCP connection.

realtime, nat

protocol-element §4.2.2

A UA can determine it provides a globally reachable IP address in three scenarios: it is not behind a NAT; it relays MSRP connections via an MSRP relay or TURN server; or it has used STUN to retrieve the NAT address and confirmed endpoint-independent mapping and filtering behavior.

nat, realtime

protocol-element §4.3

When an MSRP UA uses a self-signed TLS certificate to authenticate itself to peers, it includes its certificate fingerprint in the SDP. Fingerprints can only be exchanged in peer-to-peer communication, as MSRP relays do not receive SDP payloads.

tls, realtime, security

security-consideration §6

The active party takes the role of TLS client when TLS is used. There are no procedures in RFC 4975 that break if the SDP offer receiver takes the TLS client role, and the security level provided by TLS is unaffected by which endpoint is active.

security, tls, realtime

security-consideration §6

With COMEDIA, either the SDP offer sender or receiver can become the active party. RFC 4975 requires the active party to immediately issue an MSRP SEND request upon connection establishment, allowing the passive party to bind the inbound TCP connection to the session. COMEDIA does not change this security binding requirement.

security, realtime