CLUE Working Group C. Holmberg Internet-Draft Ericsson Intended status: Standards Track November 20, 2014 Expires: May 24, 2015 CLUE Protocol Data Channel draft-ietf-clue-datachannel-03 Abstract This document defines how to use the WebRTC Data Channel mechanism, together with the Data Channel Establishment Protocol (DCEP) and the SDP-based "SCTP over DTLS" data channel negotiation mechanism, in order to establish a data channel, referred to as CLUE Data Channel, for transporting CLUE protocol messages between two CLUE entities. The document defines the SCTP considerations specific to a CLUE Data Channel, the SDP Media Description- and SDP dcmap attribute values, and the DCEP procedures for opening, a CLUE Data Channel. Details and procedures associated with the CLUE protocol, and the SDP Offer/Answer procedures for negotiating a CLUE data channel, are outside the scope of this document. Status of This Memo 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 24, 2015. Copyright Notice Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved. Holmberg Expires May 24, 2015 [Page 1] Internet-Draft CLUE Protocol Data Channel November 2014 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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. CLUE Data Channel . . . . . . . . . . . . . . . . . . . . . . 4 3.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2. SDP Considerations . . . . . . . . . . . . . . . . . . . 4 3.2.1. General . . . . . . . . . . . . . . . . . . . . . . . 4 3.2.2. SDP Media Description Fields . . . . . . . . . . . . 4 3.2.3. SDP sctpmap Attribute . . . . . . . . . . . . . . . . 5 3.2.4. SDP dcpmap Attribute . . . . . . . . . . . . . . . . 5 3.2.5. SDP dcsa Attribute . . . . . . . . . . . . . . . . . 5 3.2.6. Example . . . . . . . . . . . . . . . . . . . . . . . 5 3.3. Data Channel Establishment Protocol (DCEP) Considerations 6 3.3.1. General . . . . . . . . . . . . . . . . . . . . . . . 6 3.3.2. Open CLUE Data Channel . . . . . . . . . . . . . . . 6 3.3.3. Close CLUE Data Channel . . . . . . . . . . . . . . . 6 3.3.4. SCTP Association Failure . . . . . . . . . . . . . . 7 3.4. SCTP Considerations . . . . . . . . . . . . . . . . . . . 7 3.4.1. SCTP Payload Protocol Identifier (PPID) . . . . . . . 7 3.4.2. Reliability . . . . . . . . . . . . . . . . . . . . . 7 3.4.3. Order . . . . . . . . . . . . . . . . . . . . . . . . 8 3.4.4. Stream Reset . . . . . . . . . . . . . . . . . . . . 8 3.4.5. SCTP Multihoming . . . . . . . . . . . . . . . . . . 8 4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 7. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 8 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 8.2. Informative References . . . . . . . . . . . . . . . . . 11 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11 1. Introduction This document defines how to use the WebRTC Data Channel mechanism [I-D.ietf-rtcweb-data-channel], together with the Data Channel Establishment Protocol (DCEP) [I-D.ietf-rtcweb-data-protocol] and the Holmberg Expires May 24, 2015 [Page 2] Internet-Draft CLUE Protocol Data Channel November 2014 SDP-based "SCTP over DTLS" data channel negotiation mechanism [add- ref], in order to establish a data channel, referred to as CLUE Data Channel, for transporting CLUE protocol [I-D.ietf-clue-protocol] messages between CLUE entities. The document defines the SCTP considerations specific to a CLUE Data Channel, the SDP Media Description- and SDP dcmap attribute values, and the DCEP procedures for opening, a CLUE Data Channel. Details and procedures associated with the CLUE protocol, and the SDP Offer/Answer [RFC3264] procedures for negotiating a CLUE data channel, are outside the scope of this document. 2. Conventions 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], with a specific set of SCTP characteristics, and usage of the Data Channel Establishment Protocol (DCEP) [I-D.ietf-rtcweb-data-protocol] in order to open a WebRTC Data Channel for 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. Holmberg Expires May 24, 2015 [Page 3] Internet-Draft CLUE Protocol Data Channel November 2014 3. CLUE Data Channel 3.1. General This section describes the realization of a CLUE Data Channel. This includes a set of SCTP characteristics specific to a CLUE Data Channel, the usage of the SDP-based "SCTP over DTLS" data channel negotiation mechanism to describe a CLUE data channel in SDP, and the usage of the Data Channel Establishment Protocol (DCEP) [I-D.ietf-rtcweb-data-protocol] in order to open a WebRTC Data Channel for the purpose of transporting CLUE protocol [I-D.ietf-clue-protocol] messages between two CLUE entities. 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. 3.2. SDP Considerations 3.2.1. General This section defines how to construct the SDP Media Description ("m=" line), and the associated SDP dcmap attribute, used to describe a CLUE data channel in SDP. [I-D.ietf-clue-protocol] describes the SDP Offer/Answer procedures for negotiating a CLUE session, including the CLUE controlled media channels and the CLUE data channel. 3.2.2. SDP Media Description Fields The field values of the "m=" line for the SCTPoDTLS association are set as following: +---------------+-----------------+-------------+-----------------+ | media | port | proto | fmt | +---------------+-----------------+-------------+-----------------+ | "application" | DTLS port value | "DTLS/SCTP" | SCTP port value | +---------------+-----------------+-------------+-----------------+ Table 1: SDP "proto" field values Holmberg Expires May 24, 2015 [Page 4] Internet-Draft CLUE Protocol Data Channel November 2014 3.2.3. SDP sctpmap Attribute The field values of the SDP sctpmap attribute, associated with the "m=" line describing the SCTPoDTLS association, are set as following: +----------------------------+----------------------+ | sctpmap-number | app | +----------------------------+----------------------+ | fmt value of the "m=" line | "webrtc-datachannel" | +----------------------------+----------------------+ Table 2: SDP sctpmap attribute values 3.2.4. SDP dcpmap Attribute The SDP dcmap attribute [I-D.ejzak-mmusic-data-channel-sdpneg] values for the CLUE data channel, associated with the "m=" line describing the SCTPoDTLS, are set as following: +------------+------------+--------+----------+----------+----------+ | dcmap- | subprotoco | label- | ordering | maxretr- | maxtime- | | stream-id | l-opt | opt | -opt | opt | opt | +------------+------------+--------+----------+----------+----------+ | Value of | "CLUE" | "CLUE | Not appl | Not appl | Not appl | | the SCTP | | Data C | icable | icable | icable | | stream | | hannel | | | | | used to | | " | | | | | realize | | | | | | | the CLUE | | | | | | | data | | | | | | | channel | | | | | | +------------+------------+--------+----------+----------+----------+ Table 3: SDP dcmap attribute values 3.2.5. SDP dcsa Attribute The SDP dcsa attribute [I-D.ejzak-mmusic-data-channel-sdpneg] is not used to describe a CLUE data channel. 3.2.6. Example m=application 54111 SCTP/DTLS webrtc-datachannel a=dcmap:2 subprotocol="CLUE";label="CLUE Data Channel" Figure 1: SDP Media Description for a CLUE Data Channel Holmberg Expires May 24, 2015 [Page 5] Internet-Draft CLUE Protocol Data Channel November 2014 3.3. Data Channel Establishment Protocol (DCEP) Considerations 3.3.1. General A CLUE entity MUST support the Data Channel Establishment Protocol (DCEP) [I-D.ietf-rtcweb-data-channel], which can be used in order to open a WebRTC Data Channel. This section describes how to open and close a CLUE data channel using DCEP. NOTE: This document does not define any other mechanism for opening a CLUE Data Channel, but such might be defined in future specifications. 3.3.2. Open CLUE Data Channel Once the SCTP association, to be used to realized the CLUE Data Channel, has been established, the offerer [RFC3264] is responsible for opening the CLUE Data Channel. If DCEP is used, 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'. NOTE: A new 'protocol' value for CLUE needs to be registered with IANA in the 'Protocol Registry' defined by [I-D.ietf-rtcweb-data-protocol]. Once the offerer has received the associated DCEP DATA_CHANNEL_ACK message [I-D.ietf-rtcweb-data-protocol], the CLUE Data channel has been opened. If the offerer receives a DCEP DATA_CHANNEL_OPEN message, for the purpose of opening 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. 3.3.3. Close CLUE Data Channel DCEP [I-D.ietf-rtcweb-data-protocol] does not define a message for closing a WebRTC Data Channel. As described in [I-D.ietf-rtcweb-data-protocol], in order to close a CLUE Data Channel, a SCTP reset message is sent, in order to close the SCTP stream associated with the CLUE Data Channel. The SCTP association, and WebRTC Data Channels associated with other SCTP streams, are not affected by the SCTP reset message. Holmberg Expires May 24, 2015 [Page 6] Internet-Draft CLUE Protocol Data Channel November 2014 3.3.4. SCTP Association Failure In case of SCTP association failure, the offerer is responsible for trying to re-establish the SCTP association (including sending a new SDP offer, if needed). Once the SCTP association has been successfully re-established, the offerer is responsible for sending a DCEP DATA_CHANNEL_OPEN message. 3.4. SCTP Considerations 3.4.1. SCTP Payload Protocol Identifier (PPID) As described in [I-D.ietf-rtcweb-data-protocol], the PPID value 50 is used when sending a DCEP message on 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 is transported in a WebRTC Data Channel, only the format in which the data is encoded. +----------+------------+ | Protocol | PPID Value | +----------+------------+ | DCEP | 50 | | CLUE | 51 | +----------+------------+ Table 4: CLUE Data Channel PPID Values 3.4.2. Reliability 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]. Holmberg Expires May 24, 2015 [Page 7] Internet-Draft CLUE Protocol Data Channel November 2014 3.4.3. Order A CLUE entity MUST use the ordered delivery SCTP service, as described in section 6.6 of [RFC4960]. 3.4.4. Stream Reset 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. 3.4.5. SCTP Multihoming SCTP multihoming cannot be used for a CLUE Data Channel. NOTE: SCTPoDTLS does not support SCTP multihoming. 4. Security Considerations 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]. 5. IANA Considerations [RFC EDITOR NOTE: Please replace RFC-XXXX with the RFC number of this document.] 6. Acknowledgments Thanks to Paul Kyzivat and Christian Groves for comments on the document. 7. Change Log [RFC EDITOR NOTE: Please remove this section when publishing] Changes from draft-ietf-clue-datachannel-02 o SDP m- line example fixed. o OPEN ISSUE #1 closed. o - It was agreed (IETF#91) to use draft-ejzak-mmusic-data-channel- sdpneg, as it was adopted as a WG item in MMUSIC. o - Details for draft-ejzak-mmusic-data-channel-sdpneg usage added. Holmberg Expires May 24, 2015 [Page 8] Internet-Draft CLUE Protocol Data Channel November 2014 o SDP Offer/Answer procedures removed, as they will be defined in the CLUE protocol draft. o References updated. Changes from draft-ietf-clue-datachannel-01 o Support of interleaving "MUST"->"SHOULD". o Example updated. o Reference update. Changes from draft-ietf-clue-datachannel-00 o SDP Offer/Answer procedures structures according to RFC 3264. o Reference update. Changes from draft-holmberg-clue-datachannel-04 o Draft submitted as draft-ietf-clue-data-channel-00. o Editorial nits fixed. o Changes based on comments from Paul Kyzivat (http://www.ietf.org/ mail-archive/web/clue/current/msg03559.html). o - Proto value fixed. o - Explicit text that the partial reliability and limited retransmission policies MUST NOT be used. o - Added open issue on whether the DCEP 'protocol' field value for CLUE should contain a version number. o - Removed paragraph saying that an offerer must not insert more than one m- line describing an SCTPoDTLS association to be used to realize a CLUE Data Channel, as the draft already states that only one CLUE Data Channel per CLUE session shall be opened. o - Added reference to draft-ietf-rtcweb-data-protocol regarding details on reseting SCTP streams. o - Added text saying that the value of the DCEP 'channel type' MUST be DATA_CHANNEL_RELIABLE. o - Clarified that DCEP must be supported, and used in the absence of another mechanism for opening a CLUE Data Channel. Changes from draft-holmberg-clue-datachannel-03 o Procedures updated, based on WG agreement (IETF#89) to use DCEP for the CLUE data channel. o Procedures updated, based on WG agreement (IETF#89) that offerer is responsible for sending DCEP DATA_CHANNEL_OPEN. o Editorial changes, and alignments caused by changes in referenced specifications. Changes from draft-holmberg-clue-datachannel-02 Holmberg Expires May 24, 2015 [Page 9] Internet-Draft CLUE Protocol Data Channel November 2014 o PPID value for CLUE messages added o References updated Changes from draft-holmberg-clue-datachannel-01 o More text added Changes from draft-holmberg-clue-datachannel-00 o Editorial corrections based on comments from Paul K 8. References 8.1. Normative References [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", draft-ietf- clue-protocol-02.txt (work in progress), October 2014. [I-D.ietf-tsvwg-sctp-dtls-encaps] Tuexen, M., Stewart, R., Jesup, R., and S. Loreto, "DTLS Encapsulation of SCTP Packets", draft-ietf-tsvwg-sctp- dtls-encaps-06.txt (work in progress), November 2014. Holmberg Expires May 24, 2015 [Page 10] Internet-Draft CLUE Protocol Data Channel November 2014 [I-D.ietf-rtcweb-data-channel] Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data Channels", draft-ietf-rtcweb-data-channel-12.txt (work in progress), September 2014. [I-D.ietf-rtcweb-data-protocol] Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data Channel Establishment Protocol", draft-ietf-rtcweb-data-protocol- 08.txt (work in progress), 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", draft-ietf- tsvwg-sctp-prpolicies-05.txt (work in progress), November 2014. [I-D.ejzak-mmusic-data-channel-sdpneg] Drage, K., Makaraju, R., Ejzak, R., and J. Marcon, "SDP- based WebRTC data channel negotiation", draft-ejzak- mmusic-data-channel-sdpneg-02.txt (work in progress), October 2014. 8.2. Informative References [RFC3758] Stewart, R., Ramalho, M., Xie, Q., Tuexen, M., and P. Conrad, "Stream Control Transmission Protocol (SCTP) Partial Reliability Extension", RFC 3758, May 2004. Author's Address Christer Holmberg Ericsson Hirsalantie 11 Jorvas 02420 Finland Email: christer.holmberg@ericsson.com Holmberg Expires May 24, 2015 [Page 11]