<?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.2.10 -->
<!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-ietf-quic-datagram-00" category="std" obsoletes="" updates="" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 2.19.0 -->
  <front>
    <title abbrev="QUIC Datagrams">An Unreliable Datagram Extension to QUIC</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-quic-datagram-00"/>
    <author initials="T." surname="Pauly" fullname="Tommy Pauly">
      <organization>Apple Inc.</organization>
      <address>
        <postal>
          <street>One Apple Park Way</street>
          <city>Cupertino, California 95014</city>
          <country>United States of America</country>
        </postal>
        <email>tpauly@apple.com</email>
      </address>
    </author>
    <author initials="E." surname="Kinnear" fullname="Eric Kinnear">
      <organization>Apple Inc.</organization>
      <address>
        <postal>
          <street>One Apple Park Way</street>
          <city>Cupertino, California 95014</city>
          <country>United States of America</country>
        </postal>
        <email>ekinnear@apple.com</email>
      </address>
    </author>
    <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="February" day="26"/>
    <keyword>Internet-Draft</keyword>
    <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>
      <t>Discussion of this work is encouraged to happen on the QUIC IETF mailing list
<eref target="mailto:quic@ietf.org">quic@ietf.org</eref> or on the GitHub repository which contains the draft:
<eref target="https://github.com/quicwg/datagram">https://github.com/quicwg/datagram</eref>.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>The QUIC Transport Protocol <xref target="I-D.ietf-quic-transport" format="default"/> provides a secure,
multiplexed connection for transmitting reliable streams of application data.
Reliability within QUIC is performed on a per-stream basis, so some frame
types are not eligible for retransmission.</t>
      <t>Some applications, particularly those that need to transmit real-time data,
prefer to transmit data unreliably. These applications can build directly upon
UDP <xref target="RFC0768" format="default"/> as a transport, and can add security with DTLS <xref target="RFC6347" format="default"/>.
Extending QUIC to support transmitting unreliable application data would
provide another option for secure datagrams, with the added benefit of sharing
a cryptographic and authentication context used for reliable streams.</t>
      <t>This document defines two new DATAGRAM QUIC frame types, which
carry application data without requiring retransmissions.</t>
      <t>Discussion of this work is encouraged to happen on the QUIC IETF mailing list
<eref target="mailto:quic@ietf.org">quic@ietf.org</eref> or on the GitHub repository which contains the draft:
<eref target="https://github.com/quicwg/datagram">https://github.com/quicwg/datagram</eref>.</t>
      <section anchor="specification-of-requirements" numbered="true" toc="default">
        <name>Specification of Requirements</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="motivation" numbered="true" toc="default">
      <name>Motivation</name>
      <t>Transmitting unreliable data over QUIC provides benefits over existing
solutions:</t>
      <ul spacing="normal">
        <li>Applications that open both a reliable TLS stream and an unreliable
DTLS flow to the same peer can benefit by sharing a single handshake
and authentication context between a reliable QUIC stream and flow
of unreliable QUIC datagrams. This can reduce the latency required
for handshakes.</li>
        <li>QUIC uses a more nuanced loss recovery mechanism than the DTLS
handshake, which has a basic packet loss retransmission timer. This
may allow loss recovery to occur more quickly for QUIC data.</li>
        <li>QUIC datagrams, while unreliable, can support acknowledgements,
allowing applications to be aware of whether a datagram was successfully
received.</li>
        <li>QUIC datagrams are subject to QUIC congestion control, allowing
applications to avoid implementing their own.</li>
      </ul>
      <t>These reductions in connection latency, and application insight into
the delivery of datagrams, can be useful for optimizing audio/video
streaming applications, gaming applications, and other real-time
network applications.</t>
      <t>Unreliable QUIC datagrams can also be used to implement an IP
packet tunnel over QUIC, such as for a Virtual Private Network (VPN).
Internet-layer tunneling protocols generally require a reliable and
authenticated handshake, followed by unreliable secure transmission
of IP packets. This can, for example, require a TLS connection for
the control data, and DTLS for tunneling IP packets. A single
QUIC connection could support both parts with the use of unreliable
datagrams.</t>
    </section>
    <section anchor="transport-parameter" numbered="true" toc="default">
      <name>Transport Parameter</name>
      <t>Support for receiving the DATAGRAM frame types is advertised by means
of a QUIC Transport Parameter (name=max_datagram_frame_size, value=0x0020).
The max_datagram_frame_size transport parameter is an integer value
(represented as a variable-length integer) that represents the maximum
size of a DATAGRAM frame (including the frame type, length, and
payload) the endpoint is willing to receive, in bytes. An endpoint that
includes this parameter supports the DATAGRAM frame types and is willing to
receive such frames on this connection. Endpoints MUST NOT send DATAGRAM
frames until they have sent and received the max_datagram_frame_size transport
parameter. Endpoints MUST NOT send DATAGRAM frames of size strictly larger
than the value of max_datagram_frame_size the endpoint has received from its
peer. An endpoint that receives a DATAGRAM frame when it has not sent the
max_datagram_frame_size transport parameter MUST terminate the connection with
error PROTOCOL_VIOLATION. An endpoint that receives a DATAGRAM frame that is
strictly larger than the value it sent in its max_datagram_frame_size
transport parameter MUST terminate the connection with error
PROTOCOL_VIOLATION. Endpoints that wish to use DATAGRAM frames need to ensure
they send a max_datagram_frame_size value sufficient to allow their peer to
use them. It is RECOMMENDED to send the value 65536 in the
max_datagram_frame_size transport parameter as that indicates to the peer that
this endpoint will accept any DATAGRAM frame that fits inside a QUIC packet.</t>
      <t>When clients use 0-RTT, they MAY store the value of the server's
max_datagram_frame_size transport parameter. Doing so allows the client to send
DATAGRAM frames in 0-RTT packets. When servers decide to accept 0-RTT data,
they MUST send a max_datagram_frame_size transport 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
max_datagram_frame_size transport parameter with their 0-RTT state, they MUST
validate that the new value of the max_datagram_frame_size transport 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 PROTOCOL_VIOLATION.</t>
      <t>Application protocols that use datagrams MUST define how they react to the
max_datagram_frame_size transport parameter being missing. If datagram support
is integral to the application, the application protocol can fail the handshake
if the max_datagram_frame_size transport parameter is not present.</t>
    </section>
    <section anchor="datagram-frame-type" numbered="true" toc="default">
      <name>Datagram Frame Type</name>
      <t>DATAGRAM frames are used to transmit application data in an unreliable manner.
The DATAGRAM frame type takes the form 0b0011000X (or the values 0x30
and 0x31). The least significant bit of the DATAGRAM frame type is the
LEN bit (0x01). It indicates that there is a Length field present. If this
bit is set to 0, the Length field is absent and the Datagram Data field extends
to the end of the packet. If this bit is set to 1, the Length field is present.</t>
      <t>The DATAGRAM frame is structured as follows:</t>
      <figure anchor="datagram-format">
        <name>DATAGRAM Frame Format</name>
        <artwork name="" type="" align="left" alt=""><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        [Length (i)]                         ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Datagram Data (*)                      ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>DATAGRAM frames contain the following fields:</t>
      <dl newline="false" spacing="normal">
        <dt>Length:</dt>
        <dd>
  A variable-length integer specifying the length of the datagram in bytes. This field
is present only when the LEN bit is set. If the LEN bit is not set, the datagram data
extends to the end of the QUIC packet. Note that empty (i.e., zero-length)
datagrams are allowed.</dd>
        <dt>Datagram Data:</dt>
        <dd>
  The bytes of the datagram to be delivered.</dd>
      </dl>
    </section>
    <section anchor="behavior-and-usage" numbered="true" toc="default">
      <name>Behavior and Usage</name>
      <t>When an application sends an unreliable datagram over a QUIC connection,
QUIC will generate a new DATAGRAM frame and send it in the first available
packet. This frame SHOULD be sent as soon as possible, and MAY be
coalesced with other frames.</t>
      <t>When a QUIC endpoint receives a valid DATAGRAM frame, it SHOULD deliver the
data to the application immediately, as long as it is able to process the frame
and can store the contents in memory.</t>
      <t>DATAGRAM frames MUST be protected with either 0-RTT or 1-RTT keys.</t>
      <t>Application protocols using datagrams are responsible for defining the
semantics of the Datagram Data field, and how it is parsed. If the application
protocol supports the coexistence of multiple entities using datagrams inside
a single QUIC connection, it may need a mechanism to allow demultiplexing
between them. For example, using datagrams with HTTP/3 involves prepending
a flow identifier to all datagrams, see <xref target="I-D.schinazi-quic-h3-datagram" format="default"/>.</t>
      <t>Note that while the max_datagram_frame_size transport parameter places a limit
on the maximum size of DATAGRAM frames, that limit can be further reduced by
the max_packet_size transport parameter, and by the Maximum Transmission Unit
(MTU) of the path between endpoints. DATAGRAM frames cannot be fragmented,
therefore application protocols need to handle cases where the maximum datagram
size is limited by other factors.</t>
      <section anchor="acknowledgement-handling" numbered="true" toc="default">
        <name>Acknowledgement Handling</name>
        <t>Although DATAGRAM frames are not retransmitted upon loss detection, they are
ack-eliciting (<xref target="I-D.ietf-quic-recovery" format="default"/>). Receivers SHOULD support delaying
ACK frames (within the limits specified by max_ack_delay) in reponse to receiving
packets that only contain DATAGRAM frames, since the timing of these
acknowledgements is not used for loss recovery.</t>
        <t>If a sender detects that a packet containing a specific DATAGRAM frame might
have been lost, the implementation MAY notify the application that it believes
the datagram was lost. Similarly, if a packet containing a DATAGRAM frame is
acknowledged, the implementation MAY notify the application that the datagram
was successfully transmitted and received. Note that, due to reordering, a
DATAGRAM frame that was thought to be lost could at a later point be received
and acknowledged.</t>
      </section>
      <section anchor="flow-control" numbered="true" toc="default">
        <name>Flow Control</name>
        <t>DATAGRAM frames do not provide any explicit flow control signaling,
and do not contribute to any per-flow or connection-wide data limit.</t>
        <t>The risk associated with not providing flow control for DATAGRAM frames
is that a receiver may not be able to commit the necessary resources to process
the frames. For example, it may not be able to store the frame contents in memory.
However, since DATAGRAM frames are inherently unreliable, they MAY be
dropped by the receiver if the receiver cannot process them.</t>
      </section>
      <section anchor="congestion-control" numbered="true" toc="default">
        <name>Congestion Control</name>
        <t>DATAGRAM frames employ the QUIC connection's congestion controller. As a
result, a connection may be unable to send a DATAGRAM frame generated by the
application until the congestion controller allows it
<xref target="I-D.ietf-quic-recovery" format="default"/>. The sender implementation MUST either delay
sending the frame until the controller allows it or drop the frame without
sending it (at which point it MAY notify the application).</t>
        <t>Implementations can optionally support allowing the application to specify
a sending expiration time, beyond which a congestion-controlled DATAGRAM
frame ought to be dropped without transmission.</t>
      </section>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>The DATAGRAM frame shares the same security properties as the rest of
the data transmitted within a QUIC connection. All application data transmitted
with the DATAGRAM frame, like the STREAM frame, MUST be protected
either by 0-RTT or 1-RTT keys.</t>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document registers a new value in the QUIC Transport Parameter Registry:</t>
      <dl newline="false" spacing="normal">
        <dt>Value:</dt>
        <dd>
  0x0020 (if this document is approved)</dd>
        <dt>Parameter Name:</dt>
        <dd>
  max_datagram_frame_size</dd>
        <dt>Specification:</dt>
        <dd>
  Indicates that the connection should enable support for unreliable DATAGRAM
frames. An endpoint that advertises this transport parameter can receive
datagrams frames from the other endpoint, up to and including the length in
bytes provided in the transport parameter.</dd>
      </dl>
      <t>This document also registers a new value in the QUIC Frame Type registry:</t>
      <dl newline="false" spacing="normal">
        <dt>Value:</dt>
        <dd>
  0x30 and 0x31 (if this document is approved)</dd>
        <dt>Frame Name:</dt>
        <dd>
  DATAGRAM</dd>
        <dt>Specification:</dt>
        <dd>
  Unreliable application data</dd>
      </dl>
    </section>
    <section anchor="acknowledgments" numbered="true" toc="default">
      <name>Acknowledgments</name>
      <t>Thanks to Ian Swett, who inspired this proposal.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="I-D.ietf-quic-transport" target="http://www.ietf.org/internet-drafts/draft-ietf-quic-transport-27.txt">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-quic-transport-27"/>
            <author initials="J" surname="Iyengar" fullname="Jana Iyengar">
              <organization/>
            </author>
            <author initials="M" surname="Thomson" fullname="Martin Thomson">
              <organization/>
            </author>
            <date month="February" day="21" 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), which is archived at &lt;https://mailarchive.ietf.org/arch/search/?email_list=quic&gt;.  Working Group information can be found at &lt;https://github.com/ quicwg&gt;; source code and issues list for this draft can be found at &lt;https://github.com/quicwg/base-drafts/labels/-transport&gt;.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-quic-recovery" target="http://www.ietf.org/internet-drafts/draft-ietf-quic-recovery-26.txt">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-quic-recovery-26"/>
            <author initials="J" surname="Iyengar" fullname="Jana Iyengar">
              <organization/>
            </author>
            <author initials="I" surname="Swett" fullname="Ian Swett">
              <organization/>
            </author>
            <date month="February" day="21" year="2020"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
            </abstract>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC0768" target="https://www.rfc-editor.org/info/rfc768">
          <front>
            <title>User Datagram Protocol</title>
            <seriesInfo name="DOI" value="10.17487/RFC0768"/>
            <seriesInfo name="RFC" value="768"/>
            <seriesInfo name="STD" value="6"/>
            <author initials="J." surname="Postel" fullname="J. Postel">
              <organization/>
            </author>
            <date year="1980" month="August"/>
          </front>
        </reference>
        <reference anchor="RFC6347" target="https://www.rfc-editor.org/info/rfc6347">
          <front>
            <title>Datagram Transport Layer Security Version 1.2</title>
            <seriesInfo name="DOI" value="10.17487/RFC6347"/>
            <seriesInfo name="RFC" value="6347"/>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization/>
            </author>
            <author initials="N." surname="Modadugu" fullname="N. Modadugu">
              <organization/>
            </author>
            <date year="2012" month="January"/>
            <abstract>
              <t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol.  The DTLS protocol provides communications privacy for datagram protocols.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.  This document updates DTLS 1.0 to work with TLS version 1.2.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </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>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <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>
        </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>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="BCP" value="14"/>
            <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>
        </reference>
        <reference anchor="I-D.schinazi-quic-h3-datagram" target="http://www.ietf.org/internet-drafts/draft-schinazi-quic-h3-datagram-02.txt">
          <front>
            <title>Using QUIC Datagrams with HTTP/3</title>
            <seriesInfo name="Internet-Draft" value="draft-schinazi-quic-h3-datagram-02"/>
            <author initials="D" surname="Schinazi" fullname="David Schinazi">
              <organization/>
            </author>
            <date month="November" day="4" year="2019"/>
            <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.  Discussion of this work is encouraged to happen on the QUIC IETF mailing list quic@ietf.org [1] or on the GitHub repository which contains the draft: https://github.com/DavidSchinazi/draft- h3-datagram [2].</t>
            </abstract>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAA0dV14AA9Va63Ibx5X+30/RK/0IuQtAoCjLNhNnzZCUxQpFcknQSSqV
UjVmGkAvB9PI9Awh2Cs/S54lT7bfOX2ZwS0Ok0rVri8SMJjuPvfznXO63++L
2tSFPpGnpXwoK10YNS60PFe1mlZqLi8+1bp0xpaytvK/Hi7PhBqPK/10wl/S
e07kNivVHBvllZrUfaPrSf/Pjcn6eXilPxwKfNYnIsOfU1utTqSrcyHMojqR
ddW4+vVw+PXwtXjUq6Wt8hN5Wda6KnXdP6c9hXC1KvOPqrAlzllpJxbmRP6x
tllPOlvVlZ44fFrN6cOfhFBNPbPViZCyj/+lNKU7kaOBvFVNseInnuKRnc9X
nae2mkIeiwXkcFlmA37msLuuT+RNqcNPt6p6lL9TfklmarBz1ix0VZvS9uSZ
KszEVqVR8usvhkdv/Fu2KWvi+6E0tc7lfQ1JOGkn8nSuK5MpfkvPlSkgkQUR
9K2iwwaZna+zcTGQvzVlqVXVYeQCe6w9/r/BiX70JO3j5Xwg77OZKdUPpsPM
uXoy+foPzM531k5B9NXV2Ro7R2+HQxy+mJl6phUeMlvLNa4+ENXKlPJ7o5fr
nL0Zvjl+Pme5C+QNyN6/ndJT5k/0+32pxiBOZTDc0cw4CQ9p5rqsZa4npsSe
qpS6614g3HsVVpVuAYuWi8rCvG2Bn4XKc+maBT8H2dLpMjflFNvkstKZNk/0
rWmdOHoeqH/SlVB+88xCGVmNMwdCnBuXNY4JAIc1kQnXe5T4W5cQRaWmkAFo
m0F3Gi+VLZWXF6N3kjimYwvjavErcvhvSRQDqOrX0Fdc8J2p3zdjkLmwztTw
fbmcmWxGxJBCHL/EkeNE/GpW1wt38urVFKpsxiTPV7TxcvoqcvTrgZfw3OR5
oYV4SaGisnnDfJG8A42jJMnbKMkff/y3y/75oA1QSdqfP5O8YXWkG4g3ayrd
E/OmqA3s9hME0cqONcAr56auSQJJ7GSRLPSJJIOHyfACon0g7vgtyKyGCMAf
jJEJhcDhcdh0jmPwtqKvfb+VHCtnKLJZ/DfXcgIJaFGvFkQnDL20tcS2U0On
E12VDpSxZiGre1rWIQabLRT8O2sKVRUrSN86jT9VLUvtFR55w2aq6Ndm7u2p
JxaIrrpae4V+aA1vNZCQv1s/UGaw9nFjilzmBtZa49RmAV09nN9CJf959+5s
+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
AAA=

-->
</rfc>
