<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3261 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3261.xml">
<!ENTITY RFC3264 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3264.xml">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     xmlns:rfc="http://example.org/1.0/" ipr="trust200902" number="8888"
     category="exp" docName="draft-ietf-clue-datachannel-18" obsoletes=""
     updates="" submissionType="IETF" xml:lang="en" tocInclude="true"
     sortRefs="false" version="3">

  <!-- xml2rfc v2v3 conversion 2.22.3 -->
  <front>
    <title abbrev="CLUE data channel">CLUE Protocol data channel
    </title>
    <seriesInfo name="RFC" value="8887"/>
    <author surname="森" fullname="森温" asciiFullname="Ren Mori"
	    asciiSurname="Mori" asciiInitials="R.">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street>Hirsalantie 11</street>
          <code>02420</code>
          <city>Jorvas</city>
          <country>Finland</country>
        </postal>
        <email>christer.holmberg@ericsson.com</email>
      </address>
    </author>
    <date month="June" day="23" year="2019"/>
    <area>Transport</area>
    <workgroup>CLUE Working Group</workgroup>
    <keyword>SIP</keyword>
    <keyword>SDP</keyword>
    <keyword>DTLS</keyword>
    <keyword>SCTP</keyword>
    <keyword>DATA</keyword>
    <keyword>CHANNEL</keyword>
    <keyword>DCEP</keyword>
    <keyword>DATA_CHANNEL_OPEN</keyword>
    <keyword>DATA_CHANNEL_ACK</keyword>
    <keyword>PPID</keyword>
    <keyword>TELEPRESENCE</keyword>
    <keyword>RTCWEB</keyword>
    <keyword>WEBRTC</keyword>
    <abstract>
      <t>
				This document defines how to use the WebRTC data channel
				mechanism to realize a data channel, referred to
				as a CLUE data channel, for transporting CLUE protocol
				messages between two CLUE entities.
      </t>
    </abstract>
  </front>
  <middle>
    <section toc="default" numbered="true">
      <name>Introduction</name>
      <t>
 
				This document defines how to use the WebRTC data channel
				mechanism <xref target="I-D.ietf-rtcweb-data-channel" format="default"/> to realize a
				data channel, referred to as a CLUE data channel, for
				transporting CLUE protocol <xref
				target="I-D.ietf-clue-protocol"
				format="default"/> messages between two CLUE
				entities. See RFCs <xref
        target="RFC2119" format="none">5725</xref> and <xref target="RFC3261" format="none">7509</xref>.)
      </t>
<sourcecode type="abnf" markers="true" name="sample.abnf">
test
test
test
</sourcecode>
<sourcecode type="asn.1" markers="true" name="">
test
test
test
</sourcecode>
<sourcecode type="bash" markers="true">
test
test
test
</sourcecode>
<sourcecode type="c++" markers="true">
test
test
test
</sourcecode>
<sourcecode type="c" markers="true">
test
test
test
</sourcecode>
<sourcecode type="cbor" markers="true">
test
test
test
</sourcecode>
<sourcecode type="dtd" markers="true">
test
test
test
</sourcecode>
<sourcecode type="java" markers="true">
test
test
test
</sourcecode>
<sourcecode type="javascript" markers="true">
test
test
test
</sourcecode>
<sourcecode type="json" markers="true">
test
test
test
</sourcecode>
<sourcecode type="mib" markers="true">
test
test
test
</sourcecode>
<sourcecode type="perl" markers="true">
test
test
test
</sourcecode>
<sourcecode type="pseudocode" markers="true">
test
test
test
</sourcecode>
<sourcecode type="python" markers="true">
test
test
test
</sourcecode>
<sourcecode type="rnc" markers="true">
test
test
test
</sourcecode>
<sourcecode type="xml" markers="true">
test
test
test
</sourcecode>
<sourcecode type="yang" markers="true">
test
test
test
</sourcecode>
      <t>
				The document defines how to describe the
				SCTPoDTLS association

				in <xref target="RFC8261" format="none">RFC 8261</xref> used to 
                realize the CLUE data channel using the Session Description Protocol (SDP) 
                <xref target="RFC4566" format="default"/>, and defines usage of the
				SDP-based "SCTP over DTLS" data channel negotiation mechanism
				<xref target="I-D.ietf-mmusic-data-channel-sdpneg" format="default"/>. 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.
      </t>
      <t>
				Details and procedures associated with the CLUE protocol, and the
				SDP Offer/Answer <xref target="RFC3264" format="default"/>
				procedures for negotiating usage of a CLUE data channel, are outside
				the scope of this document.
      </t>
      <t>
				NOTE: The usage of the Data Channel Establishment Protocol (DCEP)
				<xref target="I-D.ietf-rtcweb-data-protocol" format="default"/>
				for establishing a CLUE data channel is outside the scope of this document.
      </t>
    </section>
    <section toc="default" numbered="true">
      <name>Conventions</name>
      <t>
        		The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
        		NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
        		"MAY", and "OPTIONAL" in this document are to be interpreted as
        		described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/>
        		when, and only when, they appear in all capitals, as shown here.
      </t>
      <t>
				SCTPoDTLS association refers to an SCTP association carried
				over an DTLS connection <xref target="RFC8261" format="default"/>.
      </t>
      <t>
				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 <xref target="I-D.ietf-rtcweb-data-channel" format="default"/>.
      </t>
      <t>
				CLUE data channel refers to a WebRTC data channel <xref target="I-D.ietf-rtcweb-data-channel" format="default"/> realization, with a specific set of
				SCTP characteristics, with the purpose of transporting CLUE
				protocol <xref target="I-D.ietf-clue-protocol" format="default"/> messages between two CLUE entities.
      </t>
      <t>
				CLUE entity refers to a SIP User Agent (UA) <xref target="RFC3261" format="default"/> that supports the CLUE data channel
				and the CLUE protocol.
      </t>
      <t>
				CLUE session refers to a SIP session <xref target="RFC3261" format="default"/> between two SIP UAs, where a
				CLUE data channel, associated with the SIP session, has been
				established between the SIP UAs. Testing <u
				format="num-lit">森</u> and <u
				format="num-lit">温</u>
      </t>
      <t>
				SCTP stream is defined in <xref target="RFC4960" format="default"/> 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.
      </t>
      <t>
				SCTP identifier is defined in <xref target="RFC4960" format="default"/> as an unsigned integer, which identifies an SCTP stream.
      </t>
    </section>
    <section anchor="section.dtls" toc="default" numbered="true">
      <name>CLUE data channel</name>
      <section anchor="section.cdc.gen" toc="default" numbered="true">
        <name>General</name>
        <t>
					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.
        </t>
        <t>
					As described in <xref target="I-D.ietf-rtcweb-data-channel" format="default"/>, 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.
        </t>
        <t>
					Within a given CLUE session, a CLUE entity <bcp14>MUST</bcp14> use a single CLUE
					data channel for transport of all CLUE messages towards its peer.
        </t>
      </section>
      <section anchor="section.cdc.sctp" toc="default" numbered="true">
        <name>SCTP Considerations</name>
        <section anchor="section.cdc.sctp.gen" toc="default" numbered="true">
          <name>General</name>
          <t>
						As described in <xref target="I-D.ietf-rtcweb-data-channel" format="default"/>, 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. <xref target="section.oa" format="default"/> describes how SCTP options are signaled using SDP.
          </t>
          <t>
						NOTE: While SCTP allows SCTP options to be applied per SCTP message,
						<xref target="I-D.ietf-rtcweb-data-channel" format="default"/>
						mandates that, for a given data channel, the same SCTP options are applied
						to each SCTP message associated with that data channel.
          </t>
        </section>
        <section anchor="section.cdc.sctp.ppid" toc="default" numbered="true">
          <name>SCTP Payload Protocol Identifier (PPID)</name>
          <t>
						A CLUE entity MUST use the PPID value 51 when sending a CLUE message
						on a CLUE data channel.
          </t>
          <t>
   						NOTE: As described in <xref target="I-D.ietf-rtcweb-data-channel" format="default"/>, the PPID value 51 indicates that
						the SCTP message contains data encoded in a UTF-8 format. The PPID
						value 51 does not indicate which application protocol the SCTP message
						is associated with, only the format in which the data is encoded.
          </t>
        </section>
        <section anchor="section.cdc.sctp.reliability" toc="default" numbered="true">
          <name>Reliability</name>
          <t>
						The usage of SCTP for the CLUE data channel ensures reliable transport of 
						CLUE protocol <xref target="I-D.ietf-clue-protocol" format="default"/>
						messages.
          </t>
          <t>
						<xref target="I-D.ietf-rtcweb-data-channel" format="default"/>
					   	requires the support of the partial reliability extension defined in <xref target="RFC3758" format="default"/> and the limited retransmission policy defined in
					   	<xref target="RFC7496" format="default"/>. A CLUE entity MUST NOT use 
						these extensions, as messages are required to always be sent reliably. A CLUE entity MUST 
						terminate the session if it detects that the peer entity uses any of the extensions.
          </t>
        </section>
        <section anchor="section.cdc.sctp.order" toc="default" numbered="true">
          <name>Order</name>
          <t>
						A CLUE entity MUST use the ordered delivery SCTP service, as
						described in <xref target="RFC4960" format="default"/>,
						for the CLUE data channel.
          </t>
        </section>
        <section anchor="section.cdc.sctp.streamreset" toc="default" numbered="true">
          <name>Stream Reset</name>
          <t>
						A CLUE entity MUST support the stream reset extension defined in <xref target="RFC6525" format="default"/>.
          </t>
          <t>
						As defined in <xref target="I-D.ietf-rtcweb-data-channel" format="default"/>,
						the dynamic address reconfiguration extension ('Supported Extensions Parameter' parameter)
						defined in <xref target="RFC5061" format="default"/> must be used to signal the
            support of the stream reset extension defined in <xref target="RFC6525" format="default"/>. Other features of <xref target="RFC5061" format="default"/>
            MUST NOT be used for CLUE data channels.
          </t>
        </section>
        <section anchor="section.cdc.sctp.multihome" toc="default" numbered="true">
          <name>SCTP Multihoming</name>
          <t>
						SCTP multi-homing is not supported for SCTPoDTLS associations, and can therefore
						not be used for a CLUE data channel.
          </t>
        </section>
        <section anchor="section.cdcp.proc.close" toc="default" numbered="true">
          <name>Closing the CLUE data channel</name>
          <t>
						As described in <xref target="I-D.ietf-rtcweb-data-channel" format="default"/>, to close a data channel, an entity sends an SCTP reset
						message <xref target="RFC6525" format="default"/> 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.
          </t>
        </section>
      </section>
      <section anchor="section.oa" toc="default" numbered="true">
        <name>SDP Considerations</name>
        <section anchor="section.oa.gen" toc="default" numbered="true">
          <name>General</name>
          <t>
						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
						<xref target="I-D.ietf-mmusic-data-channel-sdpneg" format="default"/> for establishing
						a CLUE data channel on the SCTPoDTLS association.
          </t>
          <t>
						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.
          </t>
          <t>
						<xref target="I-D.ietf-clue-signaling" format="default"/>
						describes the SDP Offer/Answer procedures for negotiating a CLUE session,
						including the CLUE controlled media streams and the CLUE data channel.
          </t>
          <section anchor="section.oa.mediadesc" toc="default" numbered="true">
            <name>SDP Media Description Fields</name>

<table>
<name>Test table</name>
  <thead>
    <tr>
      <th>fruit</th>
      <th>color</th>
      <th>amount</th>
      <th>price</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>apple</td>
      <td>red</td>
      <td>5</td>
      <td>1</td>
    </tr>
  </tbody>
</table>

<table anchor="test_table">
<name>Test table</name>
  <thead>
    <tr>
      <th>fruit</th>
      <th>color</th>
      <th>amount</th>
      <th>price</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>apple</td>
      <td>red</td>
      <td>5</td>
      <td>1</td>
    </tr>
    <tr>
      <td>apricot</td>
      <td>orange</td>
      <td>6</td>
      <td>2</td>
    </tr>
    <tr>
      <td>peach</td>
      <td>peach</td>
      <td>7</td>
      <td>3</td>
    </tr>
    <tr>
      <td>lime</td>
      <td>green</td>
      <td>8</td>
      <td>4</td>
    </tr>
  </tbody>
</table>
            <t>
						    <xref target="I-D.ietf-mmusic-sctp-sdp" format="default"/> defines how
							to set the values of an "m=" line describing an SCTPoDTLS association. As defined in
							<xref target="I-D.ietf-mmusic-sctp-sdp" format="default"/>, for a 
							CLUE data channel the values are set as following:
            </t>
            <table anchor="table_SDP_mediadesc" align="center">
              <name>SDP "proto" field values</name>
              <thead>
                <tr>
                  <th align="center">media</th>
                  <th align="center">port</th>
                  <th align="center">proto</th>
                  <th align="center">fmt</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="center">"application"</td>
                  <td align="center">UDP port value</td>
                  <td align="center">"UDP/DTLS/SCTP"</td>
                  <td align="center">"webrtc-datachannel"</td>
                </tr>
                <tr>
                  <td align="center">"application"</td>
                  <td align="center">TCP port value</td>
                  <td align="center">"TCP/DTLS/SCTP"</td>
                  <td align="center">"webrtc-datachannel"</td>
                </tr>
              </tbody>
            </table>
            <t>
							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 <xref format="default" target="RFC8445"/>
							is used and the ICE procedures determine that TCP transport is required).
            </t>
          </section>
          <section anchor="section.oa.sctpport" toc="default" numbered="true">
            <name>SDP sctp-port Attribute</name>
            <t>
							As defined in <xref target="I-D.ietf-mmusic-sctp-sdp" format="default"/>,
							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 <xref target="I-D.ietf-mmusic-sctp-sdp" format="default"/>.
            </t>
          </section>
        </section>
        <section anchor="section.oa.dcmap" toc="default" numbered="true">
          <name>SDP dcmap Attribute</name>


          <t>
						The values of the SDP dcmap attribute <xref target="I-D.ietf-mmusic-data-channel-sdpneg" format="default"/>, associated with the "m=" line describing the SCTPoDTLS
						association used to realize the WebRTC data channel, are set as following:
          </t>
          <table anchor="table_SDP_dcmap" align="center">
            <name>SDP dcmap attribute values</name>
            <thead>
              <tr>
                <th align="center">stream-id</th>
                <th align="center">sub-protocol</th>
                <th align="center">label</th>
                <th align="center">ordered</th>
                <th align="center">max-retr</th>
                <th align="center">max-time</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="center">Value of the SCTP stream used to realize the CLUE data channel</td>
                <td align="center">"CLUE"</td>
                <td align="center">Appli-cation specific</td>
                <td align="center">"true"</td>
                <td align="center">N/A</td>
                <td align="center">N/A</td>
              </tr>
            </tbody>
          </table>
          <t>
						NOTE: As CLUE entities are required to use ordered SCTP message delivery,
						with full reliability, according to the procedures in
						<xref target="I-D.ietf-mmusic-data-channel-sdpneg" format="default"/> the max-retr and max-time attribute parameters
						are not used when negotiating CLUE data channels.
          </t>
        </section>
        <section anchor="section.oa.dcsa" toc="default" numbered="true">
          <name>SDP dcsa Attribute</name>
          <t>
						The SDP dcsa attribute <xref target="I-D.ietf-mmusic-data-channel-sdpneg" format="default"/> is not used when establishing a CLUE data channel.
          </t>
        </section>
        <section anchor="section.oa.example" toc="default" numbered="true">
          <name>Example</name>
          <t>
						The example in <xref target="figure_SDP_example" format="default"/> shows 
						an SDP media description for a CLUE data channel. Examples of complete SDP examples can be found 
						in <xref target="I-D.ietf-clue-signaling" format="default"/>.
          </t>
          <figure anchor="figure_SDP_example">
            <name>SDP Media Description for a CLUE data channel</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[

        m=application 54111 UDP/DTLS/SCTP webrtc-datachannel
        a=sctp-port: 5000
        a=dcmap:2 subprotocol="CLUE";ordered=true

                         ]]></artwork>
          </figure>
        </section>
      </section>
    </section>
    <section anchor="section.sec" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
                This specification relies on the security properties of the WebRTC data channel described in
                <xref target="I-D.ietf-rtcweb-data-channel" format="default"/>, 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 <xref target="RFC3261" format="default"/>
                for session establishment prior to establishing the data channel.
      </t>
    </section>
    <section anchor="section.iana" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="section.iana.dc" numbered="true" toc="default">
        <name>New WebRTC data channel Protocol Value</name>
        <t>
					[RFC EDITOR NOTE: Please replace RFC-XXXX with the RFC number of this document.]
        </t>
        <t>
					This document adds the 'CLUE' value to the "WebSocket Subprotocol Name Registry"
					as follows:
        </t>
        <artwork align="left" name="" type="" alt=""><![CDATA[

	Subprotocl Identifier:		CLUE
	Subprotocol Common Name:	CLUE
	Subprotocol Definition:		RFC-XXXX
    Reference:                  RFC-XXXX

				]]></artwork>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>Acknowledgments</name>
      <t>
				Thanks to Paul Kyzivat, Christian Groves and Mark Duckworth for comments
				on the document.
      </t>
    </section>
    <section numbered="true" toc="default">
      <name>Change Log</name>
      <t>
				[RFC EDITOR NOTE: Please remove this section when publishing]
      </t>
      <t>
				Changes from draft-ietf-clue-datachannel-17
      </t>
      <ul spacing="compact">
        <li>
                    Editorial changes to Tables based on TSV-ART review.
                </li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-16
      </t>
      <ul spacing="compact">
        <li>
                    Category changed to Experimental.
                </li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-15
      </t>
      <ul spacing="compact">
        <li>
                    Updates based on IESG review by Roman Danyliw.
                </li>
        <li>
					Make CLUE references Informative, as they are going to be published as 
					Experimental RFCs.
				</li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-14
      </t>
      <ul spacing="compact">
        <li>
                    ICE reference update.
                </li>
        <li>
                    Reference draft versions updates.
                </li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-13
      </t>
      <ul spacing="compact">
        <li>
                    Editorial changes based on Gen-ART review from Brian Carpenter.
                </li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-12
      </t>
      <ul spacing="compact">
        <li>
              Changes based on AD comments from Alissa Cooper (https://www.ietf.org/mail-archive/web/clue/current/msg04911.html):
          </li>
        <li>
						  - DCEP reference removed from security considerations.
					</li>
        <li>
						  - Editorial fixes.
					</li>
        <li>
						  - NOTE: Comment regarding the Security Considerations is still pending.
					</li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-11
      </t>
      <ul spacing="compact">
        <li>
                        Changes based on WGLC comments from Juergen Stoetzer-Bradler and Christian groves:
                    </li>
        <li>
                        - Reference updates.
                    </li>
        <li>
                        - 'Reference' added to IANA registration data.
                    </li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-10
      </t>
      <ul spacing="compact">
        <li>
                        Security Considerations modified and enhanced, based on comments
                        provided by Alissa Cooper.
                    </li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-09
      </t>
      <ul spacing="compact">
        <li>Reference updates:</li>
        <li> - draft-ietf-tsvwg-sctp-prpolicies published as RFC 7496</li>
        <li> - Reference update of draft versions</li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-08
      </t>
      <ul spacing="compact">
        <li>Changes based on WGLC comments from Daniel Burnett:</li>
        <li>- Editorial corrections.</li>
        <li>Changes based on WGLC comments from Paul Kyzivat:</li>
        <li>- Editorial corrections.</li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-07
      </t>
      <ul spacing="compact">
        <li>Changes based on WGLC comments from Christian Groves:</li>
        <li>- IANA considerations for dcmap attribute removed.</li>
        <li>- Explicit clarification that the dcmap attribute max-time
						 and max-retr parameters are not used with ordered/reliable
						 transmission of SCTP messages.</li>
        <li>- Indication that TCP transport should only be used if ICE is used,
					     and if usage of TCP is required by ICE.</li>
        <li>- Informative reference to ICE added.</li>
        <li>- Editorial corrections.</li>
        <li>Changes based on WGLC comments from Mark Duckworth:</li>
        <li>- Make it more clear that the rules regarding usage of partial
					     reliability and ordered reliability apply to CLUE data channels.</li>
        <li>Changes based on WGLC comments from Paul Kyzivat:</li>
        <li>- Clarify that same SCTP options are applied to each SCTP message
					     associated with a given data channel.</li>
        <li>- Switched location of sections 3.2 and 3.3.</li>
        <li>- PPID table removed. Not needed, since only one value is used.</li>
        <li>- Editorial corrections.</li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-06
      </t>
      <ul spacing="compact">
        <li>Usage of DCEP removed.</li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-05
      </t>
      <ul spacing="normal">
        <li>"DTLS/SCTP" split into "UDP/DTLS/SCTP" and "TCP/DTLS/SCTP".</li>
        <li>Removed note regarding optionality of including the SDP
					sctp-port attribute.</li>
        <li>Added defintion of 'SCTPoDTLS association' to the
					Conventions.</li>
        <li>Reference to RFC 4566 (SDP) added.</li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-04
      </t>
      <ul spacing="compact">
        <li>Defines DCEP and external SDP negotiation as two separate mechanisms
					for negotiating a CLUE data channel.</li>
        <li>Updates based on technical changes in referenced specifications.</li>
        <li>Reference to draft-ietf-mmusic-sctp-sdp added.</li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-03
      </t>
      <ul spacing="compact">
        <li>IANA considerations added.</li>
        <li>Editorial changes based on comments from Christian Groves.</li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-02
      </t>
      <ul spacing="compact">
        <li>SDP "m=" line example fixed.</li>
        <li>OPEN ISSUE #1 closed.</li>
        <li>- It was agreed (IETF#91) to use draft-ejzak-mmusic-data-channel-sdpneg,
						as it was adopted as a WG item in MMUSIC.
					</li>
        <li>- Details for draft-ejzak-mmusic-data-channel-sdpneg usage added.</li>
        <li>SDP Offer/Answer procedures removed, as they will be defined in the CLUE protocol draft.</li>
        <li>References updated.</li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-01
      </t>
      <ul spacing="compact">
        <li>Support of interleaving "MUST"-&gt;"SHOULD".</li>
        <li>Example updated.</li>
        <li>Reference update.</li>
      </ul>
      <t>
				Changes from draft-ietf-clue-datachannel-00
      </t>
      <ul spacing="compact">
        <li>SDP Offer/Answer procedures structures according to RFC 3264.</li>
        <li>Reference update.</li>
      </ul>
      <t>
				Changes from draft-holmberg-clue-datachannel-04
      </t>
      <ul spacing="compact">
        <li>Draft submitted as draft-ietf-clue-data-channel-00.</li>
        <li>Editorial nits fixed.</li>
        <li>Changes based on comments from Paul Kyzivat (http://www.ietf.org/mail-archive/web/clue/current/msg03559.html).</li>
        <li>- Proto value fixed.</li>
        <li>- Explicit text that the partial reliability and limited retransmission
						policies MUST NOT be used.</li>
        <li>- Added open issue on whether the DCEP 'protocol' field value for CLUE
						should contain a version number.</li>
        <li>- 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.</li>
        <li>- Added reference to draft-ietf-rtcweb-data-protocol regarding details
						on reseting SCTP streams.</li>
        <li>- Added text saying that the value of the DCEP 'channel type' MUST
						be DATA_CHANNEL_RELIABLE.</li>
        <li>- Clarified that DCEP must be supported, and used in the absence of another
						mechanism for opening a CLUE data channel.</li>
      </ul>
      <t>
				Changes from draft-holmberg-clue-datachannel-03
      </t>
      <ul spacing="compact">
        <li>Procedures updated, based on WG agreement (IETF#89) to
						use DCEP for the CLUE data channel.</li>
        <li>Procedures updated, based on WG agreement (IETF#89) that
						offerer is responsible for sending DCEP DATA_CHANNEL_OPEN.</li>
        <li>Editorial changes, and alignments caused by
						changes in referenced specifications.</li>
      </ul>
      <t>
				Changes from draft-holmberg-clue-datachannel-02
      </t>
      <ul spacing="compact">
        <li>PPID value for CLUE messages added</li>
        <li>References updated</li>
      </ul>
      <t>
				Changes from draft-holmberg-clue-datachannel-01
      </t>
      <ul spacing="compact">
        <li>More text added</li>
      </ul>
      <t>
				Changes from draft-holmberg-clue-datachannel-00
      </t>
      <ul spacing="compact">
        <li>Editorial corrections based on comments from Paul K</li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC3261" target="https://www.rfc-editor.org/info/rfc3261">
          <front>
            <title>SIP: Session Initiation Protocol</title>
            <seriesInfo name="DOI" value="10.17487/RFC3261"/>
            <seriesInfo name="RFC" value="3261"/>
            <author initials="J." surname="Rosenberg" fullname="J. Rosenberg">
              <organization/>
            </author>
            <author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne">
              <organization/>
            </author>
            <author initials="G." surname="Camarillo" fullname="G. Camarillo">
              <organization/>
            </author>
            <author initials="A." surname="Johnston" fullname="A. Johnston">
              <organization/>
            </author>
            <author initials="J." surname="Peterson" fullname="J. Peterson">
              <organization/>
            </author>
            <author initials="R." surname="Sparks" fullname="R. Sparks">
              <organization/>
            </author>
            <author initials="M." surname="Handley" fullname="M. Handley">
              <organization/>
            </author>
            <author initials="E." surname="Schooler" fullname="E. Schooler">
              <organization/>
            </author>
            <date year="2002" month="June"/>
            <abstract>
              <t>This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants.  These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC3264" target="https://www.rfc-editor.org/info/rfc3264">
          <front>
            <title>An Offer/Answer Model with Session Description Protocol (SDP)</title>
            <seriesInfo name="DOI" value="10.17487/RFC3264"/>
            <seriesInfo name="RFC" value="3264"/>
            <author initials="J." surname="Rosenberg" fullname="J. Rosenberg">
              <organization/>
            </author>
            <author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne">
              <organization/>
            </author>
            <date year="2002" month="June"/>
            <abstract>
              <t>This document defines a mechanism by which two entities can make use of the Session Description Protocol (SDP) to arrive at a common view of a multimedia session between them.  In the model, one participant offers the other a description of the desired session from their perspective, and the other participant answers with the desired session from their perspective.  This offer/answer model is most useful in unicast sessions where information from both participants is needed for the complete view of the session.  The offer/answer model is used by protocols like the Session Initiation Protocol (SIP).  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC4566" target="https://www.rfc-editor.org/info/rfc4566">
          <front>
            <title>SDP: Session Description Protocol</title>
            <seriesInfo name="DOI" value="10.17487/RFC4566"/>
            <seriesInfo name="RFC" value="4566"/>
            <author initials="M." surname="Handley" fullname="M. Handley">
              <organization/>
            </author>
            <author initials="V." surname="Jacobson" fullname="V. Jacobson">
              <organization/>
            </author>
            <author initials="C." surname="Perkins" fullname="C. Perkins">
              <organization/>
            </author>
            <date year="2006" month="July"/>
            <abstract>
              <t>This memo defines the Session Description Protocol (SDP).  SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC4960" target="https://www.rfc-editor.org/info/rfc4960">
          <front>
            <title>Stream Control Transmission Protocol</title>
            <seriesInfo name="DOI" value="10.17487/RFC4960"/>
            <seriesInfo name="RFC" value="4960"/>
            <author initials="R." surname="Stewart" fullname="R. Stewart" role="editor">
              <organization/>
            </author>
            <date year="2007" month="September"/>
            <abstract>
              <t>This document obsoletes RFC 2960 and RFC 3309.  It describes the Stream Control Transmission Protocol (SCTP).  SCTP is designed to transport Public Switched Telephone Network (PSTN) signaling messages over IP networks, but is capable of broader applications.</t>
              <t>SCTP is a reliable transport protocol operating on top of a connectionless packet network such as IP.  It offers the following services to its users:</t>
              <t>--  acknowledged error-free non-duplicated transfer of user data,</t>
              <t>--  data fragmentation to conform to discovered path MTU size,</t>
              <t>--  sequenced delivery of user messages within multiple streams, with an option for order-of-arrival delivery of individual user messages,</t>
              <t>--  optional bundling of multiple user messages into a single SCTP packet, and</t>
              <t>--  network-level fault tolerance through supporting of multi-homing at either or both ends of an association.</t>
              <t> The design of SCTP includes appropriate congestion avoidance behavior and resistance to flooding and masquerade attacks.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>

<xi:include
    href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3550.xml"/>

        <reference anchor="RFC5061" target="https://www.rfc-editor.org/info/rfc5061">
          <front>
            <title>Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration</title>
            <seriesInfo name="DOI" value="10.17487/RFC5061"/>
            <seriesInfo name="RFC" value="5061"/>
            <author initials="R." surname="Stewart" fullname="R. Stewart">
              <organization/>
            </author>
            <author initials="Q." surname="Xie" fullname="Q. Xie">
              <organization/>
            </author>
            <author initials="M." surname="Tuexen" fullname="M. Tuexen">
              <organization/>
            </author>
            <author initials="S." surname="Maruyama" fullname="S. Maruyama">
              <organization/>
            </author>
            <author initials="M." surname="Kozuka" fullname="M. Kozuka">
              <organization/>
            </author>
            <date year="2007" month="September"/>
            <abstract>
              <t>A local host may have multiple points of attachment to the Internet, giving it a degree of fault tolerance from hardware failures.  Stream Control Transmission Protocol (SCTP) (RFC 4960) was developed to take full advantage of such a multi-homed host to provide a fast failover and association survivability in the face of such hardware failures. This document describes an extension to SCTP that will allow an SCTP stack to dynamically add an IP address to an SCTP association, dynamically delete an IP address from an SCTP association, and to request to set the primary address the peer will use when sending to an endpoint.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC6525" target="https://www.rfc-editor.org/info/rfc6525">
          <front>
            <title>Stream Control Transmission Protocol (SCTP) Stream Reconfiguration</title>
            <seriesInfo name="DOI" value="10.17487/RFC6525"/>
            <seriesInfo name="RFC" value="6525"/>
            <author initials="R." surname="Stewart" fullname="R. Stewart">
              <organization/>
            </author>
            <author initials="M." surname="Tuexen" fullname="M. Tuexen">
              <organization/>
            </author>
            <author initials="P." surname="Lei" fullname="P. Lei">
              <organization/>
            </author>
            <date year="2012" month="February"/>
            <abstract>
              <t>Many applications that use the Stream Control Transmission Protocol (SCTP) want the ability to "reset" a stream.  The intention of resetting a stream is to set the numbering sequence of the stream back to 'zero' with a corresponding notification to the application layer that the reset has been performed.  Applications requiring this feature want it so that they can "reuse" streams for different purposes but still utilize the stream sequence number so that the application can track the message flows.  Thus, without this feature, a new use of an old stream would result in message numbers greater than expected, unless there is a protocol mechanism to "reset the streams back to zero".  This document also includes methods for resetting the transmission sequence numbers, adding additional streams, and resetting all stream sequence numbers.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7496" target="https://www.rfc-editor.org/info/rfc7496">
          <front>
            <title>Additional Policies for the Partially Reliable Stream Control Transmission Protocol Extension</title>
            <seriesInfo name="DOI" value="10.17487/RFC7496"/>
            <seriesInfo name="RFC" value="7496"/>
            <author initials="M." surname="Tuexen" fullname="M. Tuexen">
              <organization/>
            </author>
            <author initials="R." surname="Seggelmann" fullname="R. Seggelmann">
              <organization/>
            </author>
            <author initials="R." surname="Stewart" fullname="R. Stewart">
              <organization/>
            </author>
            <author initials="S." surname="Loreto" fullname="S. Loreto">
              <organization/>
            </author>
            <date year="2015" month="April"/>
            <abstract>
              <t>This document defines two additional policies for the Partially Reliable Stream Control Transmission Protocol (PR-SCTP) extension. These policies allow limitation of the number of retransmissions and prioritization of user messages for more efficient usage of the send buffer.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8261" target="https://www.rfc-editor.org/info/rfc8261">
          <front>
            <title>Datagram Transport Layer Security (DTLS) Encapsulation of SCTP Packets</title>
            <seriesInfo name="DOI" value="10.17487/RFC8261"/>
            <seriesInfo name="RFC" value="8261"/>
            <author initials="M." surname="Tuexen" fullname="M. Tuexen">
              <organization/>
            </author>
            <author initials="R." surname="Stewart" fullname="R. Stewart">
              <organization/>
            </author>
            <author initials="R." surname="Jesup" fullname="R. Jesup">
              <organization/>
            </author>
            <author initials="S." surname="Loreto" fullname="S. Loreto">
              <organization/>
            </author>
            <date year="2017" month="November"/>
            <abstract>
              <t>The Stream Control Transmission Protocol (SCTP) is a transport protocol originally defined to run on top of the network protocols IPv4 or IPv6.  This document specifies how SCTP can be used on top of the Datagram Transport Layer Security (DTLS) protocol.  Using the encapsulation method described in this document, SCTP is unaware of the protocols being used below DTLS; hence, explicit IP addresses cannot be used in the SCTP control chunks.  As a consequence, the SCTP associations carried over DTLS can only be single-homed.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-mmusic-sctp-sdp">
          <front>
            <title abbrev="The SCTP protocol identifier for SDP">
						Stream Control Transmission Protocol (SCTP)-Based Media
						Transport in the Session Description Protocol (SDP)
            </title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-mmusic-sctp-sdp-26.txt"/>
            <author initials="C." surname="Holmberg" fullname="Christer Holmberg">
              <organization>Ericsson</organization>
            </author>
            <author initials="S." surname="Loreto" fullname="Salvatore Loreto">
              <organization>Ericsson</organization>
            </author>
            <author initials="G." surname="Camarillo" fullname="Gonzalo Camarillo">
              <organization>Ericsson</organization>
            </author>
            <date day="20" month="April" year="2017"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-rtcweb-data-channel">
          <front>
            <title abbrev="WebRTC data channels">
						WebRTC data channels
            </title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-rtcweb-data-channel-13.txt"/>
            <author fullname="Randell Jesup" initials="R.J" surname="Jesup">
              <organization>WorldGate Communications</organization>
            </author>
            <author fullname="Salvatore Loreto" initials="S.L" surname="Loreto">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Michael Tuexen" initials="M.T" surname="Tuexen">
              <organization>Muenster University of Applied Sciences</organization>
            </author>
            <date day="4" month="January" year="2015"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-mmusic-data-channel-sdpneg">
          <front>
            <title abbrev="SDP-based 'SCTP over DTLS' data channel negotiation">
						SDP-based "SCTP over DTLS" data channel negotiation
            </title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-mmusic-data-channel-sdpneg-26.txt"/>
            <author fullname="Keith Drage" initials="K.D" surname="Drage">
              <organization>Alcatel-Lucent</organization>
            </author>
            <author fullname="Raju Makaraju" initials="R.M" surname="Makaraju">
              <organization>Alcatel-Lucent</organization>
            </author>
            <author fullname="Juergen Stoetzer-Bradler" initials="J.S" surname="Stoetzer-Bradler">
              <organization>Alcatel-Lucent</organization>
            </author>
            <author fullname="Richard Ejzak" initials="R.E" surname="Ejzak">
              <organization>Unaffiliated</organization>
            </author>
            <author fullname="Jerome Marcon" initials="J.M" surname="Marcon">
              <organization>Unaffiliated</organization>
            </author>
            <date day="23" month="April" year="2019"/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC3758" target="https://www.rfc-editor.org/info/rfc3758">
          <front>
            <title>Stream Control Transmission Protocol (SCTP) Partial Reliability Extension</title>
            <seriesInfo name="DOI" value="10.17487/RFC3758"/>
            <seriesInfo name="RFC" value="3758"/>
            <author initials="R." surname="Stewart" fullname="R. Stewart">
              <organization/>
            </author>
            <author initials="M." surname="Ramalho" fullname="M. Ramalho">
              <organization/>
            </author>
            <author initials="Q." surname="Xie" fullname="Q. Xie">
              <organization/>
            </author>
            <author initials="M." surname="Tuexen" fullname="M. Tuexen">
              <organization/>
            </author>
            <author initials="P." surname="Conrad" fullname="P. Conrad">
              <organization/>
            </author>
            <date year="2004" month="May"/>
            <abstract>
              <t>This memo describes an extension to the Stream Control Transmission Protocol (SCTP) that allows an SCTP endpoint to signal to its peer that it should move the cumulative ack point forward.  When both sides of an SCTP association support this extension, it can be used by an SCTP implementation to provide partially reliable data transmission service to an upper layer protocol.  This memo describes the protocol extensions, which consist of a new parameter for INIT and INIT ACK, and a new FORWARD TSN chunk type, and provides one example of a partially reliable service that can be provided to the upper layer via this mechanism.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8445" target="https://www.rfc-editor.org/info/rfc8445">
          <front>
            <title>Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal</title>
            <seriesInfo name="DOI" value="10.17487/RFC8445"/>
            <seriesInfo name="RFC" value="8445"/>
            <author initials="A." surname="Keranen" fullname="A. Keranen">
              <organization/>
            </author>
            <author initials="C." surname="Holmberg" fullname="C. Holmberg">
              <organization/>
            </author>
            <author initials="J." surname="Rosenberg" fullname="J. Rosenberg">
              <organization/>
            </author>
            <date year="2018" month="July"/>
            <abstract>
              <t>This document describes a protocol for Network Address Translator (NAT) traversal for UDP-based communication.  This protocol is called Interactive Connectivity Establishment (ICE).  ICE makes use of the Session Traversal Utilities for NAT (STUN) protocol and its extension, Traversal Using Relay NAT (TURN).</t>
              <t>This document obsoletes RFC 5245.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-rtcweb-data-protocol">
          <front>
            <title abbrev="WebRTC data channel Establishment Protocol">
						WebRTC data channel Establishment Protocol
            </title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-rtcweb-data-protocol-09.txt"/>
            <author fullname="Randell Jesup" initials="R.J" surname="Jesup">
              <organization>WorldGate Communications</organization>
            </author>
            <author fullname="Salvatore Loreto" initials="S.L" surname="Loreto">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Michael Tuexen" initials="M.T" surname="Tuexen">
              <organization>Muenster University of Applied Sciences</organization>
            </author>
            <date day="4" month="January" year="2015"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-clue-protocol">
          <front>
            <title abbrev="CLUE protocol">
						CLUE protocol
            </title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-clue-protocol-17.txt"/>
            <author fullname="Roberta Presta" initials="R.P" surname="Presta">
              <organization>University of Napoli</organization>
            </author>
            <author fullname="Simon Pietro Romano" initials="S P.R" surname="Romano">
              <organization>University of Napoli</organization>
            </author>
            <date day="21" month="September" year="2018"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-clue-signaling">
          <front>
            <title abbrev="CLUE signaling">
						CLUE Signaling
            </title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-clue-signaling-14.txt"/>
            <author fullname="Paul Kyzivat" initials="P.K" surname="Kyzivat"/>
            <author fullname="Lennard Xiao" initials="L.X" surname="Xiao">
              <organization>Huawei</organization>
            </author>
            <author fullname="Christian Groves" initials="C.G" surname="Groves">
              <organization>Huawei</organization>
            </author>
            <author fullname="Robert Hansen" initials="S P.R" surname="Romano">
              <organization>Cisco</organization>
            </author>
            <date day="22" month="October" year="2018"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
</rfc>
