<?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.5 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-kazuho-quic-quic-on-streams-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.2 -->
  <front>
    <title>QUIC on Streams</title>
    <seriesInfo name="Internet-Draft" value="draft-kazuho-quic-quic-on-streams-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>
    <date year="2024" month="February" day="16"/>
    <workgroup>QUIC</workgroup>
    <keyword>internet-draft</keyword>
    <abstract>
      <?line 19?>

<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-kazuho-quic-quic-on-streams"/>.</t>
    </note>
  </front>
  <middle>
    <?line 25?>

<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>QUIC on Streams can be used on any transport that provides 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
QS_TRANSPORT_PARAMETERS frame is defined.</t>
      <section anchor="transport-properties">
        <name>Properties of Underlying Transport</name>
        <t>QUIC on Streams 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 QUIC on Streams simply write outgoing frames to the
transport when that transport permits to.</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 QUIC on Streams, 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. Namely, ACK frames
are not used, because the underlying transport guarantees delivery. Use of
frames that communicate Connection IDs and those related to path migration is
forbidden.</t>
      <t>If an endpoint receives one of the prohibited frames, the endpoint <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 QUIC on Streams.</t>
        <section anchor="stream-frames-without-the-length-field">
          <name>STREAM Frames without the Length Field</name>
          <t>In QUIC on Streams, 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
QUIC on Streams, 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="qstransportparameters-frames">
        <name>QS_TRANSPORT_PARAMETERS Frames</name>
        <t>In QUIC on Streams, Transport Parameters are exchanged as frames.</t>
        <t>QS_TRANSPORT_PARAMETERS frames are formatted as shown in
<xref target="fig-qs-transport-parameters"/>.</t>
        <figure anchor="fig-qs-transport-parameters">
          <name>QS_TRANSPORT_PARAMETERS Frame Format</name>
          <artwork><![CDATA[
QS_TRANSPORT_PARAMETERS Frame {
  Type (i) = 0x3f5153300d0a0d0a,
  Length (i),
  Transport Parameters (..),
}
]]></artwork>
        </figure>
        <t>QS_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 QS_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 QS_TRANSPORT_PARAMETERS frame is the first frame being sent by endpoints.
Endpoints <bcp14>MUST</bcp14> send the QS_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
QS_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; "\xffQS0\r\n\r\n" on wire) has been chosen
so that it can be used to disambiguate QUIC on Streams from HTTP/1.1
<xref target="HTTP1"/> and HTTP/2.</t>
      </section>
      <section anchor="qsping-frames">
        <name>QS_PING Frames</name>
        <t>In QUIC on Streams, QS_PING frames allow endpoints to test peer reachability
above the underlying transport.</t>
        <t>QS_PING frames are formatted as shown in <xref target="fig-qs-ping"/>.</t>
        <figure anchor="fig-qs-ping">
          <name>QS_PING Frame Format</name>
          <artwork><![CDATA[
QS_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>QS_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 QS_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 QS_PING frames of type 0xTBD+1 in response, endpoints <bcp14>MUST</bcp14> echo the
Sequence Number that they received.</t>
        <t>When receiving multiple QS_PING frames of type 0xTBD before having the chance to
respond, an endpoint <bcp14>MAY</bcp14> only respond with one QS_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>QUIC on Streams uses a subset of Transport Parameters defined in QUIC version 1.
Also, one new Transport Parameter specific to QUIC on Streams is defined.</t>
      <section anchor="permitted-tps">
        <name>Permitted and Forbidden Transport Parameters</name>
        <t>In QUIC on Streams, 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 QUIC on Streams.</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 QUIC on Streams.</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 QUIC on Streams 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 QUIC on Streams, 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, QUIC on Streams does not define a mechanism for version
negotiation.</t>
      <t>In large-scale deployments requiring service and protocol version discovery,
QUIC on Streams 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 QS_TRANSPORT_PARAMETERS frame in the encoded form) can be used
to identify if QUIC on Streams 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 QUIC on Streams 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>
      <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="23" month="October" year="2023"/>
            <abstract>
              <t>   WebTransport [OVERVIEW] is a protocol framework that enables clients
   constrained by the Web security model to communicate with a remote
   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-08"/>
        </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="23" month="October" year="2023"/>
            <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-07"/>
        </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 445?>

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

-->

</rfc>
