One document matched: draft-ietf-rtcweb-data-channel-10.xml
<?xml version='1.0'?>
<?rfc symrefs='yes'?>
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd'>
<?rfc toc='yes' ?>
<?rfc compact='yes' ?>
<?rfc subcompact='no' ?>
<?rfc sortrefs='no' ?>
<?rfc strict='yes' ?>
<rfc category='std'
ipr='trust200902'
docName='draft-ietf-rtcweb-data-channel-10.txt'>
<front>
<title>WebRTC Data Channels</title>
<author initials='R.' surname='Jesup' fullname='Randell Jesup'>
<organization>Mozilla</organization>
<address>
<postal>
<street></street>
<code></code>
<city></city>
<country>US</country>
</postal>
<email>randell-ietf@jesup.org</email>
</address>
</author>
<author initials='S.' surname='Loreto' fullname='Salvatore Loreto'>
<organization>Ericsson</organization>
<address>
<postal>
<street>Hirsalantie 11</street>
<code>02420</code>
<city>Jorvas</city>
<country>FI</country>
</postal>
<email>salvatore.loreto@ericsson.com</email>
</address>
</author>
<author initials='M.' surname='Tuexen' fullname='Michael Tuexen'>
<organization abbrev='Muenster Univ. of Appl. Sciences'>
Muenster University of Applied Sciences</organization>
<address>
<postal>
<street>Stegerwaldstrasse 39</street>
<code>48565</code>
<city> Steinfurt</city>
<country>DE</country>
</postal>
<email>tuexen@fh-muenster.de</email>
</address>
</author>
<date />
<area>RAI</area>
<abstract>
<t>The Real-Time Communication in WEB-browsers working group is charged
to provide protocol support for direct interactive rich communication using
audio, video, and data between two peers' web-browsers.
This document specifies the non-SRTP media data transport aspects of the WebRTC
framework. It provides an architectural overview of how the Stream Control
Transmission Protocol (SCTP) is used in the WebRTC context as a generic
transport service allowing WEB-browsers to exchange generic data from peer to
peer.</t>
</abstract>
</front>
<middle>
<section title='Introduction'>
<t>Non-SRTP media data types in the context of WebRTC are handled by using SCTP
<xref target='RFC4960'/> encapsulated in DTLS <xref target='RFC6347'/>.</t>
<figure title='Basic stack diagram'
anchor='fig-stack'>
<artwork align='center'>
+----------+
| SCTP |
+----------+
| DTLS |
+----------+
| ICE/UDP |
+----------+
</artwork>
</figure>
<t>The encapsulation of SCTP over DTLS
(see <xref target='I-D.ietf-tsvwg-sctp-dtls-encaps'/>) over ICE/UDP
(see <xref target='RFC5245'/>) provides a NAT traversal
solution together with confidentiality, source authentication, and
integrity protected transfers.
This data transport service operates in parallel to the SRTP media transports,
and all of them can eventually share a single transport-layer port number.</t>
<t>SCTP as specified in <xref target='RFC4960'/> with the partial reliability
extension defined in <xref target='RFC3758'/> and the additional policies
defined in <xref target='I-D.ietf-tsvwg-sctp-prpolicies'/>
provides multiple streams natively with reliable, and the relevant
partially-reliable delivery modes for user messages.
Using the reconfiguration extension defined in <xref target='RFC6525'/>
allows to increase the number of streams during the lifetime of an SCTP
association and to reset individual SCTP streams.
Using <xref target='I-D.ietf-tsvwg-sctp-ndata'/> allows to interleave
large messages to avoid the monopolization and adds the support of
prioritizing of SCTP streams.</t>
<t>The remainder of this document is organized as follows:
<xref target='sec-use-cases'/> and <xref target='sec-req'/> provide use cases
and requirements for both unreliable and reliable peer to peer data channels;
<xref target='sec-p-a-2'/> discusses SCTP over DTLS over UDP;
<xref target='sec-sctp-usage'/> provides the specification of how SCTP should be
used by the WebRTC protocol framework for transporting non-SRTP media data
between WEB-browsers.</t>
</section>
<section title='Conventions'>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"
in this document are to be interpreted as described in
<xref target='RFC2119'/>.</t>
</section>
<section title='Use Cases'
anchor='sec-use-cases'>
<t>This section defines use cases specific to data channels.
For general use cases see
<xref target='I-D.ietf-rtcweb-use-cases-and-requirements'/>.</t>
<section title='Use Cases for Unreliable Data Channels'
anchor='sec-use-cases-unreliable'>
<t><list style='format U-C %d:' counter='UseCases'>
<t>A real-time game where position and object state information is
sent via one or more unreliable data channels.
Note that at any time there may be no SRTP media channels, or all SRTP media
channels may be inactive, and that there may also be reliable data channels
in use.</t>
<t>Providing non-critical information to a user about the reason for a state
update in a video chat or conference, such as mute state.</t>
</list></t>
</section>
<section title='Use Cases for Reliable Data Channels'
anchor='sec-use-cases-reliable'>
<t><list style='format U-C %d:' counter='UseCases'>
<t> A real-time game where critical state information needs to be
transferred, such as control information.
Such a game may have no SRTP media channels, or they may be inactive at any
given time, or may only be added due to in-game actions.</t>
<t>Non-realtime file transfers between people chatting.
Note that this may involve a large number of files to transfer sequentially
or in parallel, such as when sharing a folder of images or a directory of files.</t>
<t>Realtime text chat during an audio and/or video call with an individual
or with multiple people in a conference.</t>
<t>Renegotiation of the configuration of the PeerConnection.</t>
<t>Proxy browsing, where a browser uses data channels of a PeerConnection
to send and receive HTTP/HTTPS requests and data, for example to avoid local
Internet filtering or monitoring.</t>
</list></t>
</section>
</section>
<section title='Requirements'
anchor='sec-req'>
<t>This section lists the requirements for P2P data channels between
two browsers.</t>
<t><list style='format Req. %d:'>
<t>Multiple simultaneous data channels MUST be supported.
Note that there may be 0 or more SRTP media streams in parallel with the data
channels in the same PeerConnection, and the number and state (active/inactive)
of these SRTP media streams may change at any time.</t>
<t>Both reliable and unreliable data channels MUST be supported.</t>
<t>Data channels of a PeerConnection MUST be congestion controlled;
either individually, as a class, or in conjunction with the SRTP media streams
of the PeerConnection, to ensure that data channels don't cause congestion
problems for these SRTP media streams, and that the WebRTC PeerConnection as
a whole is fair with competing traffic such as TCP.</t>
<t>The application SHOULD be able to provide guidance as to the
relative priority of each data channel relative to each other,
and relative to the SRTP media streams.
This will interact with the congestion control algorithms.</t>
<t>Data channels MUST be secured; allowing for confidentiality,
integrity and source authentication.
See <xref target='I-D.ietf-rtcweb-security'/> and
<xref target='I-D.ietf-rtcweb-security-arch'/> for detailed info.</t>
<!--<t>Consent and NAT traversal mechanism: These are handled by the
PeerConnection's ICE <xref target='RFC5245'/> connectivity checks and
optional TURN servers.</t>-->
<t>Data channels MUST provide message fragmentation support such that
IP-layer fragmentation can be avoided no matter how large a message the
JavaScript application passes to be sent. It also MUST ensure that large
data channel transfers don't unduly delay traffic on other data
channels.</t>
<t>The data channel transport protocol MUST NOT encode local IP addresses
inside its protocol fields; doing so reveals potentially private information,
and leads to failure if the address is depended upon.</t>
<t>The data channel transport protocol SHOULD support unbounded-length "messages"
(i.e., a virtual socket stream) at the application layer, for such things as
image-file-transfer; Implementations might enforce a reasonable message size
limit.</t>
<t>The data channel transport protocol SHOULD avoid IP fragmentation. It
MUST support PMTU (Path MTU) discovery and MUST NOT rely on ICMP or ICMPv6
being generated or being passed back, especially for PMTU discovery.</t>
<t>It MUST be possible to implement the protocol stack in the user
application space.</t>
</list></t>
</section>
<section title='SCTP over DTLS over UDP Considerations'
anchor='sec-p-a-2'>
<t>The important features of SCTP in the WebRTC context are:
<list style='symbols'>
<t>Usage of a TCP-friendly congestion control.</t>
<t>The congestion control is modifiable for integration with the
SRTP media stream congestion control.</t>
<t>Support of multiple unidirectional streams, each providing its own
notion of ordered message delivery.</t>
<t>Support of ordered and out-of-order message delivery.</t>
<t>Supporting arbitrary large user messages by providing fragmentation
and reassembly.</t>
<t>Support of PMTU-discovery.</t>
<t>Support of reliable or partially reliable message transport.</t>
</list></t>
<t>SCTP multihoming will not be used in WebRTC.
The SCTP layer will simply act as if it were running on a single-homed host,
since that is the abstraction that the lower layer (a connection oriented,
unreliable datagram service) exposes.</t>
<t>The encapsulation of SCTP over DTLS defined in
<xref target='I-D.ietf-tsvwg-sctp-dtls-encaps'/> provides confidentiality,
source authenticated, and integrity protected transfers.
Using DTLS over UDP in combination with ICE enables middlebox traversal
in IPv4 and IPv6 based networks.
SCTP as specified in <xref target='RFC4960'/> MUST be used in
combination with the extension defined in <xref target='RFC3758'/> and
provides the following features for transporting non-SRTP media
data between browsers:
<list style='symbols'>
<t>Support of multiple unidirectional streams.</t>
<t>Ordered and unordered delivery of user messages.</t>
<t>Reliable and partial-reliable transport of user messages.</t>
</list></t>
<t>Each SCTP user message contains a Payload Protocol Identifier (PPID)
that is passed to SCTP by its upper layer on the sending side and
provided to its upper layer on the receiving side.
The PPID can be used to multiplex/demultiplex multiple upper layers over
a single SCTP association.
In the WebRTP context, the PPID is used to distinguish between
UTF-8 encoded user data,
binary encoded userdata and
the Data Channel Establishment Protocol defined in
<xref target='I-D.ietf-rtcweb-data-protocol'/>.
Please note that the PPID is not accessible via the Javascript API.</t>
<!--
<t>Moreover SCTP provides the possibility to transport different "protocols"
over multiple streams and associations using the PPID
(Payload Protocol Identifier).
An application can set a different PPID with each send call.
This allows the receiving application to look at this information
(as well as the stream id/seq) on receiving to know what type of protocol
the data payload has.</t>
-->
<t>The encapsulation of SCTP over DTLS, together with the SCTP features listed
above satisfies all the requirements listed in <xref target='sec-req'/>.</t>
<!--
<t>There are SCTP implementations for most Operating Systems in wide use:</t>
<t>
<list style='empty'>
<t>Linux (mainline kernel 2.6.36)</t>
<t>FreeBSD (release kernel 8.2)</t>
<t>Mac OS X</t>
<t>Windows (SctpDrv4)</t>
<t>Solaris (OpenSolaris 2009.06)</t>
<t>and a user-land SCTP implementation (based on the FreeBSD implementation).</t>
</list>
</t>
<section title='User Space versus Kernel Implementation'
anchor='sec-sctp-1'>
<t>Even though kernel implementations of SCTP are already available for most
platforms (see <xref target='sec-p-a-2'/> ), there are compelling reasons for
using an SCTP stack that works well in user land.</t>
<t>The main reason is deployability.</t>
<t>Web browsers supporting WebRTC are expected to run on a wide range of old
and new operating systems. They support operating systems 10 years old or more,
they run on mobile and desktop operating systems,
and they are highly portable to new operating systems.
This is achieved by having a fairly narrow portability layer to minimize
what needs to be supported on old operating systems and ported to new ones.
This creates a need to implement as much functionality as possible
inside the application instead of relying on the operating system.</t>
<t>As a user-land implementation of SCTP is available, this meets
requirement 12.</t>
</section>
-->
<t>The layering of protocols for WebRTC is shown in the following
<xref target='fig-sctp-layering'/>.</t>
<figure title='WebRTC protocol layers'
anchor='fig-sctp-layering'>
<artwork align='center'>
+------+------+------+
| DCEP | UTF-8|Binary|
| | data | data |
+------+------+------+
| SCTP |
+----------------------------------+
| STUN | SRTP | DTLS |
+----------------------------------+
| ICE |
+----------------------------------+
| UDP1 | UDP2 | ... |
+----------------------------------+
</artwork>
</figure>
<t>This stack (especially in contrast to DTLS over SCTP <xref target='RFC6083'/>
in combination with SCTP over UDP <xref target='RFC6951'/>)
has been chosen because it
<list style='symbols'>
<t>supports the transmission of arbitrary large user messages.</t>
<t>shares the DTLS connection with the SRTP media channels of the PeerConnection.</t>
<t>provides privacy for the SCTP control information.</t>
</list></t>
<t>Considering the protocol stack of <xref target='fig-sctp-layering'/> the
usage of DTLS over UDP is specified in <xref target='RFC6347'/>, while the
usage of SCTP on top of DTLS is specified in
<xref target='I-D.ietf-tsvwg-sctp-dtls-encaps'/>.
Please note that the demultiplexing STUN vs. SRTP vs. DTLS is done
as described in Section 5.1.2 of <xref target='RFC5764'/> and SCTP
is the only payload of DTLS.</t>
<t>Since DTLS is typically implemented in user-land, the SCTP stack also
needs to be a user-land stack.</t>
<t>When using DTLS as the lower layer, only single homed SCTP associations
are supported, since DTLS does not expose any address management to its upper
layer.
The ICE/UDP layer can handle IP address changes during a session without needing
interaction with the DTLS and SCTP layers.
However, SCTP SHOULD be notified when an address changes has happened.
In this case SCTP SHOULD retest the Path MTU and reset the congestion
state to the initial state.
In case of a window based congestion control like the one specified in
<xref target='RFC4960'/>, this means setting the congestion window and
slow start threshold to its initial values.</t>
<t>Incoming ICMP or ICMPv6 messages can't be processed by
the SCTP layer, since there is no way to identify the corresponding
association. Therefore SCTP MUST support performing Path MTU discovery
without relying on ICMP or ICMPv6 as specified in <xref target='RFC4821'/>
using probing messages specified in <xref target='RFC4820'/>.
The initial Path MTU at the IP layer SHOULD NOT exceed 1200 bytes for IPv4
and 1280 for IPv6.</t>
<t>In general, the lower layer interface of an SCTP implementation SHOULD be
adapted to address the differences between IPv4 and IPv6 (being connection-less)
or DTLS (being connection-oriented).</t>
<t>When the protocol stack of <xref target='fig-sctp-layering'/> is used, DTLS
protects the complete SCTP packet, so it provides confidentiality, integrity and
source authentication of the complete SCTP packet.</t>
<t>This SCTP stack and its upper layer MUST support the usage of multiple
SCTP streams.
A user message can be sent ordered or unordered and with partial or full
reliability.
The partial reliability extension MUST support policies to limit
<list style='symbols'>
<t>the transmission and retransmission by time.</t>
<t>the number of retransmissions.</t>
</list>
Limiting the number of retransmissions to zero combined with unordered delivery
provides a UDP-like service where each user message is sent exactly once
and delivered in the order received.</t>
<t>SCTP provides congestion control on a per-association base. This means
that all SCTP streams within a single SCTP association share the same
congestion window. Traffic not being sent over SCTP is not covered by
the SCTP congestion control.
Using a congestion control different from than the standard one might improve
the impact on the parallel SRTP media streams.</t>
</section>
<section title='The Usage of SCTP for Data Channels'
anchor='sec-sctp-usage'>
<section title='SCTP Protocol Considerations'>
<t>The DTLS encapsulation of SCTP packets as described in
<xref target='I-D.ietf-tsvwg-sctp-dtls-encaps'/> MUST be used.</t>
<t>The following SCTP protocol extensions are required:
<list style='symbols'>
<t>The stream reset extension defined in <xref target='RFC6525'/> MUST
be supported. It is used for closing channels.</t>
<t>The dynamic address reconfiguration extension defined in
<xref target='RFC5061'/> MUST be used to signal the support of the
stream reset extension defined in <xref target='RFC6525'/>,
other features of <xref target='RFC5061'/> are not REQUIRED to be
implemented.</t>
<t>The partial reliability extension defined in <xref target='RFC3758'/> MUST
be supported. In addition to the timed reliability PR-SCTP policy defined
in <xref target='RFC3758'/>, the limited retransmission policy defined in
<xref target='I-D.ietf-tsvwg-sctp-prpolicies'/> MUST be supported.</t>
</list></t>
<t>The support for message interleaving as defined in
<xref target='I-D.ietf-tsvwg-sctp-ndata'/> SHOULD be used.</t>
</section>
<section title='Association Setup'
anchor='sec-sctp-setup'>
<t>The SCTP association will be set up when the two endpoints of the WebRTC
PeerConnection agree on opening it, as negotiated by JSEP (typically an
exchange of SDP) <xref target='I-D.ietf-rtcweb-jsep'/>.
It will use the DTLS connection selected via ICE; typically this will be
shared via BUNDLE or equivalent with DTLS connections used to key the
SRTP media streams.</t>
<!-- FIXME: Bundle Issue. -->
<t>The number of streams negotiated during SCTP association setup SHOULD
be 65535, which is the maximum number of streams that can negotiated during
the association setup.</t>
</section>
<section title='SCTP Streams'>
<t>SCTP defines a stream as a unidirectional logical channel existing within
an SCTP association to another SCTP endpoint. The streams are used to
provide the notion of in-sequence delivery and for multiplexing.
Each user message is sent on a particular stream, either ordered or unordered.
Ordering is preserved only for ordered messages sent on the same stream.</t>
</section>
<section title='Channel Definition'>
<t>The W3C has consensus on defining the application API for WebRTC DataChannels
to be bidirectional. They also consider the notions of in-sequence,
out-of-sequence, reliable and unreliable as properties of Channels. One strong
wish is for the application-level API to be close to the API for WebSockets,
which implies bidirectional streams of data and waiting for onopen to fire
before sending, a textual label used to identify the meaning of the stream,
among other things.</t>
<t>Each data channel also has a priority, which is an 2 byte unsigned integer
value.
These priorities MUST be interpreted as weighted-fair-queuing scheduling
priorities per the definition of the corresponding stream scheduler
supporting interleaving in <xref target='I-D.ietf-tsvwg-sctp-ndata'/>.
For use in WebRTC, the values used SHOULD be one of 128 ("below normal"),
256 ("normal"), 512 ("high") or 1024 ("extra high").</t>
<t>The realization of a bidirectional Data Channel is a pair of one
incoming stream and one outgoing SCTP stream having the same stream SCTP
identifier.</t>
<!--<t>Note that there's no requirement for the SCTP streams used to create
a bidirectional channel have the same number in each direction. -->
<t>How stream values are selected is protocol and implementation dependent.</t>
</section>
<section title='Opening a Channel'>
<t>Data channels can be opened by using negotiation within the SCTP association,
called in-band negotiation, or out-of-band negotiation.
Out-of-band negotiation is defined as any method which results in an agreement
as to the parameters of a channel and the creation thereof.
The details are out of scope of this document.</t>
<t>A simple protocol for in-band negotiation is specified in
<xref target='I-D.ietf-rtcweb-data-protocol'/>.</t>
<t>When one side wants to open a channel using out-of-band negotiation, it
picks a stream.
Unless otherwise defined or negotiated, the streams are picked based on
the DTLS role (the client picks even stream identifiers,
the server odd stream identifiers).
However, the application is responsible for avoiding collisions with
existing streams.
If it attempts to re-use a stream which is part of an existing Channel,
the addition SHOULD fail.
In addition to choosing a stream, the application SHOULD also determine
the options to use for sending messages.
The application MUST ensure in an application-specific manner that
the application at the peer will also know the selected stream to
be used, and the options for sending data from that side.</t>
</section>
<section title='Transferring User Data on a Channel'>
<t>All data sent on a Channel in both directions MUST be sent over the
underlying stream using the reliability defined when the Channel was
opened unless the options are changed, or per-message options are specified
by a higher level.</t>
<t>No more than one message should be put into an SCTP user message.</t>
<t>The SCTP Payload Protocol Identifiers (PPIDs) are used to signal the
interpretation of the "Payload data". For identifying a JavaScript string
encoded in UTF-8 the PPID "WebRTC String" MUST be used,
for JavaScript binary data (ArrayBuffer or Blob) the PPID
"WebRTC Binary" MUST be used (see <xref target='sec-IANA'/>).</t>
<t>The usage of the PPIDs "WebRTC String Partial" and "WebRTC Binary Partial"
is deprecated. They were used for a PPID-based fragmentation and reassembly
of user messages belonging to reliable and ordered data channels.</t>
<t>If a message with an unsupported PPID is received or some error
is detected by the receiver (for example, illegal ordering), the receiver
SHOULD close the corresponding channel.</t>
<t>The SCTP base protocol specified in <xref target='RFC4960'/> does not
support the interleaving of user messages. Therefore sending a large user
message can monopolize the SCTP association.
To overcome this limitation, <xref target='I-D.ietf-tsvwg-sctp-ndata'/>
defines an extension to support message interleaving, which SHOULD be used.
As long as message interleaving is not supported, the sender
SHOULD limit the maximum message size to 16 KB to avoid monopolization.</t>
<t>It is recommended that the message size be kept within certain size bounds
as applications will not be able to support arbitrarily-large single
messages. This limit has to be negotiated, for example by using
<xref target='I-D.ietf-mmusic-sctp-sdp'/>.</t>
<t>The sender SHOULD disable the Nagle algorithm to minimize the latency.</t>
</section>
<section title='Closing a Channel'>
<t>Closing of a Data Channel MUST be signaled by resetting the corresponding
outgoing streams <xref target='RFC6525'/>. This means that if one side
decides to close the channel, it resets the corresponding outgoing stream.
When the peer sees that an incoming stream was reset, it also resets its
corresponding outgoing stream. Once this is completed, the channel is closed.
Resetting a stream sets the Stream Sequence Numbers (SSNs) of the stream back to
'zero' with a corresponding notification to the application layer
that the reset has been performed. Streams are available to reuse after a reset
has been performed.</t>
<t><xref target='RFC6525'/> also guarantees that all the messages are delivered
(or abandoned) before resetting the stream.</t>
</section>
</section>
<section title='Security Considerations'
anchor='sec-security'>
<t>This document does not add any additional considerations to the ones given in
<xref target='I-D.ietf-rtcweb-security'/> and
<xref target='I-D.ietf-rtcweb-security-arch'/>.</t>
</section>
<section title='IANA Considerations'
anchor='sec-IANA'>
<t>[NOTE to RFC-Editor:
<list>
<t>"RFCXXXX" is to be replaced by the RFC number you assign this document.</t>
</list>
]</t>
<t>This document uses four already registered SCTP Payload Protocol
Identifiers (PPIDs):
"DOMString Last", "Binary Data Partial", "Binary Data Last", and
"DOMString Partial".
<xref target='RFC4960'/> creates the registry "SCTP Payload Protocol Identifiers"
from which these identifiers were assigned.
IANA is requested to update the reference of these four assignments to point
to this document and change the names of the PPIDs.
Therefore these four assignments should be updated to read:</t>
<texttable>
<ttcol align='left'>Value</ttcol>
<ttcol align='left'>SCTP PPID</ttcol>
<ttcol align='left'>Reference</ttcol>
<c>WebRTC String</c> <c>51</c> <c>[RFCXXXX]</c>
<c>WebRTC Binary Partial (Deprecated)</c> <c>52</c> <c>[RFCXXXX]</c>
<c>WebRTC Binary</c> <c>53</c> <c>[RFCXXXX]</c>
<c>WebRTC String Partial (Deprecated)</c> <c>54</c> <c>[RFCXXXX]</c>
</texttable>
</section>
<section title='Acknowledgments'>
<t>Many thanks for comments, ideas, and text from
Harald Alvestrand,
Adam Bergkvist,
Christer Holmberg,
Cullen Jennings,
Paul Kyzivat,
Eric Rescorla,
Irene Ruengeler,
Randall Stewart,
Justin Uberti,
and Magnus Westerlund.</t>
</section>
</middle>
<back>
<references title='Normative References'>
<?rfc include='reference.RFC.2119' ?>
<?rfc include='reference.RFC.3758'?>
<?rfc include='reference.RFC.4820'?>
<?rfc include='reference.RFC.4821'?>
<?rfc include='reference.RFC.4960'?>
<?rfc include='reference.RFC.5061'?>
<?rfc include='reference.RFC.5245'?>
<?rfc include='reference.RFC.6347'?>
<?rfc include='reference.RFC.6525'?>
<?rfc include='reference.I-D.ietf-tsvwg-sctp-ndata'?>
<?rfc include='reference.I-D.ietf-rtcweb-data-protocol'?>
<?rfc include='reference.I-D.ietf-tsvwg-sctp-dtls-encaps'?>
<?rfc include='reference.I-D.ietf-rtcweb-security'?>
<?rfc include='reference.I-D.ietf-rtcweb-security-arch'?>
<?rfc include='reference.I-D.ietf-rtcweb-jsep'?>
<?rfc include='reference.I-D.ietf-tsvwg-sctp-prpolicies'?>
<?rfc include='reference.I-D.ietf-mmusic-sctp-sdp'?>
</references>
<references title='Informative References'>
<?rfc include='reference.RFC.5764'?>
<?rfc include='reference.RFC.6083'?>
<?rfc include='reference.RFC.6951'?>
<?rfc include='reference.I-D.ietf-rtcweb-use-cases-and-requirements'?>
</references>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-23 19:29:41 |