<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-opik-quic-qmux-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title>QMux</title>
    <seriesInfo name="Internet-Draft" value="draft-opik-quic-qmux-00"/>
    <author fullname="Kazuho Oku">
      <organization>Fastly</organization>
      <address>
        <email>kazuhooku@gmail.com</email>
      </address>
    </author>
    <author fullname="Lucas Pardue">
      <organization>Cloudflare</organization>
      <address>
        <email>lucas@lucaspardue.com</email>
      </address>
    </author>
    <author fullname="Jana Iyengar">
      <organization>Netflix</organization>
      <address>
        <email>jri.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Eric Kinnear">
      <organization>Apple</organization>
      <address>
        <email>ekinnear@apple.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="23"/>
    <workgroup>QUIC</workgroup>
    <keyword>internet-draft</keyword>
    <abstract>
      <?line 24?>

<t>This document specifies a polyfill of QUIC version 1 that runs on top of
bi-directional streams such as TLS.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    QUIC Working Group mailing list (quic@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/quic/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/kazuho/draft-opik-quic-qmux"/>.</t>
    </note>
  </front>
  <middle>
    <?line 30?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>QUIC version 1 <xref target="QUIC"/> is a bi-directional, authenticated
transport-layer protocol built on top of UDP <xref target="UDP"/>. The protocol
provides multiplexed flow-controlled streams without head-of-line blocking as a
core service. It also offers low-latency connection establishment and efficient
loss recovery.</t>
      <t>However, there are downsides to QUIC.</t>
      <t>One downside is that QUIC, being based on UDP, is not as universally accessible
as TCP <xref target="TCP"/>, due to occasionally being blocked by middleboxes.</t>
      <t>Another downside is that QUIC is computationally more expensive compared to TLS
<xref target="TLS13"/> over TCP. This increased cost is partly because QUIC encrypts
each packet, which is smaller than the encryption unit of TLS, leading to more
overhead, and partly because UDP is less optimized within computing
infrastructures.</t>
      <t>Due to these limitations, applications are often served using both QUIC and TCP.
QUIC is employed to provide the optimal user experience, while TCP acts as a
fallback for ensuring network reachability and computational efficiency as
needed.</t>
      <t>One such example is HTTP, which has different bindings for QUIC (HTTP/3
<xref target="HTTP3"/>) and TCP (HTTP/2 <xref target="HTTP2"/>). Recently, security
concerns have prompted proposals to revise HTTP/2
(<xref target="h2-stream-limits"/>), which has sparked
discussions about the costs of maintaining multiple HTTP versions.</t>
      <t>Another example is WebTransport, a superset of HTTP. Because HTTP has different
bindings for QUIC and TCP, WebTransport defines its own extensions for the two
HTTP variants (<xref target="webtrans-h3"/>,
<xref target="webtrans-h2"/>).</t>
      <t>To reduce or eliminate the costs associated with duplicated efforts in providing
services on top of both transport protocols, this document specifies a polyfill
that allows application protocols built on QUIC to run on transport protocols
that provide single bi-directional, byte-oriented stream such as TCP or TLS.</t>
      <t>The specified polyfill provides a compatibility layer for the set of operations
(i.e., API) required by QUIC, as specified in Section <xref target="QUIC" section="2.4" sectionFormat="bare"/> and Section <xref target="QUIC" section="5.3" sectionFormat="bare"/> of <xref target="QUIC"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<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>
      <?line -18?>

</section>
    <section anchor="the-protocol">
      <name>The Protocol</name>
      <t>QMux can be used on any transport that provides a bi-directional, byte-oriented
stream that is ordered and reliable; for details, see <xref target="transport-properties"/>.</t>
      <t>QUIC frames are sent directly on top of the transport.</t>
      <t>The frames are not encrypted. It is the task of the transport (e.g., TLS) to
provide confidentially and integrity.</t>
      <t>QUIC packet headers are not used.</t>
      <t>For exchanging the Transport Parameters, a new frame called
QX_TRANSPORT_PARAMETERS frame is defined.</t>
      <section anchor="transport-properties">
        <name>Properties of Underlying Transport</name>
        <t>QMux is designed to work on top of transport layer protocols that provide the
following capabilities:</t>
        <dl>
          <dt>In-order delivery of bytes in both direction:</dt>
          <dd>
            <t>Underlying transport provides a byte-oriented and bi-directional stream that
deliver the bytes in order; i.e., bytes that were sent in one order become
available to the receiving side in the same order.</t>
          </dd>
          <dt>Guaranteed delivery:</dt>
          <dd>
            <t>If the transport runs on top of a lossy network, that transport recovers the
bytes lost; e.g., by retransmitting them. This requires buffering and
reassembly, in order to achieve the first bullet point (in-order delivery).</t>
          </dd>
          <dt>Congestion control:</dt>
          <dd>
            <t>When used on a shared network, the transport is congestion controlled.
Implementations of QMux simply write outgoing frames to the transport when
that transport permits.</t>
          </dd>
          <dt>Confidentially and Integrity:</dt>
          <dd>
            <t>Unless used upon endpoints between which tampering or monitoring is a
non-concern, the transport provides confidentially and integrity protection.</t>
          </dd>
        </dl>
        <t>TLS over TCP provides all these capabilities.</t>
        <t>UNIX sockets are an example that provides only the first two. Congestion control
is not employed, as UNIX sockets do not face a shared bottleneck.
Confidentiality and integrity protection are deemed unnecessary in environments
where the operating system is trusted.</t>
      </section>
    </section>
    <section anchor="quic-frames">
      <name>QUIC Frames</name>
      <t>In QMux, the following QUIC frames can be used, as if they were sent or received
in the application packet number space:</t>
      <ul spacing="normal">
        <li>
          <t>PADDING</t>
        </li>
        <li>
          <t>RESET_STREAM</t>
        </li>
        <li>
          <t>STOP_SENDING</t>
        </li>
        <li>
          <t>STREAM</t>
        </li>
        <li>
          <t>MAX_DATA</t>
        </li>
        <li>
          <t>MAX_STREAM_DATA</t>
        </li>
        <li>
          <t>MAX_STREAMS</t>
        </li>
        <li>
          <t>DATA_BLOCKED</t>
        </li>
        <li>
          <t>STREAM_DATA_BLOCKED</t>
        </li>
        <li>
          <t>STREAMS_BLOCKED</t>
        </li>
        <li>
          <t>CONNECTION_CLOSE</t>
        </li>
      </ul>
      <t>The frame formats are identical to those in QUIC version 1. Likewise, the
meaning and requirements for the use of these frames are consistent with QUIC
version 1, with the exception to the specific changes made to the STREAM frames,
as detailed in <xref target="stream-frames"/>.</t>
      <t>Use of other frames defined in QUIC version 1 is prohibited for various reasons.
ACK frames are not used because the underlying transport guarantees delivery.
Frames related to the cryptographic handshake are not used because an underlying
security layer can provide equivalent features. Use of frames that communicate
Connection IDs and those related to path migration is forbidden.</t>
      <t>The full list of prohibited frames is:</t>
      <ul spacing="normal">
        <li>
          <t>PING</t>
        </li>
        <li>
          <t>ACK</t>
        </li>
        <li>
          <t>CRYPTO</t>
        </li>
        <li>
          <t>NEW_TOKEN</t>
        </li>
        <li>
          <t>NEW_CONNECTION_ID</t>
        </li>
        <li>
          <t>RETIRE_CONNECTION_ID</t>
        </li>
        <li>
          <t>PATH_CHALLENGE</t>
        </li>
        <li>
          <t>PATH_REPONSE</t>
        </li>
        <li>
          <t>HANDSHAKE_DONE</t>
        </li>
      </ul>
      <t>Endpoints <bcp14>MUST NOT</bcp14> send prohibited frames. If an endpoint receives one it <bcp14>MUST</bcp14>
close the connection with an error of type FRAME_ENCODING_ERROR.</t>
      <section anchor="stream-frames">
        <name>STREAM Frames</name>
        <t>While the frame format remains unchanged, there are two differences in the
handling of STREAM frames between QUIC version 1 and QMux.</t>
        <section anchor="stream-frames-without-the-length-field">
          <name>STREAM Frames without the Length Field</name>
          <t>In QMux, when a STREAM frame that omits the Length field is used, the size of
that STREAM frame is determined by the maximum frame size, as regulated by the
<tt>max_frame_size</tt> Transport Parameter (<xref target="max_frame_size"/>).</t>
          <t>This behavior contrasts with that of QUIC version 1, where the absence of the
Length field implies that the STREAM frame extends to the end of the QUIC packet
payload.</t>
          <t>This variation arises due to the characteristics of the underlying transports of
QMux, which may not have, or provide visibility into, the packet boundaries.</t>
        </section>
        <section anchor="ordering-of-stream-frames">
          <name>Ordering of STREAM frames</name>
          <t>For each stream being sent, senders <bcp14>MUST</bcp14> send stream payload in order.</t>
          <t>When receiving a STREAM frame that carries a payload not immediately following
the payload of the previous STREAM frame for the same Stream ID, receivers <bcp14>MUST</bcp14>
close connection with an error of type PROTOCOL_VIOLATION_ERROR.</t>
          <t>This change from QUIC version 1 eliminates the need for implementations to
buffer and reassemble the stream payload. As a result, the payload being
received can be directly passed to the application as it is read from the
transport. This efficiency is due to the underlying transport's guarantee of
in-order delivery.</t>
          <t>These changes do not impact the senders' capability to interleave STREAM frames
from multiple streams.</t>
        </section>
      </section>
      <section anchor="qxtransportparameters-frames">
        <name>QX_TRANSPORT_PARAMETERS Frames</name>
        <t>In QMux, Transport Parameters are exchanged as frames.</t>
        <t>QX_TRANSPORT_PARAMETERS frames are formatted as shown in
<xref target="fig-qx-transport-parameters"/>.</t>
        <figure anchor="fig-qx-transport-parameters">
          <name>QX_TRANSPORT_PARAMETERS Frame Format</name>
          <artwork><![CDATA[
QX_TRANSPORT_PARAMETERS Frame {
  Type (i) = 0x3f5153300d0a0d0a,
  Length (i),
  Transport Parameters (..),
}
]]></artwork>
        </figure>
        <t>QX_TRANSPORT_PARAMETERS frames contain the following fields:</t>
        <dl>
          <dt>Length:</dt>
          <dd>
            <t>A variable-length integer specifying the length of the Transport Parameters
field in this QX_TRANSPORT_PARAMETERS frame.</t>
          </dd>
          <dt>Transport Parameters:</dt>
          <dd>
            <t>The Transport Parameters. The encoding of the payload is as defined in
<xref section="18" sectionFormat="of" target="QUIC"/>.</t>
          </dd>
        </dl>
        <t>The QX_TRANSPORT_PARAMETERS frame is the first frame sent by endpoints.
Endpoints <bcp14>MUST</bcp14> send the QX_TRANSPORT_PARAMETERS frame as soon as the underlying
transport becomes available. Note neither endpoint needs to wait for the
peer's Transport Parameters before sending its own, as Transport Parameters are
a unilateral declaration of an endpoint's capabilities
(<xref section="7.4" sectionFormat="of" target="QUIC"/>).</t>
        <t>If the first frame being received by an endpoint is not a
QX_TRANSPORT_PARAMETERS frame, the endpoint <bcp14>MUST</bcp14> close the connection with an
error of type TRANSPORT_PARAMETER_ERROR.</t>
        <t>The frame type (0x3f5153300d0a0d0a; "\xffQMX\r\n\r\n" on wire) has been chosen
so that it can be used to disambiguate QMux from HTTP/1.1 <xref target="HTTP1"/> and
HTTP/2.</t>
      </section>
      <section anchor="qxping-frames">
        <name>QX_PING Frames</name>
        <t>In QMux, QX_PING frames allow endpoints to test peer reachability above the
underlying transport.</t>
        <t>QX_PING frames are formatted as shown in <xref target="fig-qx-ping"/>.</t>
        <figure anchor="fig-qx-ping">
          <name>QX_PING Frame Format</name>
          <artwork><![CDATA[
QX_PING Frame {
  Type (i) = 0xTBD..0xTBD+1,
  Sequence Number (i),
}
]]></artwork>
        </figure>
        <t>Type 0xTBD is used for sending a ping (i.e., request the peer to respond). Type
0xTBD+1 is used in response.</t>
        <t>QX_PING frames contain the following fields:</t>
        <dl>
          <dt>Sequence Number:</dt>
          <dd>
            <t>A variable-length integer used to identify the ping.</t>
          </dd>
        </dl>
        <t>When sending QX_PING frames of type 0xTBD, endpoints <bcp14>MUST</bcp14> send monotonically
increasing values in the Sequence Number field, since that allows the endpoints
to identify to which ping the peer has responded.</t>
        <t>When sending QX_PING frames of type 0xTBD+1 in response, endpoints <bcp14>MUST</bcp14> echo the
Sequence Number that they received.</t>
        <t>When receiving multiple QX_PING frames of type 0xTBD before having the chance to
respond, an endpoint <bcp14>MAY</bcp14> only respond with one QX_PING frame of type 0xTBD+1
carrying the largest Sequence Number that the endpoint has received.</t>
      </section>
    </section>
    <section anchor="transport-parameters">
      <name>Transport Parameters</name>
      <t>QMux uses a subset of Transport Parameters defined in QUIC version 1. Also, one
new Transport Parameter specific to QMux is defined.</t>
      <section anchor="permitted-tps">
        <name>Permitted and Forbidden Transport Parameters</name>
        <t>In QMux, use of the following Transport Parameters is allowed.</t>
        <ul spacing="normal">
          <li>
            <t>max_idle_timeout</t>
          </li>
          <li>
            <t>initial_max_data</t>
          </li>
          <li>
            <t>initial_max_stream_data_bidi_local</t>
          </li>
          <li>
            <t>initial_max_stream_data_bidi_remote</t>
          </li>
          <li>
            <t>initial_max_stream_data_uni</t>
          </li>
          <li>
            <t>initial_max_streams_bidi</t>
          </li>
          <li>
            <t>initial_max_streams_uni</t>
          </li>
        </ul>
        <t>The definition of these Transport Parameters are unchanged.</t>
        <t>Use of other Transport Parameters defined in QUIC version 1 is prohibited. When
an endpoint receives one of the prohibited Transport Parameters, the endpoint
<bcp14>MUST</bcp14> close the connection with an error of type TRANSPORT_PARAMETER_ERROR.</t>
        <t>Endpoints <bcp14>MUST NOT</bcp14> send Transport Parameters that extend QUIC version 1, unless
they are specified to be compatible with QMux.</t>
        <t>When receiving Transport Parameters not defined in QUIC version 1, receivers
<bcp14>MUST</bcp14> ignore them unless they are specified to be usable on QMux.</t>
      </section>
      <section anchor="max_frame_size">
        <name>max_frame_size Transport Parameter</name>
        <t>The <tt>max_frame_size</tt> Transport Parameter (0xTBD) is a variable-length integer
specifying the maximum size of the QUIC frame that the peer can send, in the
unit of bytes.</t>
        <t>The initial value of the <tt>max_frame_size</tt> Transport Parameter is 16384.</t>
        <t>By sending the Transport Parameter, the maximum frame size can only be
increased. When receiving a value below the initial value, receivers <bcp14>MUST</bcp14> close
the connection with an error of type TRANSPORT_PARAMETER_ERROR.</t>
        <t>Endpoints <bcp14>MUST NOT</bcp14> send QUIC frames that exceed the maximum declared by the
peer.</t>
        <t>When receiving QUIC frames that exceed the declared maximum, receivers <bcp14>MUST</bcp14>
close the connection with an error of type FRAME_ENCODING_ERROR.</t>
      </section>
    </section>
    <section anchor="closing-the-connection">
      <name>Closing the Connection</name>
      <t>As is with QUIC version 1, a connection can be closed either by a
CONNECTION_CLOSE frame or by an idle timeout.</t>
      <t>Unlike QUIC version 1, there is no draining period; once an endpoint sends or
receives the CONNECTION_CLOSE frame or reaches the idle timeout, all the
resources allocated for the Service are freed and the underlying transport is
closed immediately.</t>
    </section>
    <section anchor="using-0-rtt">
      <name>Using 0-RTT</name>
      <t>TLS 1.3 introduced the concept of early data (also knows as 0-RTT data).</t>
      <t>When using QMux on top of TLS that supports early data, clients <bcp14>MAY</bcp14> use early
data when resuming a connection, by reusing certain Transport Parameters as
defined in <xref section="7.4.1" sectionFormat="of" target="QUIC"/>.</t>
      <t>Similarly, when accepting early data, the servers <bcp14>MUST</bcp14> send Transport Parameters
that obey to the restrictions defined in <xref section="7.4.1" sectionFormat="of" target="QUIC"/>.</t>
    </section>
    <section anchor="extensions">
      <name>Extensions</name>
      <t>Not all the extensions of QUIC version 1 can be used. Each extension have to
define its mapping for QMux, or explicitly allow the use; see <xref target="permitted-tps"/>.</t>
      <t>As is the case with QUIC version 1, use of extension frames have to be
negotiated before use; see <xref section="19.21" sectionFormat="of" target="QUIC"/>.</t>
      <t>This specification defines the mapping of the Unreliable Datagram Extension.</t>
      <section anchor="unreliable-datagram-extension">
        <name>Unreliable Datagram Extension</name>
        <t>The use of the Unreliable Datagram Extension <xref target="QUIC_DATAGRAM"/> is
permitted, with one modification:</t>
        <t>Similar to STREAM frames, when employing DATAGRAM frames of type 0x30 (i.e.,
DATAGRAM frames without the Length field), their size is determined by the
<tt>max_frame_size</tt> Transport Parameter (<xref target="max_frame_size"/>).</t>
        <t>Apart from this, the encoding and semantics of the Unreliable Datagram Extension
remain unchanged. The use of the extension is negotiated via the Transport
Parameters.</t>
        <t>As discussed in <xref section="5" sectionFormat="of" target="QUIC_DATAGRAM"/>, senders can drop DATAGRAM frames
if the transport is blocked by flow or congestion control.</t>
      </section>
    </section>
    <section anchor="version-agility">
      <name>Version Agility</name>
      <t>Unlike QUIC, QMux does not define a mechanism for version negotiation.</t>
      <t>In large-scale deployments requiring service and protocol version discovery,
QMux can and is likely to be implemented over TLS. The
Application-Layer Protocol Negotiation Extension of TLS <xref target="ALPN"/> is the
favored mechanism to negotiate between an application protocol based on this
specification and others.</t>
      <t>When ALPN is unavailable, first 8 bytes exchanged on the transport (i.e., the
type field of the QX_TRANSPORT_PARAMETERS frame in the encoded form) can be used
to identify if QMux is in use.</t>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <t>Similar to HTTP/3 with Extensible Priorities <xref target="HTTP_PRIORITY"/>,
application protocols using QUIC may employ stream multiplexing along with a
system to tune the delivery sequence of QUIC streams.</t>
      <t>To alternate between QUIC streams of varying priorities in a timely manner, it
is advisable for QMux implementations to avoid creating deep buffers holding
QUIC frames. Instead, endpoints should wait for the transport layer to be ready
for writing. Upon becoming writable, they should write QUIC frames according to
the latest prioritization signals.</t>
      <t>Additionally, implementations may consider monitoring or adjusting the flow and
congestion control parameters of the underlying transport. This approach aims to
minimize data buffering within the transport layer before transmission. However,
improper adjustment of these parameters could potentially lead to lower
throughput.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TODO</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="QUIC">
          <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>
        <reference anchor="TLS13">
          <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="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="QUIC_DATAGRAM">
          <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="UDP">
          <front>
            <title>User Datagram Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="August" year="1980"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC0768"/>
        </reference>
        <reference anchor="TCP">
          <front>
            <title>Transmission Control Protocol (TCP)</title>
            <author fullname="W. Eddy" initials="W." role="editor" surname="Eddy"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet. Over this time, a number of changes have been made to TCP as it was specified in RFC 793, though these have only been documented in a piecemeal fashion. This document collects and brings those changes together with the protocol specification from RFC 793. This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793. It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements. It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state. The TCP header control bits from RFC 793 have also been updated based on RFC 3168.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="7"/>
          <seriesInfo name="RFC" value="9293"/>
          <seriesInfo name="DOI" value="10.17487/RFC9293"/>
        </reference>
        <reference anchor="HTTP3">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP semantics over QUIC. This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9114"/>
          <seriesInfo name="DOI" value="10.17487/RFC9114"/>
        </reference>
        <reference anchor="HTTP2">
          <front>
            <title>HTTP/2</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="C. Benfield" initials="C." role="editor" surname="Benfield"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced latency by introducing field compression and allowing multiple concurrent exchanges on the same connection.</t>
              <t>This document obsoletes RFCs 7540 and 8740.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9113"/>
          <seriesInfo name="DOI" value="10.17487/RFC9113"/>
        </reference>
        <reference anchor="h2-stream-limits">
          <front>
            <title>Using HTTP/3 Stream Limits in HTTP/2</title>
            <author fullname="Martin Thomson" initials="M." surname="Thomson">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Lucas Pardue" initials="L." surname="Pardue">
              <organization>Cloudflare</organization>
            </author>
            <date day="6" month="November" year="2023"/>
            <abstract>
              <t>   A variant mechanism for managing stream limits is described for
   HTTP/2.  This scheme is based on that used in QUIC and is more robust
   against certain patterns of abuse.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-thomson-httpbis-h2-stream-limits-00"/>
        </reference>
        <reference anchor="webtrans-h3">
          <front>
            <title>WebTransport over HTTP/3</title>
            <author fullname="Alan Frindell" initials="A." surname="Frindell">
              <organization>Facebook</organization>
            </author>
            <author fullname="Eric Kinnear" initials="E." surname="Kinnear">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Victor Vasiliev" initials="V." surname="Vasiliev">
              <organization>Google</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   WebTransport [OVERVIEW] is a protocol framework that enables
   application clients constrained by the Web security model to
   communicate with a remote application server using a secure
   multiplexed transport.  This document describes a WebTransport
   protocol that is based on HTTP/3 [HTTP3] and provides support for
   unidirectional streams, bidirectional streams, and datagrams, all
   multiplexed within the same HTTP/3 connection.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-webtrans-http3-13"/>
        </reference>
        <reference anchor="webtrans-h2">
          <front>
            <title>WebTransport over HTTP/2</title>
            <author fullname="Alan Frindell" initials="A." surname="Frindell">
              <organization>Facebook Inc.</organization>
            </author>
            <author fullname="Eric Kinnear" initials="E." surname="Kinnear">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Tommy Pauly" initials="T." surname="Pauly">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Martin Thomson" initials="M." surname="Thomson">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Victor Vasiliev" initials="V." surname="Vasiliev">
              <organization>Google</organization>
            </author>
            <author fullname="Guowu Xie" initials="G." surname="Xie">
              <organization>Facebook Inc.</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   WebTransport defines a set of low-level communications features
   designed for client-server interactions that are initiated by Web
   clients.  This document describes a protocol that can provide many of
   the capabilities of WebTransport over HTTP/2.  This protocol enables
   the use of WebTransport when a UDP-based protocol is not available.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-webtrans-http2-12"/>
        </reference>
        <reference anchor="HTTP1">
          <front>
            <title>HTTP/1.1</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document specifies the HTTP/1.1 message syntax, message parsing, connection management, and related security concerns.</t>
              <t>This document obsoletes portions of RFC 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="99"/>
          <seriesInfo name="RFC" value="9112"/>
          <seriesInfo name="DOI" value="10.17487/RFC9112"/>
        </reference>
        <reference anchor="ALPN">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl"/>
            <author fullname="A. Popov" initials="A." surname="Popov"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Stephan" initials="E." surname="Stephan"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7301"/>
          <seriesInfo name="DOI" value="10.17487/RFC7301"/>
        </reference>
        <reference anchor="HTTP_PRIORITY">
          <front>
            <title>Extensible Prioritization Scheme for HTTP</title>
            <author fullname="K. Oku" initials="K." surname="Oku"/>
            <author fullname="L. Pardue" initials="L." surname="Pardue"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>This document describes a scheme that allows an HTTP client to communicate its preferences for how the upstream server prioritizes responses to its requests, and also allows a server to hint to a downstream intermediary how its responses should be prioritized when they are forwarded. This document defines the Priority header field for communicating the initial priority in an HTTP version-independent manner, as well as HTTP/2 and HTTP/3 frames for reprioritizing responses. These share a common format structure that is designed to provide future extensibility.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9218"/>
          <seriesInfo name="DOI" value="10.17487/RFC9218"/>
        </reference>
      </references>
    </references>
    <?line 459?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
vbcE+2nq4+PwqroTMOJ/ATHADZcZPgAA

-->

</rfc>
