CLUE Working Group | C. Holmberg |
Internet-Draft | Ericsson |
Intended status: Standards Track | October 27, 2014 |
Expires: April 30, 2015 |
CLUE Protocol Data Channel
draft-ietf-clue-datachannel-02
This document defines how to use the WebRTC Data Channel mechanism, together with the Data Channel Establishment Protocol (DCEP) 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 offer/answer procedures for negotiating the establishment of, and the DCEP procedures for opening, a CLUE Data Channel.
Details and procedures associated with the CLUE protocol 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 April 30, 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], together with the Data Channel Establishment Protocol (DCEP) [I-D.ietf-rtcweb-data-protocol] 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 offer/answer [RFC3264] procedures for negotiating the establishment of, and the DCEP procedures for opening, a CLUE Data Channel.
Details and procedures associated with the CLUE protocol are outside the scope of this document.
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.
This section describes the realization of a CLUE Data Channel. This includes a set of SCTP characteristics specific to a CLUE Data Channel, 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.
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.
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.
In the absence of some other mechanism, a CLUE entity MUST use DCEP in order to open a CLUE Data Channel.
NOTE: This document does not define any other mechanism for opening a CLUE Data Channel, but such might be defined in future specifications.
The details of the DCEP usage with a CLUE Data Channel are described in Section 4.1.
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 |
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.
A CLUE entity SHOULD support the message interleaving mechanism defined in [I-D.ietf-tsvwg-sctp-ndata].
SCTP multihoming cannot be used for a CLUE Data Channel.
NOTE: SCTPoDTLS does not support SCTP multihoming.
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'.
OPEN ISSUE: We need to determine whether we shall include a version number in the 'protocol' field value for CLUE.
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.
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.
Section 5.7 describes how to terminate the SCTP association used for the CLUE data channel.
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.
This section describes how an SDP media description ("m=") line describing a SCTPoDTLS association, to be used to realize a CLUE Data Channel, is created, and how it is used in SDP offers and answers [RFC3264].
NOTE: The procedures associated with creating an "m=" line describing media (e.g. audio and video) for a CLUE session are outside the scope of this document.
OPEN ISSUE (Q1): It is FFS whether the SDP-based WebRTC Data Channel Negotiation mechanism [I-D.ejzak-mmusic-data-channel-sdpneg] will be used with the CLUE Data Channel. It depends on whether the draft will progress in MMUSIC, and whether it will be finalized before the publication of the CLUE mechanism.
OPEN ISSUE (Q2): As the SDP offer/answer procedures are generic to SCTPoDTLS association, it is FFS whether we need to specify them, or whether we can simply refer to draft-ietf-mmusic-sctp-sdp.
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 |
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" |
The procedures for the offerer follow the normal procedures defined in [RFC3264].
When the offerer creates an offer, which contains an "m=" line describing a SCTPoDTLS association, it assigns the field values to the "m=" line according to the procedures in Section 5.2. In addition, the offerer MUST insert an SDP sctpmap attribute associated with the "m=" line.
If an offerer, in a subsequent offer, wants to disable the CLUE Data Channel, it assigns a zero port value to the "m=" line describing the SCTPoDTLS association used to realize the CLUE Data Channel.
The procedures for the answerer follow the normal procedures defined in [RFC3264].
If the answerer receives an offer, which contains an "m=" line describing a SCTPoDTLS association, and the answerer accepts the "m=" line, it inserts an "m=" line in the corresponding answer, and assigns the "m=" line field values according to the procedures in Section 4.2.
If the answerer receives an offer, which contains an "m=" line describing a SCTPoDTLS association, and the answerer does not accept the "m=" line, it inserts an "m=" line in the corresponding answer, and assigns a zero port value to the "m=" line, according to the procedures in [RFC3264].
If the answerer receives an offer, in which a zero port value has been assigned to an "m=" line describing the SCTPoDTLS association, it inserts an "m=" line in the corresponding answer, and assigns a zero port value to the "m=" line, according to the procedures in [RFC3264]
OPEN ISSUE (Q3): We need to determine whether an "m=" line describing an SCTPoDTLS association can be used together with bundle-only, in which case there will be cases where an offer with a zero port value will create a corresponding answer with a non-zero port value.
When the offerer receives an SDP answer and, if the offerer ends up being active it MUST initiate a DTLS handshake by sending a DTLS ClientHello message on the negotiated media stream, towards the IP address and port of the answerer.
Once an offer/answer exchange has been completed, either endpoint MAY send a new offer in order to modify the session. The endpoints can reuse the existing SCTPoDTLS association if the key fingerprint values and transport parameters indicated by each endpoint are unchanged are unchanged. Otherwise, following the rules as for the initial offer/answer exchange, the endpoints can negotiate and create a new SCTPoDTLS association and, once created, delete the previous SCTPoDTLS association, following the same rules of for the initial offer/answer exchange.
If an offerer wants to disable the CLUE Data Channel in an offer, it assigns a zero port value to the "m=" line representing the SCTPoDTLS association used to realize the CLUE Data channel.
a=group:CLUE 3 m=application 54111 SCTP/DTLS 54111 a=sctpmap:54111 webrtc-datachannel a=mid:3
Figure 1: SDP Media Description for a CLUE Data Channel
This specification does not introduce new security considerations, in addition to those defined in [ref-to-data-channel] and [ref-to-data-protocol]. Security considerations associated with the CLUE protocol are defined in [ref-to-clue-protocol].
[RFC EDITOR NOTE: Please replace RFC-XXXX with the RFC number of this document.]
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-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
[RFC3758] | Stewart, R., Ramalho, M., Xie, Q., Tuexen, M. and P. Conrad, "Stream Control Transmission Protocol (SCTP) Partial Reliability Extension", RFC 3758, May 2004. |
[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-01.txt, October 2014. |