ietf-corpus

rfc-8873

Message Session Relay Protocol (MSRP) over Data Channels

JM. Recio (Editor), C. Holmberg
date2021-01 streamIETF areaart wgmmusic statusPROPOSED STANDARD pages17 canonicalhttps://www.rfc-editor.org/rfc/rfc8873 doi10.17487/RFC8873
This document specifies how a Web Real-Time Communication (WebRTC) data channel can be used as a transport mechanism for the Message Session Relay Protocol (MSRP) and how the Session Description Protocol (SDP) offer/answer mechanism can be used to negotiate such a data channel, referred to as an MSRP data channel. Two network configurations are supported: the connection of two MSRP data channel endpoints; and a gateway configuration, which connects an MSRP data channel endpoint with an MSRP endpoint that uses either TCP or TLS. This document updates RFC 4975.

updates

Extracted elements (26)

design-rationale §4.4

The 'msrp-cema' DCSA-embedded attribute is mandated because the 'path' attribute is not used for routing MSRP messages over data channels — the data channel itself is established by SDP offer/answer (RFC 8864), making MSRP CEMA-like behavior the operative model rather than legacy MSRP relay-based routing.

webrtc, realtime

design-rationale §7

This document updates RFC 4975 by permitting the 'msrps' URI scheme when the underlying connection is protected with DTLS (not just TLS), since MSRP over data channels uses DTLS provided by the WebRTC stack rather than TLS over TCP.

webrtc, realtime, security

design-rationale §1

WebRTC data channels are preferred over WebSocket for MSRP transport because data channels provide low-latency transport, leverage NAT-aware connectivity, and integrate the security features of WebRTC (DTLS), whereas WebSocket only provides message-passing with no direct access to TCP/TLS sockets.

webrtc, realtime

interoperability-note §6

A gateway can interwork MSRP over data channels with MSRP over TCP/TLS in two modes: as a B2BUA (no further specification needed) or at transport level using MSRP CEMA. If the non-data-channel endpoint does not support MSRP CEMA, transport-level interworking is not possible and the gateway must act as a B2BUA.

webrtc, realtime

normative-requirement §6 SHALL NOT

An endpoint establishing an MSRP session using data channel transport SHALL NOT request inclusion of any relays, although it MAY interoperate with a peer that signals the use of relays.

webrtc, realtime

normative-requirement §4.3 SHALL

An offerer and answerer SHALL include a 'dcmap' attribute in each offer and answer for the SDP media description describing the SCTP association, with parameters 'label=' and 'subprotocol="msrp"'. The 'max-retr' and 'max-time' parameters SHALL NOT be included.

webrtc, realtime

normative-requirement §4.4 SHALL

An offerer and answerer SHALL include a 'dcsa' attribute for each of the following MSRP-specific attributes: 'path' (RFC 4975), 'msrp-cema' (RFC 6714), and 'setup' (RFC 6135). Absence of any of these is a protocol error.

webrtc, realtime

normative-requirement §5.5 SHALL

Data sending, receiving, and reporting procedures SHALL conform to RFC 4975. No special modifications are required for the data channel transport beyond the framing constraint in Section 5.4.

webrtc, realtime

normative-requirement §5.3 SHALL

If the data channel used to transport the MSRP session fails and is torn down, both MSRP data channel endpoints SHALL consider the MSRP session failed. An endpoint MAY, based on local policy, try to negotiate a new MSRP data channel.

webrtc, realtime

normative-requirement §4.3 SHALL

If the 'ordered' attribute parameter is included in the 'dcmap' attribute, its value SHALL be set to 'true'. In-order delivery is mandatory for MSRP over data channels.

webrtc, realtime

normative-requirement §6 SHALL

In gateway transport-level interworking, the gateway SHALL use the MSRP CEMA mechanism (RFC 6714) toward the non-data-channel endpoint, and SHALL NOT modify the 'path' or 'setup' values received from either endpoint.

webrtc, realtime

normative-requirement §5.3 SHALL

The closure of an MSRP session SHALL be signaled via SDP following the requirements in Section 4.6, using the data channel closing procedures in RFC 8864.

webrtc, realtime

normative-requirement §4.4 MUST

When an endpoint receives an MSRP message over a data channel, it MUST still perform the MSRP URI comparison procedures defined in RFC 4975, even though the 'path' attribute is not used for routing.

webrtc, realtime

normative-requirement §4.6 SHOULD NOT

When closing an MSRP session, the SDP port value for the 'm=' line SHOULD NOT be set to zero (unless all data channels are closing and the SCTP association is no longer needed), since doing so would close the SCTP association and impact all data channels. Instead, the offerer SHALL remove the 'dcmap' and 'dcsa' attributes.

webrtc, realtime

protocol-element §4.1

A new MSRP URI transport parameter value 'dc' (data channel) is defined, extending the existing MSRP URI syntax from RFC 4975. Implementations must allow unrecognized transports where no connection to the URI resource is needed.

webrtc, realtime

protocol-element §3.1

An MSRP data channel is a WebRTC data channel with subprotocol identifier 'msrp', reliable transmission, in-order delivery, and a label negotiated via SDP. These four properties define the channel's fundamental characteristics.

webrtc, realtime, rtp

protocol-element §5.1

Each MSRP session maps to exactly one data channel. Consequently, a file transfer session also maps to one data channel, which MAY be reused for another file transfer after completion.

webrtc, realtime

protocol-element §4.5

The DCSA-embedded 'setup' attribute takes the form 'a=dcsa:x setup:<role>' where x is the data channel's SCTP stream identifier, explicitly binding the active/passive role negotiation to a specific MSRP session over a specific data channel. It has no relationship with DTLS connection establishment roles.

webrtc, realtime

protocol-element §4.2

The msrp-scheme portion of the MSRP URI for a data channel endpoint is always 'msrps', indicating the session is always secured using DTLS as specified in RFC 8831. This applies to both the SDP 'path' attribute and MSRP message headers.

webrtc, realtime, security

registry §9.1

The 'msrps' URI scheme registration (originally created by RFC 4975) is updated by adding a reference to RFC 8873, extending it to cover DTLS as a protected transport indicated by the URI scheme.

registry, webrtc

registry §9.3

The SDP Parameters 'att-field' subregistry is updated to add the usage level 'dcsa (msrp)' for 15 SDP attributes: accept-types, accept-wrapped-types, file-date, file-disposition, file-icon, file-range, file-selector, file-transfer-id, inactive, max-size, msrp-cema, path, recvonly, sendonly, sendrecv, setup, and sendrecv.

registry, webrtc

registry §9.2

The WebSocket Subprotocol Name Registry entry for subprotocol identifier 'msrp' is updated with a reference to RFC 8873.

registry, webrtc, websocket

security-consideration §8

MSRP traffic over data channels — including confidentiality, integrity, and source authentication — is secured as specified by RFC 8831 (WebRTC Data Channels, which mandates DTLS). This provides stronger transport-layer security guarantees than the optional TLS in RFC 4975.

security, webrtc

security-consideration §8

RFC 4975 allows MSRP transport over non-secured TCP connections and does not guarantee end-to-end TLS use; even with TLS on some hops, TCP may be used on others. Operators must establish policies to ensure MSRP traffic is protected between endpoints, particularly in gateway configurations mixing data channel and TCP/TLS transport.

security, webrtc

state-machine §5.2

Session opening: once the WebRTC data channel is opened, the active MSRP endpoint immediately opens the MSRP session by sending an MSRP SEND message (empty or not) to the passive endpoint. The active role is determined by the DCSA-embedded 'setup' attribute negotiation.

webrtc, realtime

wire-format §5.4 SHALL

Each MSRP chunk is delivered in a single SCTP user message. All sent MSRP chunks SHALL have lengths less than or equal to the peer's 'max-message-size' attribute (RFC 8841) associated with the SCTP association. Standard MSRP framing and chunking procedures per RFC 4975 apply.

webrtc, realtime