<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.18 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-webtrans-overview-08" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="WebTransport">The WebTransport Protocol Framework</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-webtrans-overview-08"/>
    <author initials="V." surname="Vasiliev" fullname="Victor Vasiliev">
      <organization>Google</organization>
      <address>
        <email>vasilvv@google.com</email>
      </address>
    </author>
    <date/>
    <area>Applications and Real-Time</area>
    <workgroup>WEBTRANS</workgroup>
    <abstract>
      <?line 30?>

<t>The WebTransport Protocol Framework enables clients constrained by the Web
security model to communicate with a remote server using a secure multiplexed
transport.  It consists of a set of individual protocols that are safe to expose
to untrusted applications, combined with an abstract model that allows them
to be used interchangeably.</t>
      <t>This document defines the overall requirements on the protocols used in
WebTransport, as well as the common features of the protocols, support for some
of which may be optional.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <?line 42?>

<t>Discussion of this draft takes place on the WebTransport mailing list
(webtransport@ietf.org), which is archived at
&lt;https://mailarchive.ietf.org/arch/search/?email_list=webtransport&gt;.</t>
      <t>The repository tracking the issues for this draft can be found at
&lt;https://github.com/ietf-wg-webtrans/draft-ietf-webtrans-overview/issues&gt;.
The web API draft corresponding to this document can be found at
&lt;https://wicg.github.io/web-transport/&gt;.</t>
    </note>
  </front>
  <middle>
    <?line 53?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The WebTransport Protocol Framework enables clients constrained by the Web
security model to communicate with a remote server using a secure multiplexed
transport.  It consists of a set of individual protocols that are safe to expose
to untrusted applications, combined with an abstract model that allows them
to be used interchangeably.</t>
      <t>This document defines the overall requirements on the protocols used in
WebTransport, as well as the common features of the protocols, support for some
of which may be optional.</t>
      <section anchor="background">
        <name>Background</name>
        <t>Historically, web applications that needed a bidirectional data stream between a
client and a server could rely on WebSockets <xref target="RFC6455"/>, a message-based
protocol compatible with the Web security model.  However, since the
abstraction it provides is a single ordered reliable stream of messages, it
suffers from head-of-line blocking, meaning that all messages must be sent and
received in order even if they could be processed independently of each other,
and some messages may no longer be relevant.  This makes it a poor fit for
latency-sensitive applications which rely on partial reliability and stream
independence for performance.</t>
        <t>One existing option available to Web developers are WebRTC data channels
<xref target="RFC8831"/>, which provide a WebSocket-like API for a peer-to-peer SCTP
channel protected by DTLS.  In theory, it is possible to use it for the use
cases addressed by this specification. However, in practice, it has not seen
wide adoption outside of browser-to-browser settings due to its dependency on
ICE (which fits poorly with the Web model) and userspace SCTP (which has a
limited number of implementations available due to not being used in other
contexts).</t>
        <t>An alternative design would be to open multiple WebSocket connections over
HTTP/3 <xref target="RFC9220"/>.  That would avoid head-of-line blocking and provide an
ability to cancel a stream by closing the corresponding WebSocket session.
However, this approach has a number of drawbacks, which all stem primarily from
the fact that semantically each WebSocket is a completely independent entity:</t>
        <ul spacing="normal">
          <li>
            <t>Each new stream would require a WebSocket handshake to agree on application
protocol used, meaning that it would take at least one RTT to establish each
new stream before the client can write to it.</t>
          </li>
          <li>
            <t>Only clients can initiate streams.  Server-initiated streams and other
alternative modes of communication (such as the QUIC DATAGRAM frame
<xref target="RFC9221"/>) are not available.</t>
          </li>
          <li>
            <t>While the streams would normally be pooled by the user agent, this is not
guaranteed, and the general process of mapping a WebSocket to a server is
opaque to the client.  This introduces unpredictable performance properties
into the system, and prevents optimizations which rely on the streams being on
the same connection (for instance, it might be possible for the client to
request different retransmission priorities for different streams, but that
would be much more complex unless they are all on the same connection).</t>
          </li>
        </ul>
        <t>WebTransport avoids all of those issues by letting applications create a single
transport object that can contain multiple streams multiplexed together in a
single context (similar to SCTP, HTTP/2, QUIC and others), and can be also used
to send unreliable datagrams (similar to UDP).</t>
      </section>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</name>
        <t>The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>
        <t>WebTransport is a framework that aims to abstract away the underlying transport
protocol while still exposing a few key transport-layer aspects to application
developers.  It is structured around the following concepts:</t>
        <dl>
          <dt>WebTransport session:</dt>
          <dd>
            <t>A WebTransport session is a single communication context established between a
client and a server.  It may correspond to a specific transport-layer
connection, or it may be a logical entity within an existing multiplexed
transport-layer connection.  WebTransport sessions are logically independent
from one another even if some sessions can share an underlying
transport-layer connection.</t>
          </dd>
          <dt>WebTransport protocol:</dt>
          <dd>
            <t>A WebTransport protocol is a specific protocol that can be used to establish
a WebTransport session.</t>
          </dd>
          <dt>Datagram:</dt>
          <dd>
            <t>A datagram is a unit of transmission that is limited in size (typically to
the path MTU), does not have an expectation of being delivered reliably, and
is treated atomically by the transport.</t>
          </dd>
          <dt>Stream:</dt>
          <dd>
            <t>A stream is a sequence of bytes that is reliably delivered to the receiving
application in the same order as it was transmitted by the sender.  Streams
can be of arbitrary length, and therefore cannot always be buffered entirely
in memory. WebTransport protocols and APIs are expected to provide partial
stream data to the application before the stream has been entirely received.</t>
          </dd>
          <dt>Message:</dt>
          <dd>
            <t>A message is a stream that is sufficiently small that it can be fully buffered
before being passed to the application.  WebTransport does not define messages
as a primitive, since from the transport perspective they can be simulated
by fully buffering a stream before passing it to the application.  However,
this distinction is important to highlight since some of the similar protocols
and APIs (notably WebSocket <xref target="RFC6455"/>) use messages as a core abstraction.</t>
          </dd>
          <dt>Server:</dt>
          <dd>
            <t>A WebTransport server is an application that accepts incoming WebTransport
sessions.  In cases when WebTransport is served over a multiplexed protocol
(such as HTTP/2 or HTTP/3), "WebTransport server" refers to a handler for a
specific multiplexed endpoint (e.g. an application handling specific HTTP
resource), rather than the application listening on a given TCP or UDP
socket.</t>
          </dd>
          <dt>Client:</dt>
          <dd>
            <t>A WebTransport client is an application that initiates the transport
session and may be running in a constrained security context, for instance,
a JavaScript application running inside a browser.</t>
          </dd>
          <dt>User agent:</dt>
          <dd>
            <t>A WebTransport user agent is a software system that has an unrestricted
access to the host network stack and can create transports on behalf
of the client.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="common-requirements">
      <name>Common Transport Requirements</name>
      <t>Since clients are not necessarily trusted and have to be constrained by the
Web security model, WebTransport imposes certain requirements on any specific
protocol used.</t>
      <t>All WebTransport protocols MUST use TLS <xref target="RFC8446"/> or a semantically
equivalent security protocol (for instance, DTLS <xref target="RFC9147"/>).
The protocols SHOULD use TLS version 1.3 or later, unless they aim for
backwards compatibility with legacy systems.</t>
      <t>All WebTransport protocols MUST require the user agent to obtain and maintain
explicit consent from the server to send data.  For connection-oriented
protocols (such as TCP or QUIC), the connection establishment and keep-alive
mechanisms suffice.  STUN Consent Freshness <xref target="RFC7675"/> is another example of
a mechanism satisfying this requirement.</t>
      <t>All WebTransport protocols MUST limit the rate at which the client sends data.
This SHOULD be accomplished via a feedback-based congestion control mechanism
(such as <xref target="RFC5681"/> or <xref target="RFC9002"/>).</t>
      <t>All WebTransport protocols MUST support simultaneously establishing multiple
sessions between the same client and server.</t>
      <t>All WebTransport protocols MUST prevent clients from establishing transport
sessions to network endpoints that are not WebTransport servers.</t>
      <t>All WebTransport protocols MUST provide a way for the user agent to indicate
the origin <xref target="RFC6454"/> of the client to the server.</t>
      <t>All WebTransport protocols MUST provide a way for a server endpoint location to
be described using a URI <xref target="RFC3986"/>.  This enables integration with various
Web platform features that represent resources as URIs, such as Content
Security Policy <xref target="CSP"/>.</t>
    </section>
    <section anchor="session-establishment">
      <name>Session Establishment</name>
      <t>WebTransport session establishment is an asynchronous process.  A session is
considered <em>ready</em> from the client's perspective when the server has confirmed
that it is willing to accept the session with the provided origin and URI.
WebTransport protocols MAY allow clients to send data before the session is
ready; however, they MUST NOT use mechanisms that are unsafe against replay
attacks without an explicit indication from the client.</t>
    </section>
    <section anchor="transport-features">
      <name>Transport Features</name>
      <t>All transport protocols MUST provide datagrams, unidirectional and
bidirectional streams in order to make the transport protocols interchangeable.</t>
      <section anchor="features-session">
        <name>Session-Wide Features</name>
        <t>Any WebTransport protocol SHALL provide the following operations on the
session:</t>
        <dl>
          <dt>establish a session</dt>
          <dd>
            <t>Create a new WebTransport session given a URI <xref target="RFC3986"/> of the requester.
An origin <xref target="RFC6454"/> MUST be given if the WebTransport session is coming
from a browser client; otherwise, it is OPTIONAL.</t>
          </dd>
          <dt>terminate a session</dt>
          <dd>
            <t>Terminate the session while communicating to the peer an unsigned 32-bit
error code and an error reason string of at most 1024 bytes.  As soon as the
session is terminated, no further application data will be exchanged on it.
The error code and string are optional; the default values are 0 and "".  The
delivery of the error code and string MAY be best-effort.</t>
          </dd>
        </dl>
        <t>Any WebTransport protocol SHALL provide the following events:</t>
        <dl>
          <dt>session terminated event</dt>
          <dd>
            <t>Indicates that the WebTransport session has been terminated, either by the
peer or by the local networking stack, and no user data can be exchanged on
it any further.  If the session has been terminated as a result of the peer
performing the "terminate a session" operation above, a corresponding error
code and an error string can be provided.</t>
          </dd>
        </dl>
      </section>
      <section anchor="features-datagrams">
        <name>Datagrams</name>
        <t>A datagram is a sequence of bytes that is limited in size (generally to the path
MTU) and is not expected to be transmitted reliably.  The general goal for
WebTransport datagrams is to be similar in behavior to UDP while being subject
to common requirements expressed in <xref target="common-requirements"/>.</t>
        <t>A WebTransport sender is not expected to retransmit datagrams, though it may
end up doing so if it is using TCP or some other underlying protocol that only
provides reliable delivery.  WebTransport datagrams are not expected to be flow
controlled, meaning that the receiver might drop datagrams if the application
is not consuming them fast enough.</t>
        <t>The application MUST be provided with the maximum datagram size that it can
send.  The size SHOULD be derived from the result of performing path MTU
discovery.</t>
        <t>In the WebTransport model, all of the outgoing and incoming datagrams are
placed into a size-bound queue (similar to a network interface card queue).</t>
        <t>Any WebTransport protocol SHALL provide the following operations on the
session:</t>
        <dl>
          <dt>send a datagram</dt>
          <dd>
            <t>Enqueues a datagram to be sent to the peer.  This can potentially result in
the datagram being dropped if the queue is full.</t>
          </dd>
          <dt>receive a datagram</dt>
          <dd>
            <t>Dequeues an incoming datagram, if one is available.</t>
          </dd>
          <dt>get maxiumum datagram size</dt>
          <dd>
            <t>Returns the largest size of the datagram that a WebTransport session is
expected to be able to send.</t>
          </dd>
        </dl>
      </section>
      <section anchor="features-streams">
        <name>Streams</name>
        <t>A unidirectional stream is a one-way reliable in-order stream of bytes where the
initiator is the only endpoint that can send data.  A bidirectional stream
allows both endpoints to send data and can be conceptually represented as a pair
of unidirectional streams.</t>
        <t>The streams are in general expected to follow the semantics and the state
machine of QUIC streams (<xref target="RFC9000"/>, Sections 2 and 3).
TODO: describe the stream state machine explicitly.</t>
        <t>A WebTransport stream can be reset, indicating that the endpoint is not
interested in either sending or receiving any data related to the stream.  In
that case, the sender is expected to not retransmit any data that was already
sent on that stream.</t>
        <t>Streams SHOULD be sufficiently lightweight that they can be used as messages.</t>
        <t>Data sent on a stream is flow controlled by the transport protocol.  In addition
to flow controlling stream data, the creation of new streams is flow controlled
as well: an endpoint may only open a limited number of streams until the peer
explicitly allows creating more streams.  From the perspective of the client,
this is presented as a size-bounded queue of incoming streams.</t>
        <t>Any WebTransport protocol SHALL provide the following operations on the
session:</t>
        <dl>
          <dt>create a unidirectional stream</dt>
          <dd>
            <t>Creates an outgoing unidirectional stream; this operation may block until the
flow control of the underlying protocol allows for it to be completed.</t>
          </dd>
          <dt>create a bidirectional stream</dt>
          <dd>
            <t>Creates an outgoing bidirectional stream; this operation may block until the
flow control of the underlying protocol allows for it to be completed.</t>
          </dd>
          <dt>receive a unidirectional stream</dt>
          <dd>
            <t>Removes a stream from the queue of incoming unidirectional streams, if one is
available.</t>
          </dd>
          <dt>receive a bidirectional stream</dt>
          <dd>
            <t>Removes a stream from the queue of incoming unidirectional streams, if one is
available.</t>
          </dd>
        </dl>
        <t>Any WebTransport protocol SHALL provide the following operations on an
individual stream:</t>
        <dl>
          <dt>send bytes</dt>
          <dd>
            <t>Add bytes into the stream send buffer.  The sender can also indicate a FIN,
signalling the fact that no new data will be send on the stream.  Not
applicable for incoming unidirectional streams.</t>
          </dd>
          <dt>receive bytes</dt>
          <dd>
            <t>Removes bytes from the stream receive buffer.  FIN can be received together
with the stream data.  Not applicable for outgoing unidirectional streams.</t>
          </dd>
          <dt>abort send side</dt>
          <dd>
            <t>Sends a signal to the peer that the write side of the stream has been aborted.
Discards the send buffer; if possible, no currently outstanding data is
transmitted or retransmitted.  An unsigned 8-bit error code can be supplied
as a part of the signal to the peer; if omitted, the error code is presumed
to be 0.</t>
          </dd>
          <dt>abort receive side</dt>
          <dd>
            <t>Sends a signal to the peer that the read side of the stream has been aborted.
Discards the receive buffer; the peer is typically expected to abort the
corresponding send side in response.  An unsigned 8-bit error code can be
supplied as a part of the signal to the peer.</t>
          </dd>
        </dl>
        <t>Any WebTransport protocol SHALL provide the following events for an individual
stream:</t>
        <dl>
          <dt>send side aborted</dt>
          <dd>
            <t>Indicates that the peer has aborted the corresponding receive side of the
stream.  An unsigned 8-bit error code from the peer may be available.</t>
          </dd>
          <dt>receive side aborted</dt>
          <dd>
            <t>Indicates that the peer has aborted the corresponding send side of the
stream.  An unsigned 8-bit error code from the peer may be available.</t>
          </dd>
          <dt>Data Recvd state reached</dt>
          <dd>
            <t>Indicates that no further data will be transmitted or retransmitted on the
local send side, and that the FIN has been sent.  Data Recvd implies that
aborting send-side is a no-op.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="transport-properties">
      <name>Transport Properties</name>
      <t>WebTransport defines common semantics for multiple protocols to allow them to
be used interchangeably.  Nevertheless, those protocols still have
substantially different performance properties that an application may want to
query.</t>
      <t>The most notable property is support for unreliable data delivery.  The
protocol is defined to support unreliable delivery if:</t>
      <ul spacing="normal">
        <li>
          <t>Resetting a stream results in the lost stream data no longer being
retransmitted, and</t>
        </li>
        <li>
          <t>The datagrams are never retransmitted.</t>
        </li>
      </ul>
      <t>Another important property is pooling support.  Pooling means that multiple
transport sessions may end up sharing the same transport layer connection, and
thus share a congestion controller and other contexts.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Providing untrusted clients with a reasonably low-level access to the network
comes with risks.  This document mitigates those risks by imposing a set of
common requirements described in <xref target="common-requirements"/>.</t>
      <t>WebTransport mandates the use of TLS for all protocols implementing it.  This
has a dual purpose.  On one hand, it protects the transport from the network,
including both potential attackers and ossification by middleboxes.  On the
other hand, it protects the network elements from potential confusion attacks
such as the one discussed in Section 10.3 of <xref target="RFC6455"/>.</t>
      <t>One potential concern is that even when a transport cannot be created, the
connection error would reveal enough information to allow an attacker to scan
the network addresses that would normally be inaccessible.  Because of that, the
user agent that runs untrusted clients MUST NOT provide any detailed error
information until the server has confirmed that it is a WebTransport endpoint.
For example, the client must not be able to distinguish between a network
address that is unreachable and one that is reachable but is not a WebTransport
server.</t>
      <t>WebTransport does not support any traditional means of HTTP-based
authentication.  It is not necessarily based on HTTP, and hence does not support
HTTP cookies or HTTP authentication.  Since it requires TLS, individual
transport protocols MAY expose TLS-based authentication capabilities such as
client certificates.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>There are no requests to IANA in this document.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC6454">
          <front>
            <title>The Web Origin Concept</title>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document defines the concept of an "origin", which is often used as the scope of authority or privilege by user agents. Typically, user agents isolate content retrieved from different origins to prevent malicious web site operators from interfering with the operation of benign web sites. In addition to outlining the principles that underlie the concept of origin, this document details how to determine the origin of a URI and how to serialize an origin into a string. It also defines an HTTP header field, named "Origin", that indicates which origins are associated with an HTTP request. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6454"/>
          <seriesInfo name="DOI" value="10.17487/RFC6454"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="CSP" target="https://www.w3.org/TR/CSP/">
          <front>
            <title>Content Security Policy Level 3</title>
            <author>
              <organization>W3C</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
        </reference>
        <reference anchor="RFC6455">
          <front>
            <title>The WebSocket Protocol</title>
            <author fullname="I. Fette" initials="I." surname="Fette"/>
            <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>The WebSocket Protocol enables two-way communication between a client running untrusted code in a controlled environment to a remote host that has opted-in to communications from that code. The security model used for this is the origin-based security model commonly used by web browsers. The protocol consists of an opening handshake followed by basic message framing, layered over TCP. The goal of this technology is to provide a mechanism for browser-based applications that need two-way communication with servers that does not rely on opening multiple HTTP connections (e.g., using XMLHttpRequest or s and long polling). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6455"/>
          <seriesInfo name="DOI" value="10.17487/RFC6455"/>
        </reference>
        <reference anchor="RFC8831">
          <front>
            <title>WebRTC Data Channels</title>
            <author fullname="R. Jesup" initials="R." surname="Jesup"/>
            <author fullname="S. Loreto" initials="S." surname="Loreto"/>
            <author fullname="M. Tüxen" initials="M." surname="Tüxen"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>The WebRTC framework specifies protocol support for direct, interactive, rich communication using audio, video, and data between two peers' web browsers. This document specifies the non-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 that allows web browsers to exchange generic data from peer to peer.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8831"/>
          <seriesInfo name="DOI" value="10.17487/RFC8831"/>
        </reference>
        <reference anchor="RFC9220">
          <front>
            <title>Bootstrapping WebSockets with HTTP/3</title>
            <author fullname="R. Hamilton" initials="R." surname="Hamilton"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The mechanism for running the WebSocket Protocol over a single stream of an HTTP/2 connection is equally applicable to HTTP/3, but the HTTP-version-specific details need to be specified. This document describes how the mechanism is adapted for HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9220"/>
          <seriesInfo name="DOI" value="10.17487/RFC9220"/>
        </reference>
        <reference anchor="RFC9221">
          <front>
            <title>An Unreliable Datagram Extension to QUIC</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="E. Kinnear" initials="E." surname="Kinnear"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document defines an extension to the QUIC transport protocol to add support for sending and receiving unreliable datagrams over a QUIC connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9221"/>
          <seriesInfo name="DOI" value="10.17487/RFC9221"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="RFC7675">
          <front>
            <title>Session Traversal Utilities for NAT (STUN) Usage for Consent Freshness</title>
            <author fullname="M. Perumal" initials="M." surname="Perumal"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="R. Ravindranath" initials="R." surname="Ravindranath"/>
            <author fullname="T. Reddy" initials="T." surname="Reddy"/>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>To prevent WebRTC applications, such as browsers, from launching attacks by sending traffic to unwilling victims, periodic consent to send needs to be obtained from remote endpoints.</t>
              <t>This document describes a consent mechanism using a new Session Traversal Utilities for NAT (STUN) usage.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7675"/>
          <seriesInfo name="DOI" value="10.17487/RFC7675"/>
        </reference>
        <reference anchor="RFC5681">
          <front>
            <title>TCP Congestion Control</title>
            <author fullname="M. Allman" initials="M." surname="Allman"/>
            <author fullname="V. Paxson" initials="V." surname="Paxson"/>
            <author fullname="E. Blanton" initials="E." surname="Blanton"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document defines TCP's four intertwined congestion control algorithms: slow start, congestion avoidance, fast retransmit, and fast recovery. In addition, the document specifies how TCP should begin transmission after a relatively long idle period, as well as discussing various acknowledgment generation methods. This document obsoletes RFC 2581. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5681"/>
          <seriesInfo name="DOI" value="10.17487/RFC5681"/>
        </reference>
        <reference anchor="RFC9002">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9002"/>
          <seriesInfo name="DOI" value="10.17487/RFC9002"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1cW3Mbx5V+n1/RKz+slCKoq22Z3t2EJqVYW7otScXlSlKu
AdAAZzWYQaYHhBCX/vt+3zmne3pAyHa83n2KHywSmOk+fS7fuTYnk0nRV33t
T9zVtXff+elVVzZh3Xa9e9u1fTtra/e8K1d+23bvi3I67fzNyei5Yt7OGjxw
4uZduegnle8Xk62f9nxg0t747qby28mDp8W87PHUj+enV88+FjP8smy73YkL
/bzg6suu3ayx9rNvri5OX18WRbXuTlzfbUL/6MGDrx48KsrOlyfudL2uK7xe
tU1wZTN3F76sJ1fVyhdF6PHBD2XdNthp50Oxrk7cn3GMIxdAa+cXAT/tVvzh
r0VRbvrrtjsp3KRw+K9qwon707H7UxmquvI38qGe7U/VrG+78Tdttyyb6u9C
yYn7Y9suay9f+FVZ1Sfuhg/f3PxhKd8cz9oVztQs2m6FV248tnVnl29P5JW+
7Ja+P3HXfb8OJ/fvb7fb4+3jY2xx/+riPh67r4+prO6ctU3vm95d+tmmq/qd
e9uCJzv30t/42j2+Iw+n0zmjFsx9fCa/qii+A9erZunOKbiimEwmrpwGCG6G
336BPjjflNPaBzcDT5oe/0IkeL1q/NxNd67XJYoQqVy1c5DXt3hwtdo0lKJ3
26q/dqXr/KrFbwH64ju3CSSsdPKqd6tN3Vfr2n/w86KPFB0796KXPauAzduF
PN/zh6qZVzfVfFPWbm1kB5BT9g465EK58KTCf1i3wRf4adOInoHsMtOuI9I5
ldMokU3iTzyKLFnX7ZbL+xXXmnpQj1cqiKibXZfN0oNLu2OytAoO5rJZUXZz
v8DS8p6jmWAZMOFvmwqcEG62jXw3HMCWLXKxHLkyuK3Hu6UuRdbizYUve3BO
2DJaBfq/WYtAoYmwCpgNHtleV7Nrtyp3JL9d8/hlfaw60UAuP7zm//r2Bxjb
3HehKM6rMNuEgAd1Cx6NegRVfo9t13U58/EIIz2icVC4NaRW3I1Iwa/+QOyg
zt87MoKwaAkewlogmb74y79F++Ai9s1xfOs+P7gfvPzzezHCH7jJv+d7/OU/
jlW3Ow/hVzBq6CkkKoZAWqsQNqCfzMkONYPswZlFu2n2KFlCMzZTWvd9hb5l
Qr/7P4WI93Uj0kNy8L07ffsibtd2kN26hRqTrNZIiarzaWq21Wx5bCRV7X2s
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
SQAA

-->

</rfc>
