CLUE Working Group C. Holmberg
Internet-Draft Ericsson
Intended status: Standards Track January 21, 2015
Expires: July 25, 2015
CLUE Protocol Data Channel
draft-ietf-clue-datachannel-06
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 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.
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 July 25, 2015.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
Holmberg Expires July 25, 2015 [Page 1]
Internet-Draft CLUE Data Channel January 2015
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 dcpmap Attribute . . . . . . . . . . . . . . . . 5
3.2.3. SDP dcsa Attribute . . . . . . . . . . . . . . . . . 6
3.2.4. Example . . . . . . . . . . . . . . . . . . . . . . . 6
3.3. DCEP Considerations . . . . . . . . . . . . . . . . . . . 6
3.3.1. General . . . . . . . . . . . . . . . . . . . . . . . 6
3.3.2. Open CLUE Data Channel . . . . . . . . . . . . . . . 6
3.3.3. Close CLUE Data Channel . . . . . . . . . . . . . . . 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
5.1. New WebRTC Data Channel Protocol Value . . . . . . . . . 8
5.2. New SDP dcmap attribute subprotocol value . . . . . . . . 9
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9
7. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 9
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.1. Normative References . . . . . . . . . . . . . . . . . . 11
8.2. Informative References . . . . . . . . . . . . . . . . . 12
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 12
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
messages between two CLUE entities.
Holmberg Expires July 25, 2015 [Page 2]
Internet-Draft CLUE Data Channel January 2015
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 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.
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 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.
Holmberg Expires July 25, 2015 [Page 3]
Internet-Draft CLUE Data Channel January 2015
[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.
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 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.
3.2. SDP Considerations
3.2.1. General
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.
Holmberg Expires July 25, 2015 [Page 4]
Internet-Draft CLUE Data Channel January 2015
3.2.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
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'.
3.2.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.
3.2.2. SDP dcpmap Attribute
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- | subprotoco | label | ordere | max-retr | max-time |
| id | l | | d | | |
+----------+------------+------------+--------+----------+----------+
| Value of | "CLUE" | Applicatio | N/A | N/A | N/A |
| the SCTP | | n specific | | | |
| stream | | | | | |
| used to | | | | | |
| realize | | | | | |
| the CLUE | | | | | |
| data | | | | | |
| channel | | | | | |
+----------+------------+------------+--------+----------+----------+
Table 2: SDP dcmap attribute values
Holmberg Expires July 25, 2015 [Page 5]
Internet-Draft CLUE Data Channel January 2015
3.2.3. SDP dcsa Attribute
The SDP dcsa attribute [I-D.ejzak-mmusic-data-channel-sdpneg] is not
used when establishing a CLUE data channel.
3.2.4. Example
m=application 54111 UDP/DTLS/SCTP webrtc-datachannel
a=sctp-port: 5000
a=dcmap:2 subprotocol="CLUE"
Figure 1: SDP Media Description for a CLUE Data Channel
3.3. DCEP Considerations
3.3.1. General
This section describes how to realize a CLUE data channel using DCEP.
3.3.2. Open CLUE Data Channel
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.
Holmberg Expires July 25, 2015 [Page 6]
Internet-Draft CLUE Data Channel January 2015
3.3.3. Close CLUE Data Channel
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.
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 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 |
+----------+------------+
Table 3: 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
Holmberg Expires July 25, 2015 [Page 7]
Internet-Draft CLUE Data Channel January 2015
of the limited retransmission policy defined in
[I-D.ietf-tsvwg-sctp-prpolicies].
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 multi-homing is not supported for SCTPoDTLS associations, and
can therefor not be used for a CLUE data channel.
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
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
Holmberg Expires July 25, 2015 [Page 8]
Internet-Draft CLUE Data Channel January 2015
5.2. New SDP dcmap attribute subprotocol value
[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.
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-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.
Holmberg Expires July 25, 2015 [Page 9]
Internet-Draft CLUE Data Channel January 2015
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
o PPID value for CLUE messages added
o References updated
Changes from draft-holmberg-clue-datachannel-01
Holmberg Expires July 25, 2015 [Page 10]
Internet-Draft CLUE Data Channel January 2015
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.
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006.
[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-clue-signaling]
Kyzivat, P., Xiao, L., Groves, C., and S. Romano, "CLUE
Signaling", draft-ietf-clue-signaling-04.txt (work in
progress), October 2014.
Holmberg Expires July 25, 2015 [Page 11]
Internet-Draft CLUE Data Channel January 2015
[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-08.txt (work in progress), January 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-12.txt (work in progress), January 2015.
[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-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.
[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-06.txt (work in progress), December
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
Holmberg Expires July 25, 2015 [Page 12]
Internet-Draft CLUE Data Channel January 2015
Christer Holmberg
Ericsson
Hirsalantie 11
Jorvas 02420
Finland
Email: christer.holmberg@ericsson.com
Holmberg Expires July 25, 2015 [Page 13]