CLUE Working Group | C. Holmberg |
Internet-Draft | Ericsson |
Intended status: Standards Track | November 27, 2014 |
Expires: May 31, 2015 |
CLUE Protocol Data Channel
draft-ietf-clue-datachannel-05
This document defines how to use the WebRTC Data Channel mechanism in order to realize a data channel, referred to as a CLUE data channel, for transporting CLUE protocol messages between two CLUE entities.
The document defines how to describe the SCTPoDTLS association used to realize the CLUE data channel using SDP, and defines usage of two mechanisms for establishing a CLUE data channel: the Data Channel Establishment Protocol (DCEP) and the SDP-based "SCTP over DTLS" data channel negotiation mechanism.
Details and procedures associated with the CLUE protocol, and the SDP Offer/Answer procedures for negotiating usage of a CLUE data channel, are outside the scope of this document.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 31, 2015.
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
This document defines how to use the WebRTC Data Channel mechanism [I-D.ietf-rtcweb-data-channel] in order to realize a data channel, referred to as a CLUE data channel, for transporting CLUE protocol messages between two CLUE entities.
The document defines how to describe the SCTPoDTLS association [I-D.ietf-tsvwg-sctp-dtls-encaps] used to realize the CLUE data channel using SDP, and defines usage of two mechanisms for establishing a CLUE data channel: the Data Channel Establishment Protocol (DCEP) [I-D.ietf-rtcweb-data-protocol] and the SDP-based "SCTP over DTLS" data channel negotiation mechanism [I-D.ejzak-mmusic-data-channel-sdpneg]. This includes SCTP considerations specific to a CLUE data channel, the SDP Media Description (m- line) values, usage of SDP attributes and DCEP considerations (when DCEP is used) specific to a CLUE data channel.
Details and procedures associated with the CLUE protocol, and the SDP Offer/Answer [RFC3264] procedures for negotiating usage of a CLUE data channel, are outside the scope of this document.
Simultaneous usage of DCEP and the SDP-based "SCTP over DTLS" data channel negotiation mechanism for opening a CLUE data channel is outside the scope of this specification.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119 [RFC2119].
WebRTC Data Channel refers to a SCTPoDTLS association [I-D.ietf-tsvwg-sctp-dtls-encaps] that is used to transport non-media data between two entities, according to the procedures in [I-D.ietf-rtcweb-data-channel].
CLUE data channel refers to a WebRTC Data Channel [I-D.ietf-rtcweb-data-channel] realization, with a specific set of SCTP characteristics, with the purpose of transporting CLUE protocol [I-D.ietf-clue-protocol] messages between two CLUE entities.
CLUE entity refers to a SIP User Agent (UA) [RFC3261] that supports the CLUE data channel and the CLUE protocol.
CLUE session refers to a SIP session [RFC3261] between to SIP UAs, where a CLUE data channel, associated with the SIP session, has been established between the SIP UAs.
[RFC4960] defines an SCTP stream as a unidirectional logical channel established from one to another associated SCTP endpoint, within which all user messages are delivered in sequence except for those submitted to the unordered delivery service.
[RFC4960] defines an SCTP identifier as a unsigned integer, which identifies a SCTP stream.
This section describes the realization of a CLUE Data Channel. This includes a set of SCTP characteristics specific to a CLUE Data Channel, the values of the m- line describing the SCTPoDTLS association associated with the WEBRTC Data Channel, and the usage of either DCEP or SDP-based "SCTP over DTLS" data channel negotiation mechanism for creating the CLUE Data Channel.
As described in [I-D.ietf-rtcweb-data-channel], the SCTP streams realizing a WebRTC Data Channel must be associated with the same SCTP association. In addition, both SCTP streams realizing the WebRTC Data Channel must use the same SCTP stream identifier value. These rules also apply to a CLUE Data Channel.
Within a given CLUE session, a CLUE entity MUST use a single CLUE Data Channel for transport of all CLUE messages towards its peer.
This section defines how to construct the SDP Media Description (m- line) for describing the SCTPoDTLS association used to realize a WebRTC Data Channel. The section also defines how to construct the SDP dcmap attribute, when the SDP-based "SCTP over DTLS" data channel negotiation mechanism is used for establishing a CLUE Data Channel on the SCTPoDTLS association.
NOTE: Other protocols than SDP for negotiating usage of a SCTPoDTLS association for realizing a WebRTC Data Channel are outside the scope of this specification.
[I-D.ietf-clue-signaling] describes the SDP Offer/Answer procedures for negotiating a CLUE session, including the CLUE controlled media streams and the CLUE Data Channel.
As defined in [I-D.ietf-mmusic-sctp-sdp], the field values of an m- line describing an SCTPoDTLS association are set as following:
media | port | proto | fmt |
---|---|---|---|
"application" | UDP port value | "DTLS/SCTP" | application usage |
As defined in [I-D.ietf-mmusic-sctp-sdp], when the SCTPoDTLS association is used to realize a WebRTC data channel, the value of the application usage part is 'webrtc-datachannel'.
As defined in [I-D.ietf-mmusic-sctp-sdp], the SDP sctp-port attribute value is set to the SCTP port of the SCTPoDTLS association.
NOTE: Usage of the SDP sctp-port attribute is optional. As defined in [I-D.ietf-mmusic-sctp-sdp], if the attribute is not present then the default value is 5000.
If the the SDP-based "SCTP over DTLS" data channel negotiation mechanism is used to establish a CLUE data channel, the values of the SDP dcmap attribute [I-D.ejzak-mmusic-data-channel-sdpneg], associated with the m- line describing the SCTPoDTLS association used to realize the WebRTC Data Channel, are set as following:
stream-id | subprotocol | label | ordered | max-retr | max-time |
---|---|---|---|---|---|
Value of the SCTP stream used to realize the CLUE data channel | "CLUE" | Application specific | N/A | N/A | N/A |
The SDP dcsa attribute [I-D.ejzak-mmusic-data-channel-sdpneg] is not used when establishing a CLUE data channel.
m=application 54111 DTLS/SCTP webrtc-datachannel a=dcmap:2 subprotocol="CLUE"
Figure 1: SDP Media Description for a CLUE Data Channel
This section describes how to realize a CLUE data channel using DCEP.
Once the SCTPoDTLS association, used to realize a WebRTC Data Channel has been established, the offerer [RFC3264] is responsible for establishing the CLUE data channel. The offerer MUST send a DCEP DATA_CHANNEL_OPEN message [I-D.ietf-rtcweb-data-protocol]. The value of the 'protocol' field MUST be "CLUE". The value of the 'channel type' MUST be 'DATA_CHANNEL_RELIABLE'.
Once the offerer has received the associated DCEP DATA_CHANNEL_ACK message [I-D.ietf-rtcweb-data-protocol], the CLUE data channel has been established.
If the offerer receives a DCEP DATA_CHANNEL_OPEN message, for the purpose of establishing a CLUE data channel, the offerer MUST reset the SCTP stream, in order to prevent two CLUE data channels from being established within the same CLUE session. The offerer MUST NOT send a DCEP DATA_CHANNEL_ACK message.
NOTE: If another mechanism than SDP Offer/Answer is used to negotiate the SCTPoDTLS association used to realize the WebRTC Data Channel, that mechanism needs to describ which endpoint is responsible for sending the DCEP_CHANNEL_OPEN message, etc.
DCEP [I-D.ietf-rtcweb-data-protocol] does not define a message for closing individual data channels. As described in [I-D.ietf-rtcweb-data-protocol], in order to close a data channel, a SCTP reset message is sent, in order to close the SCTP stream associated with the data channel. The SCTPoDTLS association, and other data channels established on the same association, are not affected by the SCTP reset message.
As described in [I-D.ietf-rtcweb-data-protocol], the PPID value 50 is used when sending a DCEP message on a SCTPoDTLS association used to realize a WebRTC Data Channel.
A CLUE entity MUST use the PPID value 51 when sending a CLUE message on a CLUE data channel.
NOTE: As described in [I-D.ietf-rtcweb-data-channel], the PPID value 51 indicates that the SCTP message contains data encoded in a UTF-8 format. The PPID value 51 does not indicate what application protocol the SCTP message is associated with, only the format in which the data is encoded.
Protocol | PPID Value |
---|---|
DCEP | 50 |
CLUE | 51 |
The usage of SCTP for the CLUE Data Channel ensures reliable transport of CLUE protocol [I-D.ietf-clue-protocol] messages.
A CLUE entity MUST NOT use the partial reliability and limited retransmission extensions defined in [RFC3758].
NOTE: [I-D.ietf-rtcweb-data-channel] requires the support of the partial reliability extension defined in [RFC3758]. This is not needed for a CLUE Data Channel, as messages are required to always be sent reliably. [I-D.ietf-rtcweb-data-channel] also mandates support of the limited retransmission policy defined in [I-D.ietf-tsvwg-sctp-prpolicies].
A CLUE entity MUST use the ordered delivery SCTP service, as described in section 6.6 of [RFC4960].
A CLUE entity MUST support the stream reset extension defined in [RFC6525].
The dynamic address reconfiguration extension defined in [RFC5061] MUST be used to signal the support of the stream reset extension defined in [RFC6525]. Other features of [RFC5061] MUST NOT be used.
SCTP multi-homing is not supported for SCTPoDTLS associations, and can therefor not be used for a CLUE data channel.
This specification does not introduce new security considerations, in addition to those defined in [I-D.ietf-rtcweb-data-channel] and [I-D.ietf-rtcweb-data-protocol]. Security considerations associated with the CLUE protocol are defined in [I-D.ietf-clue-protocol].
[RFC EDITOR NOTE: Please replace RFC-XXXX with the RFC number of this document.]
This document adds the 'CLUE' value to the "WebSocket Subprotocol Name Registry" as follows:
Subprotocl Identifier: CLUE Subprotocol Common Name: CLUE Subprotocol Definition: RFC-XXXX
[RFC EDITOR NOTE: Please replace RFC-XXXX with the RFC number of this document.]
OPEN ISSUE: [I-D.ejzak-mmusic-data-channel-sdpneg] has not yet created a registry for new subprotocol values.
Thanks to Paul Kyzivat and Christian Groves for comments on the document.
[RFC EDITOR NOTE: Please remove this section when publishing]
Changes from draft-ietf-clue-datachannel-04
Changes from draft-ietf-clue-datachannel-03
Changes from draft-ietf-clue-datachannel-02
Changes from draft-ietf-clue-datachannel-01
Changes from draft-ietf-clue-datachannel-00
Changes from draft-holmberg-clue-datachannel-04
Changes from draft-holmberg-clue-datachannel-03
Changes from draft-holmberg-clue-datachannel-02
Changes from draft-holmberg-clue-datachannel-01
Changes from draft-holmberg-clue-datachannel-00
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |
[RFC3261] | Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. |
[RFC3264] | Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. |
[RFC4960] | Stewart, R., "Stream Control Transmission Protocol", RFC 4960, September 2007. |
[RFC5061] | Stewart, R., Xie, Q., Tuexen, M., Maruyama, S. and M. Kozuka, "Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration", RFC 5061, September 2007. |
[RFC6525] | Stewart, R., Tuexen, M. and P. Lei, "Stream Control Transmission Protocol (SCTP) Stream Reconfiguration", RFC 6525, February 2012. |
[I-D.ietf-clue-protocol] | Presta, R. and S. Romano, "CLUE protocol", Internet-Draft draft-ietf-clue-protocol-02.txt, October 2014. |
[I-D.ietf-clue-signaling] | Kyzivat, P., Xiao, L., Groves, C. and S. Romano, "CLUE Signaling", Internet-Draft draft-ietf-clue-signaling-04.txt, October 2014. |
[I-D.ietf-tsvwg-sctp-dtls-encaps] | Tuexen, M., Stewart, R., Jesup, R. and S. Loreto, "DTLS Encapsulation of SCTP Packets", Internet-Draft draft-ietf-tsvwg-sctp-dtls-encaps-06.txt, November 2014. |
[I-D.ietf-mmusic-sctp-sdp] | Loreto, S. and G. Camarillo, "Stream Control Transmission Protocol (SCTP)-Based Media Transport in the Session Description Protocol (SDP)", Internet-Draft draft-ietf-mmusic-sctp-sdp-07.txt, July 2014. |
[I-D.ietf-rtcweb-data-channel] | Jesup, R., Loreto, S. and M. Tuexen, "WebRTC Data Channels", Internet-Draft draft-ietf-rtcweb-data-channel-12.txt, September 2014. |
[I-D.ietf-rtcweb-data-protocol] | Jesup, R., Loreto, S. and M. Tuexen, "WebRTC Data Channel Establishment Protocol", Internet-Draft draft-ietf-rtcweb-data-protocol-08.txt, September 2014. |
[I-D.ietf-tsvwg-sctp-prpolicies] | Tuexen, M., Seggelmann, R., Stewart, R. and S. Loreto, "Additional Policies for the Partial Reliability Extension of the Stream Control Transmission Protocol", Internet-Draft draft-ietf-tsvwg-sctp-prpolicies-05.txt, November 2014. |
[I-D.ejzak-mmusic-data-channel-sdpneg] | Drage, K., Makaraju, R., Ejzak, R. and J. Marcon, "SDP-based WebRTC data channel negotiation", Internet-Draft draft-ejzak-mmusic-data-channel-sdpneg-02.txt, October 2014. |
[RFC3758] | Stewart, R., Ramalho, M., Xie, Q., Tuexen, M. and P. Conrad, "Stream Control Transmission Protocol (SCTP) Partial Reliability Extension", RFC 3758, May 2004. |