| rfc8841xml2.original.xml | rfc8841.xml | |||
|---|---|---|---|---|
| <?xml version="1.0"?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <?rfc symrefs="yes"?> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
| <?rfc toc="yes" ?> | ||||
| <?rfc compact="yes" ?> | ||||
| <?rfc subcompact="no" ?> | ||||
| <?rfc sortrefs="no" ?> | ||||
| <rfc category="std" docName="draft-ietf-mmusic-sctp-sdp-26" ipr="trust200902"> | ||||
| <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" | |||
| docName="draft-ietf-mmusic-sctp-sdp-26" ipr="trust200902" obsoletes="" | ||||
| updates="" submissionType="IETF" xml:lang="en" tocInclude="true" | ||||
| symRefs="true" sortRefs="true" version="3" number="8841" consensus="true"> | ||||
| <front> | <!-- xml2rfc v2v3 conversion 2.34.0 --> | |||
| <title abbrev="SDP Offer/Answer For SCTP Over DTLS"> | ||||
| Session Description Protocol (SDP) Offer/Answer Procedures | ||||
| For Stream Control Transmission Protocol (SCTP) over | ||||
| Datagram Transport Layer Security (DTLS) Transport. | ||||
| </title> | ||||
| <front> | ||||
| <title abbrev="SDP Offer/Answer for SCTP over DTLS"> | ||||
| Session Description Protocol (SDP) Offer/Answer Procedures | ||||
| for Stream Control Transmission Protocol (SCTP) over | ||||
| Datagram Transport Layer Security (DTLS) Transport | ||||
| </title> | ||||
| <seriesInfo name="RFC" value="8841" /> | ||||
| <author initials="C." surname="Holmberg" fullname="Christer Holmberg"> | <author initials="C." surname="Holmberg" fullname="Christer Holmberg"> | |||
| <organization>Ericsson</organization> | <organization>Ericsson</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Hirsalantie 11</street> | <street>Hirsalantie 11</street> | |||
| <code>02420</code> | <code>02420</code> | |||
| <city>Jorvas</city> | <city>Jorvas</city> | |||
| <country>Finland</country> | <country>Finland</country> | |||
| </postal> | </postal> | |||
| <email>christer.holmberg@ericsson.com</email> | <email>christer.holmberg@ericsson.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Roman Shpount" initials="R.S." surname="Shpount"> | <author fullname="Roman Shpount" initials="R." surname="Shpount"> | |||
| <organization abbrev="TurboBridge">TurboBridge</organization> | <organization abbrev="TurboBridge">TurboBridge</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>4905 Del Ray Avenue, Suite 300</street> | <street>4905 Del Ray Avenue, Suite 300</street> | |||
| <city>Bethesda</city> | <city>Bethesda</city> | |||
| <region>MD</region> | <region>MD</region> | |||
| <code>20814</code> | <code>20814</code> | |||
| <country>USA</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <phone>+1 (240) 292-6632</phone> | <phone>+1 (240) 292-6632</phone> | |||
| <email>rshpount@turbobridge.com</email> | <email>rshpount@turbobridge.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="S." surname="Loreto" fullname="Salvatore Loreto"> | <author initials="S." surname="Loreto" fullname="Salvatore Loreto"> | |||
| <organization>Ericsson</organization> | <organization>Ericsson</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Hirsalantie 11</street> | <street>Grönlandsgatan 31</street> | |||
| <code>02420</code> | <city>Kista</city> | |||
| <city>Jorvas</city> | <country>Sweden</country> | |||
| <country>Finland</country> | </postal> | |||
| </postal> | <email>Salvatore.Loreto@ericsson.com</email> | |||
| <email>Salvatore.Loreto@ericsson.com</email> | </address> | |||
| </address> | ||||
| </author> | </author> | |||
| <author initials="G." surname="Camarillo" fullname="Gonzalo Camarillo"> | <author initials="G." surname="Camarillo" fullname="Gonzalo Camarillo"> | |||
| <organization>Ericsson</organization> | <organization>Ericsson</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Hirsalantie 11</street> | <street>Hirsalantie 11</street> | |||
| <code>02420</code> | <code>02420</code> | |||
| <city>Jorvas</city> | <city>Jorvas</city> | |||
| <country>Finland</country> | <country>Finland</country> | |||
| </postal> | </postal> | |||
| <email>Gonzalo.Camarillo@ericsson.com</email> | <email>Gonzalo.Camarillo@ericsson.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2021" month="January"/> | ||||
| <date year="2017"/> | <area>ART</area> | |||
| <area>RAI</area> | ||||
| <workgroup>MMUSIC</workgroup> | <workgroup>MMUSIC</workgroup> | |||
| <keyword>SCTP, SDP, DTLS</keyword> | <keyword>SCTP</keyword> | |||
| <keyword>SDP</keyword> | ||||
| <keyword>DTLS</keyword> | ||||
| <abstract> | <abstract> | |||
| <t> | <t> | |||
| The Stream Control Transmission Protocol (SCTP) is a transport proto col | The Stream Control Transmission Protocol (SCTP) is a transport proto col | |||
| used to establish associations between two endpoints. | used to establish associations between two endpoints. | |||
| draft-ietf-tsvwg-sctp-dtls-encaps-09 specifies how SCTP can be used | RFC 8261 specifies how SCTP can be used on | |||
| on | top of the Datagram Transport Layer Security (DTLS) protocol, | |||
| top of the Datagram Transport Layer Security (DTLS) protocol, referr | which is referred to as SCTP-over-DTLS. | |||
| ed to | </t> | |||
| as SCTP-over-DTLS. | <t> | |||
| </t> | ||||
| <t> | ||||
| This specification defines the following new Session Description Pro tocol (SDP) | This specification defines the following new Session Description Pro tocol (SDP) | |||
| protocol identifiers (proto values):'UDP/DTLS/SCTP' and 'TCP/DTLS/SC TP'. This | protocol identifiers (proto values): "UDP/DTLS/SCTP" and "TCP/DTLS/S CTP". This | |||
| specification also specifies how to use the new proto values with th e | specification also specifies how to use the new proto values with th e | |||
| SDP Offer/Answer mechanism for negotiating SCTP-over-DTLS associatio | SDP offer/answer mechanism for negotiating SCTP-over-DTLS associatio | |||
| ns. | ns. | |||
| </t> | </t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | ||||
| <middle> | <section numbered="true" toc="default"> | |||
| <section title="Introduction"> | <name>Introduction</name> | |||
| <t> | <t> | |||
| SDP (Session Description Protocol) <xref target="RFC4566"/> provides | The Session Description Protocol (SDP) <xref target="RFC4566" | |||
| a | format="default"/> provides a | |||
| general-purpose format for describing multimedia sessions in announc | general-purpose format for describing multimedia sessions in announcemen | |||
| ements | ts | |||
| or invitations. TCP-Based Media Transport in the Session Description | or invitations. "TCP-Based Media Transport in the Session Description Pr | |||
| Protocol | otocol | |||
| (SDP) <xref target="RFC4145"/> specifies a general mechanism for des | (SDP)" <xref target="RFC4145" format="default"/> specifies a general | |||
| cribing and | mechanism for describing and | |||
| establishing TCP <xref target="RFC0793"/> streams. | establishing TCP <xref target="RFC0793" format="default"/> streams. | |||
| Connection-Oriented Media Transport over the Transport Layer Securit | "Connection-Oriented Media Transport over the Transport Layer Security ( | |||
| y (TLS) | TLS) | |||
| Protocol in SDP <xref target="RFC8122"/> extends RFC4145 <xref targe | Protocol in the Session Description Protocol (SDP)" <xref | |||
| t="RFC4145"/> for | target="RFC8122" format="default"/> extends | |||
| describing TCP-based media streams that are protected using TLS. | <xref target="RFC4145" format="default"/> to describe TCP-based media | |||
| </t> | streams that are protected using TLS. | |||
| <t> | </t> | |||
| The Stream Control Transmission Protocol (SCTP) <xref target="RFC496 | <t> | |||
| 0"/> is a | The Stream Control Transmission Protocol (SCTP) <xref target="RFC496 | |||
| 0" format="default"/> is a | ||||
| reliable transport protocol used to transport data between two | reliable transport protocol used to transport data between two | |||
| endpoints using SCTP associations. | endpoints using SCTP associations. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| <xref target="I-D.ietf-tsvwg-sctp-dtls-encaps"/> specifies how SCTP can be | <xref target="RFC8261" format="default"/> specifies how SCTP can be used o | |||
| used on | n | |||
| top of the Datagram Transport Layer Security (DTLS) protocol, referred to | top of the Datagram Transport Layer Security (DTLS) protocol, an | |||
| arrangement referred to | ||||
| as SCTP-over-DTLS. | as SCTP-over-DTLS. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| This specification defines the following new Session Description Protocol | This specification defines the following new SDP | |||
| (SDP) | <xref target="RFC4566" format="default"/> protocol identifiers (proto | |||
| <xref target="RFC4566"/> protocol identifiers (proto values):'UDP/DTLS/SCT | values): "UDP/DTLS/SCTP" and "TCP/DTLS/SCTP". This document also | |||
| P' | specifies how to use the new proto | |||
| and 'TCP/DTLS/SCTP'. This specification also specifies how to use the new | values with the SDP offer/answer mechanism <xref target="RFC3264" | |||
| proto | format="default"/> for negotiating | |||
| values with the SDP Offer/Answer mechanism <xref target="RFC3264"/> for ne | ||||
| gotiating | ||||
| SCTP-over-DTLS associations. | SCTP-over-DTLS associations. | |||
| </t> | </t> | |||
| <t> | <aside> | |||
| <t> | ||||
| NOTE: Due to the characteristics of TCP, while multiple SCTP streams can s till | NOTE: Due to the characteristics of TCP, while multiple SCTP streams can s till | |||
| be used, usage of 'TCP/DTLS/SCTP' will always force ordered and reliable d elivery | be used, usage of "TCP/DTLS/SCTP" will always force ordered and reliable d elivery | |||
| of the SCTP packets, which limits the usage of the SCTP options. Therefore , it is | of the SCTP packets, which limits the usage of the SCTP options. Therefore , it is | |||
| RECOMMENDED that TCP is only used in situations where UDP traffic is block | <bcp14>RECOMMENDED</bcp14> that TCP is only used in situations where UDP t | |||
| ed. | raffic is blocked. | |||
| </t> | </t> | |||
| </section> | </aside> | |||
| </section> | ||||
| <section title="Conventions"> | <section numbered="true" toc="default"> | |||
| <t> | <name>Conventions</name> | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <t> | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| document are to be interpreted as described in <xref target="RFC2119"></xref | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| >. | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
| </t> | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| </section> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are | |||
| to be interpreted as | ||||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
| when, and only when, they appear in all capitals, as shown here. | ||||
| </t> | ||||
| <section title="SCTP Terminology"> | </section> | |||
| <t> | <section numbered="true" toc="default"> | |||
| SCTP Association: A protocol relationship between SCTP endpoints, | <name>SCTP Terminology</name> | |||
| <dl> | ||||
| <dt>SCTP association:</dt> | ||||
| <dd>A protocol relationship between SCTP endpoints, | ||||
| composed of the two SCTP endpoints and protocol state information | composed of the two SCTP endpoints and protocol state information | |||
| including Verification Tags and the currently active set of | including verification tags and the currently active set of | |||
| Transmission Sequence Numbers (TSNs), etc. An association can be | Transmission Sequence Numbers (TSNs), etc. An association can be | |||
| uniquely identified by the transport addresses used by the | uniquely identified by the transport addresses used by the | |||
| endpoints in the association. | endpoints in the association.</dd> | |||
| </t> | ||||
| <t> | <dt>SCTP stream:</dt> | |||
| SCTP Stream: A unidirectional logical channel established from one to | <dd>A unidirectional logical channel established from one associated | |||
| another associated SCTP endpoint, within which all user messages | SCTP endpoint to | |||
| another, within which all user messages | ||||
| are delivered in sequence except for those submitted to the | are delivered in sequence except for those submitted to the | |||
| unordered delivery service. | unordered delivery service.</dd> | |||
| </t> | ||||
| <t> | ||||
| SCTP-over-DTLS: SCTP used on top of DTLS, as specified in | ||||
| <xref target="I-D.ietf-tsvwg-sctp-dtls-encaps"/>. | ||||
| </t> | ||||
| </section> | ||||
| <section title="SDP Media Descriptions" anchor="m-line"> | <dt>SCTP-over-DTLS:</dt> | |||
| <section title="General" anchor="m-line-gen"> | <dd>SCTP used on top of DTLS, as specified in | |||
| <t> | <xref target="RFC8261" format="default"/>.</dd> | |||
| This section defines the following new SDP Media Description (m- | </dl> | |||
| </section> | ||||
| <section anchor="m-line" numbered="true" toc="default"> | ||||
| <name>SDP Media Descriptions</name> | ||||
| <section anchor="m-line-gen" numbered="true" toc="default"> | ||||
| <name>General</name> | ||||
| <t> | ||||
| This section defines the following new SDP media description ("m=" | ||||
| line) protocol identifiers (proto values) for describing an SCTP | line) protocol identifiers (proto values) for describing an SCTP | |||
| association: 'UDP/DTLS/SCTP' and 'TCP/DTLS/SCTP'. The section als | association: "UDP/DTLS/SCTP" and "TCP/DTLS/SCTP". The section als | |||
| o | o | |||
| describes how an m- line, associated with the proto values, is | describes how an "m=" line associated with the proto values is | |||
| created. | created. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The following is the format for an m- line, as specified in RFC456 | The following is the format for an "m=" line, as specified in | |||
| 6 | <xref target="RFC4566" format="default"/>: | |||
| <xref target="RFC4566"/>: | </t> | |||
| </t> | <sourcecode><![CDATA[ | |||
| <figure> | m=<media> <port> <proto> <fmt> ... | |||
| <artwork><![CDATA[ | ]]></sourcecode> | |||
| m=<media> <port> <proto> <fmt> ... | <t> | |||
| ]]></artwork> | The "UDP/DTLS/SCTP" and "TCP/DTLS/SCTP" proto values are similar t | |||
| </figure> | o both | |||
| <t> | the "UDP" and "TCP" proto values in that they only describe the tr | |||
| The 'UDP/DTLS/SCTP' and 'TCP/DTLS/SCTP' proto values are similar t | ansport-layer | |||
| o both | ||||
| the 'UDP' and 'TCP' proto values in that they only describe the tr | ||||
| ansport-layer | ||||
| protocol and not the upper-layer protocol. | protocol and not the upper-layer protocol. | |||
| </t> | </t> | |||
| <t> | <aside> | |||
| NOTE: When the 'UDP/DTLS/SCTP' and 'TCP/DTLS/SCTP' proto values ar | <t> | |||
| e used, | NOTE: When the "UDP/DTLS/SCTP" and "TCP/DTLS/SCTP" proto values ar | |||
| the underlying transport protocol is respectively UDP and TCP; SCT | e used, | |||
| P is | the underlying transport protocol is, respectively, UDP and TCP; S | |||
| carried on top of DTLS which is on top of those transport-layer pr | CTP is | |||
| otocols. | carried on top of DTLS, which is on top of those transport-layer p | |||
| </t> | rotocols. | |||
| </t> | ||||
| </aside> | ||||
| </section> | </section> | |||
| <section anchor="proto" numbered="true" toc="default"> | ||||
| <section title="Protocol Identifiers" anchor="proto"> | <name>Protocol Identifiers</name> | |||
| <t> | <t> | |||
| The new proto values are defined as below: | The new proto values are defined as below: | |||
| </t> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| <list style="symbols"> | <li> | |||
| <t> | The "UDP/DTLS/SCTP" proto value describes an SCTP association on top o | |||
| The 'UDP/DTLS/SCTP' proto value describes an SCTP associat | f | |||
| ion on top of | a DTLS association on top of UDP, as defined in | |||
| a DTLS association on top of UDP, as defined in | <xref target="sec-udp-dtls-sctp" format="default"/>. | |||
| <xref target="sec-udp-dtls-sctp"/>. | </li> | |||
| </t> | <li> | |||
| <t> | The "TCP/DTLS/SCTP" proto value describes an SCTP association on top | |||
| The 'TCP/DTLS/SCTP' proto value describes an SCTP associat | of | |||
| ion on top of | a DTLS association on top of TCP, as defined in <xref | |||
| a DTLS association on top of TCP, as defined in <xref targ | target="sec-tcp-dtls-sctp" format="default"/>. | |||
| et="sec-tcp-dtls-sctp"/>. | </li> | |||
| </t> | </ul> | |||
| </list> | ||||
| </t> | ||||
| </section> | </section> | |||
| <section anchor="media" numbered="true" toc="default"> | ||||
| <section title="Media Format Management" anchor="media"> | <name>Media-Format Management</name> | |||
| <t> | <t> | |||
| <xref target="RFC4566"/> defines that specifications defining new | <xref target="RFC4566" format="default"/> states that | |||
| proto values must | specifications defining new proto values must | |||
| define the rules by which their media format (fmt) namespace is ma naged. | define the rules by which their media format (fmt) namespace is ma naged. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| An m- line with a proto value of 'UDP/DTLS/SCTP' or 'TCP/DTLS/SCTP | An "m=" line with a proto value of "UDP/DTLS/SCTP" or "TCP/DTLS/SC | |||
| ' | TP" | |||
| always describes a single SCTP association. | always describes a single SCTP association. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| In addition, such m- line MUST further indicate the application-la | In addition, such an "m=" line <bcp14>MUST</bcp14> further indicat | |||
| yer protocol | e | |||
| using an 'fmt' identifier. There MUST be exactly one fmt value per | the application-layer protocol | |||
| m- line associated | using an "fmt" identifier. There <bcp14>MUST</bcp14> be exactly | |||
| with the proto values defined in this specification. The 'fmt' nam | one fmt value per "m=" line associated | |||
| espace associated | with the proto values defined in this specification. The "fmt" | |||
| with those proto values describes the generic application usage of | namespace associated | |||
| the entire SCTP | with those proto values describes the generic application usage | |||
| of the entire SCTP | ||||
| association, including the associated SCTP streams. | association, including the associated SCTP streams. | |||
| </t> | </t> | |||
| <t> | ||||
| When the 'UDP/DTLS/SCTP' and 'TCP/DTLS/SCTP' proto values, the m- | <t> | |||
| line fmt value, | When the "UDP/DTLS/SCTP" and "TCP/DTLS/SCTP" proto values are | |||
| identifying the application-layer protocol, MUST be registered by | used, the "m=" line fmt value, which identifies the | |||
| IANA. | application-layer protocol, <bcp14>MUST</bcp14> be registered by | |||
| <xref format="default" pageno="false" target="iana-assusage-regist | IANA. <xref format="default" target="iana-assusage-registry"/> | |||
| ry"/> defines the | defines the IANA registry for the media-format namespace. | |||
| IANA registry for the media format namespace. | </t> | |||
| </t> | <aside> | |||
| <t> | <t> | |||
| NOTE: A mechanism on how to describe, and manage, individual SCTP | NOTE: A mechanism for how to describe and manage individual | |||
| streams within an | SCTP streams within an | |||
| SCTP association, is outside the scope of this specification. <xre | SCTP association is outside the scope of this | |||
| f format="default" | specification. <xref format="default" | |||
| pageno="false" target="I-D.ietf-mmusic-data-channel-sdpneg"/> defi | target="RFC8864"/> defines | |||
| nes | ||||
| a mechanism for negotiating individual SCTP streams used to realiz e WebRTC | a mechanism for negotiating individual SCTP streams used to realiz e WebRTC | |||
| data channels <xref format="default" pageno="false" target="I-D.ie | data channels <xref format="default" target="RFC8831"/>. | |||
| tf-rtcweb-data-channel"/>. | </t> | |||
| </t> | </aside> | |||
| </section> | </section> | |||
| <section anchor="m-line-syn" numbered="true" toc="default"> | ||||
| <section title="Syntax" anchor="m-line-syn"> | <name>Syntax</name> | |||
| <section title="General"> | <section numbered="true" toc="default"> | |||
| <t> | <name>General</name> | |||
| <t> | ||||
| This section defines the values that can be used within an | This section defines the values that can be used within an | |||
| SDP media description ("m=" line) associated with an | SDP media description ("m=" line) associated with an | |||
| SCTP-over-DTLS association. | SCTP-over-DTLS association. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| This specification creates an IANA registry for 'association-u | This specification creates an IANA registry for "association-u | |||
| sage' values. | sage" values. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section title="SDP Media Description values"> | <section numbered="true" toc="default"> | |||
| <figure> | <name>SDP Media Description Values</name> | |||
| <artwork><![CDATA[ | <t> | |||
| When the SCTP association is used to realize a WebRTC data channel | ||||
| <xref target="RFC8832"/>, the <fmt> parameter value is 'webrtc-datachannel | ||||
| '. | ||||
| </t> | ||||
| m= line parameter parameter value(s) | <table anchor="media-desc"> | |||
| ------------------------------------------------------------------ | <name>SDP Media Description Values</name> | |||
| <media>: 'application' | <thead> | |||
| <proto>: 'UDP/DTLS/SCTP' or 'TCP/DTLS/SCTP' | <tr> | |||
| <port>: UDP port number (for 'UDP/DTLS/SCTP') | <th>"m=" line parameter</th> | |||
| TCP port number (for 'TCP/DTLS/SCTP') | <th>parameter value(s)</th> | |||
| <fmt>: a string denoting the association-usage, | </tr> | |||
| limited to the syntax of a 'token' as | </thead> | |||
| defined in RFC4566. | <tbody> | |||
| <tr> | ||||
| <td><media></td> | ||||
| <td>"application"</td> | ||||
| </tr> | ||||
| ]]></artwork> | <tr> | |||
| </figure> | <td><proto></td> | |||
| </section> | <td>"UDP/DTLS/SCTP" or "TCP/DTLS/SCTP"</td> | |||
| </tr> | ||||
| <tr> | ||||
| <td><port></td> | ||||
| <td>UDP port number (for "UDP/DTLS/SCTP")<br/>TCP port number (for "TCP/DT | ||||
| LS/SCTP")</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td><fmt></td> | ||||
| <td>A string denoting the association-usage, limited to the syntax of a | ||||
| "token" as defined in RFC 4566</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section title="Example"> | ||||
| <figure> | ||||
| <artwork><![CDATA[ | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Example</name> | ||||
| <sourcecode type="sdp"> | ||||
| m=application 12345 UDP/DTLS/SCTP webrtc-datachannel | m=application 12345 UDP/DTLS/SCTP webrtc-datachannel | |||
| a=sctp-port:5000 | a=sctp-port:5000 | |||
| a=max-message-size:100000 | a=max-message-size:100000</sourcecode> | |||
| ]]></artwork> | <aside> | |||
| </figure> | <t> | |||
| <t> | NOTE: "webrtc-datachannel" indicates the WebRTC Data Channel | |||
| NOTE: 'webrtc-datachannel' indicates the WebRTC Data Channel Estab | Establishment Protocol defined in <xref target="RFC8832" | |||
| lishment Protocol | format="default"/>. | |||
| defined in <xref target="I-D.ietf-rtcweb-data-protocol"/>. | </t> | |||
| </t> | </aside> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="attr-sctp-port" numbered="true" toc="default"> | ||||
| <section title="SDP 'sctp-port' Attribute" anchor="attr-sctp-port"> | <name>SDP "sctp-port" Attribute</name> | |||
| <section title="General" anchor="attr-sctp-port-gen"> | <section anchor="attr-sctp-port-gen" numbered="true" toc="default"> | |||
| <t> | <name>General</name> | |||
| This section defines a new SDP media-level attribute, 'sctp-port'. | <t> | |||
| The attribute can be associated with an SDP media description (m- | This section defines a new SDP media-level attribute, | |||
| line) | "sctp-port". The attribute can be associated with an SDP media | |||
| with a 'UDP/DTLS/SCTP' or a 'TCP/DTLS/SCTP' proto value. In that c | description ("m=" line) with a "UDP/DTLS/SCTP" or a | |||
| ase | "TCP/DTLS/SCTP" proto value. In that case, the "m=" line port | |||
| the m- line port value indicates the port of the underlying transp | value indicates the port of the underlying transport-layer | |||
| ort layer | protocol (UDP or TCP), and the "sctp-port" value indicates the | |||
| protocol (UDP or TCP), and the 'sctp-port' value indicates the SCT | SCTP port. | |||
| P port. | </t> | |||
| </t> | <t> | |||
| <t> | No default value is defined for the SDP "sctp-port" | |||
| No default value is defined for the SDP sctp-port attribute. There | attribute. Therefore, if the attribute is not present, the | |||
| fore, if | associated "m=" line <bcp14>MUST</bcp14> be considered invalid. | |||
| the attribute is not present, the associated m- line MUST be consi | </t> | |||
| dered invalid. | <aside> | |||
| </t> | <t> | |||
| <t> | NOTE: This specification only defines the usage of the SDP | |||
| NOTE: This specification only defines the usage of the SDP 'sctp-p | "sctp-port" attribute when associated with an "m=" line containing | |||
| ort' | one of the following proto values: "UDP/DTLS/SCTP" or | |||
| attribute when associated with an m- line containing one of the fo | "TCP/DTLS/SCTP". Usage of the attribute with other proto values | |||
| llowing proto | needs to be defined in a separate specification. | |||
| values: 'UDP/DTLS/SCTP' or 'TCP/DTLS/SCTP'. Usage of the attribute | </t> | |||
| with other | </aside> | |||
| proto values needs to be defined | ||||
| in a separate specification. | ||||
| </t> | ||||
| </section> | </section> | |||
| <section title="Syntax" anchor="attr-sctp-port-syn"> | <section anchor="attr-sctp-port-syn" numbered="true" toc="default"> | |||
| <t> | <name>Syntax</name> | |||
| [RFC EDITOR NOTE: Please replace RFCXXXX with the RFC number | <t> | |||
| of this document.] | The definition of the SDP "sctp-port" attribute is: | |||
| </t> | </t> | |||
| <t> | ||||
| The definition of the SDP 'sctp-port' attribute is: | ||||
| </t> | ||||
| <figure> | ||||
| <artwork><![CDATA[ | ||||
| Attribute name: sctp-port | <dl> | |||
| Type of attribute: media | <dt>Attribute name:</dt> | |||
| Mux category: CAUTION | <dd>sctp-port</dd> | |||
| Subject to charset: No | ||||
| Purpose: Indicate the SCTP port value associated with | ||||
| the SDP Media Description. | ||||
| Appropriate values: Integer | ||||
| Contact name: Christer Holmberg | ||||
| Contact e-mail: christer.holmberg@ericsson.com | ||||
| Reference: RFCXXXX | ||||
| Syntax: | <dt>Type of attribute:</dt> | |||
| <dd>media</dd> | ||||
| sctp-port-value = 1*5<DIGIT defined in RFC4566> | <dt>Mux category:</dt> | |||
| <dd>CAUTION</dd> | ||||
| The SCTP port range is between 0 and 65535 (both included). | <dt>Subject to charset:</dt> | |||
| Leading zeroes MUST NOT be used. | <dd>No</dd> | |||
| Example: | <dt>Purpose:</dt> | |||
| <dd>Indicate the SCTP port value associated with the SDP media | ||||
| description.</dd> | ||||
| a=sctp-port:5000 | <dt>Appropriate values:</dt> | |||
| <dd>Integer</dd> | ||||
| <dt>Contact name:</dt> | ||||
| <dd><t><contact fullname="Christer Holmberg"/></t></dd> | ||||
| <dt>Contact e-mail:</dt> | ||||
| <dd>christer.holmberg@ericsson.com</dd> | ||||
| <dt>Reference:</dt> | ||||
| <dd>RFC 8841</dd> | ||||
| <dt>Syntax:</dt> | ||||
| <dd> | ||||
| <sourcecode type="abnf"> | ||||
| sctp-port-value = 1*5(DIGIT) ; DIGIT defined in RFC 4566 | ||||
| </sourcecode> | ||||
| </dd> | ||||
| </dl> | ||||
| <t>The SCTP port range is between 0 and 65535 (both included). | ||||
| Leading zeroes <bcp14>MUST NOT</bcp14> be used.</t> | ||||
| <t>Example:</t> | ||||
| <sourcecode type="sdp"> | ||||
| a=sctp-port:5000 | ||||
| </sourcecode> | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| </section> | </section> | |||
| <section title="Mux Category" anchor="attr-sctp-port-mux"> | <section anchor="attr-sctp-port-mux" numbered="true" toc="default"> | |||
| <t> | <name>Mux Category</name> | |||
| The mux category <xref target="I-D.ietf-mmusic-sdp-mux-attributes" | <t> | |||
| /> for | The mux category <xref target="RFC8859" format="default"/> for | |||
| the SDP 'sctp-port' attribute is CAUTION. | the SDP "sctp-port" attribute is CAUTION. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| As the usage of multiple SCTP associations on top of a single | As the usage of multiple SCTP associations on top of a single | |||
| DTLS association is outside the scope of this specification, | DTLS association is outside the scope of this specification, | |||
| no mux rules are specified for the 'UDP/DTLS/SCTP' and | no mux rules are specified for the "UDP/DTLS/SCTP" and | |||
| 'TCP/DTLS/SCTP' proto values. Future extensions, that define | "TCP/DTLS/SCTP" proto values. Future extensions that define | |||
| how to negotiate multiplexing of multiple SCTP associations of top of | how to negotiate multiplexing of multiple SCTP associations of top of | |||
| a single DTLS association, need to also define the mux rules for t he | a single DTLS association need to also define the mux rules for th e | |||
| attribute. | attribute. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="attr-max-message-size" numbered="true" toc="default"> | ||||
| <section title="SDP 'max-message-size' Attribute" anchor="attr-max-message-siz | <name>SDP "max-message-size" Attribute</name> | |||
| e"> | <section anchor="attr-max-message-size-gen" numbered="true" toc="default"> | |||
| <section title="General" anchor="attr-max-message-size-gen"> | <name>General</name> | |||
| <t> | <t> | |||
| This section defines a new SDP media-level attribute, 'max-message | This section defines a new SDP media-level attribute, "max-message | |||
| -size'. | -size". | |||
| The attribute can be associated with an m- line to indicate the ma | The attribute can be associated with an "m=" line to indicate the | |||
| ximum | maximum | |||
| SCTP user message size (indicated in bytes) that an SCTP endpoint is willing to | SCTP user message size (indicated in bytes) that an SCTP endpoint is willing to | |||
| receive on the SCTP association associated with the m- line. Diffe rent | receive on the SCTP association associated with the "m=" line. Dif ferent | |||
| attribute values can be used in each direction. | attribute values can be used in each direction. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| An SCTP endpoint MUST NOT send a SCTP user message with a message | An SCTP endpoint <bcp14>MUST NOT</bcp14> send a SCTP user message | |||
| size | with a message size | |||
| that is larger than the maximum size indicated by the peer, as it | that is larger than the maximum size indicated by the peer, as it | |||
| cannot be assumed that the peer would accept such message. | cannot be assumed that the peer would accept such a message. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| If the SDP 'max-message-size' attribute contains a maximum message | If the SDP "max-message-size" attribute contains a maximum message | |||
| size | size | |||
| value of zero, it indicates the SCTP endpoint will handle messages | value of zero, it indicates that the SCTP endpoint will handle | |||
| of any size, | messages of any size, | |||
| subject to memory capacity etc. | subject to memory capacity, etc. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| If the SDP 'max-message-size' attribute is not present, the defaul | If the SDP "max-message-size" attribute is not present, the defaul | |||
| t value is 64K. | t value is 64K. | |||
| </t> | </t> | |||
| <t> | <aside> | |||
| NOTE: This specification only defines the usage of the SDP 'max-me | <t> | |||
| ssage-size' | NOTE: This specification only defines the usage of the SDP "max-me | |||
| attribute when associated with an m- line containing one of the fo | ssage-size" | |||
| llowing proto | attribute when associated with an "m=" line containing one of the | |||
| values: 'UDP/DTLS/SCTP' or 'TCP/DTLS/SCTP'. | following proto | |||
| values: "UDP/DTLS/SCTP" or "TCP/DTLS/SCTP". | ||||
| Usage of the attribute with other proto values needs to be defined | Usage of the attribute with other proto values needs to be defined | |||
| in a separate specification. | in a separate specification. | |||
| </t> | </t> | |||
| </aside> | ||||
| </section> | </section> | |||
| <section title="Syntax" anchor="attr-max-message-size-syn"> | <section anchor="attr-max-message-size-syn" numbered="true" toc="default"> | |||
| <t> | <name>Syntax</name> | |||
| [RFC EDITOR NOTE: Please replace RFCXXXX with the RFC number | <t> | |||
| of this document.] | The definition of the SDP "max-message-size" attribute is: | |||
| </t> | </t> | |||
| <t> | ||||
| The definition of the SDP 'max-message-size' attribute is: | ||||
| </t> | ||||
| <figure> | ||||
| <artwork><![CDATA[ | ||||
| Attribute name: max-message-size | <dl> | |||
| Type of attribute: media | <dt>Attribute name:</dt> | |||
| Mux category: CAUTION | <dd>max-message-size</dd> | |||
| Subject to charset: No | ||||
| Purpose: Indicate the maximum message size | ||||
| (indicated in bytes) that an SCTP | ||||
| endpoint is willing to receive on the | ||||
| SCTP association associated with the SDP | ||||
| Media Description. | ||||
| Appropriate values: Integer | ||||
| Contact name: Christer Holmberg | ||||
| Contact e-mail: christer.holmberg@ericsson.com | ||||
| Reference: RFCXXXX | ||||
| Syntax: | <dt>Type of attribute:</dt> | |||
| <dd>media</dd> | ||||
| max-message-size-value = 1*<DIGIT defined in RFC4566> | <dt>Mux category:</dt> | |||
| <dd>CAUTION</dd> | ||||
| Leading zeroes MUST NOT be used. | <dt>Subject to charset:</dt> | |||
| <dd>No</dd> | ||||
| Example: | <dt>Purpose:</dt> | |||
| <dd>Indicate the maximum message size (indicated in bytes) that an SCTP | ||||
| endpoint is willing to receive on the SCTP association associated with | ||||
| the SDP media description.</dd> | ||||
| a=max-message-size:100000 | <dt>Appropriate values:</dt> | |||
| <dd>Integer</dd> | ||||
| <dt>Contact name:</dt> | ||||
| <dd><t><contact fullname="Christer Holmberg"/></t></dd> | ||||
| <dt>Contact e-mail:</dt> | ||||
| <dd>christer.holmberg@ericsson.com</dd> | ||||
| <dt>Reference:</dt> | ||||
| <dd>RFC 8841</dd> | ||||
| <dt>Syntax:</dt> | ||||
| <dd> | ||||
| <sourcecode type="abnf"> | ||||
| max-message-size-value = 1*DIGIT ; DIGIT defined in RFC 4566 | ||||
| </sourcecode> | ||||
| </dd> | ||||
| </dl> | ||||
| <t>Leading zeroes <bcp14>MUST NOT</bcp14> be used.</t> | ||||
| <t>Example:</t> | ||||
| <sourcecode type="sdp"> | ||||
| a=max-message-size:100000 | ||||
| </sourcecode> | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| </section> | </section> | |||
| <section title="Mux Category" anchor="attr-max-message-size-mux"> | <section anchor="attr-max-message-size-mux" numbered="true" toc="default"> | |||
| <t> | <name>Mux Category</name> | |||
| The mux category for the SDP 'max-message-size' attribute | <t> | |||
| The mux category for the SDP "max-message-size" attribute | ||||
| is CAUTION. | is CAUTION. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| As the usage of multiple SCTP associations on top of a single | As the usage of multiple SCTP associations on top of a single | |||
| DTLS association is outside the scope of this specification, | DTLS association is outside the scope of this specification, | |||
| no mux rules are specified for the 'UDP/DTLS/SCTP' and | no mux rules are specified for the "UDP/DTLS/SCTP" and | |||
| 'TCP/DTLS/SCTP' proto values. | "TCP/DTLS/SCTP" proto values. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="sec-udp-dtls-sctp" numbered="true" toc="default"> | ||||
| <section title="UDP/DTLS/SCTP Transport Realization" anchor="sec-udp-dtls-sctp | <name>UDP/DTLS/SCTP Transport Realization</name> | |||
| "> | ||||
| <t> | <t> | |||
| The UDP/DTLS/SCTP transport is realized as described below: | The UDP/DTLS/SCTP transport is realized as described below: | |||
| </t> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| <list style="symbols"> | <li> | |||
| <t> | ||||
| SCTP on top of DTLS is realized according to the procedures | SCTP on top of DTLS is realized according to the procedures | |||
| defined in <xref target="I-D.ietf-tsvwg-sctp-dtls-encaps"/>; a | defined in <xref target="RFC8261" format="default"/>; and | |||
| nd | </li> | |||
| </t> | <li> | |||
| <t> | ||||
| DTLS on top of UDP is realized according to the procedures in | DTLS on top of UDP is realized according to the procedures in | |||
| defined in <xref target="RFC6347"/>. | defined in <xref target="RFC6347" format="default"/>. | |||
| </t> | </li> | |||
| </list> | </ul> | |||
| </t> | <aside> | |||
| <t> | <t> | |||
| NOTE: While <xref target="I-D.ietf-tsvwg-sctp-dtls-encaps"/> allows | NOTE: While <xref target="RFC8261" format="default"/> allows | |||
| multiple SCTP associations on top of a single DTLS association, | multiple SCTP associations on top of a single DTLS association, | |||
| the procedures in this specification only support the negotiation of a single | the procedures in this specification only support the negotiation of a single | |||
| SCTP association on top of any given DTLS association. | SCTP association on top of any given DTLS association. | |||
| </t> | </t> | |||
| </section> | </aside> | |||
| <section title="TCP/DTLS/SCTP Transport Realization" anchor="sec-tcp-dtls-sctp | </section> | |||
| "> | <section anchor="sec-tcp-dtls-sctp" numbered="true" toc="default"> | |||
| <name>TCP/DTLS/SCTP Transport Realization</name> | ||||
| <t> | <t> | |||
| The TCP/DTLS/SCTP transport is realized as described below: | The TCP/DTLS/SCTP transport is realized as described below: | |||
| </t> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| <list style="symbols"> | <li> | |||
| <t> | ||||
| SCTP on top of DTLS is realized according to the procedures | SCTP on top of DTLS is realized according to the procedures | |||
| defined in <xref target="I-D.ietf-tsvwg-sctp-dtls-encaps"/>; a | defined in <xref target="RFC8261" format="default"/>; and | |||
| nd | </li> | |||
| </t> | <li> | |||
| <t> | DTLS on top of TCP is realized using the framing method defined in | |||
| DTLS on top of TCP is realized using the framing method define | <xref target="RFC4571" format="default"/>, with DTLS packets being | |||
| d in | sent and received | |||
| <xref target="RFC4571"/>, with DTLS packets being sent and rec | instead of RTP/RTCP packets using the shim defined in <xref | |||
| eived | target="RFC4571" format="default"/>. The length field defined in | |||
| instead of RTP/RTCP packets using the shim defined in <xref ta | <xref target="RFC4571" format="default"/> precedes each DTLS | |||
| rget="RFC4571"/>, | message, and SDP signaling is done according to the procedures | |||
| so that length field defined in <xref target="RFC4571"/> | defined in this specification. | |||
| precedes each DTLS message, and SDP signaling according to the | </li> | |||
| procedures | </ul> | |||
| defined in this specification. | <aside> | |||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | <t> | |||
| NOTE: TLS on top of TCP, without using the framing method defined in | NOTE: TLS on top of TCP, without using the framing method defined in | |||
| <xref target="RFC4571"/> is outside the scope of this specification. | <xref target="RFC4571" format="default"/>, is outside the scope of thi s specification. | |||
| A separate proto value would need to be registered for such transport realization. | A separate proto value would need to be registered for such transport realization. | |||
| </t> | </t> | |||
| </section> | </aside> | |||
| <section title="Association And Connection Management" anchor="sec-con-mgmt"> | </section> | |||
| <section title="General" anchor="sec-con-mgmt-gen"> | <section anchor="sec-con-mgmt" numbered="true" toc="default"> | |||
| <t> | <name>Association and Connection Management</name> | |||
| This section describes how to manage an SCTP association, DTLS ass | <section anchor="sec-con-mgmt-gen" numbered="true" toc="default"> | |||
| ociation | <name>General</name> | |||
| <t> | ||||
| This section describes how to manage an SCTP association, DTLS ass | ||||
| ociation, | ||||
| and TCP connection using SDP attributes. | and TCP connection using SDP attributes. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The SCTP association, the DTLS association and the TCP connection | The SCTP association, the DTLS association, and the TCP | |||
| are managed independently | connection are managed independently | |||
| from each other. Each can be established and closed without impact | from each other. Each can be established and closed without impacting | |||
| ing others. | others. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The detailed SDP Offer/Answer <xref target="RFC3264"/> procedures | The detailed SDP offer/answer <xref target="RFC3264" | |||
| for the SDP attributes | format="default"/> procedures for the SDP attributes | |||
| are described in <xref target="sec-sdp-oa"/>. | are described in <xref target="sec-sdp-oa" format="default"/>. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section title="SDP sendrecv/sendonly/recvonly/inactive Attribute" anchor= | <section anchor="sec-con-mgmt-direction" numbered="true" toc="default"> | |||
| "sec-con-mgmt-direction"> | <name>SDP "sendrecv"/"sendonly"/"recvonly"/"inactive" Attributes</name> | |||
| <t> | <t> | |||
| This specification does not define semantics for the SDP direction | This specification does not define semantics for the SDP direction | |||
| attributes <xref target="RFC4566"/>. Unless semantics of these | attributes <xref target="RFC4566" format="default"/>. Unless the seman | |||
| attributes for an SCTP association usage have been defined, SDP di | tics of these | |||
| rection | attributes for an SCTP association usage have been defined, SDP direct | |||
| attributes MUST be ignored if present. | ion | |||
| </t> | attributes <bcp14>MUST</bcp14> be ignored if present. | |||
| </t> | ||||
| </section> | </section> | |||
| <section title="SCTP Association" anchor="sec-con-mgmt-sctp"> | <section anchor="sec-con-mgmt-sctp" numbered="true" toc="default"> | |||
| <t> | <name>SCTP Association</name> | |||
| <t> | ||||
| When an SCTP association is established, both SCTP endpoints | When an SCTP association is established, both SCTP endpoints | |||
| MUST initiate the SCTP association (i.e. both SCTP endpoints take | <bcp14>MUST</bcp14> initiate the SCTP association (i.e., both | |||
| the 'active' | SCTP endpoints take the "active" | |||
| role), and MUST use the same SCTP port as client port and server p | role). In addition, both endpoints <bcp14>MUST</bcp14> use the | |||
| ort (in order to | same SCTP port as client | |||
| prevent two separate SCTP associations from being established). | port and server port, in order to | |||
| </t> | prevent two separate SCTP associations from being established. | |||
| <t> | </t> | |||
| As both SCTP endpoints take the 'active' role, the SDP 'setup' | <t> | |||
| attribute <xref target="RFC4145"/> does not apply to SCTP associat | As both SCTP endpoints take the "active" role, the SDP "setup" | |||
| ion | attribute <xref target="RFC4145" format="default"/> does not apply to | |||
| establishment. However the 'setup' attribute does apply to establi | SCTP association | |||
| shment | establishment. However, the "setup" attribute does apply to establishm | |||
| of the underlying DTLS association and TCP connection. | ent | |||
| </t> | of the underlying DTLS association and TCP connection. | |||
| <t> | </t> | |||
| NOTE: The procedure above is different from TCP, where one endpoin | <aside> | |||
| t takes the 'active' | <t> | |||
| role, the other endpoint takes the 'passive' role, and only the 'a | NOTE: The procedure above is different from TCP, where one endpoint ta | |||
| ctive' endpoint initiates | kes the "active" | |||
| the TCP connection <xref target="RFC4145"/>. | role, the other endpoint takes the "passive" role, and only the | |||
| </t> | "active" endpoint initiates | |||
| <t> | the TCP connection <xref target="RFC4145" format="default"/>. | |||
| NOTE: When the SCTP association is established it is assumed that | </t> | |||
| any NAT traversal | </aside> | |||
| procedures for the underlying transport protocol (UDP or TCP) have | <aside> | |||
| successfully been | <t> | |||
| performed. | NOTE: When the SCTP association is established, it is assumed that any | |||
| </t> | NAT traversal | |||
| <t> | procedures for the underlying transport protocol (UDP or TCP) have suc | |||
| The SDP 'connection' attribute <xref target="RFC4145"/> does not a | cessfully been | |||
| pply to the SCTP | performed. | |||
| association. In order to trigger the closure of an existing SCTP a | </t> | |||
| ssociation, and | </aside> | |||
| establishment of a new SCTP association, the SDP 'sctp-port' attri | <t> | |||
| bute [<xref target="attr-sctp-port"/>] | The SDP "connection" attribute <xref target="RFC4145" | |||
| is used to indicate a new (different than the ones currently used) | format="default"/> does not apply to the SCTP | |||
| SCTP port. The existing | association. In order to trigger the closure of an existing SCTP assoc | |||
| SCTP association is closed, and the new SCTP association is establ | iation and | |||
| ished, if one or both | establishment of a new SCTP association, the SDP "sctp-port" | |||
| endpoints signal a new SCTP port. The 'connection' attribute does | attribute (<xref target="attr-sctp-port" format="default"/>) | |||
| apply to establishment | is used to indicate a new (different than the ones currently used) | |||
| of underlying TCP connections. | SCTP port. The existing | |||
| </t> | SCTP association is closed, and the new SCTP association is | |||
| <t> | established, if one or both | |||
| Alternatively, an SCTP association can be closed using the SDP 'sc | endpoints signal a new SCTP port. The "connection" attribute does | |||
| tp-port' attribute | apply to establishment | |||
| with a zero attribute value. Later, a new SCTP association can be | of underlying TCP connections. | |||
| established using the | </t> | |||
| procedures in this section for establishing an SCTP association. | ||||
| </t> | <t> | |||
| <t> | Alternatively, an SCTP association can be closed using the SDP | |||
| SCTP associations might be closed without SDP signalling, e.g, in | "sctp-port" attribute with an attribute value of zero. Later, a new SC | |||
| case of a failure. | TP | |||
| The procedures in this section MUST be followed to establish a new | association can be established using the procedures in this section | |||
| SCTP association. This requires a new SDP Offer/Answer exchange. | for establishing an SCTP association. | |||
| New (different than the ones currently used) SCTP ports MUST be us | </t> | |||
| ed by both | <t> | |||
| endpoints. | SCTP associations might be closed without SDP signaling -- for exa | |||
| </t> | mple, | |||
| <t> | in case of a failure. | |||
| The procedures in this section <bcp14>MUST</bcp14> be followed | ||||
| to establish a new | ||||
| SCTP association. This requires a new SDP offer/answer exchange. | ||||
| New (different than the ones currently used) SCTP ports | ||||
| <bcp14>MUST</bcp14> be used by both endpoints. | ||||
| </t> | ||||
| <aside> | ||||
| <t> | ||||
| NOTE: Closing and establishing a new SCTP association using the SD P | NOTE: Closing and establishing a new SCTP association using the SD P | |||
| 'sctp-port' attribute will not affect the state of the underlying | "sctp-port" attribute will not affect the state of the underlying | |||
| DTLS association. | DTLS association. | |||
| </t> | </t> | |||
| </aside> | ||||
| </section> | </section> | |||
| <section title="DTLS Association (UDP/DTLS/SCTP And TCP/DTLS/SCTP)" anchor | <section anchor="sec-con-mgmt-dtls" numbered="true" toc="default"> | |||
| ="sec-con-mgmt-dtls"> | <name>DTLS Association (UDP/DTLS/SCTP and TCP/DTLS/SCTP)</name> | |||
| <t> | <t> | |||
| A DTLS association is managed according to the procedures in <xref targe | A DTLS association is managed according to the procedures in <xref | |||
| t="I-D.ietf-mmusic-dtls-sdp"/>. | target="RFC8842" format="default"/>. | |||
| Hence, the SDP 'setup' attribute is used to negotiate the (D)TLS roles ( | Hence, the SDP "setup" attribute is used to negotiate the (D)TLS roles | |||
| 'client' and 'server') | ("client" and "server") | |||
| <xref target="RFC8122"/>. | <xref target="RFC8122" format="default"/>. | |||
| </t> | </t> | |||
| <t> | <aside> | |||
| NOTE: The SDP 'setup' attribute is used to negotiate both the DTLS roles | <t> | |||
| and the | NOTE: The SDP "setup" attribute is used to negotiate both the DTLS roles | |||
| TCP roles (<xref target="sec-con-mgmt-tcp"/>). | and the | |||
| </t> | TCP roles (<xref target="sec-con-mgmt-tcp" format="default"/>). | |||
| <t> | </t> | |||
| NOTE: As described in <xref target="RFC5245"/>, if the Interactive Conne | </aside> | |||
| ctivity | <aside> | |||
| Establishment (ICE) mechanism <xref target="RFC5245"/> is used, all ICE | <t> | |||
| candidates associated with a DTLS association are considered part of the | NOTE: As described in <xref target="RFC8445" format="default"/>, if | |||
| same DTLS association. | the Interactive Connectivity | |||
| Thus, a switch from one candidate pair to another candidate pair will no | Establishment (ICE) mechanism <xref target="RFC8445" | |||
| t trigger the establishment | format="default"/> is used, all ICE | |||
| of a new DTLS association. | candidates associated with a DTLS association are considered part of | |||
| </t> | the same DTLS association. | |||
| Thus, a switch from one candidate pair to another candidate pair | ||||
| will not trigger the establishment | ||||
| of a new DTLS association. | ||||
| </t> | ||||
| </aside> | ||||
| </section> | </section> | |||
| <section title="TCP Connection (TCP/DTLS/SCTP)" anchor="sec-con-mgmt-tcp"> | <section anchor="sec-con-mgmt-tcp" numbered="true" toc="default"> | |||
| <t> | <name>TCP Connection (TCP/DTLS/SCTP)</name> | |||
| The TCP connection is managed according to the procedures in <xref targe | <t> | |||
| t="RFC4145"/>. Hence, | The TCP connection is managed according to the procedures in <xref | |||
| the SDP 'setup' attribute is used to negotiate the TCP roles ('active' a | target="RFC4145" format="default"/>. Hence, | |||
| nd 'passive'), and | the SDP "setup" attribute is used to negotiate the TCP roles ("active" | |||
| the SDP 'connection' attribute is used to indicate whether to use an exi | and "passive"), and | |||
| sting TCP connection, | the SDP "connection" attribute is used to indicate whether to use an | |||
| or create a new one. The SDP 'setup' attribute 'holdconn' value MUST NOT | existing TCP connection | |||
| be used. | or create a new one. The SDP "setup" attribute "holdconn" value | |||
| </t> | <bcp14>MUST NOT</bcp14> be used. | |||
| <t> | </t> | |||
| NOTE: A change of the TCP roles will also trigger a closure of the DTLS | <aside> | |||
| association, and | <t> | |||
| establishment of a new DTLS association, according to the procedures in | NOTE: A change of the TCP roles will also trigger a closure of the | |||
| <xref target="I-D.ietf-mmusic-dtls-sdp"/>. | DTLS association and | |||
| </t> | establishment of a new DTLS association, according to the procedures | |||
| <t> | in <xref target="RFC8842" format="default"/>. | |||
| NOTE: As specified in <xref target="I-D.ietf-mmusic-dtls-sdp"/>, usage o | </t> | |||
| f the SDP 'setup' attribute | </aside> | |||
| 'holdconn' value is not allowed. Therefore this specification also forbi | <aside> | |||
| ds usage of the attribute | <t> | |||
| NOTE: As specified in <xref target="RFC8842" format="default"/>, usage | ||||
| of the SDP "setup" attribute | ||||
| "holdconn" value is not allowed. Therefore, this specification also | ||||
| forbids usage of the attribute | ||||
| value for TCP, as DTLS is transported on top of TCP. | value for TCP, as DTLS is transported on top of TCP. | |||
| </t> | </t> | |||
| </aside> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="sec-sdp-oa" numbered="true" toc="default"> | ||||
| <section title="SDP Offer/Answer Procedures" anchor="sec-sdp-oa"> | <name>SDP Offer/Answer Procedures</name> | |||
| <section title="General"> | <section numbered="true" toc="default"> | |||
| <t> | <name>General</name> | |||
| This section defines the SDP Offer/Answer <xref target="RFC3264"/> | <t> | |||
| This section defines the SDP Offer/Answer <xref target="RFC3264" format= | ||||
| "default"/> | ||||
| procedures for negotiating and establishing an SCTP-over-DTLS associatio n. | procedures for negotiating and establishing an SCTP-over-DTLS associatio n. | |||
| Unless explicitly stated, the procedures apply to both the | Unless explicitly stated, the procedures apply to both the | |||
| 'UDP/DTLS/SCTP' and 'TCP/DTLS/SCTP' m- line proto values. | "UDP/DTLS/SCTP" and "TCP/DTLS/SCTP" "m=" line proto values. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Each endpoint MUST associate one or more certificate fingerprints, using | Each endpoint <bcp14>MUST</bcp14> associate one or more certificate | |||
| the SDP 'fingerprint' attribute with the m- line, following the procedur | fingerprints using | |||
| es | the SDP "fingerprint" attribute with the "m=" line, following the | |||
| in <xref target="RFC8122"/>. | procedures in <xref target="RFC8122" format="default"/>. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The authentication certificates are interpreted and validated as | The authentication certificates are interpreted and validated as | |||
| defined in <xref target="RFC8122"/>. Self-signed | defined in <xref target="RFC8122" format="default"/>. Self-signed | |||
| certificates can be used securely, provided that the integrity of the | certificates can be used securely, provided that the integrity of the | |||
| SDP description is assured as defined in <xref target="RFC8122"/>. | SDP description is assured, as defined in <xref target="RFC8122" | |||
| </t> | format="default"/>. | |||
| <t> | </t> | |||
| Each endpoint MUST associate an SDP 'tls-id' attribute with the m- line, | ||||
| following the procedures in <xref target="I-D.ietf-mmusic-dtls-sdp"/>. | ||||
| </t> | ||||
| </section> | ||||
| <section title="Generating the Initial SDP Offer" anchor="sec-oa-initial-o | ||||
| ffer"> | ||||
| <t> | ||||
| When the offerer creates an initial offer, the offerer: | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t> | <t> | |||
| MUST associate an SDP setup attribute with the m- line; | Each endpoint <bcp14>MUST</bcp14> associate an SDP "tls-id" attribute | |||
| with the "m=" line, | ||||
| following the procedures in <xref target="RFC8842" format="default"/>. | ||||
| </t> | </t> | |||
| </section> | ||||
| <section anchor="sec-oa-initial-offer" numbered="true" toc="default"> | ||||
| <name>Generating the Initial SDP Offer</name> | ||||
| <t> | <t> | |||
| MUST associate an SDP 'sctp-port' attribute with the m- line; | When the offerer creates an initial offer, the offerer: | |||
| </t> | </t> | |||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <bcp14>MUST</bcp14> associate an SDP "setup" attribute with the "m=" l | ||||
| ine; | ||||
| </li> | ||||
| <li> | ||||
| <bcp14>MUST</bcp14> associate an SDP "sctp-port" attribute with the "m | ||||
| =" line; | ||||
| </li> | ||||
| <li> | ||||
| <bcp14>MUST</bcp14>, in the case of TCP/DTLS/SCTP, associate an SDP "c | ||||
| onnection" | ||||
| attribute, with a "new" attribute value, with the "m=" line; and | ||||
| </li> | ||||
| <li> | ||||
| <bcp14>MAY</bcp14> associate an SDP "max-message-size" attribute | ||||
| (<xref target="attr-max-message-size" format="default"/>) with the "m=" | ||||
| line. | ||||
| </li> | ||||
| </ul> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Generating the SDP Answer</name> | ||||
| <t> | <t> | |||
| MUST, in the case of TCP/DTLS/SCTP, associate an SDP 'connection' | When the answerer receives an offer that contains an "m=" line describ | |||
| attribute, with a 'new' attribute value, with the m- line; and | ing | |||
| an SCTP-over-DTLS association, if the answerer accepts the association | ||||
| , | ||||
| the answerer: | ||||
| </t> | </t> | |||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <bcp14>MUST</bcp14> insert a corresponding "m=" line in the | ||||
| answer, with an "m=" line | ||||
| proto value <xref target="RFC3264" format="default"/> identical to t | ||||
| he value in | ||||
| the offer; | ||||
| </li> | ||||
| <li> | ||||
| <bcp14>MUST</bcp14> associate an SDP "setup" attribute with the "m=" | ||||
| line; | ||||
| </li> | ||||
| <li> | ||||
| <bcp14>MUST</bcp14> associate an SDP "sctp-port" attribute with | ||||
| the "m=" line. If the | ||||
| offer contained a new (different than the one currently used) SCTP | ||||
| port value, the answerer <bcp14>MUST</bcp14> also associate a new | ||||
| SCTP port value. If | ||||
| the offer contained a zero SCTP port value, or if the answerer does | ||||
| not | ||||
| accept the SCTP association, the answerer <bcp14>MUST</bcp14> also a | ||||
| ssociate a zero | ||||
| SCTP port value; and | ||||
| </li> | ||||
| <li> | ||||
| <bcp14>MAY</bcp14> associate an SDP "max-message-size" attribute | ||||
| (<xref target="attr-max-message-size" format="default"/>) with the " | ||||
| m=" line. The | ||||
| attribute value in the answer is independent of the value | ||||
| (if present) in the corresponding "m=" line of the offer. | ||||
| </li> | ||||
| </ul> | ||||
| <t> | <t> | |||
| MAY associate an SDP 'max-message-size' attribute | Once the answerer has sent the answer: | |||
| [<xref target="attr-max-message-size" />] with the m- line. | ||||
| </t> | </t> | |||
| </list> | <ul spacing="normal"> | |||
| </t> | <li> | |||
| </section> | in the case of TCP/DTLS/SCTP, if a TCP connection has not yet | |||
| <section title="Generating the SDP Answer"> | been established or an existing TCP connection is to be | |||
| <t> | closed and replaced by a new one, the answerer | |||
| When the answerer receives an offer, which contains an m- line d | <bcp14>MUST</bcp14> follow the procedures | |||
| escribing | in <xref target="RFC4145" format="default"/> for closing and | |||
| an SCTP-over-DTLS association, if the answerer accepts the assoc | establishing a TCP connection; | |||
| iation, | </li> | |||
| the answerer: | <li> | |||
| </t> | if a DTLS association has not yet been established or | |||
| <t> | ||||
| <list style="symbols"> | ||||
| <t> | ||||
| MUST insert a corresponding m- line in the answer, with | ||||
| an m- line | ||||
| proto value <xref target="RFC3264"/> identical to the va | ||||
| lue in | ||||
| the offer; | ||||
| </t> | ||||
| <t> | ||||
| MUST associate an SDP 'setup' attribute with the m- line | ||||
| ; | ||||
| </t> | ||||
| <t> | ||||
| MUST associate an SDP 'sctp-port' attribute with the m- | ||||
| line. If the | ||||
| offer contained a new (different than the one currently | ||||
| used) SCTP | ||||
| port value the answerer MUST also associate a new SCTP p | ||||
| ort value. If | ||||
| the offer contained a zero SCTP port value, or if the an | ||||
| swerer does not | ||||
| accept the SCTP association, the answerer MUST also asso | ||||
| ciate a zero | ||||
| SCTP port value; and | ||||
| </t> | ||||
| <t> | ||||
| MAY associate an SDP 'max-message-size' attribute | ||||
| [<xref target="attr-max-message-size" />] with the m- li | ||||
| ne. The | ||||
| attribute value in the answer is independent from the va | ||||
| lue | ||||
| (if present) in the corresponding m- line of the offer. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| Once the answerer has sent the answer the answerer: | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t> | ||||
| MUST, in the case of TCP/DTLS/SCTP, if a TCP connection has not yet | ||||
| been established, or if an existing TCP connection is to be | ||||
| closed and replaced by a new TCP connection, follow the procedures | ||||
| in <xref target="RFC4145"/> for closing and establishing a TCP conne | ||||
| ction; | ||||
| </t> | ||||
| <t> | ||||
| MUST, if a DTLS association has not yet been established, or if | ||||
| an existing DTLS association is to be closed and replaced by a | an existing DTLS association is to be closed and replaced by a | |||
| new DTLS association, follow the procedures in <xref target="I-D.iet | new one, the answerer <bcp14>MUST</bcp14> follow the | |||
| f-mmusic-dtls-sdp"/> | procedures in <xref target="RFC8842" format="default"/> | |||
| for closing the currently used, and establishing a new, DTLS associa | for closing the currently used DTLS association and establishing a | |||
| tion; and | new one; and | |||
| </t> | </li> | |||
| <t> | <li> | |||
| MUST, if an SCTP association has not yet been established, or if an | if an SCTP association has not yet been established or an | |||
| existing SCTP association is to be closed and replaced by a new | existing SCTP association is to be closed and replaced by a new | |||
| SCTP association, initiate the closing of the existing | one, the answerer <bcp14>MUST</bcp14> initiate the | |||
| SCTP association (if applicable) and establishment of the SCTP assoc | closing of the existing | |||
| iation. | SCTP association (if applicable) and establishment of the new | |||
| </t> | association. | |||
| </list> | </li> | |||
| </t> | </ul> | |||
| <t> | <t> | |||
| If the SDP 'sctp-port' attribute in the answer contains a zero attribute | If the SDP "sctp-port" attribute in the answer contains an attribute | |||
| value, the answerer MUST NOT establish an SCTP association. If an SCTP | value of zero, the answerer <bcp14>MUST NOT</bcp14> establish an SCTP as | |||
| association exists, the offerer MUST close it. | sociation. If an SCTP | |||
| </t> | association exists, the offerer <bcp14>MUST</bcp14> close it. | |||
| <t> | </t> | |||
| If the answerer does not accept the m- line in the offer, it MUST assign | <t> | |||
| a zero port value to the corresponding m- line in the answer, following | If the answerer does not accept the "m=" line in the offer, it <bcp14>MU | |||
| the | ST</bcp14> assign | |||
| procedures in <xref target="RFC3264"/>. In addition, the answerer MUST N | a zero port value to the corresponding "m=" line in the answer, followin | |||
| OT | g the | |||
| initiate the establishment of a TCP connection, a DTLS association or a | procedures in <xref target="RFC3264" format="default"/>. In addition, | |||
| DTLS association associated with the m- line. | the answerer <bcp14>MUST NOT</bcp14> | |||
| </t> | initiate the establishment of a TCP connection, a DTLS association, or a | |||
| DTLS association associated with the "m=" line. | ||||
| </t> | ||||
| </section> | </section> | |||
| <section title="Offerer Processing of the SDP Answer"> | <section numbered="true" toc="default"> | |||
| <t> | <name>Offerer Processing of the SDP Answer</name> | |||
| Once the offerer has received the answer the offerer: | <t> | |||
| </t> | Once the offerer has received the answer: | |||
| <t> | </t> | |||
| <list style="symbols"> | <ul spacing="normal"> | |||
| <t> | <li> | |||
| MUST, in the case of TCP/DTLS/SCTP, if a TCP connection has not yet | in the case of TCP/DTLS/SCTP, if a TCP connection has not yet | |||
| been established, or if an existing TCP connection is to be | been established or an existing TCP connection is to be | |||
| closed and replaced by a new TCP connection, follow the procedures | closed and replaced by a new one, the offerer <bcp14>MUST</bcp14> | |||
| in <xref target="RFC4145"/> for closing and establishing a TCP conne | follow the procedures | |||
| ction; | in <xref target="RFC4145" format="default"/> for closing and | |||
| </t> | establishing a TCP connection; | |||
| <t> | </li> | |||
| MUST, if a DTLS association has not yet been established, or if | <li> | |||
| if a DTLS association has not yet been established or | ||||
| an existing DTLS association is to be closed and replaced by a | an existing DTLS association is to be closed and replaced by a | |||
| new DTLS association, follow the procedures in <xref target="I-D.iet | new one, the offerer <bcp14>MUST</bcp14> follow the procedures in | |||
| f-mmusic-dtls-sdp"/> | <xref target="RFC8842" format="default"/> | |||
| for closing and establishing a DTLS association; and | for closing and establishing a DTLS association; and | |||
| </t> | </li> | |||
| <t> | <li> | |||
| MUST, if an SCTP association has not yet been established, or if an | if an SCTP association has not yet been established or an | |||
| existing SCTP association is to be closed and replaced by a new | existing SCTP association is to be closed and replaced by a new | |||
| SCTP association, initiate the closing of the existing | one, the offerer <bcp14>MUST</bcp14> initiate the closing of the | |||
| SCTP association (if applicable) and establishment of the SCTP assoc | existing SCTP association (if applicable) and establishment of the | |||
| iation. | new association. | |||
| </t> | </li> | |||
| </list> | </ul> | |||
| </t> | <t> | |||
| <t> | If the SDP "sctp-port" attribute in the answer contains an attribute | |||
| If the SDP 'sctp-port' attribute in the answer contains a zero attribute | value of zero, the offerer <bcp14>MUST NOT</bcp14> establish an SCTP | |||
| value, the offerer MUST NOT establish an SCTP association. If an SCTP | association. If, in addition, an SCTP | |||
| association exists in that case, the offerer MUST close it. | association exists, the offerer <bcp14>MUST</bcp14> close it. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| If the m- line in the answer contains a zero port value, the offerer | If the "m=" line in the answer contains a zero port value, the offerer | |||
| MUST NOT initiate the establishment a TCP connection, a DTLS association | <bcp14>MUST NOT</bcp14> initiate the establishment of a TCP | |||
| or an SCTP association associated with the m- line. If a TCP connection, | connection, a DTLS association, | |||
| or a DTLS association or an SCTP association exists in that case, the of | or an SCTP association associated with the "m=" line. If, in addition, | |||
| ferer MUST close it. | a TCP connection, | |||
| </t> | DTLS association, or SCTP association exists, the | |||
| offerer <bcp14>MUST</bcp14> close it. | ||||
| </t> | ||||
| </section> | </section> | |||
| <section title="Modifying the Session"> | <section numbered="true" toc="default"> | |||
| <t> | <name>Modifying the Session</name> | |||
| <t> | ||||
| When an offerer sends an updated offer, in order to modify a previously established | When an offerer sends an updated offer, in order to modify a previously established | |||
| SCTP association, it follows the procedures in <xref target="sec-oa-init | SCTP association, it follows the procedures in <xref | |||
| ial-offer" />, | target="sec-oa-initial-offer" format="default"/>, | |||
| with the following exceptions: | with the following exceptions: | |||
| </t> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| <list style="symbols"> | <li> | |||
| <t> | If the offerer wants to close an SCTP association and immediately | |||
| If the offerer wants to close an SCTP association, and immediately e | establish a new SCTP association, | |||
| stablish a new SCTP association, | it <bcp14>MUST</bcp14> associate an SDP "sctp-port" | |||
| the offerer MUST associate an SDP 'sctp-port' attribute with a new ( | attribute with a new (different than the | |||
| different than the | ||||
| one currently used) attribute value. This will not impact the underl ying | one currently used) attribute value. This will not impact the underl ying | |||
| DTLS association (and TCP connection in case of TCP/DTLS/SCTP). | DTLS association (or TCP connection, in the case of TCP/DTLS/SCTP). | |||
| </t> | </li> | |||
| <t> | <li> | |||
| If the offerer wants to close an SCTP association, without immediate | If the offerer wants to close an SCTP association without | |||
| ly establishing a new | immediately establishing a new | |||
| SCTP association, the offerer MUST associate an SDP 'sctp-port' attr | SCTP association, it <bcp14>MUST</bcp14> associate an SDP | |||
| ibute with a zero attribute | "sctp-port" attribute with an attribute | |||
| value. This will not impact the underlying DTLS association (and TCP | value of zero. This will not impact the underlying DTLS association | |||
| connection | (or | |||
| in case of TCP/DTLS/SCTP). | TCP connection, in the case of TCP/DTLS/SCTP). | |||
| </t> | </li> | |||
| <t> | <li> | |||
| If the offerer wants to establish an SCTP association, and another S | If the offerer wants to establish an SCTP association, and another | |||
| CTP association | SCTP association | |||
| was previously closed, the offerer MUST associate an SDP 'sctp-port' | was previously closed, the offerer <bcp14>MUST</bcp14> associate | |||
| attribute with | an SDP "sctp-port" attribute with | |||
| a new attribute value (different than the value associated with the | a new attribute value (different than the value associated with | |||
| previous SCTP association). | the previous SCTP association). | |||
| If the previous SCTP association was closed successfully following u | If the previous SCTP association was closed successfully following | |||
| se of an SDP 'sctp-port' attribute with a zero | use of an SDP "sctp-port" attribute with an | |||
| attribute value, the offerer MAY use the same attribute value for th | attribute value of zero, the offerer <bcp14>MAY</bcp14> use the same | |||
| e new SCTP association | attribute value for the new SCTP association | |||
| that was used with the previous SCTP association before it was close | that was used with the previous SCTP association before it was | |||
| d. This will not impact | closed. This will not impact | |||
| the underlying DTLS association (and TCP connection in case of TCP/D | the underlying DTLS association (or TCP connection, in the case of | |||
| TLS/SCTP). | TCP/DTLS/SCTP). | |||
| </t> | </li> | |||
| <t> | <li> | |||
| If the offerer wants to close an existing SCTP association, and the | If the offerer wants to close an existing SCTP association and the | |||
| underlying DTLS association (and the underlying TCP connection in ca | underlying DTLS association (and the underlying TCP connection, in | |||
| se of | the case of TCP/DTLS/SCTP), it <bcp14>MUST</bcp14> assign a zero port | |||
| TCP/DTLS/SCTP) it MUST assign a zero port value to the m- line assoc | value to | |||
| iated with the | the "m=" line associated with the | |||
| SCTP and DTLS associations (and TCP connection in case of TCP/DTLS/S | SCTP and DTLS associations (and TCP connection, in the case of TCP/D | |||
| CTP), | TLS/SCTP), | |||
| following the procedures in <xref target="RFC3264"/>. | following the procedures in <xref target="RFC3264" format="default"/ | |||
| </t> | >. | |||
| <t> | </li> | |||
| <li> | ||||
| NOTE: This specification does not define a mechanism for explicitly closing a DTLS | NOTE: This specification does not define a mechanism for explicitly closing a DTLS | |||
| association while maintaining the overlying SCTP association. Howeve r, if a DTLS | association while maintaining the overlying SCTP association. Howeve r, if a DTLS | |||
| association is closed and replaced with a new DTLS association, as a | association is closed and replaced with a new DTLS association as | |||
| result of some other action | a result of some other action | |||
| <xref target="I-D.ietf-mmusic-dtls-sdp"/>, the state of the SCTP ass | <xref target="RFC8842" format="default"/>, the state of the SCTP | |||
| ociation is not affected. | association is not affected. | |||
| </t> | </li> | |||
| </list> | </ul> | |||
| </t> | ||||
| <t> | <t> | |||
| The offer follows the procedures in <xref target="I-D.ietf-mmusic-dtls-s | The offerer follows the procedures in <xref target="RFC8842" | |||
| dp"/> regarding | format="default"/> regarding the DTLS association impacts when | |||
| the DTLS association impacts when modifying a session. | modifying a session. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| In the case of TCP/DTLS/SCTP, the offerer follows the procedures in | In the case of TCP/DTLS/SCTP, the offerer follows the procedures in | |||
| <xref target="RFC4145"/> regarding the TCP connection impacts when | <xref target="RFC4145" format="default"/> regarding the TCP connection i mpacts when | |||
| modifying a session. | modifying a session. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Multihoming Considerations"> | <name>Multihoming Considerations</name> | |||
| <t> | <t> | |||
| Multihoming is not supported when sending SCTP on top of DTLS, | Multihoming is not supported when sending SCTP on top of DTLS, | |||
| as DTLS does not expose address management of the underlying | as DTLS does not expose address management of the underlying | |||
| transport protocols (UDP or TCP) to its upper layer. | transport protocols (UDP or TCP) to its upper layer. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="NAT Considerations"> | <name>NAT Considerations</name> | |||
| <section title="General"> | <section numbered="true" toc="default"> | |||
| <t> | <name>General</name> | |||
| When SCTP-over-DTLS is used in NAT environment, it relies on the N | <t> | |||
| AT | When SCTP-over-DTLS is used in a NAT environment, it relies on the | |||
| NAT | ||||
| traversal procedures for the underlying transport protocol (UDP or TCP). | traversal procedures for the underlying transport protocol (UDP or TCP). | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section title="ICE Considerations"> | <section numbered="true" toc="default"> | |||
| <t> | <name>ICE Considerations</name> | |||
| When SCTP-over-DTLS is used with UDP based ICE candidates <xref ta | <t> | |||
| rget="RFC5245"/> | When SCTP-over-DTLS is used with UDP-based ICE candidates <xref | |||
| then the procedures for UDP/DTLS/SCTP [<xref target="sec-udp-dtls- | target="RFC8445" format="default"/>, | |||
| sctp"/>] are used. | then the procedures for UDP/DTLS/SCTP (<xref | |||
| </t> | target="sec-udp-dtls-sctp" format="default"/>) are used. | |||
| <t> | </t> | |||
| When SCTP-over-DTLS is used with TCP based ICE candidates <xref ta | <t> | |||
| rget="RFC6544"/> | When SCTP-over-DTLS is used with TCP-based ICE candidates <xref | |||
| then the procedures for TCP/DTLS/SCTP [<xref target="sec-tcp-dtls- | target="RFC6544" format="default"/>, | |||
| sctp"/>] are used. | then the procedures for TCP/DTLS/SCTP (<xref | |||
| </t> | target="sec-tcp-dtls-sctp" format="default"/>) are used. | |||
| <t> | </t> | |||
| <t> | ||||
| In ICE environments, during the nomination process, endpoints go t hrough multiple | In ICE environments, during the nomination process, endpoints go t hrough multiple | |||
| ICE candidate pairs, until the most preferred candidate pair is fo und. During | ICE candidate pairs until the most preferred candidate pair is fou nd. During | |||
| the nomination process, data can be sent as soon as the first work ing candidate | the nomination process, data can be sent as soon as the first work ing candidate | |||
| pair is found, but the nomination process still continues and sele | pair is found, but the nomination process still continues, and | |||
| cted candidate pairs | selected candidate pairs | |||
| can still change while data is sent. Furthermore, if endpoints roa | can still change while data is sent. Furthermore, if endpoints | |||
| m between networks, | roam between networks -- for instance, when a mobile endpoint switc | |||
| for instance when mobile endpoint switches from mobile connection | hes from mobile | |||
| to WiFi, endpoints will | connection to WiFi -- endpoints will | |||
| initiate an ICE restart, which will trigger a new nomination proce | initiate an ICE restart. This will trigger a new nomination | |||
| ss between the new set | process between the new set | |||
| of candidates and likely result in the new nominated candidate pai | of candidates, which will likely result in the new nominated candi | |||
| r. | date pair. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Implementations MUST treat all ICE candidate pairs associated with | Implementations <bcp14>MUST</bcp14> treat all ICE candidate pairs | |||
| associated with | ||||
| an SCTP association on top of a DTLS association as part of the sa me | an SCTP association on top of a DTLS association as part of the sa me | |||
| DTLS association. Thus, there will only be one SCTP handshake and one DTLS | DTLS association. Thus, there will only be one SCTP handshake and one DTLS | |||
| handshake even if there are multiple valid candidate pairs, and sh | handshake even if there are multiple valid candidate pairs; | |||
| ifting from one candidate | shifting from one candidate | |||
| pair to another, including switching between UDP to TCP candidate | pair to another, including switching between UDP and TCP | |||
| pairs, will not impact | candidate pairs, will not impact | |||
| the SCTP or DTLS associations. If new candidates are added, they w | the SCTP or DTLS associations. If new candidates are added, they | |||
| ill also be part of the | will also be part of the | |||
| same SCTP and DTLS associations. When transitioning between candid | same SCTP and DTLS associations. When transitioning between | |||
| ate pairs, different | candidate pairs, different | |||
| candidate pairs can be currently active in different directions an | candidate pairs can be currently active in different directions, | |||
| d implementations MUST | and implementations <bcp14>MUST</bcp14> | |||
| be ready to receive data on any of the candidates, even if this me | be ready to receive data on any of the candidates, even if this | |||
| ans sending and receiving | means sending and receiving | |||
| data using UDP/DTLS/SCTP and TCP/DTLS/SCTP at the same time in dif | data using UDP/DTLS/SCTP and TCP/DTLS/SCTP at the same time in | |||
| ferent directions. | different directions. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| In order to maximize the likelihood of interoperability between th e endpoints, all | In order to maximize the likelihood of interoperability between th e endpoints, all | |||
| ICE enabled SCTP-over-DTLS endpoints SHOULD implement support for | ICE-enabled SCTP-over-DTLS endpoints <bcp14>SHOULD</bcp14> | |||
| UDP/DTLS/SCTP. | implement support for UDP/DTLS/SCTP. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| When an SDP offer or answer is sent with multiple ICE candidates d | When an SDP offer or answer is sent with multiple ICE candidates | |||
| uring initial connection | during initial connection | |||
| negotiation or after ICE restart, UDP based candidates SHOULD be i | negotiation or after ICE restart, UDP-based candidates | |||
| ncluded and default | <bcp14>SHOULD</bcp14> be included, and the default | |||
| candidate SHOULD be chosen from one of those UDP candidates. The p | candidate <bcp14>SHOULD</bcp14> be chosen from one of those UDP | |||
| roto value MUST match | candidates. The proto value <bcp14>MUST</bcp14> match | |||
| the transport protocol associated with the default candidate. If U DP transport is used | the transport protocol associated with the default candidate. If U DP transport is used | |||
| for the default candidate, then 'UDP/DTLS/SCTP' proto value MUST b | for the default candidate, then the "UDP/DTLS/SCTP" proto value | |||
| e used. If TCP transport | <bcp14>MUST</bcp14> be used. If TCP transport | |||
| is used for the default candidate, then 'TCP/DTLS/SCTP' proto valu | is used for the default candidate, then the "TCP/DTLS/SCTP" proto | |||
| e MUST be used. | value <bcp14>MUST</bcp14> be used. | |||
| Note that under normal circumstances the proto value for offers an | Note that under normal circumstances, the proto value for offers | |||
| d answers sent during ICE | and answers sent during ICE | |||
| nomination SHOULD be 'UDP/DTLS/SCTP'. | nomination <bcp14>SHOULD</bcp14> be "UDP/DTLS/SCTP". | |||
| </t> | </t> | |||
| <t> | <t> | |||
| When a subsequent SDP offer or answer is sent after ICE nomination | When a subsequent SDP offer or answer is sent after ICE | |||
| is complete, and does not | nomination is complete, and it does not | |||
| initiate ICE restart, it will contain only the nominated ICE candi date pair. | initiate ICE restart, it will contain only the nominated ICE candi date pair. | |||
| In this case, the proto value MUST match the transport protocol as | In this case, the proto value <bcp14>MUST</bcp14> match the | |||
| sociated with the | transport protocol associated with the | |||
| nominated ICE candidate pair. If UDP transport is used for the nom inated pair, | nominated ICE candidate pair. If UDP transport is used for the nom inated pair, | |||
| then 'UDP/DTLS/SCTP' proto value MUST be used. If TCP transport is | then the "UDP/DTLS/SCTP" proto value <bcp14>MUST</bcp14> be | |||
| used for the | used. If TCP transport is used for the | |||
| nominated pair, then 'TCP/DTLS/SCTP' proto value MUST be used. Ple | nominated pair, then the "TCP/DTLS/SCTP" proto value | |||
| ase note that if an endpoint | <bcp14>MUST</bcp14> be used. Please note that if an endpoint | |||
| switches between TCP-based and UDP-based candidates during the nom | switches between TCP-based and UDP-based candidates during the | |||
| ination process the endpoint | nomination process, the endpoint | |||
| is not required to send an SDP offer for the sole purpose of keepi | is not required to send an SDP offer for the sole purpose of | |||
| ng the proto value of the | keeping the proto value of the | |||
| associated m- line in sync. | associated "m=" line in sync. | |||
| </t> | </t> | |||
| <t> | <aside> | |||
| NOTE: The text in the paragraph above only applies when the usage | <t> | |||
| of ICE | NOTE: The text in the paragraph above only applies when the usage of I | |||
| has been negotiated. If ICE is not used, the proto value MUST alwa | CE | |||
| ys reflect | has been negotiated. If ICE is not used, the proto value | |||
| the transport protocol used at any given time. | <bcp14>MUST</bcp14> always reflect | |||
| </t> | the transport protocol used at any given time. | |||
| </t> | ||||
| </aside> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Examples"> | <name>Examples</name> | |||
| <section title="Establishment of UDP/DTLS/SCTP association"> | <section numbered="true" toc="default"> | |||
| <figure> | <name>Establishment of UDP/DTLS/SCTP Association</name> | |||
| <artwork><![CDATA[ | ||||
| SDP Offer: | ||||
| m=application 54111 UDP/DTLS/SCTP webrtc-datachannel | ||||
| c=IN IP6 2001:DB8::A8FD | ||||
| a=tls-id:abc3de65cddef001be82 | ||||
| a=setup:actpass | ||||
| a=sctp-port:5000 | ||||
| a=max-message-size:100000 | ||||
| - The offerer indicates that the usage of the | <t>SDP Offer:</t> | |||
| <sourcecode type="sdp"> | ||||
| m=application 54111 UDP/DTLS/SCTP webrtc-datachannel | ||||
| c=IN IP6 2001:DB8::A8FD | ||||
| a=tls-id:abc3de65cddef001be82 | ||||
| a=setup:actpass | ||||
| a=fingerprint:SHA-256 \ | ||||
| 12:DF:3E:5D:49:6B:19:E5:7C:AB:4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF: \ | ||||
| 3E:5D:49:6B:19:E5:7C:AB:4A:AD | ||||
| a=sctp-port:5000 | ||||
| a=max-message-size:100000 | ||||
| </sourcecode> | ||||
| <ul> | ||||
| <li>The offerer indicates that the usage of the | ||||
| UDP/DTLS/SCTP association will be as defined | UDP/DTLS/SCTP association will be as defined | |||
| for the 'webrtc-datachannel' format value. | for the "webrtc-datachannel" format value.</li> | |||
| - The offerer UDP port value is 54111. | <li>The offerer UDP port value is 54111.</li> | |||
| - The offerer SCTP port value is 5000. | <li>The offerer SCTP port value is 5000.</li> | |||
| - The offerer indicates that it can take either the | <li>The offerer indicates that it can take either the | |||
| client or the server DTLS role. | client or the server DTLS role.</li> | |||
| </ul> | ||||
| SDP Answer: | <t> | |||
| SDP Answer:</t> | ||||
| <sourcecode type="sdp"> | ||||
| m=application 64300 UDP/DTLS/SCTP webrtc-datachannel | ||||
| c=IN IP6 2001:DB8::001D | ||||
| a=tls-id:dbc8de77cddef001be90 | ||||
| a=setup:passive | ||||
| a=fingerprint:SHA-256 \ | ||||
| 3F:82:18:3B:49:6B:19:E5:7C:AB:4A:AD:B9:B1:12:DF:3E:5D:12:DF:54:02: \ | ||||
| 49:6B:3E:5D:7C:AB:19:E5:AD:4A | ||||
| a=sctp-port:6000 | ||||
| a=max-message-size:100000 | ||||
| </sourcecode> | ||||
| m=application 64300 UDP/DTLS/SCTP webrtc-datachannel | <t> | |||
| c=IN IP6 2001:DB8::001D | Note that due to RFC formatting conventions, this document splits SDP | |||
| a=tls-id:dbc8de77cddef001be90 | across lines whose content would exceed 72 characters. A backslash | |||
| a=setup:passive | character marks where this line folding has taken place. This backslash and | |||
| a=sctp-port:6000 | its trailing CRLF and whitespace would not appear in actual SDP | |||
| a=max-message-size:100000 | content.</t> | |||
| - The answerer UDP port value is 64300. | <ul> | |||
| - The answerer SCTP port value is 6000. | <li>The answerer UDP port value is 64300.</li> | |||
| - The answerer takes the server DTLS role. | <li>The answerer SCTP port value is 6000.</li> | |||
| <li>The answerer takes the server DTLS role.</li> | ||||
| </ul> | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Security Considerations"> | <name>Security Considerations</name> | |||
| <t> | <t> | |||
| <xref target="RFC4566"/> defines general SDP security considerations, | <xref target="RFC4566" format="default"/> defines general SDP | |||
| while | security considerations, while | |||
| <xref target="RFC3264"/>, <xref target="RFC4145"/> and <xref target="R | <xref target="RFC3264" format="default"/>, <xref target="RFC4145" | |||
| FC8122"/> | format="default"/>, and <xref target="RFC8122" format="default"/> | |||
| define security considerations when using the SDP offer/answer mechani sm | define security considerations when using the SDP offer/answer mechani sm | |||
| to negotiate media streams. | to negotiate media streams. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| <xref target="RFC4960"/> defines general SCTP security considerations | <xref target="RFC4960" format="default"/> defines general SCTP securit | |||
| and <xref target="I-D.ietf-tsvwg-sctp-dtls-encaps"/> defines security | y considerations, | |||
| and <xref target="RFC8261" format="default"/> defines security | ||||
| considerations when using SCTP on top of DTLS. | considerations when using SCTP on top of DTLS. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| This specification does not introduce new security considerations in a ddition | This specification does not introduce new security considerations in a ddition | |||
| to those defined in the specifications listed above. | to those defined in the specifications listed above. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>IANA Considerations</name> | ||||
| <section title="IANA Considerations"> | <section anchor="iana-sdp-proto" toc="default" numbered="true"> | |||
| <section title="New SDP proto values" anchor="iana-sdp-proto" toc="default | <name>New SDP Proto Values</name> | |||
| "> | <t> | |||
| <t> | This document updates the "Session Description Protocol (SDP) | |||
| [RFC EDITOR NOTE: Please replace RFCXXXX with the RFC number of th | Parameters" registry, | |||
| is document.] | following the procedures in <xref target="RFC4566" format="default | |||
| </t> | "/>, | |||
| <t> | ||||
| This document updates the "Session Description Protocol (SDP) Para | ||||
| meters" registry, | ||||
| following the procedures in <xref target="RFC4566" pageno="false" | ||||
| format="default"/>, | ||||
| by adding the following values to the table in the SDP "proto" fie ld registry: | by adding the following values to the table in the SDP "proto" fie ld registry: | |||
| </t> | </t> | |||
| <texttable anchor="table_SDP_proto_values" title='SDP "proto" field va | <table anchor="table_SDP_proto_values" align="center"> | |||
| lues'> | <name>SDP "proto" Field Values</name> | |||
| <ttcol align='center'>Type</ttcol> | <thead> | |||
| <ttcol align='center'>SDP Name</ttcol> | <tr> | |||
| <ttcol align='center'>Reference</ttcol> | <th align="center">Type</th> | |||
| <c>proto</c> | <th align="center">SDP Name</th> | |||
| <c>UDP/DTLS/SCTP</c> | <th align="center">Reference</th> | |||
| <c>[RFCXXXX]</c> | </tr> | |||
| <c>proto</c> | </thead> | |||
| <c>TCP/DTLS/SCTP</c> | <tbody> | |||
| <c>[RFCXXXX]</c> | <tr> | |||
| </texttable> | <td align="center">proto</td> | |||
| </section> | <td align="center">UDP/DTLS/SCTP</td> | |||
| <td align="center">RFC 8841</td> | ||||
| <section title="New SDP Attributes" anchor="iana-sdp-attr" toc="default"> | </tr> | |||
| <section title="sctp-port" anchor="iana-sdp-attr-sctp-port" toc="defau | <tr> | |||
| lt"> | <td align="center">proto</td> | |||
| <t> | <td align="center">TCP/DTLS/SCTP</td> | |||
| This document defines a new SDP media-level attribute,'sctp-po | <td align="center">RFC 8841</td> | |||
| rt'. The | </tr> | |||
| details of the attribute are defined in <xref target="attr-sct | </tbody> | |||
| p-port-syn" | </table> | |||
| pageno="false" format="default"/>. | ||||
| </t> | ||||
| </section> | ||||
| <section title="max-message-size" anchor="iana-sdp-attr-max-msg-size" | ||||
| toc="default"> | ||||
| <t> | ||||
| This document defines a new SDP media-level attribute,'max-mes | ||||
| sage-size'. The | ||||
| details of the attribute are defined in <xref target="attr-max | ||||
| -message-size-syn" | ||||
| pageno="false" format="default"/>. | ||||
| </t> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section anchor="iana-sdp-attr" toc="default" numbered="true"> | ||||
| <section title="association-usage Name Registry" anchor="iana-assusage-reg | <name>New SDP Attributes</name> | |||
| istry" toc="default"> | <section anchor="iana-sdp-attr-sctp-port" toc="default" numbered="true"> | |||
| <name>sctp-port</name> | ||||
| <t> | <t> | |||
| [RFC EDITOR NOTE: Please replace RFCXXXX with the RFC number of th | This document defines a new SDP media-level attribute,"sctp-po | |||
| is document.] | rt". The | |||
| details of the attribute are defined in <xref | ||||
| target="attr-sctp-port-syn" format="default"/>. | ||||
| </t> | </t> | |||
| </section> | ||||
| <section anchor="iana-sdp-attr-max-msg-size" toc="default" numbered="tru | ||||
| e"> | ||||
| <name>max-message-size</name> | ||||
| <t> | <t> | |||
| This specification creates a new IANA registry, following the proc | This document defines a new SDP media-level | |||
| edures in | attribute,"max-message-size". The details of the attribute | |||
| <xref target="RFC5226"/>, for the namespace associated with the | are defined in <xref target="attr-max-message-size-syn" | |||
| 'UDP/DTLS/SCTP' and 'TCP/DTLS/SCTP' protocol identifiers. | format="default"/>. | |||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="iana-assusage-registry" toc="default" numbered="true"> | ||||
| <name>association-usage Name Registry</name> | ||||
| <t> | ||||
| Per this specification, a new IANA registry has been created, foll | ||||
| owing the procedures in | ||||
| <xref target="RFC8126" format="default"/>, for the namespace assoc | ||||
| iated with the | ||||
| "UDP/DTLS/SCTP" and "TCP/DTLS/SCTP" protocol identifiers. | ||||
| Each fmt value describes the usage of an entire SCTP association, including | Each fmt value describes the usage of an entire SCTP association, including | |||
| all SCTP streams associated with the SCTP association. | all SCTP streams associated with the SCTP association. | |||
| </t> | </t> | |||
| <t> | ||||
| NOTE: Usage indication of individual SCTP streams is outside the s | <aside> | |||
| cope of this | <t>NOTE: Usage indication of individual SCTP streams is outside th | |||
| specification. | e scope of this | |||
| </t> | specification.</t> | |||
| <t> | </aside> | |||
| The fmt value, "association-usage", used with these "proto" values | ||||
| is required. | <t> | |||
| It is defined in <xref target="m-line"/>. | The fmt value "association-usage" used with these "proto" values is re | |||
| </t> | quired. | |||
| <t> | It is defined in <xref target="m-line" format="default"/>. | |||
| </t> | ||||
| <t> | ||||
| As part of this registry, IANA maintains the following information : | As part of this registry, IANA maintains the following information : | |||
| </t> | </t> | |||
| <t> | ||||
| <list style='hanging'> | <dl newline="false" spacing="normal"> | |||
| <t hangText="association-usage name:">The identifier of the | <dt>association-usage name:</dt> | |||
| subprotocol, as will be used as the fmt value.</t> | <dd>The identifier of the subprotocol, as will be used as the fmt valu | |||
| <t hangText="association-usage reference:">A reference to the | e.</dd> | |||
| document in which the association-usage is defined.</t> | <dt>association-usage reference:</dt> | |||
| </list> | <dd>A reference to the document in which the association-usage is | |||
| </t> | defined.</dd> | |||
| <t> | </dl> | |||
| <t> | ||||
| association-usage names are to be subject to the "First Come First Served" | association-usage names are to be subject to the "First Come First Served" | |||
| IANA registration policy [RFC5226]. | IANA registration policy <xref target="RFC8126" format="default" / | |||
| </t> | >. | |||
| <t> | </t> | |||
| IANA is asked to add initial values to the registry. | <t> | |||
| </t> | IANA has added the following initial values to the registry. | |||
| <figure anchor="exempleIANA" title=""> | </t> | |||
| <artwork><![CDATA[ | ||||
| |----------------------------------------------------------| | <table anchor="IANA"> | |||
| | name | Reference | | <name>IANA Initial Values</name> | |||
| |----------------------------------------------------------| | <thead> | |||
| | webrtc-datachannel | draft-ietf-rtcweb-data-protocol-xx, | | <tr> | |||
| | | RFCXXX | | <th>Name</th> | |||
| |----------------------------------------------------------| | <th>Reference</th> | |||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>webrtc-datachannel</td> | ||||
| <td>RFC 8832, RFC 8841</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td></td> | ||||
| <td></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <!-- | ||||
| <t> | ||||
| [RFC EDITOR NOTE: Please hold the publication of this draft | [RFC EDITOR NOTE: Please hold the publication of this draft | |||
| until draft-ietf-rtcweb-data-protocol has been published as an RFC. | until draft-ietf-rtcweb-data-protocol has been published as an RFC. | |||
| Then, replace the reference to draft-ietf-rtcweb-data-protocol | Then, replace the reference to draft-ietf-rtcweb-data-protocol | |||
| with the RFC number.] | with the RFC number.] | |||
| </t> | ||||
| --> | ||||
| </section> | ||||
| </section> | ||||
| [RFC EDITOR NOTE: Please replace RFCXXXX with the RFC number | </middle> | |||
| of this document.] | <back> | |||
| ]]></artwork> | <references> | |||
| </figure> | <name>References</name> | |||
| </section> | <references> | |||
| </section> | <name>Normative References</name> | |||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.0793.xml"/> | ||||
| <xi:include | ||||
| href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC. | ||||
| 2119.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.8174.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.3264.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.4145.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.4566.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.4571.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.4960.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.8126.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.6347.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.6544.xml"/> | ||||
| <xi:include | ||||
| href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC. | ||||
| 8122.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.8261.xml"/> | ||||
| <section title="Acknowledgments"> | <!-- draft-ietf-mmusic-dtls-sdp (RFC 8842) --> | |||
| <t> | <reference anchor="RFC8842" target="https://www.rfc-editor.org/info/rfc8842"> | |||
| The authors wish to thank Harald Alvestrand, Randell Jesup, Paul Kyziv | ||||
| at, | ||||
| Michael Tuexen, Juergen Stoetzer-Bradler, Flemming Andreasen and Ari K | ||||
| eranen for | ||||
| their comments and useful feedback. Ben Campbell provided comments as | ||||
| part | ||||
| of his AD review. Brian Carpenter performed the Gen-ART review. | ||||
| </t> | ||||
| </section> | ||||
| <section title=""> | <front> | |||
| <t>[RFC EDITOR NOTE: Please remove this section when publishing]</t> | <title>Session Description Protocol (SDP) Offer/Answer Considerations for | |||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-25 | Datagram Transport Layer Security (DTLS) and Transport Layer Security (TLS)</tit | |||
| <list style="symbols"> | le> | |||
| <t>SDP 'dtls-id' attribute re-named to 'tls-id'.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-24 | ||||
| <list style="symbols"> | ||||
| <t>Minor editorial fix by Roman.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-23 | ||||
| <list style="symbols"> | ||||
| <t>Changes based on IESG review.</t> | ||||
| <t>- Proto value clarifications.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-22 | ||||
| <list style="symbols"> | ||||
| <t>Changes based on Gen-ART review by Brian Carpenter.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-21 | ||||
| <list style="symbols"> | ||||
| <t>Changes based on AD review by Ben Campbell.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-20 | ||||
| <list style="symbols"> | ||||
| <t>Informative reference to draft-ietf-rtcweb-data-protocol added. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-19 | ||||
| <list style="symbols"> | ||||
| <t>Changes based on WG chair comments from Flemming Andreasen.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-18 | ||||
| <list style="symbols"> | ||||
| <t>Changes based on WGLC comments from Paul Kyzivat.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-17 | ||||
| <list style="symbols"> | ||||
| <t>Removal of 'SCTP'.</t> | ||||
| <t>Document title changed.</t> | ||||
| <t>Disallow usage of SDP 'setup' attribute 'holdconn' value.</t> | ||||
| <t>Roman Shpount added as co-editor.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-15 | ||||
| <list style="symbols"> | ||||
| <t>Chapter about SCTP, DTLS and TCP association/connection managem | ||||
| ent modified.</t> | ||||
| <t>Removal of SCTP/DTLS.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-14 | ||||
| <list style="symbols"> | ||||
| <t>Changes based on WGLC comments from Magnus Westerlund.</t> | ||||
| <t>- ABNF clarification that token and port are defined in RFC4566 | ||||
| .</t> | ||||
| <t>- Specify 40 as maximum digit character length for the SDP max- | ||||
| message-size value.</t> | ||||
| <t>- Editorial clarification.</t> | ||||
| <t>Changes based on discussions at IETF#92.</t> | ||||
| <t>- Specify that all ICE candidate pairs belong to the same DTLS | ||||
| association.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-13 | ||||
| <list style="symbols"> | ||||
| <t>Changes based on comments from Paul Kyzivat.</t> | ||||
| <t>- Text preventing usage of well-known ports removed.</t> | ||||
| <t>- Editorial clarification.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-12 | ||||
| <list style="symbols"> | ||||
| <t>Mux category rules added for new SDP attributes.</t> | ||||
| <t>Reference to draft-ietf-mmusic-sdp-mux-attributes added.</t> | ||||
| <t>Changes based on comments from Roman Shpount:</t> | ||||
| <t>- Specify that fingerprint or setup roles must not be modified, | ||||
| unless underlying transport protocol is also modified.</t> | ||||
| <t>Changes based on comments from Ari Keranen:</t> | ||||
| <t>- Editorial corrections.</t> | ||||
| <t>Changes based on comments from Flemming Andreasen:</t> | ||||
| <t>- Clarify that, if UDP/DTLS/SCTP or TCP/DTLS/SCTP is used, | ||||
| the DTLS association is established before the SCTP associatio | ||||
| n.</t> | ||||
| <t>- Clarify that max-message-size value is given in bytes, and | ||||
| that different values can be used per direction.</t> | ||||
| <t>- Section on fmtp attribute removed.</t> | ||||
| <t>- Editorial corrections.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-11 | ||||
| <list style="symbols"> | ||||
| <t>Example added.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-10 | ||||
| <list style="symbols"> | ||||
| <t>SDP max-message-size attribute added to IANA considerations.</t | ||||
| > | ||||
| <t>Changes based on comments from Paul Kyzivat:</t> | ||||
| <t>- Text about max message size removed from fmtp attribute secti | ||||
| on.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-09 | ||||
| <list style="symbols"> | ||||
| <t>'DTLS/SCTP' split into 'UDP/DTLS/SCTP' and 'TCP/DTLS/SCTP'</t> | ||||
| <t>Procedures for realizing UDP/DTLS/SCTP- and TCP/DTLS/SCTP trans | ||||
| ports added.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Changes from draft-ietf-mmusic-sctp-sdp-08 | ||||
| <list style="symbols"> | ||||
| <t>Default SCTP port removed:</t> | ||||
| <t>- Usage of SDP sctp-port attribute mandatory.</t> | ||||
| <t>SDP max-message-size attribute defined:</t> | ||||
| <t>- Attribute definition.</t> | ||||
| <t>- SDP Offer/Answer procedures.</t> | ||||
| <t>Text about SDP direction attributes added.</t> | ||||
| <t>Text about TLS role determination added.</t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| </middle> | ||||
| <back> | <author initials="C." surname="Holmberg" fullname="Christer Holmberg"> | |||
| <references title="Normative References"> | <organization /> | |||
| <?rfc include="reference.RFC.0793"?> | </author> | |||
| <?rfc include="reference.RFC.2119"?> | ||||
| <?rfc include="reference.RFC.3264"?> | <author initials="R." surname="Shpount" fullname="Roman Shpount"> | |||
| <?rfc include="reference.RFC.4145"?> | <organization /> | |||
| <?rfc include="reference.RFC.4566"?> | </author> | |||
| <?rfc include="reference.RFC.4571"?> | ||||
| <?rfc include="reference.RFC.4960"?> | <date month="January" year="2021" /> | |||
| <?rfc include="reference.RFC.5226"?> | </front> | |||
| <?rfc include="reference.RFC.6347"?> | <seriesInfo name="RFC" value="8842" /> | |||
| <?rfc include="reference.RFC.6544"?> | <seriesInfo name="DOI" value="10.17487/RFC8842"/> | |||
| <?rfc include="reference.RFC.8122"?> | ||||
| <?rfc include="reference.I-D.draft-ietf-mmusic-dtls-sdp-24"?> | </reference> | |||
| <?rfc include="reference.I-D.draft-ietf-tsvwg-sctp-dtls-encaps-09"?> | ||||
| <?rfc include="reference.I-D.draft-ietf-mmusic-sdp-mux-attributes-16"?> | <!-- draft-ietf-mmusic-sdp-mux-attributes-17 (RFC 8859) --> | |||
| <reference anchor="RFC8859" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 859"> | ||||
| <front> | ||||
| <title>A Framework for Session Description Protocol (SDP) | ||||
| Attributes When Multiplexing</title> | ||||
| <author initials="S" surname="Nandakumar" fullname="Suhas Nandakumar | ||||
| "> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="January" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8859"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8859"/> | ||||
| </reference> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.8445.xml"/> | ||||
| <!-- draft-ietf-rtcweb-data-channel: 8831 --> | ||||
| <reference anchor="RFC8831" target="https://www.rfc-editor.org/info/rfc8831"> | ||||
| <front> | ||||
| <title>WebRTC Data Channels</title> | ||||
| <author initials="R" surname="Jesup" fullname="Randell Jesup"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S" surname="Loreto" fullname="Salvatore Loreto"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="M" surname="Tüxen" fullname="Michael Tüxen"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month='January' year='2021'/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8831"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8831"/> | ||||
| </reference> | ||||
| <!-- draft-ietf-mmusic-data-channel-sdpneg: 8864 --> | ||||
| <reference anchor="RFC8864" target="https://www.rfc-editor.org/info/rfc8864"> | ||||
| <front> | ||||
| <title>Negotiation Data Channels Using the Session Description | ||||
| Protocol (SDP)</title> | ||||
| <author fullname="Keith Drage" initials="K." surname="Drage"> | ||||
| <organization>Unaffiliated</organization> | ||||
| </author> | ||||
| <author fullname="Raju Makaraju" initials="M." surname="Makaraju"> | ||||
| <organization>Nokia</organization> | ||||
| </author> | ||||
| <author fullname="Richard Ejzak" initials="R." surname="Ejzak"> | ||||
| <organization>Unaffiliated</organization> | ||||
| </author> | ||||
| <author fullname="Jerome Marcon" initials="J." surname="Marcon"> | ||||
| <organization>Unaffiliated</organization> | ||||
| </author> | ||||
| <author fullname="Roni Even" initials="R." surname="Even" role="editor"> | ||||
| <organization>Huawei</organization> | ||||
| </author> | ||||
| <date month="January" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8864"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8864"/> | ||||
| </reference> | ||||
| <!-- draft-ietf-rtcweb-data-protocol: 8832 --> | ||||
| <reference anchor="RFC8832" target="https://www.rfc-editor.org/info/rfc8832"> | ||||
| <front> | ||||
| <title>WebRTC Data Channel Establishment Protocol</title> | ||||
| <author initials='R.' surname='Jesup' fullname='Randell Jesup'> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials='S.' surname='Loreto' fullname='Salvatore Loreto'> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials='M' surname='Tüxen' fullname='Michael Tüxen'> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month='January' year='2021'/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8832"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8832"/> | ||||
| </reference> | ||||
| </references> | ||||
| </references> | </references> | |||
| <references title="Informative References"> | ||||
| <?rfc include="reference.RFC.5245"?> | <section numbered="false" toc="default"> | |||
| <?rfc include="reference.I-D.draft-ietf-rtcweb-data-channel-13"?> | <name>Acknowledgements</name> | |||
| <?rfc include="reference.I-D.draft-ietf-mmusic-data-channel-sdpneg-12"?> | <t> | |||
| <?rfc include="reference.I-D.draft-ietf-rtcweb-data-protocol-09"?> | The authors wish to thank <contact fullname="Harald Alvestrand"/>, | |||
| </references> | <contact fullname="Randell Jesup"/>, <contact fullname="Paul | |||
| </back> | Kyzivat"/>, <contact fullname="Michael Tüxen"/>, <contact | |||
| fullname="Juergen Stoetzer-Bradler"/>, <contact fullname="Flemming | ||||
| Andreasen"/>, and <contact fullname="Ari Keränen"/> for their | ||||
| comments and useful feedback. <contact fullname="Ben Campbell"/> | ||||
| provided comments as part of his Area Director review. <contact | ||||
| fullname="Brian Carpenter"/> performed the Gen-ART review. | ||||
| </t> | ||||
| </section> | ||||
| </back> | ||||
| </rfc> | </rfc> | |||
| End of changes. 157 change blocks. | ||||
| 1225 lines changed or deleted | 1341 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||