CLUE Working Group C. Holmberg Internet-Draft Ericsson Intended status: Standards Track August 9, 2016 Expires: February 10, 2017 CLUE Protocol data channel draft-ietf-clue-datachannel-14 Abstract 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 the Session Description Protocol (SDP), and defines usage of SDP-based "SCTP over DTLS" data channel negotiation mechanism for establishing a CLUE data channel. 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. 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 February 10, 2017. Copyright Notice Copyright (c) 2016 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 Holmberg Expires February 10, 2017 [Page 1] Internet-Draft CLUE data channel August 2016 (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. SCTP Considerations . . . . . . . . . . . . . . . . . . . 4 3.2.1. General . . . . . . . . . . . . . . . . . . . . . . . 4 3.2.2. SCTP Payload Protocol Identifier (PPID) . . . . . . . 4 3.2.3. Reliability . . . . . . . . . . . . . . . . . . . . . 5 3.2.4. Order . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2.5. Stream Reset . . . . . . . . . . . . . . . . . . . . 5 3.2.6. SCTP Multihoming . . . . . . . . . . . . . . . . . . 5 3.2.7. Close CLUE data channel . . . . . . . . . . . . . . . 5 3.3. SDP Considerations . . . . . . . . . . . . . . . . . . . 6 3.3.1. General . . . . . . . . . . . . . . . . . . . . . . . 6 3.3.2. SDP dcmap Attribute . . . . . . . . . . . . . . . . . 7 3.3.3. SDP dcsa Attribute . . . . . . . . . . . . . . . . . 7 3.3.4. Example . . . . . . . . . . . . . . . . . . . . . . . 7 4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 5.1. New WebRTC data channel Protocol Value . . . . . . . . . 8 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 7. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 8 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 8.1. Normative References . . . . . . . . . . . . . . . . . . 12 8.2. Informative References . . . . . . . . . . . . . . . . . 13 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 14 1. Introduction 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 [I-D.ietf-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 the Session Description Protocol (SDP) [RFC4566], and defines usage of the SDP-based "SCTP over DTLS" data channel Holmberg Expires February 10, 2017 [Page 2] Internet-Draft CLUE data channel August 2016 negotiation mechanism [I-D.ietf-mmusic-data-channel-sdpneg]. This includes SCTP considerations specific to a CLUE data channel, the SDP Media Description (m- line) values, and usage of SDP attributes 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. NOTE: The usage of the data channel Establishment Protocol (DCEP) [I-D.ietf-rtcweb-data-protocol] for establishing a CLUE data channel is 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]. SCTPoDTLS association refers to an SCTP association carried over an DTLS connection [I-D.ietf-tsvwg-sctp-dtls-encaps]. WebRTC data channel refers to a pair of SCTP streams over a SCTPoDTLS association that is used to transport non-media data between two entities, as defined 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 two SIP UAs, where a CLUE data channel, associated with the SIP session, has been established between the SIP UAs. SCTP stream is defined in [RFC4960] 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. SCTP identifier is defined in [RFC4960] as an unsigned integer, which identifies an SCTP stream. Holmberg Expires February 10, 2017 [Page 3] Internet-Draft CLUE data channel August 2016 3. CLUE data channel 3.1. General This section describes the realization of a CLUE data channel, using the WebRTC data channel mechanism. 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 the 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. 3.2. SCTP Considerations 3.2.1. General As described in [I-D.ietf-rtcweb-data-channel], different SCTP options (e.g. regarding ordered delivery ), can be used for a data channel. This section describes the SCTP options used for a CLUE data channel. Section 3.3 describes how SCTP options are signalled using SDP. NOTE: While SCTP allows SCTP options to be applied per SCTP message, [I-D.ietf-rtcweb-data-channel] mandates that, for a given data channel, the same SCTP options are applied to each SCTP message associated with that data channel. 3.2.2. SCTP Payload Protocol Identifier (PPID) 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. Holmberg Expires February 10, 2017 [Page 4] Internet-Draft CLUE data channel August 2016 3.2.3. 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 or limited retransmission SCTP extensions, described in [RFC3758], for the CLUE data channel. 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 [RFC7496]. 3.2.4. Order A CLUE entity MUST use the ordered delivery SCTP service, as described in [RFC4960], for the CLUE data channel. 3.2.5. Stream Reset A CLUE entity MUST support the stream reset extension defined in [RFC6525]. As defined in [I-D.ietf-rtcweb-data-channel], the dynamic address reconfiguration extension ('Supported Extensions Parameter' parameter) 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 for CLUE data channels. 3.2.6. SCTP Multihoming SCTP multi-homing is not supported for SCTPoDTLS associations, and can therefore not be used for a CLUE data channel. 3.2.7. Close CLUE data channel As described in [I-D.ietf-rtcweb-data-protocol], in order to close a data channel, an entity sends an SCTP reset message [RFC6525] on its outgoing SCTP stream associated with the data channel. When the remote peer receives the reset message, it also sends (unless already sent) a reset message on its outgoing 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 messages. Holmberg Expires February 10, 2017 [Page 5] Internet-Draft CLUE data channel August 2016 3.3. SDP Considerations 3.3.1. General This section defines how to construct the SDP Media Description (m- line) for describing the SCTPoDTLS association used to realize a CLUE data channel. The section also defines how to use the SDP-based "SCTP over DTLS" data channel negotiation mechanism [I-D.ietf-mmusic-data-channel-sdpneg] for establishing a CLUE data channel on the SCTPoDTLS association. NOTE: Other protocols than SDP for negotiating usage of an SCTPoDTLS association for realizing a CLUE 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. 3.3.1.1. SDP Media Description Fields 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 | "UDP/DTLS/SCTP" | application | | | value | | usage | | "application" | TCP port | "TCP/DTLS/SCTP" | application | | | value | | usage | +---------------+--------------+-----------------+------------------+ Table 1: SDP "proto" field values CLUE entities SHOULD NOT transport the SCTPoDTLS association used to realize the CLUE data channel over TCP (using the "TCP/DTLS/SCTP" proto value), unless it is known that UDP/DTLS/SCTP will not work (for instance, when the Interactive Connectivity Establishment (ICE) mechanism [RFC5245] is used and the ICE procedures determine that TCP transport is required). 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'. Holmberg Expires February 10, 2017 [Page 6] Internet-Draft CLUE data channel August 2016 3.3.1.2. SDP sctp-port Attribute 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. A CLUE entity can choose any valid SCTP port value. 3.3.2. SDP dcmap Attribute The values of the SDP dcmap attribute [I-D.ietf-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- | subprotoco | label | ordere | max-retr | max-time | | id | l | | d | | | +----------+------------+------------+--------+----------+----------+ | Value of | "CLUE" | Applicatio | "true" | N/A | N/A | | the SCTP | | n specific | | | | | stream | | | | | | | used to | | | | | | | realize | | | | | | | the CLUE | | | | | | | data | | | | | | | channel | | | | | | +----------+------------+------------+--------+----------+----------+ Table 2: SDP dcmap attribute values NOTE: As CLUE entities are required to use ordered SCTP message delivery, with full reliability, according to the procedures in [I-D.ietf-mmusic-data-channel-sdpneg] the max-retr and max-time attribute parameters are not used when negotiating CLUE data channels. 3.3.3. SDP dcsa Attribute The SDP dcsa attribute [I-D.ietf-mmusic-data-channel-sdpneg] is not used when establishing a CLUE data channel. 3.3.4. Example Holmberg Expires February 10, 2017 [Page 7] Internet-Draft CLUE data channel August 2016 m=application 54111 UDP/DTLS/SCTP webrtc-datachannel a=sctp-port: 5000 a=dcmap:2 subprotocol="CLUE";ordered=true Figure 1: SDP Media Description for a CLUE data channel 4. Security Considerations This specification relies on the security properties of the WebRTC data channel described in [I-D.ietf-rtcweb-data-channel], including reliance on DTLS. Since CLUE sessions are established using SIP/SDP, protecting the data channel against message modification and recovery requires the use of SIP authentication and authorization mechanisms described in [RFC3261] for session establishment prior to establishing the data channel. 5. IANA Considerations 5.1. New WebRTC data channel Protocol Value [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 Reference: RFC-XXXX 6. Acknowledgments Thanks to Paul Kyzivat, Christian Groves and Mark Duckworth for comments on the document. 7. Change Log [RFC EDITOR NOTE: Please remove this section when publishing] Changes from draft-ietf-clue-datachannel-13 o Editorial changes based on Gen-ART review from Brian Carpenter. Changes from draft-ietf-clue-datachannel-12 Holmberg Expires February 10, 2017 [Page 8] Internet-Draft CLUE data channel August 2016 o Changes based on AD comments from Alissa Cooper (https://www.ietf.org/mail-archive/web/clue/current/ msg04911.html): o - DCEP reference removed from security considerations. o - Editorial fixes. o - NOTE: Comment regarding the Security Considerations is still pending. Changes from draft-ietf-clue-datachannel-11 o Changes based on WGLC comments from Juergen Stoetzer-Bradler and Christian groves: o - Referene updates. o - 'Reference' added to IANA registration data. Changes from draft-ietf-clue-datachannel-10 o Security Considerations modified and enhanced, based on comments provided by Alissa Cooper. Changes from draft-ietf-clue-datachannel-09 o Reference updates: o - draft-ietf-tsvwg-sctp-prpolicies published as RFC 7496 o - Reference update of draft versions Changes from draft-ietf-clue-datachannel-08 o Changes based on WGLC comments from Daniel Burnett: o - Editorial corrections. o Changes based on WGLC comments from Paul Kyzivat: o - Editorial corrections. Changes from draft-ietf-clue-datachannel-07 o Changes based on WGLC comments from Christian Groves: o - IANA considerations for dcmap attribute removed. o - Explicit clarification that the dcmap attribute max-time and max-retr parameters are not used with ordered/reliable transmission of SCTP messages. o - Indication that TCP transport should only be used if ICE is used, and if usage of TCP is required by ICE. o - Informative reference to ICE added. o - Editorial corrections. o Changes based on WGLC comments from Mark Duckworth: o - Make it more clear that the rules regarding usage of partial reliability and ordered reliability apply to CLUE data channels. o Changes based on WGLC comments from Paul Kyzivat: Holmberg Expires February 10, 2017 [Page 9] Internet-Draft CLUE data channel August 2016 o - Clarify that same SCTP options are applied to each SCTP message associated with a given data channel. o - Switched location of sections 3.2 and 3.3. o - PPID table removed. Not needed, since only one value is used. o - Editorial corrections. Changes from draft-ietf-clue-datachannel-06 o Usage of DCEP removed. Changes from draft-ietf-clue-datachannel-05 o "DTLS/SCTP" split into "UDP/DTLS/SCTP" and "TCP/DTLS/SCTP". o Removed note regarding optionality of including the SDP sctp-port attribute. o Added defintion of 'SCTPoDTLS association' to the Conventions. o Reference to RFC 4566 (SDP) added. Changes from draft-ietf-clue-datachannel-04 o Defines DCEP and external SDP negotiation as two separate mechanisms for negotiating a CLUE data channel. o Updates based on technical changes in referenced specifications. o Reference to draft-ietf-mmusic-sctp-sdp added. Changes from draft-ietf-clue-datachannel-03 o IANA considerations added. o Editorial changes based on comments from Christian Groves. 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. 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 Holmberg Expires February 10, 2017 [Page 10] Internet-Draft CLUE data channel August 2016 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 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 Holmberg Expires February 10, 2017 [Page 11] Internet-Draft CLUE data channel August 2016 8. References 8.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, 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, DOI 10.17487/RFC3261, June 2002, . [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, DOI 10.17487/RFC3264, June 2002, . [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, DOI 10.17487/RFC4566, July 2006, . [RFC4960] Stewart, R., Ed., "Stream Control Transmission Protocol", RFC 4960, DOI 10.17487/RFC4960, September 2007, . [RFC5061] Stewart, R., Xie, Q., Tuexen, M., Maruyama, S., and M. Kozuka, "Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration", RFC 5061, DOI 10.17487/RFC5061, September 2007, . [RFC6525] Stewart, R., Tuexen, M., and P. Lei, "Stream Control Transmission Protocol (SCTP) Stream Reconfiguration", RFC 6525, DOI 10.17487/RFC6525, February 2012, . [RFC7496] Tuexen, M., Seggelmann, R., Stewart, R., and S. Loreto, "Additional Policies for the Partially Reliable Stream Control Transmission Protocol Extension", RFC 7496, DOI 10.17487/RFC7496, April 2015, . [I-D.ietf-clue-protocol] Presta, R. and S. Romano, "CLUE protocol", draft-ietf- clue-protocol-08.txt (work in progress), May 2016. Holmberg Expires February 10, 2017 [Page 12] Internet-Draft CLUE data channel August 2016 [I-D.ietf-clue-signaling] Kyzivat, P., Xiao, L., Groves, C., and S. Romano, "CLUE Signaling", draft-ietf-clue-signaling-09.txt (work in progress), March 2016. [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-09.txt (work in progress), August 2015. [I-D.ietf-mmusic-sctp-sdp] Holmberg, C., Loreto, S., and G. Camarillo, "Stream Control Transmission Protocol (SCTP)-Based Media Transport in the Session Description Protocol (SDP)", draft-ietf- mmusic-sctp-sdp-16.txt (work in progress), February 2016. [I-D.ietf-rtcweb-data-channel] Jesup, R., Loreto, S., and M. Tuexen, "WebRTC data channels", draft-ietf-rtcweb-data-channel-13.txt (work in progress), January 2015. [I-D.ietf-mmusic-data-channel-sdpneg] Drage, K., Makaraju, R., Stoetzer-Bradler, J., Ejzak, R., and J. Marcon, "SDP-based "SCTP over DTLS" data channel negotiation", draft-ietf-mmusic-data-channel-sdpneg-09.txt (work in progress), July 2016. 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, DOI 10.17487/RFC3758, May 2004, . [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols", RFC 5245, DOI 10.17487/RFC5245, April 2010, . [I-D.ietf-rtcweb-data-protocol] Jesup, R., Loreto, S., and M. Tuexen, "WebRTC data channel Establishment Protocol", draft-ietf-rtcweb-data-protocol- 09.txt (work in progress), January 2015. Holmberg Expires February 10, 2017 [Page 13] Internet-Draft CLUE data channel August 2016 Author's Address Christer Holmberg Ericsson Hirsalantie 11 Jorvas 02420 Finland Email: christer.holmberg@ericsson.com Holmberg Expires February 10, 2017 [Page 14]