<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.18 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-schinazi-masque-h3-datagram-01" category="std" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.5.0 -->
  <front>
    <title abbrev="HTTP/3 Datagrams">Using QUIC Datagrams with HTTP/3</title>
    <seriesInfo name="Internet-Draft" value="draft-schinazi-masque-h3-datagram-01"/>
    <author initials="D." surname="Schinazi" fullname="David Schinazi">
      <organization>Google LLC</organization>
      <address>
        <postal>
          <street>1600 Amphitheatre Parkway</street>
          <city>Mountain View, California 94043</city>
          <country>United States of America</country>
        </postal>
        <email>dschinazi.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2020" month="December" day="13"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>The QUIC DATAGRAM extension provides application protocols running over QUIC
with a mechanism to send unreliable data while leveraging the security and
congestion-control properties of QUIC. However, QUIC DATAGRAM frames do not
provide a means to demultiplex application contexts. This document defines how
to use QUIC DATAGRAM frames when the application protocol running over QUIC is
HTTP/3 by adding an identifier at the start of the frame payload. This allows
HTTP messages to convey related information using unreliable DATAGRAM frames,
ensuring those frames are properly associated with an HTTP message.</t>
      <t>Discussion of this work is encouraged to happen on the MASQUE IETF mailing list
(<eref target="mailto:masque@ietf.org">masque@ietf.org</eref>) or on the GitHub repository which
contains the draft: <eref target="https://github.com/DavidSchinazi/draft-h3-datagram"/>.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>
      <t>The QUIC DATAGRAM extension <xref target="DGRAM" format="default"/> provides
application protocols running over QUIC <xref target="QUIC" format="default"/> with
a mechanism to send unreliable data while leveraging the security and
congestion-control properties of QUIC. However, QUIC DATAGRAM frames do not
provide a means to demultiplex application contexts. This document defines how
to use QUIC DATAGRAM frames when the application protocol running over QUIC is
HTTP/3 <xref target="H3" format="default"/> by adding an identifier at the start of the
frame payload. This allows HTTP messages to convey related information using
unreliable DATAGRAM frames, ensuring those frames are properly associated with
an HTTP message.</t>
      <t>This design mimics the use of Stream Types in HTTP/3, which provide a
demultiplexing identifier at the start of each unidirectional stream.</t>
      <t>Discussion of this work is encouraged to happen on the MASQUE IETF mailing list
(<eref target="mailto:masque@ietf.org">masque@ietf.org</eref>) or on the GitHub repository which
contains the draft: <eref target="https://github.com/DavidSchinazi/draft-h3-datagram"/>.</t>
      <section anchor="defs" numbered="true" toc="default">
        <name>Conventions and Definitions</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/>
when, and only when, they appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="flow-id" numbered="true" toc="default">
      <name>Flow Identifiers</name>
      <t>Flow identifiers represent bidirectional flows of datagrams within a single QUIC
connection. These are conceptually similar to streams in the sense that they
allow multiplexing of application data.  Flows lack any of the ordering
or reliability guarantees of streams.</t>
      <t>Beyond this, a sender SHOULD ensure that DATAGRAM frames within a single flow
are transmitted in order relative to one another. If multiple DATAGRAM frames
can be packed into a single QUIC packet, the sender SHOULD group them by flow
identifier to promote fate-sharing within a specific flow and improve the
ability to process batches of datagram messages efficiently on the receiver.</t>
    </section>
    <section anchor="flow-id-alloc" numbered="true" toc="default">
      <name>Flow Identifier Allocation</name>
      <t>Implementations of HTTP/3 that support the DATAGRAM extension MUST provide a
flow identifier allocation service. That service will allow applications
co-located with HTTP/3 to request a unique flow identifier that they can
subsequently use for their own purposes. The HTTP/3 implementation will then
parse the flow identifier of incoming DATAGRAM frames and use it to deliver the
frame to the appropriate application.</t>
      <t>Even flow identifiers are client-initiated, while odd flow identifiers are
server-initiated. This means that an HTTP/3 client implementation of the
flow identifier allocation service MUST only provide even identifiers, while
a server implementation MUST only provide odd identifiers. Note that, once
allocated, any flow identifier can be used by both client and server - only
allocation carries separate namespaces to avoid requiring synchronization.</t>
    </section>
    <section anchor="format" numbered="true" toc="default">
      <name>HTTP/3 DATAGRAM Frame Format</name>
      <t>When used with HTTP/3, the Datagram Data field of QUIC DATAGRAM frames uses the
following format (using the notation from the "Notational Conventions" section
of <xref target="QUIC" format="default"/>):</t>
      <figure anchor="h3-datagram-format">
        <name>HTTP/3 DATAGRAM Frame Format</name>
        <artwork name="" type="" align="left" alt=""><![CDATA[
HTTP/3 DATAGRAM Frame {
  Flow Identifier (i),
  HTTP/3 Datagram Payload (..),
}
]]></artwork>
      </figure>
      <dl>
        <dt>
Flow Identifier:  </dt>
        <dd>
          <t>A variable-length integer indicating the Flow Identifier of the datagram (see
<xref target="flow-id" format="default"/>).</t>
        </dd>
        <dt>
HTTP/3 Datagram Payload:  </dt>
        <dd>
          <t>The payload of the datagram, whose semantics are defined by individual
applications. Note that this field can be empty.</t>
        </dd>
      </dl>
      <t>Endpoints MUST treat receipt of a DATAGRAM frame whose payload is too short to
parse the flow identifier as a connection error of type PROTOCOL_VIOLATION.</t>
    </section>
    <section anchor="setting" numbered="true" toc="default">
      <name>The H3_DATAGRAM HTTP/3 SETTINGS Parameter</name>
      <t>Implementations of HTTP/3 that support this mechanism can indicate that to
their peer by sending the H3_DATAGRAM SETTINGS parameter with a value of 1.
The value of the H3_DATAGRAM SETTINGS parameter MUST be either 0 or 1. A value
of 0 indicates that this mechanism is not supported. An endpoint that receives
the H3_DATAGRAM SETTINGS parameter with a value that is neither 0 or 1 MUST
terminate the connection with error H3_SETTINGS_ERROR.</t>
      <t>And endpoint that sends the H3_DATAGRAM SETTINGS parameter with a value of 1
MUST send the max_datagram_frame_size QUIC Transport Parameter <xref target="DGRAM" format="default"/>.
An endpoint that receives the H3_DATAGRAM SETTINGS parameter with a value of 1
on a QUIC connection that did not also receive the max_datagram_frame_size
QUIC Transport Parameter MUST terminate the connection with error
H3_SETTINGS_ERROR.</t>
      <t>When clients use 0-RTT, they MAY store the value of the server's H3_DATAGRAM
SETTINGS parameter.  Doing so allows the client to use HTTP/3 datagrams in
0-RTT packets.  When servers decide to accept 0-RTT data, they MUST send a
H3_DATAGRAM SETTINGS parameter greater or equal to the value they sent to the
client in the connection where they sent them the NewSessionTicket
message.  If a client stores the value of the H3_DATAGRAM SETTINGS parameter
with their 0-RTT state, they MUST validate that the new value of the
H3_DATAGRAM SETTINGS parameter sent by the server in the handshake is greater
or equal to the stored value; if not, the client MUST terminate the connection
with error H3_SETTINGS_ERROR.</t>
    </section>
    <section anchor="header" numbered="true" toc="default">
      <name>Datagram-Flow-Id Header Definition</name>
      <t>"Datagram-Flow-Id" is a Item Structured
Header <xref target="STRUCT-HDR" format="default"/>. Its value MUST be an
Integer. Its ABNF is:</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
  Datagram-Flow-Id = sh-integer
]]></artwork>
      <t>The "Datagram-Flow-Id" header is used to associate a datagram flow identifier
with an HTTP message. For example, the definition of an HTTP method could
instruct the client to use its flow identifier allocation service to allocate
a new flow identifier, and then the client will add the "Datagram-Flow-Id"
header to its request to communicate that value to the server. For example, the
resulting header could look like:</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
  Datagram-Flow-Id = 2
]]></artwork>
      <t>Definitions of HTTP features that use the "Datagram-Flow-Id" header MAY define
their own parameters (parameters are defined in Section 3.1.2 of
<xref target="STRUCT-HDR" format="default"/>). For example, an HTTP method that wishes to use two datagram
flow identifiers for the lifetime of its request stream could encode the second
flow identifier as a parameter, which could look like this:</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
  Datagram-Flow-Id = 42; alternate=44
]]></artwork>
      <t>The "Datagram-Flow-Id" header MUST NOT be present more than once on a given
HTTP message; any HTTP message containing more than one "Datagram-Flow-Id"
header is malformed.</t>
      <t>Since the QUIC STREAM frame that contains the "Datagram-Flow-Id" header could
be lost or reordered, it is possible that an endpoint will receive an HTTP/3
datagram with a flow identifier that it does not know as it has not yet
received the corresponding "Datagram-Flow-Id" header. Endpoints MUST NOT treat
that as an error; they MUST either silently discard the datagram or buffer it
until they receive the "Datagram-Flow-Id" header.</t>
      <t>Note that integer structured fields can only encode values up to 10^15-1,
therefore the maximum possible value of the "Datagram-Flow-Id" header is lower
then the theoretical maximum value of a flow identifier which is 2^62-1 due to
the QUIC variable length integer encoding. If the flow identifier allocation
service of an endpoint runs out of values lower than 10^15-1, the endpoint
MUST treat is as a connection error of type H3_ID_ERROR.</t>
    </section>
    <section anchor="intermediaries" numbered="true" toc="default">
      <name>HTTP Intermediaries</name>
      <t>HTTP/3 DATAGRAM flow identifiers are specific to a given HTTP/3 connection.
However, in some cases, an HTTP request may travel across multiple HTTP
connections if there are HTTP intermediaries involved; see Section 2.3 of
<xref target="RFC7230" format="default"/>.</t>
      <t>If an intermediary has sent the H3_DATAGRAM SETTINGS parameter with a value of
1 on its client-facing connection, it MUST inspect all HTTP requests from that
connection and check for the presence of the "Datagram-Flow-Id" header. If the
HTTP method of the request is not supported by the intermediary, it MUST remove
the "Datagram-Flow-Id" header before forwarding the request. If the intermediary
supports the method, it MUST either remove the header or adhere to the
requirements leveraged by that method on intermediaries.</t>
      <t>If an intermediary has sent the H3_DATAGRAM SETTINGS parameter with a value of
1 on its server-facing connection, it MUST inspect all HTTP responses from that
connection and check for the presence of the "Datagram-Flow-Id" header. If the
HTTP method of the request is not supported by the intermediary, it MUST remove
the "Datagram-Flow-Id" header before forwarding the response. If the
intermediary supports the method, it MUST either remove the header or adhere to
the requirements leveraged by that method on intermediaries.</t>
    </section>
    <section anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>This document does not have additional security considerations beyond those
defined in <xref target="QUIC" format="default"/> and <xref target="DGRAM" format="default"/>.</t>
    </section>
    <section anchor="iana" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="iana-setting" numbered="true" toc="default">
        <name>HTTP SETTINGS Parameter</name>
        <t>This document will request IANA to register the following entry in the
"HTTP/3 Settings" registry:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
  +--------------+-------+---------------+---------+
  | Setting Name | Value | Specification | Default |
  +==============+=======+===============+=========+
  | H3_DATAGRAM  | 0x276 | This Document |    0    |
  +--------------+-------+---------------+---------+
]]></artwork>
      </section>
      <section anchor="iana-header" numbered="true" toc="default">
        <name>HTTP Header</name>
        <t>This document will request IANA to register the "Datagram-Flow-Id"
header in the "Permanent Message Header Field Names"
registry maintained at
&lt;<eref target="https://www.iana.org/assignments/message-headers"/>&gt;.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
  +-------------------+----------+--------+---------------+
  | Header Field Name | Protocol | Status |   Reference   |
  +-------------------+----------+--------+---------------+
  | Datagram-Flow-Id  |   http   |  std   | This document |
  +-------------------+----------+--------+---------------+
]]></artwork>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="DGRAM" target="http://www.ietf.org/internet-drafts/draft-ietf-quic-datagram-01.txt">
        <front>
          <title>An Unreliable Datagram Extension to QUIC</title>
          <author initials="T" surname="Pauly" fullname="Tommy Pauly">
            <organization/>
          </author>
          <author initials="E" surname="Kinnear" fullname="Eric Kinnear">
            <organization/>
          </author>
          <author initials="D" surname="Schinazi" fullname="David Schinazi">
            <organization/>
          </author>
          <date month="August" day="24" year="2020"/>
          <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.  Discussion of this work is encouraged to happen on the QUIC IETF mailing list quic@ietf.org (mailto:quic@ietf.org) or on the GitHub repository which contains the draft: https://github.com/quicwg/ datagram (https://github.com/quicwg/datagram).</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-quic-datagram-01"/>
      </reference>
      <reference anchor="QUIC" target="http://www.ietf.org/internet-drafts/draft-ietf-quic-transport-32.txt">
        <front>
          <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
          <author initials="J" surname="Iyengar" fullname="Jana Iyengar">
            <organization/>
          </author>
          <author initials="M" surname="Thomson" fullname="Martin Thomson">
            <organization/>
          </author>
          <date month="October" day="20" year="2020"/>
          <abstract>
            <t>This document defines the core of the QUIC transport protocol. Accompanying documents describe QUIC's loss detection and congestion control and the use of TLS for key negotiation.  Note to Readers  Discussion of this draft takes place on the QUIC working group mailing list (quic@ietf.org (mailto:quic@ietf.org)), which is archived at https://mailarchive.ietf.org/arch/search/?email_list=quic  Working Group information can be found at https://github.com/quicwg; source code and issues list for this draft can be found at https://github.com/quicwg/base-drafts/labels/-transport.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-quic-transport-32"/>
      </reference>
      <reference anchor="H3" target="http://www.ietf.org/internet-drafts/draft-ietf-quic-http-32.txt">
        <front>
          <title>Hypertext Transfer Protocol Version 3 (HTTP/3)</title>
          <author initials="M" surname="Bishop" fullname="Mike Bishop">
            <organization/>
          </author>
          <date month="October" day="20" year="2020"/>
          <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="Internet-Draft" value="draft-ietf-quic-http-32"/>
      </reference>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author initials="S." surname="Bradner" fullname="S. Bradner">
            <organization/>
          </author>
          <date year="1997" month="March"/>
          <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" target="https://www.rfc-editor.org/info/rfc8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author initials="B." surname="Leiba" fullname="B. Leiba">
            <organization/>
          </author>
          <date year="2017" month="May"/>
          <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="STRUCT-HDR" target="http://www.ietf.org/internet-drafts/draft-ietf-httpbis-header-structure-19.txt">
        <front>
          <title>Structured Field Values for HTTP</title>
          <author initials="M" surname="Nottingham" fullname="Mark Nottingham">
            <organization/>
          </author>
          <author initials="P" surname="Kamp" fullname="Poul-Henning Kamp">
            <organization/>
          </author>
          <date month="June" day="3" year="2020"/>
          <abstract>
            <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers".  It is intended for use by specifications of new HTTP fields that wish to use a common syntax that is more restrictive than traditional HTTP field values.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-header-structure-19"/>
      </reference>
      <reference anchor="RFC7230" target="https://www.rfc-editor.org/info/rfc7230">
        <front>
          <title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
          <author initials="R." surname="Fielding" fullname="R. Fielding" role="editor">
            <organization/>
          </author>
          <author initials="J." surname="Reschke" fullname="J. Reschke" role="editor">
            <organization/>
          </author>
          <date year="2014" month="June"/>
          <abstract>
            <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems.  This document provides an overview of HTTP architecture and its associated terminology, defines the "http" and "https" Uniform Resource Identifier (URI) schemes, defines the HTTP/1.1 message syntax and parsing requirements, and describes related security concerns for implementations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7230"/>
        <seriesInfo name="DOI" value="10.17487/RFC7230"/>
      </reference>
    </references>
    <section numbered="false" anchor="acks" toc="default">
      <name>Acknowledgments</name>
      <t>The DATAGRAM flow identifier was previously part of the DATAGRAM frame
definition itself, the author would like to acknowledge the authors of
that document and the members of the IETF QUIC working group for their
suggestions. Additionally, the author would like to thank Martin Thomson
for suggesting the use of an HTTP/3 SETTINGS parameter. Thanks to Lucas Pardue
for their inputs on this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
