<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rosomakho-httpbis-h3-unbound-data-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title abbrev="Unbound DATA Frames in HTTP/3">Unbound DATA Frames in HTTP/3</title>
    <seriesInfo name="Internet-Draft" value="draft-rosomakho-httpbis-h3-unbound-data-00"/>
    <author fullname="Yaroslav Rosomakho">
      <organization>Zscaler</organization>
      <address>
        <email>yrosomakho@zscaler.com</email>
      </address>
    </author>
    <author initials="D." surname="Schinazi" fullname="David Schinazi">
      <organization>Google LLC</organization>
      <address>
        <email>dschinazi.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="October" day="03"/>
    <area>Web and Internet Transport</area>
    <workgroup>HTTP</workgroup>
    <keyword>http</keyword>
    <keyword>data</keyword>
    <keyword>unbound</keyword>
    <abstract>
      <?line 44?>

<t>This document defines a new HTTP/3 frame type, <tt>UNBOUND_DATA</tt>, and a corresponding <tt>SETTINGS</tt> parameter that enables endpoints to negotiate its use. When an endpoint sends an <tt>UNBOUND_DATA</tt> frame on a request or response stream, it indicates that all subsequent octets on that stream are interpreted as data. This applies both to message body data and to octets transmitted after CONNECT or extended CONNECT. The use of <tt>UNBOUND_DATA</tt> removes the need to encapsulate each portion of the data in <tt>DATA</tt> frames, reducing framing overhead and simplifying transmission of long-lived or indeterminate-length payloads.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://yaroslavros.github.io/draft-httpbis-h3-unbound-data/draft-rosomakho-httpbis-h3-unbound-data.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-rosomakho-httpbis-h3-unbound-data/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        HTTP Working Group mailing list (<eref target="mailto:ietf-http-wg@w3.org"/>),
        which is archived at <eref target="https://lists.w3.org/Archives/Public/ietf-http-wg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/yaroslavros/draft-httpbis-h3-unbound-data"/>.</t>
    </note>
  </front>
  <middle>
    <?line 48?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="H3"/> transmits message content on client-initiated bidirectional QUIC streams. On these streams, the request and response messages are carried using a sequence of HTTP/3 frames. The <tt>DATA</tt> frame is used to encapsulate octets of a message body, or the opaque data associated with CONNECT and its extensions.</t>
      <t>When the size of the body is unknown in advance, or when data is generated incrementally such as media streaming, <xref target="WebSockets"/>, <xref target="WebTransport"/>, or other tunneled protocols using CONNECT and its extensions, senders typically generate many DATA frames. Although DATA frames are lightweight, each adds framing overhead and requires the sender to manage frame boundaries. For long-lived or high-volume streams, this overhead is unnecessary because the end of the QUIC stream already provides a natural message boundary.</t>
      <t>This document defines a new HTTP/3 frame type, <tt>UNBOUND_DATA</tt>, and a corresponding <tt>SETTINGS</tt> parameter that endpoints use to negotiate support. Once an <tt>UNBOUND_DATA</tt> frame is sent on a request or response stream, all subsequent octets on that stream are interpreted as data. This mechanism eliminates the need to encapsulate each portion of the body in separate DATA frames.</t>
      <t>The goals of <tt>UNBOUND_DATA</tt> are:</t>
      <ul spacing="normal">
        <li>
          <t>Reduce framing overhead for large or indeterminate-length message bodies.</t>
        </li>
        <li>
          <t>Simplify sender and receiver state machines by eliminating repeated DATA frame headers.</t>
        </li>
        <li>
          <t>Enable efficient transport of long-lived data flows such as streaming APIs, media delivery, or tunneled protocols.</t>
        </li>
      </ul>
      <t>The use of UNBOUND_DATA does not alter HTTP semantics, flow control, or prioritization; it is strictly a framing optimization.</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="capability-negotiation">
      <name>Capability Negotiation</name>
      <t>Endpoints indicate support for unbound data transmission by sending the <tt>SETTINGS_ENABLE_UNBOUND_DATA</tt> (0x282cf6bb) setting with a value of 1.</t>
      <t>The valid values of the <tt>SETTINGS_ENABLE_UNBOUND_DATA</tt> setting are 0 and 1. If the <tt>SETTINGS_ENABLE_UNBOUND_DATA</tt> setting is received with a different value, the receiver <bcp14>MUST</bcp14> treat it as a connection error of type <tt>H3_SETTINGS_ERROR</tt>.</t>
      <t>A value of 1 indicates that the sender of the SETTINGS frame is willing to receive <tt>UNBOUND_DATA</tt> frames.</t>
      <t>Endpoints <bcp14>MUST NOT</bcp14> send an <tt>UNBOUND_DATA</tt> frame to a peer that has not advertised <tt>SETTINGS_ENABLE_UNBOUND_DATA</tt> with a value of 1. Endpoints that receive an <tt>UNBOUND_DATA</tt> frame without having advertised support <bcp14>MUST</bcp14> treat it as a connection error of type <tt>H3_FRAME_UNEXPECTED</tt>.</t>
      <t>The <tt>SETTINGS_ENABLE_UNBOUND_DATA</tt> parameter is directional: each endpoint independently advertises whether it accepts receiving <tt>UNBOUND_DATA</tt>. An endpoint that has not indicated support cannot be assumed to understand or correctly process the frame.</t>
    </section>
    <section anchor="unbounddata-frame">
      <name>UNBOUND_DATA Frame</name>
      <t>The <tt>UNBOUND_DATA</tt> frame (type=0x2a937388) is used on request or response streams to indicate that all subsequent octets on the stream are interpreted as data. This data can represent an HTTP message body or the data stream as defined in <xref section="3.1" sectionFormat="of" target="HTTP-DGRAM"/>.</t>
      <section anchor="frame-layout">
        <name>Frame Layout</name>
        <figure anchor="fig-unbound-data-frame">
          <name>HTTP/3 UNBOUND_DATA Frame</name>
          <artwork><![CDATA[
UNBOUND_DATA Frame {
  Type (i) = 0x2a937388,
  Length (8) = 0,
}
]]></artwork>
        </figure>
        <t>The <tt>UNBOUND_DATA</tt> frame has no payload. The Length field of the frame <bcp14>MUST</bcp14> be zero. If a nonzero length is received, the endpoint <bcp14>MUST</bcp14> treat this as a connection error of type <tt>H3_FRAME_ERROR</tt>.</t>
        <t>The <tt>UNBOUND_DATA</tt> frame is only valid on request or response streams. It is invalid on control streams, QPACK encoder/decoder streams, or push streams. If an endpoint receives an <tt>UNBOUND_DATA</tt> frame on a stream that isn't a client-initiated bidirectional stream, it <bcp14>MUST</bcp14> treat it as a connection error of type <tt>H3_FRAME_UNEXPECTED</tt>.</t>
        <t>Similar to <tt>DATA</tt> frames, endpoints <bcp14>MUST</bcp14> sent a <tt>HEADERS</tt> frame before sending an <tt>UNBOUND_DATA</tt> frame on a given stream. Receipt of an <tt>UNBOUND_DATA</tt> frame on a stream that hasn't received a <tt>HEADERS</tt> frame <bcp14>MUST</bcp14> be treated as a connection error of type <tt>H3_FRAME_UNEXPECTED</tt>.</t>
      </section>
      <section anchor="semantics">
        <name>Semantics</name>
        <t>Upon receiving an <tt>UNBOUND_DATA</tt> frame on a request or response stream, the receiver enters unbound mode for that stream. In unbound mode:</t>
        <ul spacing="normal">
          <li>
            <t>All remaining octets on the stream, up to the QUIC FIN, are interpreted as data.</t>
          </li>
          <li>
            <t>No further HTTP/3 frames (including <tt>DATA</tt>, <tt>HEADERS</tt>, or any extension frames) can be received on the stream.</t>
          </li>
          <li>
            <t>The end of the data is indicated by the QUIC FIN on the stream.</t>
          </li>
          <li>
            <t>If a <tt>Content-Length</tt> header was included, the recipient needs to ensure that the combined length of all received data (in both <tt>DATA</tt> and <tt>UNBOUND_DATA</tt> frames) matches the content length from the header.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="stream-state-transitions">
      <name>Stream State Transitions</name>
      <t>The use of the <tt>UNBOUND_DATA</tt> frame modifies the sequence of frames exchanged on request and response streams.</t>
      <t>In normal operation, a request or response body is carried as a sequence of one or more <tt>DATA</tt> frames, followed optionally by a <tt>HEADERS</tt> frame containing trailers:</t>
      <figure anchor="fig-regular-http3-state">
        <name>Regular HTTP/3 Frame sequence on bi-directional stream</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="520" viewBox="0 0 520 160" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 312,32 L 312,128" fill="none" stroke="black"/>
              <path d="M 512,32 L 512,128" fill="none" stroke="black"/>
              <path d="M 256,32 L 288,32" fill="none" stroke="black"/>
              <path d="M 312,32 L 512,32" fill="none" stroke="black"/>
              <path d="M 312,64 L 512,64" fill="none" stroke="black"/>
              <path d="M 312,96 L 512,96" fill="none" stroke="black"/>
              <path d="M 256,128 L 288,128" fill="none" stroke="black"/>
              <path d="M 312,128 L 512,128" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="296,128 284,122.4 284,133.6" fill="black" transform="rotate(0,288,128)"/>
              <polygon class="arrowhead" points="296,32 284,26.4 284,37.6" fill="black" transform="rotate(0,288,32)"/>
              <g class="text">
                <text x="16" y="36">New</text>
                <text x="92" y="36">bi-direcitonal</text>
                <text x="172" y="36">QUIC</text>
                <text x="220" y="36">stream</text>
                <text x="352" y="52">HEADERS</text>
                <text x="424" y="52">(headers)</text>
                <text x="328" y="84">[</text>
                <text x="356" y="84">DATA</text>
                <text x="392" y="84">...</text>
                <text x="416" y="84">]</text>
                <text x="328" y="116">[</text>
                <text x="368" y="116">HEADERS</text>
                <text x="444" y="116">(trailers)</text>
                <text x="496" y="116">]</text>
                <text x="196" y="132">QUIC</text>
                <text x="232" y="132">FIN</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
  New bi-direcitonal QUIC stream ---->  +------------------------+
                                        | HEADERS (headers)      |
                                        +------------------------+
                                        | [ DATA ... ]           |
                                        +------------------------+
                                        | [ HEADERS (trailers) ] |
                        QUIC FIN ---->  +------------------------+
]]></artwork>
        </artset>
      </figure>
      <t>When <tt>UNBOUND_DATA</tt> is used, the sender signals that all subsequent octets on the stream are data. Regular <tt>DATA</tt> frames <bcp14>MAY</bcp14> be sent on a stream prior to the <tt>UNBOUND_DATA</tt>. After the <tt>UNBOUND_DATA</tt> frame, the sender cannot send any further HTTP/3 frames on the stream. The end of the body is signaled by the QUIC stream FIN:</t>
      <figure anchor="fig-regular-http3-unbound-state">
        <name>HTTP/3 Frame sequence with UNBOUND_DATA</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="520" viewBox="0 0 520 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 312,32 L 312,160" fill="none" stroke="black"/>
              <path d="M 512,32 L 512,160" fill="none" stroke="black"/>
              <path d="M 256,32 L 288,32" fill="none" stroke="black"/>
              <path d="M 312,32 L 512,32" fill="none" stroke="black"/>
              <path d="M 312,64 L 512,64" fill="none" stroke="black"/>
              <path d="M 312,96 L 512,96" fill="none" stroke="black"/>
              <path d="M 312,128 L 512,128" fill="none" stroke="black"/>
              <path d="M 256,160 L 288,160" fill="none" stroke="black"/>
              <path d="M 312,160 L 512,160" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="296,160 284,154.4 284,165.6" fill="black" transform="rotate(0,288,160)"/>
              <polygon class="arrowhead" points="296,32 284,26.4 284,37.6" fill="black" transform="rotate(0,288,32)"/>
              <g class="text">
                <text x="16" y="36">New</text>
                <text x="92" y="36">bi-directional</text>
                <text x="172" y="36">QUIC</text>
                <text x="220" y="36">stream</text>
                <text x="352" y="52">HEADERS</text>
                <text x="424" y="52">(headers)</text>
                <text x="328" y="84">[</text>
                <text x="356" y="84">DATA</text>
                <text x="392" y="84">...</text>
                <text x="416" y="84">]</text>
                <text x="372" y="116">UNBOUND_DATA</text>
                <text x="336" y="148">Raw</text>
                <text x="380" y="148">octets</text>
                <text x="432" y="148">(data</text>
                <text x="480" y="148">only)</text>
                <text x="196" y="164">QUIC</text>
                <text x="232" y="164">FIN</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
  New bi-directional QUIC stream ---->  +------------------------+
                                        | HEADERS (headers)      |
                                        +------------------------+
                                        | [ DATA ... ]           |
                                        +------------------------+
                                        | UNBOUND_DATA           |
                                        +------------------------+
                                        | Raw octets (data only) |
                        QUIC FIN ---->  +------------------------+
]]></artwork>
        </artset>
      </figure>
      <t>Since the recipient of an <tt>UNBOUND_DATA</tt> will no longer parse frame types on the stream after its receipt, it is not possible to send other frames after the <tt>UNBOUND_DATA</tt>. If that is required, for example if the sender wishes to send trailers, then the <tt>UNBOUND_DATA</tt> frame cannot be used.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The introduction of <tt>UNBOUND_DATA</tt> does not alter the security properties of HTTP/3 or QUIC. It only changes how message bodies or tunneled octets are framed on request and response streams.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="http3-setting">
        <name>HTTP/3 Setting</name>
        <t>This specification registers the following entry in the "HTTP/3 Settings" registry defined in <xref target="H3"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Code: 0x282cf6bb</t>
          </li>
          <li>
            <t>Setting Name: SETTINGS_ENABLE_UNBOUND_DATA</t>
          </li>
          <li>
            <t>Default: 0</t>
          </li>
          <li>
            <t>Status: provisional (permanent if this document is approved)</t>
          </li>
          <li>
            <t>Reference: This document</t>
          </li>
          <li>
            <t>Change Controller: Yaroslav Rosomakho (IETF if this document is approved)</t>
          </li>
          <li>
            <t>Contact: yrosomakho@zscaler.com (HTTP_WG; HTTP working group; ietf-http-wg@w3.org if this document is approved)</t>
          </li>
          <li>
            <t>Notes: None</t>
          </li>
        </ul>
      </section>
      <section anchor="http3-frame-type">
        <name>HTTP/3 Frame Type</name>
        <t>This specification registers the following entry in the "HTTP/3 Frame Types" registry defined in <xref target="H3"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Value: 0x2a937388</t>
          </li>
          <li>
            <t>Frame Type: UNBOUND_DATA</t>
          </li>
          <li>
            <t>Status: provisional (permanent if this document is approved)</t>
          </li>
          <li>
            <t>Reference: This document</t>
          </li>
          <li>
            <t>Change Controller: Yaroslav Rosomakho (IETF if this document is approved)</t>
          </li>
          <li>
            <t>Contact: yrosomakho@zscaler.com (HTTP_WG; HTTP working group; ietf-http-wg@w3.org if this document is approved)</t>
          </li>
          <li>
            <t>Notes: None</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <displayreference target="H3" to="HTTP/3"/>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="H3">
          <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="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="HTTP-DGRAM">
          <front>
            <title>HTTP Datagrams and the Capsule Protocol</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="L. Pardue" initials="L." surname="Pardue"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes HTTP Datagrams, a convention for conveying multiplexed, potentially unreliable datagrams inside an HTTP connection.</t>
              <t>In HTTP/3, HTTP Datagrams can be sent unreliably using the QUIC DATAGRAM extension. When the QUIC DATAGRAM frame is unavailable or undesirable, HTTP Datagrams can be sent using the Capsule Protocol, which is a more general convention for conveying data in HTTP connections.</t>
              <t>HTTP Datagrams and the Capsule Protocol are intended for use by HTTP extensions, not applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9297"/>
          <seriesInfo name="DOI" value="10.17487/RFC9297"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="WebSockets">
          <front>
            <title>Bootstrapping WebSockets with HTTP/3</title>
            <author fullname="R. Hamilton" initials="R." surname="Hamilton"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The mechanism for running the WebSocket Protocol over a single stream of an HTTP/2 connection is equally applicable to HTTP/3, but the HTTP-version-specific details need to be specified. This document describes how the mechanism is adapted for HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9220"/>
          <seriesInfo name="DOI" value="10.17487/RFC9220"/>
        </reference>
        <reference anchor="WebTransport">
          <front>
            <title>WebTransport over HTTP/3</title>
            <author fullname="Alan Frindell" initials="A." surname="Frindell">
              <organization>Facebook</organization>
            </author>
            <author fullname="Eric Kinnear" initials="E." surname="Kinnear">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Victor Vasiliev" initials="V." surname="Vasiliev">
              <organization>Google</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   WebTransport [OVERVIEW] is a protocol framework that enables
   application clients constrained by the Web security model to
   communicate with a remote application server using a secure
   multiplexed transport.  This document describes a WebTransport
   protocol that is based on HTTP/3 [HTTP3] and provides support for
   unidirectional streams, bidirectional streams, and datagrams, all
   multiplexed within the same HTTP/3 connection.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-webtrans-http3-13"/>
        </reference>
      </references>
    </references>
    <?line 194?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This specification originated from discussions with Christian Huitema and Alan Frindell, whose ideas and feedback helped shape the approach described in this document. The authors thanks them for their valuable contributions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
PErnt5880tKTsnC/wfgvn1w/mvooAAA=

-->

</rfc>
