<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-quic-qmux-02" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title>QMux</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-quic-qmux-02"/>
    <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="2026" month="July" day="06"/>
    <workgroup>QUIC</workgroup>
    <keyword>internet-draft</keyword>
    <abstract>
      <?line 28?>

<t>This document specifies QMux version 1. QMux version 1 provides, over
bi-directional streams such as TLS, the same set of stream and datagram
operations that applications rely upon in QUIC version 1.</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/quicwg/qmux"/>.</t>
    </note>
  </front>
  <middle>
    <?line 35?>

<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 anchor="trade-offs">
        <name>Trade-offs Between QMux and QUIC Version 1</name>
        <t>QMux runs QUIC's stream and datagram operations over a single ordered, reliable
byte stream. This leads to the following differences from QUIC version 1, which
applications need to account for when choosing between the two.</t>
        <dl>
          <dt>Head-of-line blocking:</dt>
          <dd>
            <t>In QUIC, streams are delivered independently (<xref section="2" sectionFormat="of" target="QUIC"/>), so
loss affecting one stream does not delay the delivery of others. Any
head-of-line blocking is confined to the individual stream that lost data,
rather than affecting the whole connection. QMux carries all streams and
datagrams over a single ordered byte stream and cannot provide this
isolation. The loss of one segment on that transport delays every byte
behind it, so a single loss can stall all QMux streams, datagrams, and
control frames until the transport repairs the loss.</t>
          </dd>
          <dt>No unreliable datagram delivery:</dt>
          <dd>
            <t>In QUIC, DATAGRAM frames <xref target="QUIC_DATAGRAM"/> are delivered unreliably. They
can be reordered or dropped, and they are never retransmitted. In QMux, a
DATAGRAM frame written to the underlying transport is delivered reliably
and in order, like any other data, and is subject to the same
head-of-line blocking. A sender can still choose not to send a datagram,
but a datagram cannot be dropped once sent. Applications that rely on
QUIC's unreliable datagram semantics need to account for this difference.</t>
          </dd>
          <dt>No connection migration or multipath:</dt>
          <dd>
            <t>A QMux connection is tied to the connection of the underlying transport,
such as a TCP four-tuple. Unlike QUIC, it cannot migrate to a new path or
survive a change in the client's address (<xref section="9" sectionFormat="of" target="QUIC"/>).</t>
          </dd>
          <dt>Connection establishment latency:</dt>
          <dd>
            <t>QMux uses the underlying transport for connection establishment rather
than QUIC's combined transport and cryptographic handshake. Establishment
latency is therefore bounded by that of the underlying transport, for
example a TCP handshake followed by a TLS handshake. Early data on
resumption is limited to what the underlying transport offers, such as
TLS 1.3 0-RTT.</t>
          </dd>
          <dt>Dependence on the underlying transport:</dt>
          <dd>
            <t>QMux provides no confidentiality, integrity, or peer authentication of
its own, and relies on the underlying transport for these properties and
for application protocol negotiation (see <xref target="transport-properties"/> and
<xref target="negotiation"/>).</t>
          </dd>
        </dl>
      </section>
    </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>QMux transfers one or more QUIC frames within a QMux record; see <xref target="records"/>.
Neither QUIC frames nor QMux records are encrypted in this protocol; it is the
task of the transport (e.g., TLS) to provide confidentiality 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>Authentication, confidentiality, and integrity protection:</dt>
          <dd>
            <t>Unless used upon endpoints between which tampering or monitoring is a
non-concern, the transport provides peer authentication, confidentially, and
integrity protection.</t>
          </dd>
          <dt>Application Protocol Negotiation:</dt>
          <dd>
            <t>To avoid cross-protocol confusion, the underlying transport provides a
mechanism for endpoints to agree on the protocols in use. Without such a
mechanism, QMux and application protocols built on top of QMux can only be
used between endpoints that have out-of-band agreement on those protocols.</t>
          </dd>
        </dl>
        <t>TLS over TCP, combined with the Application-Layer Protocol Negotiation extension
(ALPN) <xref target="ALPN"/>, provides all these capabilities.</t>
        <t>UNIX sockets are an example that provide in-order and guaranteed delivery only.
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. Agreement on the application
protocol can be achieved by using different listening sockets.</t>
      </section>
      <section anchor="records">
        <name>QMux Records</name>
        <t>QMux Records are formatted as shown in <xref target="fig-qmux-record"/>.</t>
        <figure anchor="fig-qmux-record">
          <name>QMux Record Format</name>
          <artwork><![CDATA[
QMux Record {
  Size (i),
  Frames (..),
}
]]></artwork>
        </figure>
        <t>QMux Records contain the following fields:</t>
        <dl>
          <dt>Size:</dt>
          <dd>
            <t>A variable-length integer specifying the length in bytes of the Frames field. Note that this length does not include the Size field itself.</t>
          </dd>
          <dt>Frames:</dt>
          <dd>
            <t>A byte sequence that contains one or more QUIC frames.</t>
          </dd>
        </dl>
        <t>Each QMux Record is self-delimiting. On a byte stream transport, endpoints
parse QMux Records by first parsing Size and then reading exactly that many
bytes as Frames. The bytes in Frames are interpreted as a contiguous series of
QUIC frames encoded using QUIC version 1 framing.</t>
        <t>As with QUIC packet payloads (<xref section="12.4" sectionFormat="of" target="QUIC"/>), frames are complete
units: a frame <bcp14>MUST</bcp14> fit entirely within a single QMux Record and <bcp14>MUST NOT</bcp14> span
multiple QMux Records.</t>
        <t>Senders can choose record boundaries freely, subject to the <tt>max_record_size</tt>
transport parameter (<xref target="max_record_size"/>). Receivers process frames within each
record, using the record boundary as the payload boundary for frames that omit
an explicit length.</t>
        <t>If the end of the Frames field is not aligned to a frame boundary (that is, if
the final frame in the record is truncated), the receiver <bcp14>MUST</bcp14> close the
connection with an error of type FRAME_ENCODING_ERROR.</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>QMux keeps the QUIC version 1 frame formats even where the ordered transport
makes a field redundant, such as the Offset field of STREAM frames. This lets
an implementation reuse a QUIC version 1 stack with minimal changes, and
removing such fields would provide minimal benefit while increasing the
divergence between QMux and QUIC version 1 implementations.</t>
      <t>Use of other frames defined in QUIC version 1 is prohibited for various reasons.</t>
      <t>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>QMux relies on the underlying transport for reliable delivery and therefore does
not use ACK frames. QMux stacks do not track delivery or retransmit lost data or
frames. For the stream state machinery defined in <xref section="3" sectionFormat="of" target="QUIC"/>,
references to acknowledgment are interpreted as though acknowledgments occurs as
soon as data is passed to the underlying transport. As in QUIC version 1,
applications cannot assume that the peer application has consumed data based
solely on transport events.</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>Ordering of STREAM Frames</name>
        <t>In QUIC version 1, the order in which STREAM frames are sent or received is not
guaranteed, because packets can be lost and frames can be retransmitted in
different packets. In contrast, QMux, which runs over an ordered and reliable
byte stream transport, requires STREAM frames for each QUIC stream to be sent
in order: i.e., for each QUIC stream being sent, senders <bcp14>MUST</bcp14> send the stream
payload in order.</t>
        <t>This change 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>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 the connection with an error of type PROTOCOL_VIOLATION.</t>
        <t>These changes do not impact the senders' capability to interleave STREAM frames
from multiple streams.</t>
      </section>
      <section anchor="qx-tp-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. To allow
peers to open streams and start sending data as early as possible, endpoints
<bcp14>MUST</bcp14> send the QX_TRANSPORT_PARAMETERS frame as soon as the underlying transport
becomes available for sending. 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>Except when sending 0-RTT data using remembered transport parameters as
described in <xref section="7.4.1" sectionFormat="of" target="QUIC"/>, endpoints <bcp14>MUST NOT</bcp14> send frames whose use
depends on peer transport parameters until the peer's QX_TRANSPORT_PARAMETERS
frame has been received and processed. This can delay use of peer-advertised
flow control credit and can therefore block sending stream data before peer
transport parameters arrive. When QMux runs over TLS 1.3, this does not
necessarily add a full round trip for clients on a full handshake. Servers can
send the QX_TRANSPORT_PARAMETERS frame immediately after the server's Finished
message, and clients can receive and process the transport parameters as soon as
they obtain the keys needed to process application data.</t>
        <t>The QX_TRANSPORT_PARAMETERS frame <bcp14>MUST</bcp14> only be sent as the first frame. If the
first frame being received by an endpoint is not a QX_TRANSPORT_PARAMETERS
frame, or if a QX_TRANSPORT_PARAMETERS frame is received other than as the first
frame, the endpoint <bcp14>MUST</bcp14> close the connection with an error of type
PROTOCOL_VIOLATION.</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) = 0x348c67529ef8c7bd..0x348c67529ef8c7be,
  Sequence Number (i),
}
]]></artwork>
        </figure>
        <t>Type 0x348c67529ef8c7bd is used for sending a ping (i.e., request the peer to
respond). Type 0x348c67529ef8c7be 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 0x348c67529ef8c7bd, endpoints <bcp14>MUST</bcp14> send
strictly 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 0x348c67529ef8c7be in response, endpoints
<bcp14>MUST</bcp14> echo the Sequence Number that they received.</t>
        <t>When receiving multiple QX_PING frames of type 0x348c67529ef8c7bd before having
the chance to respond, an endpoint <bcp14>MAY</bcp14> only respond with one QX_PING frame of
type 0x348c67529ef8c7be carrying the largest Sequence Number that the endpoint
has received.</t>
        <t>If an endpoint receives a QX_PING frame of type 0x348c67529ef8c7be with a
sequence number greater than the greatest sequence number that it sent in a
QX_PING frame of type 0x348c67529ef8c7bd, the endpoint <bcp14>MUST</bcp14> close the connection
with an error of type PROTOCOL_VIOLATION. Similarly, an endpoint <bcp14>MAY</bcp14> detect a
sequence number that it did not send and close the connection with the same
error.</t>
        <t>If an endpoint receives a QX_PING frame of type 0x348c67529ef8c7bd with a
sequence number less than or equal to the previous sequence number received in a frame
of the same type, the endpoint <bcp14>MUST</bcp14> close the connection with an error of type
PROTOCOL_VIOLATION.</t>
      </section>
    </section>
    <section anchor="transport-parameters">
      <name>Transport Parameters</name>
      <t>As in QUIC, QMux exchanges transport parameters following the rules established
in <xref section="7.4" sectionFormat="of" target="QUIC"/>, with the modifications described in the subsections
below. Transport parameters are also carried differently, in a frame rather than
a TLS extension; see <xref target="qx-tp-frames"/>.</t>
      <section anchor="permitted-tps">
        <name>Permitted and Forbidden Transport Parameters</name>
        <t>Among the transport parameters defined in <xref section="18.2" sectionFormat="of" target="QUIC"/>, 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 definitions of these transport parameters are unchanged.</t>
        <t>Although an endpoint could convey connection-level limits using MAX_DATA and
MAX_STREAMS frames in its first flight, the initial flow-control transport
parameters from QUIC version 1 are used. The
<tt>initial_max_stream_data_bidi_local</tt>, <tt>initial_max_stream_data_bidi_remote</tt>,
and <tt>initial_max_stream_data_uni</tt> parameters set the flow-control credit
available on a stream as soon as it is opened, including streams opened
later in the connection. Using these transport parameters also lets a
client send 0-RTT data within remembered limits on a resumed connection,
before the peer's frames are received (see <xref target="using-0rtt"/>), and preserves
the flow-control model of QUIC version 1 so that existing implementations
can be reused without modification.</t>
        <t>Use of all other transport parameters defined in <xref section="18.2" sectionFormat="of" target="QUIC"/>
is prohibited, namely the following:</t>
        <ul spacing="normal">
          <li>
            <t>original_destination_connection_id</t>
          </li>
          <li>
            <t>stateless_reset_token</t>
          </li>
          <li>
            <t>max_udp_payload_size</t>
          </li>
          <li>
            <t>ack_delay_exponent</t>
          </li>
          <li>
            <t>max_ack_delay</t>
          </li>
          <li>
            <t>disable_active_migration</t>
          </li>
          <li>
            <t>preferred_address</t>
          </li>
          <li>
            <t>active_connection_id_limit</t>
          </li>
          <li>
            <t>initial_source_connection_id</t>
          </li>
          <li>
            <t>retry_source_connection_id</t>
          </li>
        </ul>
        <t>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>QUIC defines a reserved range of transport parameters for the purpose of
exercising a peer's ability to ignore unknown transport parameters
(<xref section="7.4.2" sectionFormat="of" target="QUIC"/>). The use of these transport parameters in QMux for
the same purpose is allowed.</t>
        <t>Endpoints <bcp14>MUST NOT</bcp14> send transport parameters defined outside of <xref target="QUIC"/> unless
they are specified to be usable with QMux. Similarly, endpoints <bcp14>MUST</bcp14> ignore
transport parameters defined outside of <xref target="QUIC"/> unless they are specified to be
usable with QMux; see <xref target="extensions"/>.</t>
      </section>
      <section anchor="max_record_size">
        <name>max_record_size Transport Parameter</name>
        <t>The <tt>max_record_size</tt> transport parameter (0x0571c59429cd0845) is a
variable-length integer specifying the maximum value of the Size field of a QMux
Record (<xref target="records"/>) that the peer can send, in the unit of bytes.</t>
        <t>As required by <xref target="QUIC"/>, if the <tt>max_record_size</tt> transport parameter is absent,
a default value applies. The default value of the <tt>max_record_size</tt> transport
parameter is 16382. This value allows a sender to construct a 16KB QMux Record
by using a 2-byte Size field and a 16382-byte Frames field, aligning with the
default capacity of a full-sized TLS record; see <xref section="5.1" sectionFormat="of" target="TLS13"/>.</t>
        <t>When the <tt>max_record_size</tt> transport parameter is sent, the value <bcp14>MUST</bcp14> be equal
to or greater than the default value. When receiving a value less than the
default value, receivers <bcp14>MUST</bcp14> close the connection with an error of type
TRANSPORT_PARAMETER_ERROR.</t>
        <t>Endpoints <bcp14>MUST NOT</bcp14> send QMux Records with a Frames field that exceeds the
maximum declared by the peer.</t>
        <t>When receiving a QMux Record with a Frames field that exceeds the declared
maximum, receivers <bcp14>MUST</bcp14> close the connection with an error of type
FRAME_ENCODING_ERROR.</t>
        <t>This document does not specify the use of the <tt>max_record_size</tt> transport
parameter with QUIC version 1. Absent such a specification, the
<tt>max_record_size</tt> transport parameter is ignored by QUIC version 1 endpoints as
an unknown transport parameter, as defined in (<xref section="7.4.2" sectionFormat="of" target="QUIC"/>).</t>
      </section>
    </section>
    <section anchor="forward-progress-flow-control">
      <name>Forward Progress and Flow Control</name>
      <t>To avoid deadlock due to flow control in the underlying transport, endpoints
<bcp14>MUST</bcp14> continue reading from the underlying transport even when delivery of STREAM
data to the application is temporarily blocked.</t>
      <t>Endpoints <bcp14>MUST NOT</bcp14> couple reads from the underlying transport to application
reads on any single QUIC stream, as doing so can prevent processing of frames
required for connection progress.</t>
      <t>Continuing to read does not imply unbounded buffering of STREAM data, as the
amount of stream data a peer can send is limited by flow control
(<xref section="4" sectionFormat="of" target="QUIC"/>). For DATAGRAM frames, endpoints <bcp14>MAY</bcp14> drop received
datagrams when they cannot be promptly delivered to the application.</t>
    </section>
    <section anchor="connection-termination">
      <name>Connection Termination</name>
      <t>A QMux connection can be terminated by an idle timeout, by a CONNECTION_CLOSE
frame, or by observing a closure of the underlying transport.</t>
      <section anchor="idle-timeout">
        <name>Idle Timeout</name>
        <t>In QUIC version 1, the idle timer is reset whenever a packet is received and
processed successfully, including acknowledgment-only packets. It also raises
the idle timeout using PTO, a value derived from when acknowledgments are
received. QMux cannot adopt this approach as-is since acknowledgments are not
processed by QMux stacks; they are processed by the underlying transport
instead.</t>
        <t>As a consequence, the idle timeout of QMux is defined as follows:</t>
        <ul spacing="normal">
          <li>
            <t>As in QUIC version 1, endpoints negotiate an idle timeout using the
max_idle_timeout transport parameter.</t>
          </li>
          <li>
            <t>As in QUIC version 1, endpoints reset the idle timer each time a QMux record
is completely received.</t>
          </li>
          <li>
            <t>Endpoints also reset the idle timer each time a QMux record is completely
sent. Since acknowledgments are not directly visible to QMux endpoints, QMux
does not reset the idle timer on acknowledgements. Instead, endpoints observe
the side effect of acknowledgments: bytes drained from the send buffer,
opening up space to send more.</t>
          </li>
          <li>
            <t>Activity on the underlying transport - such as acknowledgments, TCP keepalives, or TLS key updates - does not reset
the idle timer.</t>
          </li>
          <li>
            <t>QMux endpoints do not increase their idle timeouts relative to the current
Probe Timeout (PTO).</t>
          </li>
        </ul>
        <t>While idle, a QMux connection may also be disrupted by inactivity timers outside
of QMux; e.g., a  Network Address Translator <xref target="RFC7857"/> that discards its
mapping. QX_PING frames can be used to elicit a peer response, which could keep
inactivity timers at lower transport layers and intermediaries from causing
premature connection termination.</t>
      </section>
      <section anchor="initiating-a-connection-close">
        <name>Initiating a Connection Close</name>
        <t>When the idle timeout expires, an endpoint gracefully shuts down its sending
side of the underlying transport. The endpoint does not send any QMux frames, though
it might send messages at lower layers, such as a TLS <tt>close_notify</tt> alert.</t>
        <t>Separately, as in QUIC version 1, an endpoint can initiate closing of a QMux
connection by sending a CONNECTION_CLOSE frame and then gracefully shutting down
its sending side of the underlying transport.</t>
        <t>In either case, after shutting down the sending side, the endpoint <bcp14>SHOULD</bcp14> wait
for the peer to gracefully shut down the peer's sending side. The use of
graceful shutdown mitigates the risk of undelivered records and frames
becoming lost due to abrupt termination of the underlying transport. While
waiting for the peer to gracefully shut down, QMux endpoints <bcp14>SHOULD</bcp14> discard any
data they receive without processing it, similarly to QUIC version 1 endpoints
discarding packets received during the draining period
(<xref section="10.2.2" sectionFormat="of" target="QUIC"/>).</t>
      </section>
      <section anchor="responding-to-a-connection-close">
        <name>Responding to a Connection Close</name>
        <t>When receiving a CONNECTION_CLOSE frame or observing the peer shut down the
peer's sending side, the receiving endpoint <bcp14>SHOULD</bcp14> gracefully shut down its
sending side, either without sending any frames or after sending a single
CONNECTION_CLOSE frame.</t>
      </section>
      <section anchor="handling-resets">
        <name>Handling Resets</name>
        <t>When the underlying transport becomes unavailable (e.g., due to a TCP reset or a
TLS fatal alert), the QMux connection is terminated immediately.</t>
      </section>
    </section>
    <section anchor="using-tls">
      <name>Using TLS</name>
      <t>When QMux is used over TLS, TLS provides capabilities in addition to
confidentiality and integrity protection.</t>
      <section anchor="negotiation">
        <name>Protocol Negotiation</name>
        <t>As in QUIC <xref section="8.1" sectionFormat="of" target="QUIC-TLS"/>, when running an application protocol
over QMux over TLS, endpoints <bcp14>MUST</bcp14> use ALPN <xref target="ALPN"/> to agree on an application
protocol, unless another mechanism is used for agreeing on an application
protocol.</t>
        <t>ALPN protocol identifiers identify the application protocol in use. Application
protocols that use QMux over TLS <bcp14>MUST</bcp14> designate their ALPN identifier and
specify that they use QMux version 1. The identifier for a mapping to QMux <bcp14>MUST</bcp14>
be different from the mapping of the same protocol to QUIC,
to retain compatibility with Service Binding and Parameter Specification
via the DNS <xref target="SVCB"/>.</t>
        <t>When using ALPN, endpoints <bcp14>MUST</bcp14> abort the TLS handshake with a
no_application_protocol TLS alert (<xref section="3.2" sectionFormat="of" target="ALPN"/>) if an application
protocol is not negotiated. While ALPN only requires that servers use this
alert, QMux clients <bcp14>MUST</bcp14> also abort the handshake when ALPN negotiation fails.</t>
        <t>QMux is not itself an application protocol and does not have an ALPN identifier.</t>
        <t>TO BE REMOVED BEFORE PUBLICATION: During the development of QMux, its wire
format might change. Therefore, when testing interoperability of application
protocols using a draft version of QMux, applications should specify, for each
ALPN identifier they define, which draft version of QMux is used. As an example,
an ALPN identifier "myapp-12qx" could identify version 12 of "myapp" over TCP and QMux,
identifying the use of a specific QMux draft version in its specification.
the use of QMux draft-05.</t>
      </section>
      <section anchor="using-0rtt">
        <name>Using 0-RTT</name>
        <t>TLS 1.3 introduced the concept of early data (also known as 0-RTT data).</t>
        <t>When using QMux over 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, servers <bcp14>MUST</bcp14> send transport parameters
that comply with the restrictions in <xref section="7.4.1" sectionFormat="of" target="QUIC"/>. This preserves
QUIC's 0-RTT compatibility model and avoids requiring an additional round trip
to learn peer transport parameters on resumed connections.</t>
      </section>
    </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 following extensions.</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. The encoding and semantics of the Unreliable Datagram Extension
remain unchanged, and the use of the extension is negotiated via 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>
        <t>The largest DATAGRAM frame an endpoint can send is constrained by two limits.
First, as in QUIC version 1, it is bounded by the peer's
<tt>max_datagram_frame_size</tt> transport parameter. Second, it is bounded by the
size of the container that carries the frame: in QUIC version 1 that container
is the packet (<xref section="12.4" sectionFormat="of" target="QUIC"/>), whereas in QMux it is the QMux
Record, so the bound is the peer's <tt>max_record_size</tt> transport parameter
(<xref target="max_record_size"/>). Where <xref section="3" sectionFormat="of" target="QUIC_DATAGRAM"/> recommends
advertising a <tt>max_datagram_frame_size</tt> of 65535 to accept any DATAGRAM frame
that fits within a packet, the corresponding limit in QMux is <tt>max_record_size</tt>.</t>
        <t>Because these limits apply to the entire DATAGRAM frame rather than to its
payload, the usable datagram payload is smaller than <tt>max_record_size</tt>. It
excludes the frame's Type field, Length field when present, and any
bytes used by other frames sharing the record. For example, with the
default <tt>max_record_size</tt> of 16382, a DATAGRAM frame that is the only frame
in a record and omits its Length field (using the record boundary as the end
of the datagram, see <xref target="records"/>) can carry a payload of up to 16381 bytes:
the maximum record size of 16382, reduced by the one-byte frame Type.</t>
      </section>
      <section anchor="stream-resets-with-partial-delivery-extension">
        <name>Stream Resets with Partial Delivery Extension</name>
        <t>The use of the Stream Resets with Partial Delivery Extension
<xref target="RESET-STREAM-AT"/> is permitted. The
encoding and semantics of the RESET_STREAM_AT frame remain unchanged, and the
use of the extension is negotiated via transport parameters.</t>
        <t>Because QMux runs on a reliable transport, all stream data is delivered to the
receiving stack before the RESET_STREAM_AT frame. The Reliable Size indicates
how much of that data the stack needs to deliver to the application before
signaling the reset.</t>
      </section>
    </section>
    <section anchor="version-agility">
      <name>Version Agility</name>
      <t>As new versions of QUIC are specified, there may be a desire to define their
reliable-byte-stream counterparts as different versions of QMux, and to provide
ways of negotiating the version to be used.</t>
      <t>QUIC establishes connections using packets carrying an explicit version number.
Using that field, Version-Independent Properties of
QUIC <xref target="QUIC-INVARIANTS"/> defines a version negotiation mechanism that
involves a retry. Compatible Version Negotiation for QUIC
<xref target="QUIC-CVN"/> defines another negotiation mechanism for switching
between compatible versions during connection establishment without retrying.</t>
      <t>By contrast, QMux does not establish connections by itself; the connections are
set up by the underlying substrate, and QMux exchanges only the transport
parameters after they are established.</t>
      <t>Due to these differences, the negotiation mechanisms used by QUIC and QMux will
differ.</t>
      <t>This section explores some options that future versions of QMux might employ for
version negotiation and upgrade.</t>
      <section anchor="negotiation-using-alpn">
        <name>Negotiation Using ALPN</name>
        <t>When a new QUIC version that provides a different interface to applications is
specified, application protocols developed for that version might be assigned a
new identifier for the TLS Application-Layer Protocol Negotiation (ALPN)
extension <xref target="ALPN"/>.</t>
        <t>Similarly, when TLS is the underlying transport, application protocols built on
top of the QMux counterparts of such QUIC versions can rely on ALPN to negotiate
both the application protocol and the underlying QMux version (<xref target="negotiation"/>).</t>
        <t>When TLS is not the underlying transport, endpoints can use the first 8 bytes
exchanged on the transport (i.e., the type field of the
QX_TRANSPORT_PARAMETERS frame in the encoded form) to identify whether QMux is
in use.</t>
        <t>[TODO: discuss how endpoints should behave when the first 8 bytes received are
not QX_TRANSPORT_PARAMETERS.]</t>
      </section>
      <section anchor="in-band-upgrade">
        <name>In-band Upgrade</name>
        <t>A new version of QMux might first start communication using QMux version 1 and
then switch versions in-band during the session. The advantage of this approach
is that, even when TLS is not in use, no additional round-trip is incurred for
version negotiation.</t>
        <t>While QMux version 1 does not specify a concrete method, new versions might use
the version_information transport parameter (<xref section="3" sectionFormat="of" target="QUIC-CVN"/>) to
discover supported versions and coordinate the switch.</t>
      </section>
    </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>QMux inherits many of the security properties and considerations laid out in
<xref section="21" sectionFormat="of" target="QUIC"/>. This section describes considerations specific to QMux.</t>
      <section anchor="forward-progress">
        <name>Forward Progress</name>
        <t>Failure to follow the forward-progress requirements in
<xref target="forward-progress-flow-control"/> can lead to deadlock and can be exploited for
resource-exhaustion attacks.</t>
      </section>
      <section anchor="denial-of-service">
        <name>Denial of Service</name>
        <t>As in QUIC (<xref section="21.9" sectionFormat="of" target="QUIC"/>), valid QMux frames can be used to keep a
connection alive, to consume processing resources disproportionate to useful
progress, or to force an endpoint to generate responses. For example, sending
large numbers of small records, PADDING frames, tiny flow control increments, or
QX_PING frames can be used for such purposes. Implementations <bcp14>SHOULD</bcp14> monitor for
such traffic patterns and <bcp14>MAY</bcp14> treat suspicious activity as a connection error.</t>
        <t>Unlike QUIC, where each packet is a self-contained unit, QMux records can arrive
incrementally over the underlying byte stream. Implementations need to consider
resources they might use to hold partially received records.</t>
        <t>Unlike QUIC, QMux does not provide protection against premature connection
termination by unauthenticated on-path entities. An intermediary that can
disrupt the underlying transport will be able to successfully terminate
connections; see <xref target="handling-resets"/>.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document defines new frame types and a transport parameter for use
with QUIC. IANA is requested to register the following values in the
registries under <eref target="https://www.iana.org/assignments/quic">https://www.iana.org/assignments/quic</eref>.</t>
      <t>The codepoints listed below, unless otherwise stated, were selected using the
deterministic method described at <eref target="https://martinthomson.github.io/quic-pick/">https://martinthomson.github.io/quic-pick/</eref>,
with seeds of the form <tt>draft-ietf-quic-qmux-NN_&lt;fieldtype&gt;</tt>. Upon publication
as an RFC, IANA is requested to replace provisional codepoints with permanent
assignments from the standards-action range.</t>
      <section anchor="quic-frame-types">
        <name>QUIC Frame Types</name>
        <t>The following entries should be added to the "QUIC Frame Types"
registry.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Frame Type Name</th>
              <th align="left">Status</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x3f5153300d0a0d0a</td>
              <td align="left">QX_TRANSPORT_PARAMETERS</td>
              <td align="left">provisional</td>
              <td align="left">
                <xref target="fig-qx-transport-parameters"/></td>
            </tr>
            <tr>
              <td align="left">0x348c67529ef8c7bd - 0x348c67529ef8c7be</td>
              <td align="left">QX_PING</td>
              <td align="left">provisional</td>
              <td align="left">
                <xref target="fig-qx-ping"/></td>
            </tr>
          </tbody>
        </table>
        <t>The value 0x3f5153300d0a0d0a for QX_TRANSPORT_PARAMETERS was chosen deliberately
to function as a protocol magic number see (<xref target="fig-qx-transport-parameters"/>).</t>
      </section>
      <section anchor="quic-transport-parameters">
        <name>QUIC Transport Parameters</name>
        <t>The following entry should be added to the "QUIC Transport Parameters"
registry.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Parameter Name</th>
              <th align="left">Status</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x0571c59429cd0845</td>
              <td align="left">max_record_size</td>
              <td align="left">provisional</td>
              <td align="left">
                <xref target="max_record_size"/></td>
            </tr>
          </tbody>
        </table>
      </section>
    </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="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="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>
        <reference anchor="RESET-STREAM-AT">
          <front>
            <title>QUIC Stream Resets with Partial Delivery</title>
            <author fullname="Marten Seemann" initials="M." surname="Seemann">
         </author>
            <author fullname="Kazuho Oku" initials="K." surname="Oku">
              <organization>Fastly</organization>
            </author>
            <date day="4" month="July" year="2026"/>
            <abstract>
              <t>   QUIC defines a RESET_STREAM frame to abort sending on a stream.  When
   a sender resets a stream, it also stops retransmitting STREAM frames
   for this stream in the event of packet loss.  On the receiving side,
   there is no guarantee that any data sent on that stream is delivered.

   This document defines a new QUIC frame, the RESET_STREAM_AT frame,
   that allows resetting a stream, while guaranteeing delivery of stream
   data up to a certain byte offset.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-reliable-stream-reset-09"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="QUIC-TLS">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
        <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="2" month="March" year="2026"/>
            <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-15"/>
        </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="Woo Xie" initials="W." surname="Xie">
              <organization>Facebook Inc.</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <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-14"/>
        </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="RFC7857">
          <front>
            <title>Updates to Network Address Translation (NAT) Behavioral Requirements</title>
            <author fullname="R. Penno" initials="R." surname="Penno"/>
            <author fullname="S. Perreault" initials="S." surname="Perreault"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="S. Sivakumar" initials="S." surname="Sivakumar"/>
            <author fullname="K. Naito" initials="K." surname="Naito"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This document clarifies and updates several requirements of RFCs 4787, 5382, and 5508 based on operational and development experience. The focus of this document is Network Address Translation from IPv4 to IPv4 (NAT44).</t>
              <t>This document updates RFCs 4787, 5382, and 5508.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="127"/>
          <seriesInfo name="RFC" value="7857"/>
          <seriesInfo name="DOI" value="10.17487/RFC7857"/>
        </reference>
        <reference anchor="SVCB">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="QUIC-INVARIANTS">
          <front>
            <title>Version-Independent Properties of QUIC</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the properties of the QUIC transport protocol that are common to all versions of the protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8999"/>
          <seriesInfo name="DOI" value="10.17487/RFC8999"/>
        </reference>
        <reference anchor="QUIC-CVN">
          <front>
            <title>Compatible Version Negotiation for QUIC</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>QUIC does not provide a complete version negotiation mechanism but instead only provides a way for the server to indicate that the version the client chose is unacceptable. This document describes a version negotiation mechanism that allows a client and server to select a mutually supported version. Optionally, if the client's chosen version and the negotiated version share a compatible first flight format, the negotiation can take place without incurring an extra round trip. This document updates RFC 8999.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9368"/>
          <seriesInfo name="DOI" value="10.17487/RFC9368"/>
        </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 873?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
    <section numbered="false" anchor="change-log">
      <name>Change Log</name>
      <ul empty="true">
        <li>
          <t><strong>Note to the RFC Editor / Editors:</strong> Delete this section before publication.</t>
        </li>
      </ul>
      <section numbered="false" anchor="since-draft-ietf-quic-qmux-01">
        <name>Since draft-ietf-quic-qmux-01</name>
        <ul spacing="normal">
          <li>
            <t><tt>max_record_size</tt> reframed with a default value; QMux-only, ignored by QUIC version 1 (#50, #54).</t>
          </li>
          <li>
            <t>QX_TRANSPORT_PARAMETERS frame misuse signaled with PROTOCOL_VIOLATION (#51).</t>
          </li>
          <li>
            <t>QX_PING Sequence Numbers now strictly increasing; invalid values defined (#52).</t>
          </li>
          <li>
            <t>Transport parameters follow RFC 9000 unless explicitly overridden (#53, #56).</t>
          </li>
          <li>
            <t>Expanded connection termination and CONNECTION_CLOSE handling (#57).</t>
          </li>
          <li>
            <t>Allowed use of the RESET_STREAM_AT frame (#58).</t>
          </li>
          <li>
            <t>Documented downsides compared to QUIC version 1 (#61).</t>
          </li>
          <li>
            <t>Clarified effective DATAGRAM frame size (#62).</t>
          </li>
          <li>
            <t>Explained why initial flow-control transport parameters are retained (#63).</t>
          </li>
          <li>
            <t>Explained why most QUIC version 1 frame formats are unchanged (#64).</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="since-draft-ietf-quic-qmux-00">
        <name>Since draft-ietf-quic-qmux-00</name>
        <ul spacing="normal">
          <li>
            <t>Frames are implicitly acknowledged by the underlying transport (#23).</t>
          </li>
          <li>
            <t>Adopted length-delimited QMux Records (#26).</t>
          </li>
          <li>
            <t>Added forward-progress requirements for flow control (#27).</t>
          </li>
          <li>
            <t>Clarified transport parameter timing and 0-RTT text (#28).</t>
          </li>
          <li>
            <t>Endpoints <bcp14>MUST</bcp14> use ALPN for application-protocol negotiation (#33).</t>
          </li>
          <li>
            <t>Renamed <tt>max_frame_size</tt> to <tt>max_record_size</tt> and updated codepoints (#38).</t>
          </li>
          <li>
            <t>QX_TRANSPORT_PARAMETERS is sent once, only as the first frame (#44).</t>
          </li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7V9fXfbxtHv//spcO0/aueQjCTbia206aNYSqMnjqRKctKc
tkcBiaWEGgRYAJTEOu5nuZ/lfrI7v5nZF4Cg7PQ+t+ekpkhgd3Z2dt5ndjwe
mzZvC7ufPPrzD6v7RyarZmW6oL+zOp2349y28/E/V/ls/M/F6n68s2dmaWuv
q3q9nzRtZu6u95M/vz1+bfJlvZ+09app93Z2XtFz7+z6rqqz/SQvW1uXth3z
iKZp0zK7SouqpEnWtjHLfD/5a1vNRklT1W1t5w19Wi/w4e8mXbU3Vb1vknGS
zFdFIbB9n/5rdVMlp+9WJqH/VfV1Wub/Stu8KveTb9OmLdb8g12kebGfvOPH
q3er/7rGF5NZtegN+GY1S5vkLK2zlR0Y8nVRrbJ5kdY2HrbAS//F/7/kNwcG
/u+0TJPjtS2v03pg4BNCb5Hfx6P+o84nwPpWWI/qfJZ8n5elHRzyYLksOmDa
d/Lsf6X4hQc0eTmv6gW9cWsJt7yD48s3F/vJ+bevX+3s7BpjxuNxkk6btk5n
rTGXN3mTEG2sFrZsk2ZpZ/k8t00Coklubd3Q3MnupPd3sqyr2zyztKMVfWmm
+TjLazsDpGlBBFTbdNEkzWp2kxD+CYJR0t7YpKGFJo1tk2quDyVENEmWtul1
nS5MtbQ1L7ehx9M2wcrymX5T22KdrJY0f17yyiL4dF2LPMsISeZxcly2dZWt
GCJjuk8n79//L3zzB0HKzocPCSEhTbqrGCWgUcIKALCZIYSVzZIoeVyka1sD
BUTcVZFMV3lBKyqTtlpiYW8Pz2iGP9I/mODLL15++DBJLmn17g3jsJcsVkWb
0+bd2yyZF9XdeFYB7qKgvx0S73I6Kas2ubFpNq7m4yIvbTItqhlt/zWwm5pZ
VQOt9W0+s5PkmPBWNBWBMqcVJxi2oBWUs3VCw5eyvsTSeZ0WeXPDG49dsPN5
PsvpL1NUDdA9w96uCbffVXeWPvIe0kx0XIhk7sqG19BWvBn02GkZvgdGeQvx
2yiZWgA7TRtaGE1OuBnhibJqsYJVmWNz0oI2OJ3NbNPkU9pGUM5rxiX9w5u1
9+rZhw+jhI4kpq1mdEJ5r+g9nQF4oTmma6WFaXVvG4LtgKYi4Ifhwx90fJar
Nm3deAvg1N4vLT1+a/lnWneGeYmcDZEQ/bP7DGC9fP78C6IhYAsAY7NpwLyc
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
AgBoSNxItt+23CvYlWwuaSZ4XNgQkqeig9S4UFo/y+uDKjgHJwcbbLRXV6a+
hXCNHpT7Rgshh/QxEDB0OB8TnMg8eiOabbQhe22vcS9B3YvRdRpAGXmIYyOM
kuT3N227bPY///zu7m6Sp2U6qerrz8WA5PP1OfyYX2sECfaEKgl8YxCMAZrH
50CxvwSXLEj9PWkVei9FQQj0t7KIV1sQjNYDM1Vfo24stIUesgUor6QHFg0J
xGtCw2o6ySsGbEwn8N3nX48EOw27/nyYsl4kv0h2QXDI8v1BJydXv2dzCrj/
+hdVWparqc/zSDmtgnTK0TZkLwtY8EzdjWj5EXIYGjh4U24lEKEzyupvU7jU
s2acyrHgAnnXV85fC8Kubb2FNYq8lrKJ3iSDuREqmB7133/kdh7pf78mP3KB
za/RE8kJPv2aXNC+EUP7tZsplfxqfh2Px53/aJjN1nz04jbT9NcOsn5NPtIb
ONEJ+v2QxkPdqn71KfZbZ5EmeDQqY1IqjAbgZ916ywru0BmfuwqyCTC1kguO
NIX5qlTexl2rnYNhkV4Tdbu7Voh1PPnIquFhcNs/3DRpkw7WD1PB0DBbyCHk
yf1n1NAvwqcX+8X/m/uzEeLEHhkaM5mScARbPegWqJj3+4JRm/3h0ZzMActt
BE8PT+OanAkX7klH9jfV9fBLXyeffSa3dAnG6MAnRxlrAZ/rh2b/s88Q+rGt
JM95ZdU1Wg1cQ/ZOKpAG+c7O7jAY44HgXm1ZPPj66E5F+FcsZLnEbvRAFfCT
xy92RsnjF8+JrMYf6flJBgfEvVhYbtrNfl4Yc9cNxyeu150OUv8uGWhF+BV9
Ft1VRZIrdaMR93jEwUZbqsZjZ17t7Ow4SROl2ED5qaU5Fg31DAv+gsc7ul+m
nDAwXOLCMncjvduJdoz1JQ9zoPeXRzG14XAcvfGS3zhUaY8E/OqO1QEpVks1
KraxT18ITl+TZixdNqRKDLUBvcgunyJ6Yc8tsRB18e5m/ZHuT/2GVZJDyxvw
xbOB0RYonHjwWqFO2ysM8/zpx8/AzrYzEN/7tggJVOFIP1hxSdPvySoOUPuJ
lksc0nZX3dleXwN6/At9XH2kD5iIfEVZbH/Q21/2dmxId2vzhQvpSk5ca+8Z
UqGToy35573b3sNtpZ3b3h8/k/We25IZBfOQTkpNNcBXJLKRsTIdaSw02ssH
uYR2v0gqLmHlwNBm52Ia5jlo4P8CMUeKJDOTAAA=

-->

</rfc>
