rfc8873v2.txt   rfc8873.txt 
skipping to change at line 19 skipping to change at line 19
Abstract Abstract
This document specifies how a Web Real-Time Communication (WebRTC) This document specifies how a Web Real-Time Communication (WebRTC)
data channel can be used as a transport mechanism for the Message data channel can be used as a transport mechanism for the Message
Session Relay Protocol (MSRP) and how the Session Description Session Relay Protocol (MSRP) and how the Session Description
Protocol (SDP) offer/answer mechanism can be used to negotiate such a Protocol (SDP) offer/answer mechanism can be used to negotiate such a
data channel, referred to as an MSRP data channel. Two network data channel, referred to as an MSRP data channel. Two network
configurations are supported: the connection of two MSRP data channel configurations are supported: the connection of two MSRP data channel
endpoints; and a gateway configuration, which connects an MSRP data endpoints; and a gateway configuration, which connects an MSRP data
channel endpoint with an MSRP over TCP or TLS endpoint. This channel endpoint with an MSRP endpoint that uses either TCP or TLS.
document updates RFC 4975. This document updates RFC 4975.
Status of This Memo Status of This Memo
This is an Internet Standards Track document. This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has (IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841. Internet Standards is available in Section 2 of RFC 7841.
skipping to change at line 123 skipping to change at line 123
* leverages the SDP-based negotiation already defined for MSRP * leverages the SDP-based negotiation already defined for MSRP
* allows the interworking with MSRP endpoints running on a TCP or * allows the interworking with MSRP endpoints running on a TCP or
TLS connection TLS connection
Compared to the WebSocket protocol, which provides a message-passing Compared to the WebSocket protocol, which provides a message-passing
protocol to applications with no direct access to TCP or TLS sockets, protocol to applications with no direct access to TCP or TLS sockets,
data channels provide a low-latency transport and leverage NAT-aware data channels provide a low-latency transport and leverage NAT-aware
connectivity and the security features of WebRTC. connectivity and the security features of WebRTC.
This document defines an MSRP endpoint as an MSRP application that This document defines an MSRP data channel endpoint as an MSRP
uses a WebRTC data channel. This document describes two application that uses a WebRTC data channel for MSRP transport. This
configurations: one for connecting to an endpoint that is another document describes configurations for connecting such endpoint to
MSRP-over-data-channel endpoint (e.g., a WebRTC application) and a another MSRP data channel endpoint, or to an MSRP endpoint that uses
configuration for connecting to an MSRP endpoint that uses either TCP either TCP or TLS transport.
or TLS transport.
This document updates [RFC4975] as described in Section 7. This document updates [RFC4975] as described in Section 7.
2. Conventions 2. Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
skipping to change at line 278 skipping to change at line 277
MSRP Connection Establishment for Media Anchoring (MSRP CEMA) MSRP Connection Establishment for Media Anchoring (MSRP CEMA)
[RFC6714]. Because of this, a DCSA-embedded 'msrp-cema' attribute is [RFC6714]. Because of this, a DCSA-embedded 'msrp-cema' attribute is
mandated for MSRP sessions over data channels. However, when an mandated for MSRP sessions over data channels. However, when an
endpoint receives an MSRP message over a data channel, it MUST still endpoint receives an MSRP message over a data channel, it MUST still
perform the MSRP URI comparison procedures defined in [RFC4975]. perform the MSRP URI comparison procedures defined in [RFC4975].
4.5. Use of the DCSA-Embedded 'setup' Attribute 4.5. Use of the DCSA-Embedded 'setup' Attribute
As described in Section 4.4, the usage of a DCSA-embedded 'setup' As described in Section 4.4, the usage of a DCSA-embedded 'setup'
attribute is mandated for MSRP sessions over data channels. It is attribute is mandated for MSRP sessions over data channels. It is
used to negotiate which MSRP session endpoint assumes the active role used to negotiate which MSRP data channel endpoint assumes the active
as per Section 4.2.2 of [RFC6135] and Section 5.4 of [RFC4975]. It role as per Section 4.2.2 of [RFC6135] and Section 5.4 of [RFC4975].
has no relationship with the DTLS connection establishment roles It has no relationship with the DTLS connection establishment roles
[RFC8841]. [RFC8841].
The DCSA-embedded 'setup' attribute is of the form "a=dcsa:x The DCSA-embedded 'setup' attribute is of the form "a=dcsa:x
setup:<role>", with x being the data channel's SCTP stream setup:<role>", with x being the data channel's SCTP stream
identifier, so that the 'setup' attribute is explicitly associated identifier, so that the 'setup' attribute is explicitly associated
with an MSRP session over a specific data channel. with an MSRP session over a specific data channel.
4.6. Session Closing 4.6. Session Closing
An MSRP session is closed by closing the associated data channel An MSRP session is closed by closing the associated data channel
skipping to change at line 390 skipping to change at line 389
The procedures specified in [RFC4975] apply except when this document The procedures specified in [RFC4975] apply except when this document
specifies otherwise. This section describes the MSRP considerations specifies otherwise. This section describes the MSRP considerations
specific to an MSRP data channel. specific to an MSRP data channel.
5.1. Session Mapping 5.1. Session Mapping
In this document, each MSRP session maps to one data channel exactly. In this document, each MSRP session maps to one data channel exactly.
5.2. Session Opening 5.2. Session Opening
Section 4.5 describes how the active MSRP session endpoint role is Section 4.5 describes how the active MSRP data channel endpoint role
negotiated. The active MSRP session endpoint uses the data channel is negotiated. The active MSRP data channel endpoint uses the data
established for this MSRP session by the generic data channel opening channel established for this MSRP session by the generic data channel
procedure defined in [RFC8864]. opening procedure defined in [RFC8864].
As soon as the WebRTC data channel is opened, the MSRP session is As soon as the WebRTC data channel is opened, the MSRP session is
actually opened by the active MSRP session endpoint. In order to do actually opened by the active MSRP data channel endpoint. In order
this, the active MSRP endpoint sends an MSRP SEND message (empty or to do this, the active MSRP data channel endpoint sends an MSRP SEND
not) to the peer (passive) MSRP endpoint. message (empty or not) to the peer (passive) MSRP data channel
endpoint.
5.3. Session Closing 5.3. Session Closing
The closure of an MSRP session SHALL be signaled via SDP following The closure of an MSRP session SHALL be signaled via SDP following
the requirements in Section 4.6. the requirements in Section 4.6.
If the data channel used to transport the MSRP session fails and is If the data channel used to transport the MSRP session fails and is
torn down, the endpoints SHALL consider the MSRP session failed. An torn down, the MSRP data channel endpoints SHALL consider the MSRP
MSRP endpoint MAY, based on local policy, try to negotiate a new MSRP session failed. An MSRP data channel endpoint MAY, based on local
data channel. policy, try to negotiate a new MSRP data channel.
5.4. Data Framing 5.4. Data Framing
Each text-based MSRP message is sent on the corresponding data Each text-based MSRP message is sent on the corresponding data
channel using standard MSRP framing and chunking procedures, as channel using standard MSRP framing and chunking procedures, as
defined in [RFC4975], with each MSRP chunk delivered in a single SCTP defined in [RFC4975], with each MSRP chunk delivered in a single SCTP
user message. Therefore all sent MSRP chunks SHALL have lengths of user message. Therefore all sent MSRP chunks SHALL have lengths of
less than or equal to the value of the peer's 'max-message-size' less than or equal to the value of the peer's 'max-message-size'
attribute [RFC8841] associated with the SCTP association. attribute [RFC8841] associated with the SCTP association.
5.5. Data Sending, Receiving, and Reporting 5.5. Data Sending, Receiving, and Reporting
Data sending, receiving, and reporting procedures SHALL conform to Data sending, receiving, and reporting procedures SHALL conform to
[RFC4975]. [RFC4975].
5.6. Support for MSRP File Transfer Function 5.6. Support for MSRP File Transfer Function
[RFC5547] defines an end-to-end file transfer method based on MSRP [RFC5547] defines an end-to-end file transfer method based on MSRP
and the SDP offer/answer mechanism. This file transfer method is and the SDP offer/answer mechanism. This file transfer method is
also usable by MSRP endpoints using data channels with the following also usable by MSRP data channel endpoints with the following
considerations: considerations:
* As an MSRP session maps to one data channel, a file transfer * As an MSRP session maps to one data channel, a file transfer
session maps also to one data channel. session maps also to one data channel.
* SDP attributes are negotiated as specified in Section 4.7. * SDP attributes are negotiated as specified in Section 4.7.
* Once the file transfer is complete, the same data channel MAY be * Once the file transfer is complete, the same data channel MAY be
reused for another file transfer. reused for another file transfer.
skipping to change at line 563 skipping to change at line 563
* 'msrp-cema' * 'msrp-cema'
* 'path' * 'path'
* 'recvonly' * 'recvonly'
* 'sendonly' * 'sendonly'
* 'sendrecv' * 'sendrecv'
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'accept-types' attribute in the Session Description Protocol the SDP 'accept-types' attribute in the Session Description Protocol
(SDP) Parameters "att-field" subregistry as follows: (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: accept-types Attribute name: accept-types
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Contain the list of media types that the endpoint Purpose: Contain the list of media types that the endpoint
is willing to receive. is willing to receive.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'accept-wrapped-types' attribute in the Session Description the SDP 'accept-wrapped-types' attribute in the Session Description
Protocol (SDP) Parameters "att-field" subregistry as follows: Protocol (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: accept-wrapped-types Attribute name: accept-wrapped-types
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Contain the list of media types that the endpoint Purpose: Contain the list of media types that the endpoint
is willing to receive in an MSRP message with is willing to receive in an MSRP message with
multipart content. multipart content.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'file-date' attribute in the Session Description Protocol the SDP 'file-date' attribute in the Session Description Protocol
(SDP) Parameters "att-field" subregistry as follows: (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: file-date Attribute name: file-date
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Indicate one or more dates related to the file in Purpose: Indicate one or more dates related to the file in
an MSRP file transfer negotiation. an MSRP file transfer negotiation.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'file-disposition' attribute in the Session Description the SDP 'file-disposition' attribute in the Session Description
Protocol (SDP) Parameters "att-field" subregistry as follows: Protocol (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: file-disposition Attribute name: file-disposition
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Provide a suggestion to the other endpoint about Purpose: Provide a suggestion to the other endpoint about
the intended disposition of the file in an MSRP the intended disposition of the file in an MSRP
file transfer negotiation. file transfer negotiation.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'file-icon' attribute in the Session Description Protocol the SDP 'file-icon' attribute in the Session Description Protocol
(SDP) Parameters "att-field" subregistry as follows: (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: file-icon Attribute name: file-icon
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Contain a pointer to a small preview icon Purpose: Contain a pointer to a small preview icon
representing the contents of the file in an MSRP representing the contents of the file in an MSRP
file transfer negotiation. file transfer negotiation.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'file-range' attribute in the Session Description Protocol the SDP 'file-range' attribute in the Session Description Protocol
(SDP) Parameters "att-field" subregistry as follows: (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: file-range Attribute name: file-range
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Contain the range of transferred octets of the file Purpose: Contain the range of transferred octets of the file
in an MSRP file transfer negotiation. in an MSRP file transfer negotiation.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'file-selector' attribute in the Session Description Protocol the SDP 'file-selector' attribute in the Session Description Protocol
(SDP) Parameters "att-field" subregistry as follows: (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: file-selector Attribute name: file-selector
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Indicate a file in an MSRP file transfer Purpose: Indicate a file in an MSRP file transfer
negotiation. negotiation.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'file-transfer-id' attribute in the Session Description the SDP 'file-transfer-id' attribute in the Session Description
Protocol (SDP) Parameters "att-field" subregistry as follows: Protocol (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: file-transfer-id Attribute name: file-transfer-id
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Indicate a unique identifier of the file transfer Purpose: Indicate a unique identifier of the file transfer
operation in an MSRP file transfer negotiation. operation in an MSRP file transfer negotiation.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'inactive' attribute in the Session Description Protocol the SDP 'inactive' attribute in the Session Description Protocol
(SDP) Parameters "att-field" subregistry as follows: (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: inactive Attribute name: inactive
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Negotiate the direction of the media flow on an Purpose: Negotiate the direction of the media flow on an
MSRP data channel. MSRP data channel.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'max-size' attribute in the Session Description Protocol the SDP 'max-size' attribute in the Session Description Protocol
(SDP) Parameters "att-field" subregistry as follows: (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: max-size Attribute name: max-size
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Indicate the largest message an MSRP endpoint Purpose: Indicate the largest message an MSRP endpoint
wishes to accept. wishes to accept.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'msrp-cema' attribute in the Session Description Protocol the SDP 'msrp-cema' attribute in the Session Description Protocol
(SDP) Parameters "att-field" subregistry as follows: (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: msrp-cema Attribute name: msrp-cema
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Indicate that the routing of MSRP messages Purpose: Indicate that the routing of MSRP messages
transported on a data channel is more similar to transported on a data channel is more similar to
the MSRP CEMA mechanism than the legacy MSRP the MSRP CEMA mechanism than the legacy MSRP
routing mechanism. routing mechanism.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'path' attribute in the Session Description Protocol (SDP) the SDP 'path' attribute in the Session Description Protocol (SDP)
Parameters "att-field" subregistry as follows: Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: path Attribute name: path
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Indicate an endpoint, but not used for routing, as Purpose: Indicate an endpoint, but not used for routing, as
described in Section 4.4. described in Section 4.4.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'recvonly' attribute in the Session Description Protocol the SDP 'recvonly' attribute in the Session Description Protocol
(SDP) Parameters "att-field" subregistry as follows: (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: recvonly Attribute name: recvonly
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Negotiate the direction of the media flow on an Purpose: Negotiate the direction of the media flow on an
MSRP data channel. MSRP data channel.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'sendonly' attribute in the Session Description Protocol the SDP 'sendonly' attribute in the Session Description Protocol
(SDP) Parameters "att-field" subregistry as follows: (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: sendonly Attribute name: sendonly
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Negotiate the direction of the media flow on an Purpose: Negotiate the direction of the media flow on an
MSRP data channel. MSRP data channel.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'setup' attribute in the "attribute-name" subregistry the SDP 'setup' attribute in the "attribute-name" subregistry
(formerly "att-field") as follows: (formerly "att-field") as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: setup Attribute name: setup
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Negotiate the active role of an MSRP session over a Purpose: Negotiate the active role of an MSRP session over a
data channel as per Section 4.5. data channel as per Section 4.5.
Reference: RFC 8873 Reference: RFC 8873
The usage level "dcsa(msrp)" has been added to the registration of The usage level "dcsa (msrp)" has been added to the registration of
the SDP 'sendrecv' attribute in the Session Description Protocol the SDP 'sendrecv' attribute in the Session Description Protocol
(SDP) Parameters "att-field" subregistry as follows: (SDP) Parameters "att-field" subregistry as follows:
Contact name: IESG Contact name: IESG
Contact email: iesg@ietf.org Contact email: iesg@ietf.org
Attribute name: sendrecv Attribute name: sendrecv
Usage level: dcsa(msrp) Usage level: dcsa (msrp)
Purpose: Negotiate the direction of the media flow on an Purpose: Negotiate the direction of the media flow on an
MSRP data channel. MSRP data channel.
Reference: RFC 8873 Reference: RFC 8873
10. References 10. References
10.1. Normative References 10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
 End of changes. 39 change blocks. 
54 lines changed or deleted 54 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/