idnits 2.17.1 draft-ietf-clue-datachannel-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (November 20, 2014) is 3444 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 4960 (Obsoleted by RFC 9260) == Outdated reference: A later version (-19) exists of draft-ietf-clue-protocol-02 ** Downref: Normative reference to an Experimental draft: draft-ietf-clue-protocol (ref. 'I-D.ietf-clue-protocol') == Outdated reference: A later version (-09) exists of draft-ietf-tsvwg-sctp-dtls-encaps-06 == Outdated reference: A later version (-13) exists of draft-ietf-rtcweb-data-channel-12 == Outdated reference: A later version (-09) exists of draft-ietf-rtcweb-data-protocol-08 == Outdated reference: A later version (-07) exists of draft-ietf-tsvwg-sctp-prpolicies-05 Summary: 2 errors (**), 0 flaws (~~), 6 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 CLUE Working Group C. Holmberg 3 Internet-Draft Ericsson 4 Intended status: Standards Track November 20, 2014 5 Expires: May 24, 2015 7 CLUE Protocol Data Channel 8 draft-ietf-clue-datachannel-03 10 Abstract 12 This document defines how to use the WebRTC Data Channel mechanism, 13 together with the Data Channel Establishment Protocol (DCEP) and the 14 SDP-based "SCTP over DTLS" data channel negotiation mechanism, in 15 order to establish a data channel, referred to as CLUE Data Channel, 16 for transporting CLUE protocol messages between two CLUE entities. 18 The document defines the SCTP considerations specific to a CLUE Data 19 Channel, the SDP Media Description- and SDP dcmap attribute values, 20 and the DCEP procedures for opening, a CLUE Data Channel. 22 Details and procedures associated with the CLUE protocol, and the SDP 23 Offer/Answer procedures for negotiating a CLUE data channel, are 24 outside the scope of this document. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at http://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on May 24, 2015. 43 Copyright Notice 45 Copyright (c) 2014 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (http://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 61 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 62 3. CLUE Data Channel . . . . . . . . . . . . . . . . . . . . . . 4 63 3.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 4 64 3.2. SDP Considerations . . . . . . . . . . . . . . . . . . . 4 65 3.2.1. General . . . . . . . . . . . . . . . . . . . . . . . 4 66 3.2.2. SDP Media Description Fields . . . . . . . . . . . . 4 67 3.2.3. SDP sctpmap Attribute . . . . . . . . . . . . . . . . 5 68 3.2.4. SDP dcpmap Attribute . . . . . . . . . . . . . . . . 5 69 3.2.5. SDP dcsa Attribute . . . . . . . . . . . . . . . . . 5 70 3.2.6. Example . . . . . . . . . . . . . . . . . . . . . . . 5 71 3.3. Data Channel Establishment Protocol (DCEP) Considerations 6 72 3.3.1. General . . . . . . . . . . . . . . . . . . . . . . . 6 73 3.3.2. Open CLUE Data Channel . . . . . . . . . . . . . . . 6 74 3.3.3. Close CLUE Data Channel . . . . . . . . . . . . . . . 6 75 3.3.4. SCTP Association Failure . . . . . . . . . . . . . . 7 76 3.4. SCTP Considerations . . . . . . . . . . . . . . . . . . . 7 77 3.4.1. SCTP Payload Protocol Identifier (PPID) . . . . . . . 7 78 3.4.2. Reliability . . . . . . . . . . . . . . . . . . . . . 7 79 3.4.3. Order . . . . . . . . . . . . . . . . . . . . . . . . 8 80 3.4.4. Stream Reset . . . . . . . . . . . . . . . . . . . . 8 81 3.4.5. SCTP Multihoming . . . . . . . . . . . . . . . . . . 8 82 4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 83 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 84 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 85 7. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 8 86 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 87 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 88 8.2. Informative References . . . . . . . . . . . . . . . . . 11 89 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11 91 1. Introduction 93 This document defines how to use the WebRTC Data Channel mechanism 94 [I-D.ietf-rtcweb-data-channel], together with the Data Channel 95 Establishment Protocol (DCEP) [I-D.ietf-rtcweb-data-protocol] and the 96 SDP-based "SCTP over DTLS" data channel negotiation mechanism [add- 97 ref], in order to establish a data channel, referred to as CLUE Data 98 Channel, for transporting CLUE protocol [I-D.ietf-clue-protocol] 99 messages between CLUE entities. 101 The document defines the SCTP considerations specific to a CLUE Data 102 Channel, the SDP Media Description- and SDP dcmap attribute values, 103 and the DCEP procedures for opening, a CLUE Data Channel. 105 Details and procedures associated with the CLUE protocol, and the SDP 106 Offer/Answer [RFC3264] procedures for negotiating a CLUE data 107 channel, are outside the scope of this document. 109 2. Conventions 111 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 112 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 113 document are to be interpreted as described in BCP 14, RFC 2119 114 [RFC2119]. 116 WebRTC Data Channel refers to a SCTPoDTLS association 117 [I-D.ietf-tsvwg-sctp-dtls-encaps] that is used to transport non-media 118 data between two entities, according to the procedures in 119 [I-D.ietf-rtcweb-data-channel]. 121 CLUE Data Channel refers to a WebRTC Data Channel 122 [I-D.ietf-rtcweb-data-channel], with a specific set of SCTP 123 characteristics, and usage of the Data Channel Establishment Protocol 124 (DCEP) [I-D.ietf-rtcweb-data-protocol] in order to open a WebRTC Data 125 Channel for the purpose of transporting CLUE protocol 126 [I-D.ietf-clue-protocol] messages between two CLUE entities. 128 CLUE entity refers to a SIP User Agent (UA) [RFC3261] that supports 129 the CLUE Data Channel and the CLUE protocol. 131 CLUE session refers to a SIP session [RFC3261] between to SIP UAs, 132 where a CLUE Data Channel, associated with the SIP session, has been 133 established between the SIP UAs. 135 [RFC4960] defines an SCTP stream as a unidirectional logical channel 136 established from one to another associated SCTP endpoint, within 137 which all user messages are delivered in sequence except for those 138 submitted to the unordered delivery service. 140 [RFC4960] defines an SCTP identifier as a unsigned integer, which 141 identifies a SCTP stream. 143 3. CLUE Data Channel 145 3.1. General 147 This section describes the realization of a CLUE Data Channel. This 148 includes a set of SCTP characteristics specific to a CLUE Data 149 Channel, the usage of the SDP-based "SCTP over DTLS" data channel 150 negotiation mechanism to describe a CLUE data channel in SDP, and the 151 usage of the Data Channel Establishment Protocol (DCEP) 152 [I-D.ietf-rtcweb-data-protocol] in order to open a WebRTC Data 153 Channel for the purpose of transporting CLUE protocol 154 [I-D.ietf-clue-protocol] messages between two CLUE entities. 156 As described in [I-D.ietf-rtcweb-data-channel], the SCTP streams 157 realizing a WebRTC Data Channel must be associated with the same SCTP 158 association. In addition, both SCTP streams realizing the WebRTC 159 Data Channel must use the same SCTP stream identifier value. These 160 rules also apply to a CLUE Data Channel. 162 Within a given CLUE session, a CLUE entity MUST use a single CLUE 163 Data Channel for transport of all CLUE messages towards its peer. 165 3.2. SDP Considerations 167 3.2.1. General 169 This section defines how to construct the SDP Media Description ("m=" 170 line), and the associated SDP dcmap attribute, used to describe a 171 CLUE data channel in SDP. 173 [I-D.ietf-clue-protocol] describes the SDP Offer/Answer procedures 174 for negotiating a CLUE session, including the CLUE controlled media 175 channels and the CLUE data channel. 177 3.2.2. SDP Media Description Fields 179 The field values of the "m=" line for the SCTPoDTLS association are 180 set as following: 182 +---------------+-----------------+-------------+-----------------+ 183 | media | port | proto | fmt | 184 +---------------+-----------------+-------------+-----------------+ 185 | "application" | DTLS port value | "DTLS/SCTP" | SCTP port value | 186 +---------------+-----------------+-------------+-----------------+ 188 Table 1: SDP "proto" field values 190 3.2.3. SDP sctpmap Attribute 192 The field values of the SDP sctpmap attribute, associated with the 193 "m=" line describing the SCTPoDTLS association, are set as following: 195 +----------------------------+----------------------+ 196 | sctpmap-number | app | 197 +----------------------------+----------------------+ 198 | fmt value of the "m=" line | "webrtc-datachannel" | 199 +----------------------------+----------------------+ 201 Table 2: SDP sctpmap attribute values 203 3.2.4. SDP dcpmap Attribute 205 The SDP dcmap attribute [I-D.ejzak-mmusic-data-channel-sdpneg] values 206 for the CLUE data channel, associated with the "m=" line describing 207 the SCTPoDTLS, are set as following: 209 +------------+------------+--------+----------+----------+----------+ 210 | dcmap- | subprotoco | label- | ordering | maxretr- | maxtime- | 211 | stream-id | l-opt | opt | -opt | opt | opt | 212 +------------+------------+--------+----------+----------+----------+ 213 | Value of | "CLUE" | "CLUE | Not appl | Not appl | Not appl | 214 | the SCTP | | Data C | icable | icable | icable | 215 | stream | | hannel | | | | 216 | used to | | " | | | | 217 | realize | | | | | | 218 | the CLUE | | | | | | 219 | data | | | | | | 220 | channel | | | | | | 221 +------------+------------+--------+----------+----------+----------+ 223 Table 3: SDP dcmap attribute values 225 3.2.5. SDP dcsa Attribute 227 The SDP dcsa attribute [I-D.ejzak-mmusic-data-channel-sdpneg] is not 228 used to describe a CLUE data channel. 230 3.2.6. Example 232 m=application 54111 SCTP/DTLS webrtc-datachannel 233 a=dcmap:2 subprotocol="CLUE";label="CLUE Data Channel" 235 Figure 1: SDP Media Description for a CLUE Data Channel 237 3.3. Data Channel Establishment Protocol (DCEP) Considerations 239 3.3.1. General 241 A CLUE entity MUST support the Data Channel Establishment Protocol 242 (DCEP) [I-D.ietf-rtcweb-data-channel], which can be used in order to 243 open a WebRTC Data Channel. 245 This section describes how to open and close a CLUE data channel 246 using DCEP. 248 NOTE: This document does not define any other mechanism for opening a 249 CLUE Data Channel, but such might be defined in future 250 specifications. 252 3.3.2. Open CLUE Data Channel 254 Once the SCTP association, to be used to realized the CLUE Data 255 Channel, has been established, the offerer [RFC3264] is responsible 256 for opening the CLUE Data Channel. If DCEP is used, the offerer MUST 257 send a DCEP DATA_CHANNEL_OPEN message 258 [I-D.ietf-rtcweb-data-protocol]. The value of the 'protocol' field 259 MUST be "CLUE". The value of the 'channel type' MUST be 260 'DATA_CHANNEL_RELIABLE'. 262 NOTE: A new 'protocol' value for CLUE needs to be registered with 263 IANA in the 'Protocol Registry' defined by 264 [I-D.ietf-rtcweb-data-protocol]. 266 Once the offerer has received the associated DCEP DATA_CHANNEL_ACK 267 message [I-D.ietf-rtcweb-data-protocol], the CLUE Data channel has 268 been opened. 270 If the offerer receives a DCEP DATA_CHANNEL_OPEN message, for the 271 purpose of opening a CLUE Data Channel, the offerer MUST reset the 272 SCTP stream, in order to prevent two CLUE Data Channels from being 273 established within the same CLUE session. The offerer MUST NOT send 274 a DCEP DATA_CHANNEL_ACK message. 276 3.3.3. Close CLUE Data Channel 278 DCEP [I-D.ietf-rtcweb-data-protocol] does not define a message for 279 closing a WebRTC Data Channel. As described in 280 [I-D.ietf-rtcweb-data-protocol], in order to close a CLUE Data 281 Channel, a SCTP reset message is sent, in order to close the SCTP 282 stream associated with the CLUE Data Channel. The SCTP association, 283 and WebRTC Data Channels associated with other SCTP streams, are not 284 affected by the SCTP reset message. 286 3.3.4. SCTP Association Failure 288 In case of SCTP association failure, the offerer is responsible for 289 trying to re-establish the SCTP association (including sending a new 290 SDP offer, if needed). Once the SCTP association has been 291 successfully re-established, the offerer is responsible for sending a 292 DCEP DATA_CHANNEL_OPEN message. 294 3.4. SCTP Considerations 296 3.4.1. SCTP Payload Protocol Identifier (PPID) 298 As described in [I-D.ietf-rtcweb-data-protocol], the PPID value 50 is 299 used when sending a DCEP message on a WebRTC Data Channel. 301 A CLUE entity MUST use the PPID value 51 when sending a CLUE message 302 on a CLUE Data Channel. 304 NOTE: As described in [I-D.ietf-rtcweb-data-channel], the PPID value 305 51 indicates that the SCTP message contains data encoded in a UTF-8 306 format. The PPID value 51 does not indicate what application 307 protocol is transported in a WebRTC Data Channel, only the format in 308 which the data is encoded. 310 +----------+------------+ 311 | Protocol | PPID Value | 312 +----------+------------+ 313 | DCEP | 50 | 314 | CLUE | 51 | 315 +----------+------------+ 317 Table 4: CLUE Data Channel PPID Values 319 3.4.2. Reliability 321 The usage of SCTP for the CLUE Data Channel ensures reliable 322 transport of CLUE protocol [I-D.ietf-clue-protocol] messages. 324 A CLUE entity MUST NOT use the partial reliability and limited 325 retransmission extensions defined in [RFC3758]. 327 NOTE: [I-D.ietf-rtcweb-data-channel] requires the support of the 328 partial reliability extension defined in [RFC3758]. This is not 329 needed for a CLUE Data Channel, as messages are required to always be 330 sent reliably. [I-D.ietf-rtcweb-data-channel] also mandates support 331 of the limited retransmission policy defined in 332 [I-D.ietf-tsvwg-sctp-prpolicies]. 334 3.4.3. Order 336 A CLUE entity MUST use the ordered delivery SCTP service, as 337 described in section 6.6 of [RFC4960]. 339 3.4.4. Stream Reset 341 A CLUE entity MUST support the stream reset extension defined in 342 [RFC6525]. 344 The dynamic address reconfiguration extension defined in [RFC5061] 345 MUST be used to signal the support of the stream reset extension 346 defined in [RFC6525]. Other features of [RFC5061] MUST NOT be used. 348 3.4.5. SCTP Multihoming 350 SCTP multihoming cannot be used for a CLUE Data Channel. 352 NOTE: SCTPoDTLS does not support SCTP multihoming. 354 4. Security Considerations 356 This specification does not introduce new security considerations, in 357 addition to those defined in [I-D.ietf-rtcweb-data-channel] and 358 [I-D.ietf-rtcweb-data-protocol]. Security considerations associated 359 with the CLUE protocol are defined in [I-D.ietf-clue-protocol]. 361 5. IANA Considerations 363 [RFC EDITOR NOTE: Please replace RFC-XXXX with the RFC number of this 364 document.] 366 6. Acknowledgments 368 Thanks to Paul Kyzivat and Christian Groves for comments on the 369 document. 371 7. Change Log 373 [RFC EDITOR NOTE: Please remove this section when publishing] 375 Changes from draft-ietf-clue-datachannel-02 377 o SDP m- line example fixed. 378 o OPEN ISSUE #1 closed. 379 o - It was agreed (IETF#91) to use draft-ejzak-mmusic-data-channel- 380 sdpneg, as it was adopted as a WG item in MMUSIC. 381 o - Details for draft-ejzak-mmusic-data-channel-sdpneg usage added. 383 o SDP Offer/Answer procedures removed, as they will be defined in 384 the CLUE protocol draft. 385 o References updated. 387 Changes from draft-ietf-clue-datachannel-01 389 o Support of interleaving "MUST"->"SHOULD". 390 o Example updated. 391 o Reference update. 393 Changes from draft-ietf-clue-datachannel-00 395 o SDP Offer/Answer procedures structures according to RFC 3264. 396 o Reference update. 398 Changes from draft-holmberg-clue-datachannel-04 400 o Draft submitted as draft-ietf-clue-data-channel-00. 401 o Editorial nits fixed. 402 o Changes based on comments from Paul Kyzivat (http://www.ietf.org/ 403 mail-archive/web/clue/current/msg03559.html). 404 o - Proto value fixed. 405 o - Explicit text that the partial reliability and limited 406 retransmission policies MUST NOT be used. 407 o - Added open issue on whether the DCEP 'protocol' field value for 408 CLUE should contain a version number. 409 o - Removed paragraph saying that an offerer must not insert more 410 than one m- line describing an SCTPoDTLS association to be used to 411 realize a CLUE Data Channel, as the draft already states that only 412 one CLUE Data Channel per CLUE session shall be opened. 413 o - Added reference to draft-ietf-rtcweb-data-protocol regarding 414 details on reseting SCTP streams. 415 o - Added text saying that the value of the DCEP 'channel type' MUST 416 be DATA_CHANNEL_RELIABLE. 417 o - Clarified that DCEP must be supported, and used in the absence 418 of another mechanism for opening a CLUE Data Channel. 420 Changes from draft-holmberg-clue-datachannel-03 422 o Procedures updated, based on WG agreement (IETF#89) to use DCEP 423 for the CLUE data channel. 424 o Procedures updated, based on WG agreement (IETF#89) that offerer 425 is responsible for sending DCEP DATA_CHANNEL_OPEN. 426 o Editorial changes, and alignments caused by changes in referenced 427 specifications. 429 Changes from draft-holmberg-clue-datachannel-02 430 o PPID value for CLUE messages added 431 o References updated 433 Changes from draft-holmberg-clue-datachannel-01 435 o More text added 437 Changes from draft-holmberg-clue-datachannel-00 439 o Editorial corrections based on comments from Paul K 441 8. References 443 8.1. Normative References 445 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 446 Requirement Levels", BCP 14, RFC 2119, March 1997. 448 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 449 A., Peterson, J., Sparks, R., Handley, M., and E. 450 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 451 June 2002. 453 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 454 with Session Description Protocol (SDP)", RFC 3264, June 455 2002. 457 [RFC4960] Stewart, R., "Stream Control Transmission Protocol", RFC 458 4960, September 2007. 460 [RFC5061] Stewart, R., Xie, Q., Tuexen, M., Maruyama, S., and M. 461 Kozuka, "Stream Control Transmission Protocol (SCTP) 462 Dynamic Address Reconfiguration", RFC 5061, September 463 2007. 465 [RFC6525] Stewart, R., Tuexen, M., and P. Lei, "Stream Control 466 Transmission Protocol (SCTP) Stream Reconfiguration", RFC 467 6525, February 2012. 469 [I-D.ietf-clue-protocol] 470 Presta, R. and S. Romano, "CLUE protocol", draft-ietf- 471 clue-protocol-02.txt (work in progress), October 2014. 473 [I-D.ietf-tsvwg-sctp-dtls-encaps] 474 Tuexen, M., Stewart, R., Jesup, R., and S. Loreto, "DTLS 475 Encapsulation of SCTP Packets", draft-ietf-tsvwg-sctp- 476 dtls-encaps-06.txt (work in progress), November 2014. 478 [I-D.ietf-rtcweb-data-channel] 479 Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data 480 Channels", draft-ietf-rtcweb-data-channel-12.txt (work in 481 progress), September 2014. 483 [I-D.ietf-rtcweb-data-protocol] 484 Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data Channel 485 Establishment Protocol", draft-ietf-rtcweb-data-protocol- 486 08.txt (work in progress), September 2014. 488 [I-D.ietf-tsvwg-sctp-prpolicies] 489 Tuexen, M., Seggelmann, R., Stewart, R., and S. Loreto, 490 "Additional Policies for the Partial Reliability Extension 491 of the Stream Control Transmission Protocol", draft-ietf- 492 tsvwg-sctp-prpolicies-05.txt (work in progress), November 493 2014. 495 [I-D.ejzak-mmusic-data-channel-sdpneg] 496 Drage, K., Makaraju, R., Ejzak, R., and J. Marcon, "SDP- 497 based WebRTC data channel negotiation", draft-ejzak- 498 mmusic-data-channel-sdpneg-02.txt (work in progress), 499 October 2014. 501 8.2. Informative References 503 [RFC3758] Stewart, R., Ramalho, M., Xie, Q., Tuexen, M., and P. 504 Conrad, "Stream Control Transmission Protocol (SCTP) 505 Partial Reliability Extension", RFC 3758, May 2004. 507 Author's Address 509 Christer Holmberg 510 Ericsson 511 Hirsalantie 11 512 Jorvas 02420 513 Finland 515 Email: christer.holmberg@ericsson.com