<?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.6.13 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-quic-manageability-17" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title abbrev="QUIC Manageability">Manageability of the QUIC Transport Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-quic-manageability-17"/>
    <author initials="M." surname="Kuehlewind" fullname="Mirja Kuehlewind">
      <organization>Ericsson</organization>
      <address>
        <email>mirja.kuehlewind@ericsson.com</email>
      </address>
    </author>
    <author initials="B." surname="Trammell" fullname="Brian Trammell">
      <organization>Google Switzerland GmbH</organization>
      <address>
        <postal>
          <street>Gustav-Gull-Platz 1</street>
          <city>8004 Zurich</city>
          <country>Switzerland</country>
        </postal>
        <email>ietf@trammell.ch</email>
      </address>
    </author>
    <date year="2022" month="July" day="11"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document discusses manageability of the QUIC transport protocol, focusing
on the implications of QUIC's design and wire image on network operations
involving QUIC traffic. Its intended audience is network operators and
equipment vendors who rely on the use of transport-aware network
functions.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>QUIC <xref target="QUIC-TRANSPORT"/> is a new transport protocol
that is encapsulated in UDP. QUIC integrates TLS
<xref target="QUIC-TLS"/> to encrypt all payload data and most control
information. QUIC version 1 was designed primarily as a transport for HTTP, with
the resulting protocol being known as HTTP/3 <xref target="QUIC-HTTP"/>.</t>
      <t>This document provides guidance for network operations that manage QUIC
traffic. This includes guidance on how to interpret and utilize information that
is exposed by QUIC to the network, requirements and assumptions of the QUIC
design with respect to network treatment, and a description of how common
network management practices will be impacted by QUIC.</t>
      <t>QUIC is an end-to-end transport protocol. No information in the protocol header,
even that which can be inspected, is meant to be mutable by the network. This is
achieved through integrity protection of the wire image <xref target="WIRE-IMAGE"/>.
Encryption of most control signaling means that less information is visible to
the network than is the case with TCP.</t>
      <t>Integrity protection can also simplify troubleshooting, because none of the
nodes on the network path can modify transport layer information. However, it
does imply that in-network operations that depend on modification of data are
not possible without the cooperation of an QUIC endpoint. This might be possible
with the introduction of a proxy which authenticates as an endpoint.
Proxy operations are not in scope for this document.</t>
      <t>Network management is not a one-size-fits-all endeavour: practices considered
necessary or even mandatory within enterprise networks with certain compliance
requirements, for example, would be impermissible on other networks without
those requirements. This document therefore does not make any specific
recommendations as to which practices should or should not be applied; for each
practice, it describes what is and is not possible with the QUIC transport
protocol as defined.</t>
    </section>
    <section anchor="sec-wire-image">
      <name>Features of the QUIC Wire Image</name>
      <t>In this section, we discuss those aspects of the QUIC transport protocol that
have an impact on the design and operation of devices that forward QUIC packets.
Here, we are concerned primarily with the unencrypted part of QUIC's wire image
<xref target="WIRE-IMAGE"/>, which we define as the information available in the packet
header in each QUIC packet, and the dynamics of that information. Since QUIC is
a versioned protocol, the wire image of the header format can also change from
version to version. However, the field that identifies the QUIC version in some
packets, and the format of the Version Negotiation Packet, are both inspectable
and invariant <xref target="QUIC-INVARIANTS"/>.</t>
      <t>This document describes version 1 of the QUIC protocol, whose wire image
is fully defined in <xref target="QUIC-TRANSPORT"/> and <xref target="QUIC-TLS"/>. Features of the wire
image described herein may change in future versions of the protocol, except
when specified as an invariant <xref target="QUIC-INVARIANTS"/>,
and cannot be used to identify QUIC as a protocol or
to infer the behavior of future versions of QUIC.</t>
      <t><xref target="sec-google-version"/> provides non-normative guidance on the identification of
QUIC version 1 packets compared to some pre-standard versions.</t>
      <section anchor="public-header">
        <name>QUIC Packet Header Structure</name>
        <t>QUIC packets may have either a long header or a short header. The first bit
of the QUIC header is the Header Form bit, and indicates which type of header
is present. The purpose of this bit is invariant across QUIC versions.</t>
        <t>The long header exposes more information. In version 1 of QUIC, it is used
during connection establishment, including version negotiation, retry, and 0-RTT
data. It contains a version number, as well as source and destination connection
IDs for grouping packets belonging to the same flow. The definition and location
of these fields in the QUIC long header are invariant for future versions of
QUIC, although future versions of QUIC may provide additional fields in the long
header <xref target="QUIC-INVARIANTS"/>.</t>
        <t>Short headers contain only an optional destination connection ID and the spin
bit for RTT measurement. In version 1 of QUIC, they are used after connection
establishment.</t>
        <t>The following information is exposed in QUIC packet headers in all versions of
QUIC:</t>
        <ul spacing="normal">
          <li>version number: the version number is present in the long header, and
identifies the version used for that packet. During Version
Negotiation (see <xref section="17.2.1" sectionFormat="of" target="QUIC-TRANSPORT"/> and <xref target="version"/>), the
version number field has a special value (0x00000000) that identifies the
packet as a Version Negotiation packet. QUIC
version 1 uses version 0x00000001. Operators should expect to observe
packets with other version numbers as a result of various Internet
experiments, future standards, and greasing. All deployed versions are
maintained in an IANA registry (see <xref section="22.2" sectionFormat="of" target="QUIC-TRANSPORT"/>).</li>
          <li>source and destination connection ID: short and long packet headers carry a
destination connection ID, a variable-length field that can be used to
identify the connection associated with a QUIC packet, for load-balancing and
NAT rebinding purposes; see <xref target="sec-loadbalancing"/> and <xref target="rebinding"/>. Long
packet headers additionally carry a source connection ID. The source
connection ID corresponds to the destination connection ID the source would
like to have on packets sent to it, and is only present on long packet
headers. On long header packets, the length of the connection
IDs is also present; on short header packets, the length of the destination
connection ID is implicit.</li>
        </ul>
        <t>In version 1 of QUIC, the following additional information is exposed:</t>
        <ul spacing="normal">
          <li>"fixed bit": The second-most-significant bit of the first octet of most QUIC
packets of the current version is set to 1, enabling endpoints to demultiplex
with other UDP-encapsulated protocols. Even though this bit is fixed in the
version 1 specification, endpoints might use an extension that varies the bit.
Therefore, observers cannot reliably use it as an identifier for QUIC.</li>
          <li>latency spin bit: The third-most-significant bit of the first octet in the
short packet header for version 1. The spin bit is set by endpoints such that
tracking edge transitions can be used to passively observe end-to-end RTT. See
<xref target="spin-usage"/> for further details.</li>
          <li>header type: The long header has a 2 bit packet type field following the
Header Form and fixed bits. Header types correspond to stages of the
handshake; see <xref section="17.2" sectionFormat="of" target="QUIC-TRANSPORT"/> for details.</li>
          <li>length: The length of the remaining QUIC packet after the length field,
present on long headers. This field is used to implement coalesced packets
during the handshake (see <xref target="coalesced"/>).</li>
          <li>token: Initial packets may contain a token, a variable-length opaque value
optionally sent from client to server, used for validating the client's
address. Retry packets also contain a token, which can be used by the client
in an Initial packet on a subsequent connection attempt. The length of the
token is explicit in both cases.</li>
        </ul>
        <t>Retry (<xref section="17.2.5" sectionFormat="of" target="QUIC-TRANSPORT"/>) and Version Negotiation (<xref section="17.2.1" sectionFormat="of" target="QUIC-TRANSPORT"/>) packets are not encrypted or obfuscated in any
way. For other kinds of packets, version 1 of QUIC cryptographically obfuscates
other information in the packet headers:</t>
        <ul spacing="normal">
          <li>packet number: All packets except Version Negotiation and
Retry packets have an associated packet number; however, this packet number
is encrypted, and therefore not of use to on-path observers. The offset of the
packet number is encoded in long headers, while it
is implicit (depending on destination connection ID length) in short headers.
The length of the packet number is cryptographically obfuscated.</li>
          <li>key phase: The Key Phase bit, present in short headers, specifies the keys
used to encrypt the packet to support key rotation. The Key Phase bit is
cryptographically obfuscated.</li>
        </ul>
      </section>
      <section anchor="coalesced">
        <name>Coalesced Packets</name>
        <t>Multiple QUIC packets may be coalesced into a UDP datagram, with a datagram
carrying one or more long header packets followed by zero or one short header
packets. When packets are coalesced, the Length fields in the long headers are
used to separate QUIC packets; see <xref section="12.2" sectionFormat="of" target="QUIC-TRANSPORT"/>.
The length header field is variable length, and its position in the header is
also variable depending on the length of the source and destination connection
ID; see <xref section="17.2" sectionFormat="of" target="QUIC-TRANSPORT"/>.</t>
      </section>
      <section anchor="use-of-port-numbers">
        <name>Use of Port Numbers</name>
        <t>Applications that have a mapping for TCP as well as QUIC are expected to
use the same port number for both services. However, as for all other IETF
transports <xref target="RFC7605"/>, there is no guarantee that a specific application
will use a given registered port, or that a given port carries traffic belonging
to the respective registered service, especially when application layer
information is encrypted. For example, <xref target="QUIC-HTTP"/> specifies
the use of Alt-Svc for discovery of HTTP/3 services on other ports.</t>
        <t>Further, as QUIC has a connection ID, it is also possible to maintain multiple
QUIC connections over one 5-tuple. However, if the connection ID is zero-length,
all packets of the 5-tuple belong to the same QUIC connection.</t>
      </section>
      <section anchor="handshake">
        <name>The QUIC Handshake</name>
        <t>New QUIC connections are established using a handshake, which is distinguishable
on the wire and contains some information that can be passively observed.</t>
        <t>To illustrate the information visible in the QUIC wire image during the
handshake, we first show the general communication pattern visible in the UDP
datagrams containing the QUIC handshake, then examine each of the datagrams in
detail.</t>
        <t>The QUIC handshake can normally be recognized on the wire through at
least four datagrams we'll call "Client Initial", "Server Initial", and
"Client Completion", and "Server Completion", for purposes of this
illustration, as shown in <xref target="fig-handshake"/>.</t>
        <t>Packets in the handshake belong to three separate cryptographic and transport
contexts ("Initial", which contains observable payload, and "Handshake" and
"1-RTT", which do not). QUIC packets in separate contexts during the handshake
are generally coalesced (see <xref target="coalesced"/>) in order to reduce the number of UDP
datagrams sent during the handshake.</t>
        <t>As shown here, the client can send 0-RTT data as soon as it has sent its Client
Hello, and the server can send 1-RTT data as soon as it has sent its Server
Hello.</t>
        <figure anchor="fig-handshake">
          <name>General communication pattern visible in the QUIC handshake</name>
          <artwork><![CDATA[
Client                                    Server
  |                                          |
  +----Client Initial----------------------->|
  +----(zero or more 0RTT)------------------>|
  |                                          |
  |<-----------------------Server Initial----+
  |<---------(1RTT encrypted data starts)----+
  |                                          |
  +----Client Completion-------------------->|
  +----(1RTT encrypted data starts)--------->|
  |                                          |
  |<--------------------Server Completion----+
  |                                          |
]]></artwork>
        </figure>
        <t>A typical handshake starts with the client sending of a Client Initial
datagram as shown in <xref target="fig-client-initial"/>, which elicits a Server Initial
datagram as shown in <xref target="fig-server-initial"/> typically containing three packets:
an Initial packet with the Server Initial, a Handshake packet with the rest of
the server's side of the TLS handshake, and initial 1-RTT data, if present.</t>
        <t>The Client Completion datagram contains at least one Handshake packet and
some also include an Initial packet.</t>
        <t>Datagrams that contain a Client Initial Packet (Client Initial, Server
Initial, and some Client Completion) contain at least 1200 octets of UDP
payload. This protects against amplification attacks and verifies that the
network path meets the requirements for the minimum QUIC IP packet size;
see <xref section="14" sectionFormat="of" target="QUIC-TRANSPORT"/>. This is accomplished by either adding
PADDING frames within the Initial packet, coalescing other packets with the
Initial packet, or leaving unused payload in the UDP packet after the Initial
packet. A network path needs to be able to forward at least this size of
packet for QUIC to be used.</t>
        <t>The content of Client Initial packets are encrypted using Initial Secrets, which
are derived from a per-version constant and the client's destination connection
ID; they are therefore observable by any on-path device that knows the
per-version constant. They are therefore considered visible in this
illustration. The content of QUIC Handshake packets are encrypted using keys
established during the initial handshake exchange, and are therefore not
visible.</t>
        <t>Initial, Handshake, and the Short Header packets transmitted after the handshake
belong to cryptographic and transport contexts. The Client Completion
<xref target="fig-init-complete"/> and the Server Completion <xref target="fig-hs-complete"/> datagrams
finish these first two contexts, by sending the final acknowledgment and
finishing the transmission of CRYPTO frames.</t>
        <figure anchor="fig-client-initial">
          <name>Typical Client Initial datagram pattern without  0-RTT</name>
          <artwork><![CDATA[
+----------------------------------------------------------+
| UDP header (source and destination UDP ports)            |
+----------------------------------------------------------+
| QUIC long header (type = Initial, Version, DCID, SCID) (Length)
+----------------------------------------------------------+  |
| QUIC CRYPTO frame header                                 |  |
+----------------------------------------------------------+  |
| TLS Client Hello (incl. TLS SNI)                         |  |
+----------------------------------------------------------+  |
| QUIC PADDING frames                                      |  |
+----------------------------------------------------------+<-+
]]></artwork>
        </figure>
        <t>The Client Initial datagram exposes version number, source and destination
connection IDs without encryption. Information in the TLS Client Hello frame,
including any TLS Server Name Indication (SNI) present, is obfuscated using the
Initial secret. Note that the location of PADDING is implementation-dependent,
and PADDING frames might not appear in a coalesced Initial packet.</t>
        <figure anchor="fig-server-initial">
          <name>Typical Server Initial datagram pattern</name>
          <artwork><![CDATA[
+------------------------------------------------------------+
| UDP header (source and destination UDP ports)              |
+------------------------------------------------------------+
| QUIC long header (type = Initial, Version, DCID, SCID)   (Length)
+------------------------------------------------------------+  |
| QUIC CRYPTO frame header                                   |  |
+------------------------------------------------------------+  |
| TLS Server Hello                                           |  |
+------------------------------------------------------------+  |
| QUIC ACK frame (acknowledging client hello)                |  |
+------------------------------------------------------------+<-+
| QUIC long header (type = Handshake, Version, DCID, SCID) (Length)
+------------------------------------------------------------+  |
| encrypted payload (presumably CRYPTO frames)               |  |
+------------------------------------------------------------+<-+
| QUIC short header                                          |
+------------------------------------------------------------+
| 1-RTT encrypted payload                                    |
+------------------------------------------------------------+
]]></artwork>
        </figure>
        <t>The Server Initial datagram also exposes version number, source and destination
connection IDs in the clear; information in the TLS Server Hello message is
obfuscated using the Initial secret.</t>
        <figure anchor="fig-init-complete">
          <name>Typical Client Completion datagram pattern</name>
          <artwork><![CDATA[
+------------------------------------------------------------+
| UDP header (source and destination UDP ports)              |
+------------------------------------------------------------+
| QUIC long header (type = Initial, Version, DCID, SCID)   (Length)
+------------------------------------------------------------+  |
| QUIC ACK frame (acknowledging Server Initial Initial)        |  |
+------------------------------------------------------------+<-+
| QUIC long header (type = Handshake, Version, DCID, SCID) (Length)
+------------------------------------------------------------+  |
| encrypted payload (presumably CRYPTO/ACK frames)           |  |
+------------------------------------------------------------+<-+
| QUIC short header                                          |
+------------------------------------------------------------+
| 1-RTT encrypted payload                                    |
+------------------------------------------------------------+
]]></artwork>
        </figure>
        <t>The Client Completion datagram does not expose any additional information;
however, recognizing it can be used to determine that a handshake has completed
(see <xref target="sec-confirm"/>), and for three-way handshake RTT estimation as in
<xref target="sec-rtt"/>.</t>
        <figure anchor="fig-hs-complete">
          <name>Typical Server Completion datagram pattern</name>
          <artwork><![CDATA[
+------------------------------------------------------------+
| UDP header (source and destination UDP ports)              |
+------------------------------------------------------------+
| QUIC long header (type = Handshake, Version, DCID, SCID) (Length)
+------------------------------------------------------------+  |
| encrypted payload (presumably ACK frame)                   |  |
+------------------------------------------------------------+<-+
| QUIC short header                                          |
+------------------------------------------------------------+
| 1-RTT encrypted payload                                    |
+------------------------------------------------------------+
]]></artwork>
        </figure>
        <t>Similar to Client Completion, Server Completion also exposes no additional
information; observing it serves only to determine that the handshake has
completed.</t>
        <t>When the client uses 0-RTT connection resumption, 0-RTT data may also be
seen in the Client Initial datagram, as shown in <xref target="fig-client-initial-0rtt"/>.</t>
        <figure anchor="fig-client-initial-0rtt">
          <name>Typical 0-RTT Client Initial datagram pattern</name>
          <artwork><![CDATA[
+----------------------------------------------------------+
| UDP header (source and destination UDP ports)            |
+----------------------------------------------------------+
| QUIC long header (type = Initial, Version, DCID, SCID) (Length)
+----------------------------------------------------------+  |
| QUIC CRYPTO frame header                                 |  |
+----------------------------------------------------------+  |
| TLS Client Hello (incl. TLS SNI)                         |  |
+----------------------------------------------------------+<-+
| QUIC long header (type = 0RTT, Version, DCID, SCID)    (Length)
+----------------------------------------------------------+  |
| 0-rtt encrypted payload                                  |  |
+----------------------------------------------------------+<-+
]]></artwork>
        </figure>
        <t>In a 0-RTT Client Initial datagram, the PADDING frame is only present if
necessary to increase the size of the datagram with 0RTT data to at least 1200
bytes. Additional datagrams containing only 0-RTT protected long header packets
may be sent from the client to the server after the Client Initial datagram,
containing the rest of the 0-RTT data. The amount of 0-RTT protected data
that can be sent in the first round is limited by the initial congestion
window, typically around 10 packets (see <xref section="7.2" sectionFormat="of" target="QUIC-RECOVERY"/>).</t>
      </section>
      <section anchor="wire-integrity">
        <name>Integrity Protection of the Wire Image</name>
        <t>As soon as the cryptographic context is established, all information in the QUIC
header, including exposed information, is integrity-protected. Further,
information that was exposed in packets sent before the cryptographic context
was established is validated during the cryptographic handshake. Therefore,
devices on path cannot alter any information or bits in QUIC packets. Such
alterations would cause the integrity check to fail, which results in the
receiver discarding the packet. Some parts of Initial packets could be altered
by removing and re-applying the authenticated encryption without immediate
discard at the receiver. However, the cryptographic handshake validates most
fields and any modifications in those fields will result in connection
establishment failing later on.</t>
      </section>
      <section anchor="rebinding">
        <name>Connection ID and Rebinding</name>
        <t>The connection ID in the QUIC packet headers allows association of QUIC
packets using information independent of the five-tuple. This
allows rebinding of a connection after one of one endpoint experienced
an address change - usually the client. Further it can be used by
in-network devices to ensure that related 5-tuple flows are appropriately
balanced together.</t>
        <t>Client and server negotiate connection IDs during
the handshake; typically, however, only the server will request a connection ID
for the lifetime of the connection. Connection IDs for either endpoint may
change during the lifetime of a connection, with the new connection ID being
supplied via encrypted frames (see <xref section="5.1" sectionFormat="of" target="QUIC-TRANSPORT"/>).
Therefore, observing a new connection ID does not necessary indicate a new
connection.</t>
        <t><xref target="QUIC_LB"/> specifies algorithms for
encoding the server mapping in a connection ID in order to share this
information with selected on-path devices such as load balancers. Server
mappings should only be exposed to selected entities. Uncontrolled exposure
would allow linkage of multiple IP addresses to the same host if the server
also supports migration which opens an attack vector on specific servers or
pools. The best way to obscure an encoding is to appear random to any other
observers, which is most rigorously achieved with encryption. As a result
any attempt to infer information from specific parts of a connection ID is
unlikely to be useful.</t>
      </section>
      <section anchor="packetnumber">
        <name>Packet Numbers</name>
        <t>The packet number field is always present in the QUIC packet header in version
1; however, it is always encrypted. The encryption key for packet number
protection on handshake packets sent before cryptographic context establishment
is specific to the QUIC version, while packet number protection on subsequent
packets uses secrets derived from the end-to-end cryptographic context. Packet
numbers are therefore not part of the wire image that is visible to on-path
observers.</t>
      </section>
      <section anchor="version">
        <name>Version Negotiation and Greasing</name>
        <t>Version Negotiation packets are used by the server to indicate that a requested
version from the client is not supported (see <xref section="6" sectionFormat="of" target="QUIC-TRANSPORT"/>.
Version Negotiation packets are not intrinsically protected, but future QUIC
versions will use later encrypted messages to verify that they were authentic.
Therefore any modification of this list will be detected and may cause the
endpoints to terminate the connection attempt.</t>
        <t>Also note that the list of versions in the Version Negotiation packet may
contain reserved versions. This mechanism is used to avoid ossification in the
implementation on the selection mechanism. Further, a client may send a Initial
Client packet with a reserved version number to trigger version negotiation. In
the Version Negotiation packet, the connection IDs of the Client Initial packet
are reflected to provide a proof of return-routability. Therefore, changing this
information will also cause the connection to fail.</t>
        <t>QUIC is expected to evolve rapidly, so new versions, both experimental and IETF
standard versions, will be deployed in the Internet more often than with
traditional Internet- and transport-layer protocols. Using a particular version
number to recognize valid QUIC traffic is likely to persistently miss a fraction
of QUIC flows and completely fail in the near future, and is therefore
not recommended. In addition, due to the speed of evolution of the protocol,
devices that attempt to distinguish QUIC traffic from non-QUIC traffic for
purposes of network admission control should admit all QUIC traffic regardless
of version.</t>
      </section>
    </section>
    <section anchor="network-visible-information-about-quic-flows">
      <name>Network-Visible Information about QUIC Flows</name>
      <t>This section addresses the different kinds of observations and inferences that
can be made about QUIC flows by a passive observer in the network based on the
wire image in <xref target="sec-wire-image"/>. Here we assume a bidirectional observer (one
that can see packets in both directions in the sequence in which they are
carried on the wire) unless noted.</t>
      <section anchor="sec-identifying">
        <name>Identifying QUIC Traffic</name>
        <t>The QUIC wire image is not specifically designed to be distinguishable from
other UDP traffic.</t>
        <t>The only application binding defined by the IETF QUIC WG is HTTP/3
<xref target="QUIC-HTTP"/> at the time of this writing; however, many other applications
are currently being defined and deployed over QUIC, so an assumption that all
QUIC traffic is HTTP/3 is not valid. HTTP/3 uses UDP port 443 by
default, although URLs referring to resources available over HTTP/3
may specify alternate port numbers. Simple assumptions about whether a
given flow is using QUIC based upon a UDP port number may therefore not hold;
see also <xref section="5" sectionFormat="of" target="RFC7605"/>.</t>
        <t>While the second-most-significant bit (0x40) of the first octet is set to 1 in
most QUIC packets of the current version (see <xref target="public-header"/> and <xref section="17" sectionFormat="of" target="QUIC-TRANSPORT"/>), this method of recognizing QUIC traffic is not reliable.
First, it only provides one bit of information and is prone to collision with
UDP-based protocols other than those considered in <xref target="RFC7983"/>. Second, this
feature of the wire image is not invariant <xref target="QUIC-INVARIANTS"/> and may change in
future versions of the protocol, or even be negotiated during the handshake via
the use of an extension.</t>
        <t>Even though transport parameters transmitted in the client's Initial packet are
observable by the network, they cannot be modified by the network without
risking connection failure. Further, the reply from the server cannot be
observed, so observers on the network cannot know which parameters are actually
in use.</t>
        <section anchor="identifying-negotiated-version">
          <name>Identifying Negotiated Version</name>
          <t>An in-network observer assuming that a set of packets belongs to a QUIC flow
can infer the version number in use by observing the handshake: for QUIC
version 1, if the version number in the Initial packet from a client is the
same as the version number in the Initial packet of the server response, that
version has been accepted by both endpoints to be used for the rest of the
connection.</t>
          <t>The negotiated version cannot be identified for flows for which a handshake is
not observed, such as in the case of connection migration; however, it might be
possible to associate a flow with a flow for which a version has been
identified; see <xref target="sec-flow-association"/>.</t>
        </section>
        <section anchor="sec-garbage">
          <name>First Packet Identification for Garbage Rejection</name>
          <t>A related question is whether the first packet of a given flow on a port known
to be associated with QUIC is a valid QUIC packet.  This determination supports
in-network filtering of garbage UDP packets (reflection attacks, random
backscatter, etc.). While heuristics based on the first byte of the packet
(packet type) could be used to separate valid from invalid first packet types,
the deployment of such heuristics is not recommended, as bits in the first byte
may have different meanings in future versions of the protocol.</t>
        </section>
      </section>
      <section anchor="sec-confirm">
        <name>Connection Confirmation</name>
        <t>This document focuses on QUIC version 1, and this section applies only to
packets belonging to QUIC version 1 flows; for purposes of on-path observation,
it assumes that these packets have been identified as such through the
observation of a version number exchange as described above.</t>
        <t>Connection establishment uses Initial and Handshake packets containing a
TLS handshake, and Retry packets that do not contain parts of the handshake.
Connection establishment can therefore be detected using heuristics similar to
those used to detect TLS over TCP. A client initiating a connection may
also send data in 0-RTT packets directly after the Initial
packet containing the TLS Client Hello. Since these packets may be reordered in
the network, 0-RTT packets could be seen before the Initial
packet.</t>
        <t>Note that in this version of QUIC, clients send Initial packets before servers
do, servers send Handshake packets before clients do, and only clients send
Initial packets with tokens. Therefore, an endpoint can be identified as a
client or server by an on-path observer. An attempted connection after Retry can
be detected by correlating the contents of the Retry packet with the Token and
the Destination Connection ID fields of the new Initial packet.</t>
      </section>
      <section anchor="distinguishing-acknowledgment-traffic">
        <name>Distinguishing Acknowledgment Traffic</name>
        <t>Some deployed in-network functions distinguish pure-acknowledgment (ACK) packets
from packets carrying upper-layer data in order to attempt to enhance
performance, for example by queueing ACKs differently or manipulating ACK
signaling. Distinguishing ACK packets is trivial in TCP, but not supported by
QUIC, since acknowledgment signaling is carried inside QUIC's encrypted payload,
and ACK manipulation is impossible. Specifically, heuristics attempting to
distinguish ACK-only packets from payload-carrying packets based on packet size
are likely to fail, and are not recommended to use as a way to construe
internals of QUIC's operation as those mechanisms can change, e.g., due to the
use of extensions.</t>
      </section>
      <section anchor="sec-server">
        <name>Server Name Indication (SNI)</name>
        <t>The client's TLS ClientHello may contain a Server Name Indication (SNI)
<xref target="RFC6066"/> extension, by which the client reveals the name of the server it
intends to connect to, in order to allow the server to present a certificate
based on that name. It may also contain an Application-Layer Protocol
Negotiation (ALPN) <xref target="RFC7301"/> extension, by which the client exposes the names
of application-layer protocols it supports; an observer can deduce that one of
those protocols will be used if the connection continues.</t>
        <t>Work is currently underway in the TLS working group to encrypt the contents of
the ClientHello in TLS 1.3 <xref target="TLS-ECH"/>. This would make
SNI-based application identification impossible by on-path observation for QUIC
and other protocols that use TLS.</t>
        <section anchor="extracting-server-name-indication-sni-information">
          <name>Extracting Server Name Indication (SNI) Information</name>
          <t>If the ClientHello is not encrypted, it can be derived from the client's Initial
packet by calculating the Initial secret to decrypt the packet payload and
parsing the QUIC CRYPTO Frame containing the TLS ClientHello.</t>
          <t>As both the derivation of the Initial secret and the structure of the Initial
packet itself are version-specific, the first step is always to parse the
version number (second to sixth bytes of the long header). Note that only long
header packets carry the version number, so it is necessary to also check if the
first bit of the QUIC packet is set to 1, indicating a long header.</t>
          <t>Note that proprietary QUIC versions, that have been deployed before
standardization, might not set the first bit in a QUIC long header packet to
1. To parse these versions, example code is provided in the appendix (see
<xref target="sec-google-version"/>). However, it is expected that these versions will
gradually disappear over time.</t>
          <t>When the version has been identified as QUIC version 1, the packet type needs to
be verified as an Initial packet by checking that the third and fourth bits of
the header are both set to 0. Then the Destination Connection ID needs to be
extracted to calculate the Initial secret using the version-specific Initial
salt, as described in <xref section="5.2" sectionFormat="of" target="QUIC-TLS"/>. The length of the connection
ID is indicated in the 6th byte of the header followed by the connection ID
itself.</t>
          <t>To determine the end of the header and find the start of the payload, the packet
number length, the source connection ID length, and the token length need to be
extracted. The packet number length is defined by the seventh and eight bits of
the header as described in <xref section="17.2" sectionFormat="of" target="QUIC-TRANSPORT"/>, but is obfuscated
as described in <xref section="5.4" sectionFormat="of" target="QUIC-TLS"/>. The source connection ID length is
specified in the byte after the destination connection ID. The token length,
which follows the source connection ID, is a variable-length integer as
specified in <xref section="16" sectionFormat="of" target="QUIC-TRANSPORT"/>.</t>
          <t>After decryption, the client's Initial packet can be parsed to detect the CRYPTO
frame that contains the TLS ClientHello, which then can be parsed similarly to
TLS over TCP connections. The client's Initial packet may contain other frames,
so the first bytes of each frame need to be checked to identify the frame type,
and if needed skip over it. Note that the length of the frames is dependent on
the frame type. In QUIC version 1, the packet is expected to contain only CRYPTO
frames and optionally PADDING frames. PADDING frames, each consisting of a
single zero byte, may occur before, after, or between CRYPTO frames. There might
be multiple CRYPTO frames.  Finally, an extension might define additional frame
types which could be present.</t>
          <t>Note that subsequent Initial packets might contain a Destination Connection ID
other than the one used to generate the Initial secret. Therefore, attempts to
decrypt these packets using the procedure above might fail unless the Initial
secret is retained by the observer.</t>
        </section>
      </section>
      <section anchor="sec-flow-association">
        <name>Flow Association</name>
        <t>The QUIC connection ID (see <xref target="rebinding"/>) is designed to allow a coordinating
on-path device, such as a load-balancer, to associate two flows when one of the
endpoints changes address or port.  This change can be due to NAT rebinding or
address migration.</t>
        <t>The connection ID must change upon intentional address change by an endpoint,
and connection ID negotiation is encrypted, so it is not possible for a
passive observer to link intended changes of address using the connection ID.</t>
        <t>When one endpoint unintentionally changes its address, as is the case with NAT
rebinding, an on-path observer may be able to use the connection ID to
associate the flow on the new address with the flow on the old address.</t>
        <t>A network function that attempts to use the connection ID to associate flows
must be robust to the failure of this technique. Since the connection ID may
change multiple times during the lifetime of a connection, packets with the
same five-tuple but different connection IDs might or might not belong to
the same connection. Likewise, packets with the same connection ID but
different five-tuples might not belong to the same connection, either.</t>
        <t>Connection IDs should be treated as opaque; see <xref target="sec-loadbalancing"/>
for caveats regarding connection ID selection at servers.</t>
      </section>
      <section anchor="sec-teardown">
        <name>Flow Teardown</name>
        <t>QUIC does not expose the end of a connection; the only indication to on-path
devices that a flow has ended is that packets are no longer observed. Stateful
devices on path such as NATs and firewalls must therefore use idle timeouts to
determine when to drop state for QUIC flows; see <xref target="sec-stateful"/>.</t>
      </section>
      <section anchor="sec-symmetry">
        <name>Flow Symmetry Measurement</name>
        <t>QUIC explicitly exposes which side of a connection is a client and which side is
a server during the handshake. In addition, the symmetry of a flow (whether
primarily client-to-server, primarily server-to-client, or roughly
bidirectional, as input to basic traffic classification techniques) can be
inferred through the measurement of data rate in each direction. While QUIC
traffic is protected and ACKs may be padded, padding is not required.</t>
      </section>
      <section anchor="sec-rtt">
        <name>Round-Trip Time (RTT) Measurement</name>
        <t>The round-trip time of QUIC flows can be inferred by observation once per flow,
during the handshake, as in passive TCP measurement; this requires parsing of
the QUIC packet header and recognition of the handshake, as illustrated in
<xref target="handshake"/>. It can also be inferred during the flow's lifetime, if the
endpoints use the spin bit facility described below and in <xref section="17.3.1" sectionFormat="of" target="QUIC-TRANSPORT"/>.</t>
        <section anchor="measuring-initial-rtt">
          <name>Measuring Initial RTT</name>
          <t>In the common case, the delay between the client's Initial packet (containing
the TLS ClientHello) and the server's Initial packet (containing the TLS
ServerHello) represents the RTT component on the path between the observer and
the server. The delay between the server's first Handshake packet and the
Handshake packet sent by the client represents the RTT component on the path
between the observer and the client. While the client may send 0-RTT packets
after the Initial packet during connection re-establishment, these can be
ignored for RTT measurement purposes.</t>
          <t>Handshake RTT can be measured by adding the client-to-observer and
observer-to-server RTT components together. This measurement necessarily
includes any transport- and application-layer delay (the latter mainly
caused by the asymmetric crypto operations associated with the TLS
handshake) at both sides.</t>
        </section>
        <section anchor="spin-usage">
          <name>Using the Spin Bit for Passive RTT Measurement</name>
          <t>The spin bit provides a version-specific method to measure per-flow RTT from
observation points on the network path throughout the duration of a connection.
See <xref section="17.4" sectionFormat="of" target="QUIC-TRANSPORT"/> for the definition of the spin bit in
Version 1 of QUIC. Endpoint participation in spin bit signaling is optional.
That is, while its location is fixed in this version of QUIC, an endpoint can
unilaterally choose to not support "spinning" the bit.</t>
          <t>Use of the spin bit for RTT measurement by devices on path is only possible when
both endpoints enable it. Some endpoints may disable use of the spin bit by
default, others only in specific deployment scenarios, e.g. for servers and
clients where the RTT would reveal the presence of a VPN or proxy. To avoid
making these connections identifiable based on the usage of the spin bit, all
endpoints randomly disable "spinning" for at least one eighth of connections,
even if otherwise enabled by default. An endpoint not participating in spin bit
signaling for a given connection can use a fixed spin value for the duration of
the connection, or can set the bit randomly on each packet sent.</t>
          <t>When in use and a QUIC flow sends data continuously, the latency spin bit in
each direction changes value once per round-trip time (RTT). An on-path observer
can observe the time difference between edges (changes from 1 to 0 or 0 to 1) in
the spin bit signal in a single direction to measure one sample of end-to-end
RTT. This mechanism follows the principles of protocol measurability laid out
in <xref target="IPIM"/>.</t>
          <t>Note that this measurement, as with passive RTT measurement for TCP, includes
any transport protocol delay (e.g., delayed sending of acknowledgements) and/or
application layer delay (e.g., waiting for a response to be generated). It
therefore provides devices on path a good instantaneous estimate of the RTT as
experienced by the application.</t>
          <t>However, application-limited and flow-control-limited senders can have
application and transport layer delay, respectively, that are much greater than
network RTT. When the sender is application-limited and e.g. only sends small
amount of periodic application traffic, where that period is longer than the
RTT, measuring the spin bit provides information about the application period,
not the network RTT.</t>
          <t>Since the spin bit logic at each endpoint considers only samples from packets
that advance the largest packet number, signal generation itself is
resistant to reordering. However, reordering can cause problems at an observer
by causing spurious edge detection and therefore inaccurate (i.e., lower) RTT
estimates, if reordering occurs across a spin-bit flip in the stream.</t>
          <t>Simple heuristics based on the observed data rate per flow or changes in the RTT
series can be used to reject bad RTT samples due to lost or reordered edges in
the spin signal, as well as application or flow control limitation; for example,
QoF <xref target="TMA-QOF"/> rejects component RTTs significantly higher than RTTs over the
history of the flow. These heuristics may use the handshake RTT as an initial
RTT estimate for a given flow. Usually such heuristics would also detect if
the spin is either constant or randomly set for a connection.</t>
          <t>An on-path observer that can see traffic in both directions (from client to
server and from server to client) can also use the spin bit to measure
"upstream" and "downstream" component RTT; i.e, the component of the
end-to-end RTT attributable to the paths between the observer and the server
and the observer and the client, respectively. It does this by measuring the
delay between a spin edge observed in the upstream direction and that observed
in the downstream direction, and vice versa.</t>
          <t>Raw RTT samples generated using these techniques can be processed in various
ways to generate useful network performance metrics. A simple linear smoothing
or moving minimum filter can be applied to the stream of RTT samples to get a
more stable estimate of application-experienced RTT. RTT samples measured from
the spin bit can also be used to generate RTT distribution information,
including minimum RTT (which approximates network RTT over longer time windows)
and RTT variance (which approximates jitter as seen by the application).</t>
        </section>
      </section>
    </section>
    <section anchor="specific-network-management-tasks">
      <name>Specific Network Management Tasks</name>
      <t>In this section, we review specific network management and measurement
techniques and how QUIC's design impacts them.</t>
      <section anchor="passive-network-performance-measurement-and-troubleshooting">
        <name>Passive Network Performance Measurement and Troubleshooting</name>
        <t>Limited RTT measurement is possible by passive observation of QUIC traffic;
see <xref target="sec-rtt"/>. No passive measurement of loss is possible with the present
wire image. Extremely limited observation of upstream congestion may be
possible via the observation of CE markings on ECN-enabled QUIC traffic.</t>
      </section>
      <section anchor="sec-stateful">
        <name>Stateful Treatment of QUIC Traffic</name>
        <t>Stateful treatment of QUIC traffic (e.g., at a firewall or NAT middlebox) is
possible through QUIC traffic and version identification (<xref target="sec-identifying"/>)
and observation of the handshake for connection confirmation (<xref target="sec-confirm"/>).
The lack of any visible end-of-flow signal (<xref target="sec-teardown"/>) means that this
state must be purged either through timers or through least-recently-used
eviction, depending on application requirements.</t>
        <t>While QUIC has no clear network-visible end-of-connection signal and therefore
does require timer-based state removal, the QUIC handshake indicates
confirmation by both ends of a valid bidirectional transmission. As soon
as the handshake completed, timers should be set long enough to also
allow for short idle time during a valid transmission.</t>
        <t><xref target="RFC4787"/> requires a timeout that is not less than 2 minutes for most UDP
traffic.  However, in practice, timers are sometimes lower, in the range of 30
to 60 seconds. In contrast, <xref target="RFC5382"/> recommends a timeout of more than 2
hours for TCP, given that TCP is a connection-oriented protocol with well-
defined closure semantics.</t>
        <t>Even though QUIC has explicitly been designed tolerate NAT rebindings,
decreasing the NAT timeout is not recommended, as it may negatively impact
application performance or incentivize endpoints to send very frequent
keep-alive packets. Instead it is recommended, even when lower timers are
used for other UDP traffic, to use a timer of at least two minutes for QUIC
traffic.</t>
        <t>If state is removed too early, this could lead to black-holing of incoming
packets after a short idle period. To detect this situation, a timer at the
client needs to expire before a re-establishment can happen (if at all), which
would lead to unnecessary long delays in an otherwise working connection.</t>
        <t>Furthermore, not all endpoints use routing architectures where connections
will survive a port or address change. So even when the client revives the
connection, a NAT rebinding can cause a routing mismatch where a packet
is not even delivered to the server that might support address migration.
For these reasons, the limits in <xref target="RFC4787"/> are important to avoid
black-holing of packets (and hence avoid interrupting the flow of data to the
client), especially where devices are able to distinguish QUIC traffic from
other UDP payloads.</t>
        <t>The QUIC header optionally contains a connection ID which could provide
additional entropy beyond the 5-tuple. The QUIC handshake needs
to be observed in order to understand whether the connection ID is present and
what length it has. However, connection IDs may be renegotiated
after the handshake, and this renegotiation is not visible to the path.
Therefore using the connection ID as a flow key field for stateful treatment
of flows is not recommended as connection ID changes will cause undetectable
and unrecoverable loss of state in the middle of a connection. Specially, the
use of the connection ID for functions that require state to make a forwarding
decison is not viable as it will break connectivity or at minimum cause long
timeout-based delays before this problem is detected by the endpoints and
the connection can potentially be re-established.</t>
        <t>Use of connection IDs is specifically discouraged for NAT applications.
If a NAT hits an operational limit, it is recommended to rather drop the
initial packets of a flow (see also <xref target="sec-filtering"/>),
which potentially triggers a fallback to TCP. Use of the connection ID to
multiplex multiple connections on the same IP address/port pair is not a
viable solution as it risks connectivity breakage, in case the connection
ID changes.</t>
      </section>
      <section anchor="address-rewriting-to-ensure-routing-stability">
        <name>Address Rewriting to Ensure Routing Stability</name>
        <t>While QUIC's migration capability makes it possible for an server to survive
address changes, this does not work if the routers or switches in the server
infrastructure route using the address-port 4-tuple. If infrastructure routes on
addresses only, NAT rebinding or address
migration will cause packets to be delivered to the wrong server. <xref target="QUIC_LB"/>
describes a way to addresses this problem by coordinating the selection and
use of connection IDs between load-balancers and servers.</t>
        <t>Applying address translation at a middlebox to maintain a stable
address-port mapping for flows based on connection ID might seem
like a solution to this problem. However, hiding information about the
change of the IP address or port conceals important and security-relevant
information from QUIC endpoints and as such would facilitate amplification
attacks (see <xref section="9" sectionFormat="of" target="QUIC-TRANSPORT"/>). A NAT function that hides
peer address changes prevents the other end from
detecting and mitigating attacks as the endpoint cannot verify connectivity
to the new address using QUIC PATH_CHALLENGE and PATH_RESPONSE frames.</t>
        <t>In addition, a change of IP address or port is also an input signal to other
internal mechanisms in QUIC. When a path change is detected, path-dependent
variables like congestion control parameters will be reset protecting
the new path from overload.</t>
        <t>Therefore, the use of address rewriting to ensure routing stability
can open QUIC up to various attacks, as it
conceals client address changes, and as such masks important signals that
drive security mechanisms.</t>
      </section>
      <section anchor="sec-loadbalancing">
        <name>Server Cooperation with Load Balancers</name>
        <t>In the case of networking architectures that include load balancers,
the connection ID can be used as a way for the server to signal information
about the desired treatment of a flow to the load balancers. Guidance on
assigning connection IDs is given in
<xref target="QUIC-APPLICABILITY"/>. <xref target="QUIC_LB"/>
describes a system for coordinating selection and use of connection IDs between
load-balancers and servers.</t>
      </section>
      <section anchor="sec-filtering">
        <name>Filtering Behavior</name>
        <t><xref target="RFC4787"/> describes possible packet filtering behaviors that relate to NATs
but is often also used is other scenarios where packet filtering is desired.
Though the guidance there holds, a particularly unwise behavior is to admit a
handful of UDP packets and then make a decision as to whether or not to filter
it. QUIC applications are encouraged to fail over to TCP if early packets do
not arrive at their destination <xref target="I-D.ietf-quic-applicability"/>, as QUIC is
based on UDP and there are known blocks of UDP traffic (see <xref target="sec-udp-1312"/>).
Admitting a few packets allows the QUIC endpoint to determine that the path
accepts QUIC. Sudden drops afterwards will result in slow and costly timeouts
before abandoning the connection.</t>
      </section>
      <section anchor="sec-udp-1312">
        <name>UDP Blocking or Throttling</name>
        <t>Today, UDP is the most prevalent DDoS vector, since it is easy for compromised
non-admin applications to send a flood of large UDP packets (while with TCP the
attacker gets throttled by the congestion controller) or to craft reflection and
amplification attacks. Some networks therefore block UDP traffic.
With increased deployment of QUIC, there is also an increased need to allow
UDP traffic on ports used for QUIC. However, if UDP is generally enabled on
these ports, UDP flood attacks may also use the same ports. One possible
response to this threat is to throttle UDP traffic on the network, allocating a
fixed portion of the network capacity to UDP and blocking UDP datagrams over
that cap. As the portion of QUIC traffic compared to TCP is also expected to
increase over time, using such a limit is not recommended but if done,
limits might need to be adapted dynamically.</t>
        <t>Further, if UDP traffic is desired to be throttled, it is recommended to
block individual
QUIC flows entirely rather than dropping packets randomly. When the handshake is
blocked, QUIC-capable applications may failover to TCP
However, blocking a
random fraction of QUIC packets across 4-tuples will allow many QUIC handshakes
to complete, preventing a TCP failover, but the connections will suffer from
severe packet loss (see also <xref target="sec-filtering"/>). Therefore UDP throttling
should be realized by per-flow policing as opposed to per-packet
policing. Note that this per-flow policing should be stateless to avoid
problems with stateful treatment of QUIC flows (see <xref target="sec-stateful"/>),
for example blocking a portion of the space of values of a hash function
over the addresses and ports in the UDP datagram.
While QUIC endpoints are often able to survive address changes, e.g. by NAT
rebindings, blocking a portion of the traffic based on 5-tuple hashing increases
the risk of black-holing an active connection when the address changes.</t>
      </section>
      <section anchor="sec-ddos-dec">
        <name>DDoS Detection and Mitigation</name>
        <t>On-path observation of the transport headers of packets can be used for various
security functions. For example, Denial of Service (DOS) and Distributed DOS
(DDOS) attacks against the infrastructure or against an endpoint can be
detected and mitigated by characterising anomalous traffic.
Other uses include support for security audits (e.g., verifying the
compliance with ciphersuites); client and application fingerprinting for
inventory; and to provide alerts for network intrusion detection and other
next generation firewall functions.</t>
        <t>Current practices in detection and mitigation of DDoS
attacks generally involve classification of incoming traffic (as
packets, flows, or some other aggregate) into "good" (productive) and "bad"
(DDoS) traffic, and then differential treatment of this traffic to forward only
good traffic. This operation is often done in a separate specialized mitigation
environment through which all traffic is filtered; a generalized architecture
for separation of concerns in mitigation is given in
<xref target="DOTS-ARCH"/>.</t>
        <t>Efficient classification of this DDoS traffic in the mitigation environment
is key to the success of this approach. Limited first-packet garbage detection
as in <xref target="sec-garbage"/> and stateful tracking of QUIC traffic as in
<xref target="sec-stateful"/> above may be useful during classification.</t>
        <t>Note that the use of a connection ID to support connection migration renders
5-tuple based filtering insufficient to detect active flows and requires more
state to be maintained by DDoS defense systems if support of migration of QUIC
flows is desired. For the common case of NAT rebinding, where the client's
address changes without the client's intent or knowledge, DDoS defense systems
can detect a change in the client's endpoint address by linking flows based on
the server's connection IDs. However, QUIC's linkability resistance ensures that
a deliberate connection migration is accompanied by a change in the connection
ID. In this case, the connection ID can not be used to distinguish valid, active
traffic from new attack traffic.</t>
        <t>It is also possible for
endpoints to directly support security functions such as DoS
classification and mitigation.
Endpoints can cooperate with an in-network device directly by e.g.
sharing information about connection IDs.</t>
        <t>Another potential method could use an
on-path network device that relies on pattern inferences in the traffic and
heuristics or machine learning instead of processing observed header
information.</t>
        <t>However, it is questionable whether connection migrations must be supported
during a DDoS attack. While unintended migration without a connection ID
change can be more easily supported, it might be acceptable to not
support migrations of active QUIC connections that are not visible to
the network functions performing the DDoS detection.
As soon as the connection blocking is detected by the client,
the client may be able to rely on the fast resumption mechanism
provided by QUIC. When clients migrate to a new path, they should be prepared
for the migration to fail and attempt to reconnect quickly.</t>
        <t>Beyond in-network DDoS protection mechanisms, TCP syncookies <xref target="RFC4937"/>
are a well-established method of mitigating some
kinds of TCP DDoS attacks. QUIC Retry packets are the functional analogue to
syncookies, forcing clients to prove possession of their IP address before
committing server state.  However, there are safeguards in QUIC against
unsolicited injection of these packets by intermediaries who do not have consent
of the end server. See <xref target="QUIC_LB"/> for standard ways for intermediaries to send
Retry packets on behalf of consenting servers.</t>
      </section>
      <section anchor="quality-of-service-handling-and-ecmp">
        <name>Quality of Service handling and ECMP</name>
        <t>It is expected that any QoS handling in the network, e.g. based on use of
DiffServ Code Points (DSCPs) <xref target="RFC2475"/> as well as Equal-Cost
Multi-Path (ECMP) routing, is applied on a per flow-basis (and not per-packet)
and as such that all packets belonging to the same QUIC connection get uniform
treatment. Using ECMP to distribute packets from a single flow across multiple
network paths or any other non-uniform treatment of packets belong to the same
connection could result in variations in order, delivery rate, and drop rate.
As feedback about loss or delay of each packet is used as input to
the congestion controller, these variations could adversely affect performance.</t>
        <t>Depending of the loss recovery mechanism implemented, QUIC may be
more tolerant of packet re-ordering than traditional TCP traffic (see
<xref target="packetnumber"/>). However, it cannot be known by the network which exact
recovery mechanism is used and therefore reordering tolerance should be
considered as unknown.</t>
      </section>
      <section anchor="handling-icmp-messages">
        <name>Handling ICMP Messages</name>
        <t>Datagram Packetization Layer PMTU Discovery (PLPMTUD) can be used by QUIC to
probe for the supported PMTU. PLPMTUD optionally uses ICMP messages (e.g.,
IPv6 Packet Too Big messages). Given known attacks with the use of ICMP
messages, the use of PLPMTUD in QUIC has been designed to safely use but
not rely on receiving ICMP feedback (see
<xref section="14.2.1." sectionFormat="of" target="QUIC-TRANSPORT"/>).</t>
        <t>Networks are recommended to forward these ICMP messages and retain as much of
the original packet as possible without exceeding the minimum MTU for the IP
version when generating ICMP messages as recommended in <xref target="RFC1812"/>
and <xref target="RFC4443"/>.</t>
      </section>
      <section anchor="guiding-path-mtu">
        <name>Guiding Path MTU</name>
        <t>Some networks support 1500-byte packets, but can only do so by fragmenting at a
lower layer before traversing a smaller MTU segment, and then reassembling.
This is permissible even when the IP layer is IPv6 or IPv4 with the DF bit set,
because it occurs below the IP layer. However, this process can add to compute
and memory costs, leading to a bottleneck that limits network capacity. In such
networks this generates a desire to influence a majority of senders to use
smaller packets, so that the limited reassembly capacity is not exceeded.</t>
        <t>For TCP, MSS clamping (<xref section="3.2" sectionFormat="of" target="RFC4459"/>) is often used to change
the sender's maximum TCP segment size, but QUIC requires a different approach.
<xref section="14" sectionFormat="of" target="QUIC-TRANSPORT"/> advises senders to probe larger sizes using
Datagram Packetization Layer PMTU Discovery (<xref target="DPLPMTUD"/>) or Path
Maximum Transmission Unit Discovery (PMTUD: <xref target="RFC1191"/> and <xref target="RFC8201"/>).
This mechanism will encourage senders to approach the maximum size, which
could cause fragmentation with a network segment that they may not be aware of.</t>
        <t>If path performance is limited when sending larger packets, an on-path
device should support a maximum packet size for a specific transport flow
and then consistently drop all packets that exceed the configured size
when the inner IPv4 packet has DF set, or IPv6 is used. Endpoints can cache
PMTU information between IP flows, in the IP-layer cache, so short-term
consistency between the PMTU for flows can help avoid an endpoint using a
PMTU that is inefficient.</t>
        <t>Networks with configurations that would lead to fragmentation of large packets
should drop such packets rather than fragmenting them. Network operators who
plan to implement a more selective policy may start by focussing on QUIC.
QUIC flows cannot always be easily distinguished from other UDP traffic, but
we assume at least some portion of QUIC traffic can be identified
(see <xref target="sec-identifying"/>). For QUIC endpoints using DPLPMTUD it is recommended
for the path to drop a packet larger than the supported size. A QUIC probe
packet is used to discover the PMTU. If lost, this does not impact the flow of
QUIC data.</t>
        <t>IPv4 routers generate an ICMP message when a packet is dropped because the
link MTU was exceeded. <xref target="RFC8504"/> specifies how an IPv6 node generates an
ICMPv6 Packet Too Big message (PTB) in this case. PMTUD relies upon an
endpoint receiving such PTB messages <xref target="RFC8201"/>, whereas DPLPMTUD does not
reply upon these messages, but still can optionally use these to improve
performance <xref section="4.6" sectionFormat="of" target="DPLPMTUD"/>.</t>
        <t>Since a network cannot know in advance which discovery method a QUIC endpoint
is using, it should always send a PTB message in addition to dropping the
oversized packet. A generated PTB message should be compliant with the
validation requirements of <xref section="14.2.1" sectionFormat="of" target="QUIC-TRANSPORT"/>, otherwise it
will be ignored by DPLPMTUD. This will likely provide the right signal for the
endpoint to keep the packet size small and thereby avoid network fragmentation
for that flow entirely.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no actions for IANA.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>QUIC is an encrypted and authenticated transport. That means, once the
cryptographic handshake is complete, QUIC endpoints discard most packets that
are not authenticated, greatly limiting the ability of an attacker to interfere
with existing connections.</t>
      <t>However, some information is still observerable, as supporting manageability of
QUIC traffic inherently involves tradeoffs with the confidentiality of QUIC's
control information; this entire document is therefore security-relevant.</t>
      <t>More security considerations for QUIC are discussed in <xref target="QUIC-TRANSPORT"/>
and <xref target="QUIC-TLS"/>, generally considering active or passive attackers in the
network as well as attacks on specific QUIC mechanism.</t>
      <t>Version Negotiation packets do not contain any mechanism to prevent version
downgrade attacks. However, future versions of QUIC that use Version Negotiation
packets are require to define a mechanism that is robust against version
downgrade attacks. Therefore a network node should not attempt to impact version
selection, as version downgrade may result in connection failure.</t>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <t>The following people have contributed text to sections of this document:</t>
      <ul spacing="normal">
        <li>Dan Druta</li>
        <li>Martin Duke</li>
        <li>Igor Lubashev</li>
        <li>David Schinazi</li>
        <li>Gorry Fairhurst</li>
        <li>Chris Box</li>
      </ul>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Thomas Fossati, Jana Iygengar, Marcus Ihlar for their early reviews
and feedback. Special thanks also to Martin Thomson and Martin Duke for their
detailed reviews and input. And thanks to Sean Turner, Mike Bishop, Ian Swett,
and Nick Banks for their last call reviews.</t>
      <t>This work is partially supported by the European Commission under Horizon 2020
grant agreement no. 688421 Measurement and Architecture for a Middleboxed
Internet (MAMI), and by the Swiss State Secretariat for Education, Research, and
Innovation under contract no. 15.0268. This support does not imply endorsement.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="QUIC-TRANSPORT">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="Jana Iyengar">
              <organization>Fastly</organization>
            </author>
            <author fullname="Martin Thomson">
              <organization>Mozilla</organization>
            </author>
            <date day="14" month="January" 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="Internet-Draft" value="draft-ietf-quic-transport-34"/>
        </reference>
        <reference anchor="QUIC-TLS">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="Martin Thomson">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Sean Turner">
              <organization>sn3rd</organization>
            </author>
            <date day="14" month="January" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-tls-34"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="TMA-QOF">
          <front>
            <title>Inline Data Integrity Signals for Passive Measurement (in Proc. TMA 2014)</title>
            <author initials="B." surname="Trammell">
              <organization/>
            </author>
            <author initials="D." surname="Gugelmann">
              <organization/>
            </author>
            <author initials="N." surname="Brownlee">
              <organization/>
            </author>
            <date year="2014" month="April"/>
          </front>
        </reference>
        <reference anchor="IPIM" target="https://arxiv.org/abs/1612.02902">
          <front>
            <title>In-Protocol Internet Measurement (arXiv preprint 1612.02902)</title>
            <author initials="M." surname="Allman">
              <organization/>
            </author>
            <author initials="R." surname="Beverly">
              <organization/>
            </author>
            <author initials="B." surname="Trammell">
              <organization/>
            </author>
            <date year="2016" month="December" day="09"/>
          </front>
        </reference>
        <reference anchor="RFC7605">
          <front>
            <title>Recommendations on Using Assigned Transport Port Numbers</title>
            <author fullname="J. Touch" initials="J." surname="Touch">
              <organization/>
            </author>
            <date month="August" year="2015"/>
            <abstract>
              <t>This document provides recommendations to designers of application and service protocols on how to use the transport protocol port number space and when to request a port assignment from IANA.  It provides designer guidance to requesters or users of port numbers on how to interact with IANA using the processes defined in RFC 6335; thus, this document complements (but does not update) that document.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="165"/>
          <seriesInfo name="RFC" value="7605"/>
          <seriesInfo name="DOI" value="10.17487/RFC7605"/>
        </reference>
        <reference anchor="QUIC-RECOVERY">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="Jana Iyengar">
              <organization>Fastly</organization>
            </author>
            <author fullname="Ian Swett">
              <organization>Google</organization>
            </author>
            <date day="14" month="January" year="2021"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-recovery-34"/>
        </reference>
        <reference anchor="RFC4459">
          <front>
            <title>MTU and Fragmentation Issues with In-the-Network Tunneling</title>
            <author fullname="P. Savola" initials="P." surname="Savola">
              <organization/>
            </author>
            <date month="April" year="2006"/>
            <abstract>
              <t>Tunneling techniques such as IP-in-IP when deployed in the middle of the network, typically between routers, have certain issues regarding how large packets can be handled: whether such packets would be fragmented and reassembled (and how), whether Path MTU Discovery would be used, or how this scenario could be operationally avoided. This memo justifies why this is a common, non-trivial problem, and goes on to describe the different solutions and their characteristics at some length.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4459"/>
          <seriesInfo name="DOI" value="10.17487/RFC4459"/>
        </reference>
        <reference anchor="QUIC-HTTP">
          <front>
            <title>HTTP/3</title>
            <author fullname="Mike Bishop">
              <organization>Akamai</organization>
            </author>
            <date day="2" month="February" year="2021"/>
            <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-34"/>
        </reference>
        <reference anchor="WIRE-IMAGE">
          <front>
            <title>The Wire Image of a Network Protocol</title>
            <author fullname="B. Trammell" initials="B." surname="Trammell">
              <organization/>
            </author>
            <author fullname="M. Kuehlewind" initials="M." surname="Kuehlewind">
              <organization/>
            </author>
            <date month="April" year="2019"/>
            <abstract>
              <t>This document defines the wire image, an abstraction of the information available to an on-path non-participant in a networking protocol.  This abstraction is intended to shed light on the implications that increased encryption has for network functions that use the wire image.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8546"/>
          <seriesInfo name="DOI" value="10.17487/RFC8546"/>
        </reference>
        <reference anchor="QUIC-INVARIANTS">
          <front>
            <title>Version-Independent Properties of QUIC</title>
            <author fullname="Martin Thomson">
              <organization>Mozilla</organization>
            </author>
            <date day="14" month="January" year="2021"/>
            <abstract>
              <t>This document defines the properties of the QUIC transport protocol that are common to all versions of the protocol.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-invariants-13"/>
        </reference>
        <reference anchor="QUIC_LB">
          <front>
            <title>QUIC-LB: Generating Routable QUIC Connection IDs</title>
            <author fullname="Martin Duke">
              <organization>Google</organization>
            </author>
            <author fullname="Nick Banks">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Christian Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <date day="28" month="March" year="2022"/>
            <abstract>
              <t>   QUIC address migration allows clients to change their IP address
   while maintaining connection state.  To reduce the ability of an
   observer to link two IP addresses, clients and servers use new
   connection IDs when they communicate via different client addresses.
   This poses a problem for traditional "layer-4" load balancers that
   route packets via the IP address and port 4-tuple.  This
   specification provides a standardized means of securely encoding
   routing information in the server's connection IDs so that a properly
   configured load balancer can route packets with migrated addresses
   correctly.  As it proposes a structured connection ID format, it also
   provides a means of connection IDs self-encoding their length to aid
   some hardware offloads.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-load-balancers-13"/>
        </reference>
        <reference anchor="RFC7983">
          <front>
            <title>Multiplexing Scheme Updates for Secure Real-time Transport Protocol (SRTP) Extension for Datagram Transport Layer Security (DTLS)</title>
            <author fullname="M. Petit-Huguenin" initials="M." surname="Petit-Huguenin">
              <organization/>
            </author>
            <author fullname="G. Salgueiro" initials="G." surname="Salgueiro">
              <organization/>
            </author>
            <date month="September" year="2016"/>
            <abstract>
              <t>This document defines how Datagram Transport Layer Security (DTLS), Real-time Transport Protocol (RTP), RTP Control Protocol (RTCP), Session Traversal Utilities for NAT (STUN), Traversal Using Relays around NAT (TURN), and ZRTP packets are multiplexed on a single receiving socket.  It overrides the guidance from RFC 5764 ("SRTP                Extension for DTLS"), which suffered from four issues described and fixed in this document.</t>
              <t>This document updates RFC 5764.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7983"/>
          <seriesInfo name="DOI" value="10.17487/RFC7983"/>
        </reference>
        <reference anchor="RFC6066">
          <front>
            <title>Transport Layer Security (TLS) Extensions: Extension Definitions</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd">
              <organization/>
            </author>
            <date month="January" year="2011"/>
            <abstract>
              <t>This document provides specifications for existing TLS extensions.  It is a companion document for RFC 5246, "The Transport Layer Security (TLS) Protocol Version 1.2".  The extensions specified are server_name, max_fragment_length, client_certificate_url, trusted_ca_keys, truncated_hmac, and status_request.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6066"/>
          <seriesInfo name="DOI" value="10.17487/RFC6066"/>
        </reference>
        <reference anchor="RFC7301">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl">
              <organization/>
            </author>
            <author fullname="A. Popov" initials="A." surname="Popov">
              <organization/>
            </author>
            <author fullname="A. Langley" initials="A." surname="Langley">
              <organization/>
            </author>
            <author fullname="E. Stephan" initials="E." surname="Stephan">
              <organization/>
            </author>
            <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="TLS-ECH">
          <front>
            <title>TLS Encrypted Client Hello</title>
            <author fullname="Eric Rescorla">
              <organization>RTFM, Inc.</organization>
            </author>
            <author fullname="Kazuho Oku">
              <organization>Fastly</organization>
            </author>
            <author fullname="Nick Sullivan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Christopher A. Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="13" month="February" year="2022"/>
            <abstract>
              <t>   This document describes a mechanism in Transport Layer Security (TLS)
   for encrypting a ClientHello message under a server public key.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/tlswg/draft-ietf-tls-esni
   (https://github.com/tlswg/draft-ietf-tls-esni).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-esni-14"/>
        </reference>
        <reference anchor="RFC4787">
          <front>
            <title>Network Address Translation (NAT) Behavioral Requirements for Unicast UDP</title>
            <author fullname="F. Audet" initials="F." role="editor" surname="Audet">
              <organization/>
            </author>
            <author fullname="C. Jennings" initials="C." surname="Jennings">
              <organization/>
            </author>
            <date month="January" year="2007"/>
            <abstract>
              <t>This document defines basic terminology for describing different types of Network Address Translation (NAT) behavior when handling Unicast UDP and also defines a set of requirements that would allow many applications, such as multimedia communications or online gaming, to work consistently.  Developing NATs that meet this set of requirements will greatly increase the likelihood that these applications will function properly.  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="127"/>
          <seriesInfo name="RFC" value="4787"/>
          <seriesInfo name="DOI" value="10.17487/RFC4787"/>
        </reference>
        <reference anchor="RFC5382">
          <front>
            <title>NAT Behavioral Requirements for TCP</title>
            <author fullname="S. Guha" initials="S." role="editor" surname="Guha">
              <organization/>
            </author>
            <author fullname="K. Biswas" initials="K." surname="Biswas">
              <organization/>
            </author>
            <author fullname="B. Ford" initials="B." surname="Ford">
              <organization/>
            </author>
            <author fullname="S. Sivakumar" initials="S." surname="Sivakumar">
              <organization/>
            </author>
            <author fullname="P. Srisuresh" initials="P." surname="Srisuresh">
              <organization/>
            </author>
            <date month="October" year="2008"/>
            <abstract>
              <t>This document defines a set of requirements for NATs that handle TCP that would allow many applications, such as peer-to-peer applications and online games to work consistently.  Developing NATs that meet this set of requirements will greatly increase the likelihood that these applications will function properly.  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="142"/>
          <seriesInfo name="RFC" value="5382"/>
          <seriesInfo name="DOI" value="10.17487/RFC5382"/>
        </reference>
        <reference anchor="QUIC-APPLICABILITY">
          <front>
            <title>Applicability of the QUIC Transport Protocol</title>
            <author fullname="Mirja Kuehlewind">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Brian Trammell">
              <organization>Google</organization>
            </author>
            <date day="6" month="April" year="2022"/>
            <abstract>
              <t>   This document discusses the applicability of the QUIC transport
   protocol, focusing on caveats impacting application protocol
   development and deployment over QUIC.  Its intended audience is
   designers of application protocol mappings to QUIC, and implementors
   of these application protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-applicability-16"/>
        </reference>
        <reference anchor="I-D.ietf-quic-applicability">
          <front>
            <title>Applicability of the QUIC Transport Protocol</title>
            <author fullname="Mirja Kuehlewind">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Brian Trammell">
              <organization>Google</organization>
            </author>
            <date day="6" month="April" year="2022"/>
            <abstract>
              <t>   This document discusses the applicability of the QUIC transport
   protocol, focusing on caveats impacting application protocol
   development and deployment over QUIC.  Its intended audience is
   designers of application protocol mappings to QUIC, and implementors
   of these application protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-applicability-16"/>
        </reference>
        <reference anchor="DOTS-ARCH">
          <front>
            <title>DDoS Open Threat Signaling (DOTS) Architecture</title>
            <author fullname="Andrew Mortensen">
              <organization>Forcepoint</organization>
            </author>
            <author fullname="Tirumaleswar Reddy">
              <organization>McAfee, Inc.</organization>
            </author>
            <author fullname="Flemming Andreasen">
              <organization>Cisco</organization>
            </author>
            <author fullname="Nik Teague">
              <organization>Iron Mountain</organization>
            </author>
            <author fullname="Rich Compton">
              <organization>Charter</organization>
            </author>
            <date day="6" month="March" year="2020"/>
            <abstract>
              <t>This document describes an architecture for establishing and maintaining Distributed Denial-of-Service (DDoS) Open Threat Signaling (DOTS) within and between domains.  The document does not specify protocols or protocol extensions, instead focusing on defining architectural relationships, components, and concepts used in a DOTS deployment.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dots-architecture-18"/>
        </reference>
        <reference anchor="RFC4937">
          <front>
            <title>IANA Considerations for PPP over Ethernet (PPPoE)</title>
            <author fullname="P. Arberg" initials="P." surname="Arberg">
              <organization/>
            </author>
            <author fullname="V. Mammoliti" initials="V." surname="Mammoliti">
              <organization/>
            </author>
            <date month="June" year="2007"/>
            <abstract>
              <t>This document describes the IANA considerations for the PPP over Ethernet (PPPoE) protocol.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4937"/>
          <seriesInfo name="DOI" value="10.17487/RFC4937"/>
        </reference>
        <reference anchor="RFC2475">
          <front>
            <title>An Architecture for Differentiated Services</title>
            <author fullname="S. Blake" initials="S." surname="Blake">
              <organization/>
            </author>
            <author fullname="D. Black" initials="D." surname="Black">
              <organization/>
            </author>
            <author fullname="M. Carlson" initials="M." surname="Carlson">
              <organization/>
            </author>
            <author fullname="E. Davies" initials="E." surname="Davies">
              <organization/>
            </author>
            <author fullname="Z. Wang" initials="Z." surname="Wang">
              <organization/>
            </author>
            <author fullname="W. Weiss" initials="W." surname="Weiss">
              <organization/>
            </author>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines an architecture for implementing scalable service differentiation in the Internet.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2475"/>
          <seriesInfo name="DOI" value="10.17487/RFC2475"/>
        </reference>
        <reference anchor="RFC1812">
          <front>
            <title>Requirements for IP Version 4 Routers</title>
            <author fullname="F. Baker" initials="F." role="editor" surname="Baker">
              <organization/>
            </author>
            <date month="June" year="1995"/>
            <abstract>
              <t>This memo defines and discusses requirements for devices that perform the network layer forwarding function of the Internet protocol suite. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1812"/>
          <seriesInfo name="DOI" value="10.17487/RFC1812"/>
        </reference>
        <reference anchor="RFC4443">
          <front>
            <title>Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification</title>
            <author fullname="A. Conta" initials="A." surname="Conta">
              <organization/>
            </author>
            <author fullname="S. Deering" initials="S." surname="Deering">
              <organization/>
            </author>
            <author fullname="M. Gupta" initials="M." role="editor" surname="Gupta">
              <organization/>
            </author>
            <date month="March" year="2006"/>
            <abstract>
              <t>This document describes the format of a set of control messages used in ICMPv6 (Internet Control Message Protocol).  ICMPv6 is the Internet Control Message Protocol for Internet Protocol version 6 (IPv6).  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="89"/>
          <seriesInfo name="RFC" value="4443"/>
          <seriesInfo name="DOI" value="10.17487/RFC4443"/>
        </reference>
        <reference anchor="DPLPMTUD">
          <front>
            <title>Packetization Layer Path MTU Discovery for Datagram Transports</title>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst">
              <organization/>
            </author>
            <author fullname="T. Jones" initials="T." surname="Jones">
              <organization/>
            </author>
            <author fullname="M. Tüxen" initials="M." surname="Tüxen">
              <organization/>
            </author>
            <author fullname="I. Rüngeler" initials="I." surname="Rüngeler">
              <organization/>
            </author>
            <author fullname="T. Völker" initials="T." surname="Völker">
              <organization/>
            </author>
            <date month="September" year="2020"/>
            <abstract>
              <t>This document specifies Datagram Packetization Layer Path MTU Discovery (DPLPMTUD). This is a robust method for Path MTU Discovery (PMTUD) for datagram Packetization Layers (PLs). It allows a PL, or a datagram application that uses a PL, to discover whether a network path can support the current size of datagram.  This can be used to detect and reduce the message size when a sender encounters a packet black hole. It can also probe a network path to discover whether the maximum packet size can be increased.  This provides functionality for datagram transports that is equivalent to the PLPMTUD specification for TCP, specified in RFC 4821, which it updates. It also updates the UDP Usage Guidelines to refer to this method for use with UDP datagrams and updates SCTP.</t>
              <t>The document provides implementation notes for incorporating Datagram PMTUD into IETF datagram transports or applications that use datagram transports.</t>
              <t>This specification updates RFC 4960, RFC 4821, RFC 6951, RFC 8085, and RFC 8261.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8899"/>
          <seriesInfo name="DOI" value="10.17487/RFC8899"/>
        </reference>
        <reference anchor="RFC1191">
          <front>
            <title>Path MTU discovery</title>
            <author fullname="J.C. Mogul" initials="J.C." surname="Mogul">
              <organization/>
            </author>
            <author fullname="S.E. Deering" initials="S.E." surname="Deering">
              <organization/>
            </author>
            <date month="November" year="1990"/>
            <abstract>
              <t>This memo describes a technique for dynamically discovering the maximum transmission unit (MTU) of an arbitrary internet path.  It specifies a small change to the way routers generate one type of ICMP message.  For a path that passes through a router that has not been so changed, this technique might not discover the correct Path MTU, but it will always choose a Path MTU as accurate as, and in many cases more accurate than, the Path MTU that would be chosen by current practice.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1191"/>
          <seriesInfo name="DOI" value="10.17487/RFC1191"/>
        </reference>
        <reference anchor="RFC8201">
          <front>
            <title>Path MTU Discovery for IP version 6</title>
            <author fullname="J. McCann" initials="J." surname="McCann">
              <organization/>
            </author>
            <author fullname="S. Deering" initials="S." surname="Deering">
              <organization/>
            </author>
            <author fullname="J. Mogul" initials="J." surname="Mogul">
              <organization/>
            </author>
            <author fullname="R. Hinden" initials="R." role="editor" surname="Hinden">
              <organization/>
            </author>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document describes Path MTU Discovery (PMTUD) for IP version 6. It is largely derived from RFC 1191, which describes Path MTU Discovery for IP version 4.  It obsoletes RFC 1981.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="87"/>
          <seriesInfo name="RFC" value="8201"/>
          <seriesInfo name="DOI" value="10.17487/RFC8201"/>
        </reference>
        <reference anchor="RFC8504">
          <front>
            <title>IPv6 Node Requirements</title>
            <author fullname="T. Chown" initials="T." surname="Chown">
              <organization/>
            </author>
            <author fullname="J. Loughney" initials="J." surname="Loughney">
              <organization/>
            </author>
            <author fullname="T. Winters" initials="T." surname="Winters">
              <organization/>
            </author>
            <date month="January" year="2019"/>
            <abstract>
              <t>This document defines requirements for IPv6 nodes.  It is expected that IPv6 will be deployed in a wide range of devices and situations. Specifying the requirements for IPv6 nodes allows IPv6 to function well and interoperate in a large number of situations and deployments.</t>
              <t>This document obsoletes RFC 6434, and in turn RFC 4294.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="220"/>
          <seriesInfo name="RFC" value="8504"/>
          <seriesInfo name="DOI" value="10.17487/RFC8504"/>
        </reference>
      </references>
    </references>
    <section anchor="sec-google-version">
      <name>Distinguishing IETF QUIC and Google QUIC Versions</name>
      <t>This section contains algorithms that allows parsing versions from both
Google QUIC and IETF QUIC. These mechanisms will become
irrelevant when IETF QUIC is fully deployed and Google QUIC is deprecated.</t>
      <t>Note that other than this appendix, nothing in this document applies to
Google QUIC. And the purpose of this appendix is merely to distinguish IETF QUIC
from any versions of Google QUIC.</t>
      <t>This appendix uses the following conventions:
* array[i] - one byte at index i of array
* array[i:j] - subset of array starting with index i (inclusive) up to j-1
(inclusive)
* array[i:] - subset of array starting with index i (inclusive) up to the
end of the array</t>
      <t>Conceptually, a Google QUIC version is an opaque 32bit field. When we refer to a
version with four printable characters, we use its ASCII representation:
for example, Q050 refers to {'Q', '0', '5', '0'} which is equal to
{0x51, 0x30, 0x35, 0x30}. Otherwise, we use its hexadecimal representation:
for example, 0xff00001d refers to {0xff, 0x00, 0x00, 0x1d}.</t>
      <t>QUIC versions that start with 'Q' or 'T' followed by three digits are
Google QUIC versions. Versions up to and including 43 are documented by
&lt;https://docs.google.com/document/d/
1WJvyZflAO2pq77yOLbp9NsGjC1CHetAXV8I0fQe-B_U/preview&gt;.
Versions Q046, Q050, T050, and T051 are not fully documented, but this appendix
should contain enough information to allow parsing Client Hellos for those
versions.</t>
      <t>To extract the version number itself, one needs to look at the first byte of
the QUIC packet, in other words the first byte of the UDP payload.</t>
      <artwork><![CDATA[
  first_byte = packet[0]
  first_byte_bit1 = ((first_byte & 0x80) != 0)
  first_byte_bit2 = ((first_byte & 0x40) != 0)
  first_byte_bit3 = ((first_byte & 0x20) != 0)
  first_byte_bit4 = ((first_byte & 0x10) != 0)
  first_byte_bit5 = ((first_byte & 0x08) != 0)
  first_byte_bit6 = ((first_byte & 0x04) != 0)
  first_byte_bit7 = ((first_byte & 0x02) != 0)
  first_byte_bit8 = ((first_byte & 0x01) != 0)
  if (first_byte_bit1) {
    version = packet[1:5]
  } else if (first_byte_bit5 && !first_byte_bit2) {
    if (!first_byte_bit8) {
      abort("Packet without version")
    }
    if (first_byte_bit5) {
      version = packet[9:13]
    } else {
      version = packet[5:9]
    }
  } else {
    abort("Packet without version")
  }
]]></artwork>
      <section anchor="extracting-the-crypto-frame">
        <name>Extracting the CRYPTO frame</name>
        <artwork><![CDATA[
  counter = 0
  while (payload[counter] == 0) {
    counter += 1
  }
  first_nonzero_payload_byte = payload[counter]
  fnz_payload_byte_bit3 = ((first_nonzero_payload_byte & 0x20) != 0)

  if (first_nonzero_payload_byte != 0x06) {
    abort("Unexpected frame")
  }
  if (payload[counter+1] != 0x00) {
    abort("Unexpected crypto stream offset")
  }
  counter += 2
  if ((payload[counter] & 0xc0) == 0) {
    crypto_data_length = payload[counter]
    counter += 1
  } else {
    crypto_data_length = payload[counter:counter+2]
    counter += 2
  }
  crypto_data = payload[counter:counter+crypto_data_length]
  ParseTLS(crypto_data)
]]></artwork>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+19e3Mc13Xn//dTtKmqCFjPjAC+RJFWEvAlIiYpiIDsJLZL
1ZjpwbQ50z3u2wMQouna77DfcD/Jnvc9t2dAMZGytbWxquIQQPft+zj3vM/v
jMfj0Nf9snpYvCqb8qIqz+tl3V8X7bzoF1Xx3ffHT4qzrmziuu364qRr+3ba
LkN5ft5Vlw/579mbYdZOm3IFA866ct6P66qfj/+yqafjlX9sfPhlmJV99TBM
4X8v2u76YVE38zaEet09LPpuE/vbBwdfHdwOb6vrq7abPSyOm77qmqofP8WR
Q4h92cx+KJdtA1+7rmJY1w+LP8AER0WE2XbVPMK/rlf4jz+FUG76Rds9DEUx
hv8r4HMRVj0pfrupFsvqqm5m9Gue/Ku6+3M5/FPbXTwsnnX1NMa2od9Uq7Je
PixW+PTkrT39z5U8NJm2q/yDjye4n6tVtVy6zz3u6rLJ/0Af+6ZtL5ZVcXpV
9z9W3RLWW3yzOn/hv40b/M+9vDmZLuhvEVZf9fA+bGN5Of5ms1yOT5Zl/2Nx
SH+fwhE8LB4cHNwt/n0Dc+W3pu2m6fEk3PdCCE3brcq+voTDCnhG9lNRnL06
Gn/37fOH9LoQ0nGzrJuqeFr2JR3ZRYcEdVpfNOUyFvB6cVLGCAMUr6oybrpq
VTV9sVc3SF7TCY5Z3D44vLtPg6ZTw//G8v9v2MytB55OYAsuqiXQXrP7idcT
2Pz2qllWFf2BiJK+Pz64C785Pjl+NVjeWK+BUWS+krL71/qyWHfVuqvh58P7
h7cnB7eBlD9hRUCPR0uc7u4/v4HZVpdwMteftiF92V0gHSz6fh0ffvFF2b2r
LydAWl+U5/GLNLN86ffHh7fHB1/BL988f/Ll/YN7OFm86uM3z558+7tnb/4N
tmH8dJLudldNW5jWNb9y9+69r4BWxuNxAZ8B2pzCbT1b1LEA5rChTZrVcbqJ
sYrF6ka+0xvfWcuGj4B84LW6uQhtQw/Wq/WyBhZSt03El/HFz+E7VQR6K/C+
XNUdPgbfKOAdOCxgJm+Ldl11/BaQ9GW7vIQx7avzeQ10eNxH2NS+ambVDA5t
VlfNFEaKgzHaLuJ3QgUbsaa1XcIr+NurRVt01fK6kLluYkXr02WNy6sS5ibD
hfmmmdKMJrx1q3o2W1YhfIZk1rWzDf01BJrl+/f/RAdy9ubo9enJt2/Ovs4P
xD7y4QNOuYSvXO3Y0NAvyh4fgLWV67gBFgGLhav4/dOTCe9HTVcYfh+Ls5en
wT788nT4yWWEj/UtjtVdr/uiXC6LdXm9bMsZ0lZJx7FqYw+MBle0TNwEOCV/
DYgowk/FYXFV6jHCjOAmrcquhr0scTFpIchOXpydnYzgnPtFwG3uKlhHj+ep
qyzOK/zxbQP3HAfAF764Y3uIPw7Wgvflw4fJkGphwMsaJlVcbOpZieSA39+m
qYK2lSmb1hWMqmjAupkuN9k4sORFe4W7h/vdAfPoabs2PdyLH6vC7RQNHvDM
3q3bCJtzfi2U2xKZyXRGsBGwFmZKRKKw9LhZre2u6EULcltwB3H31tW0x8F0
XSBLyh5HGfEoeCzTrqaBcBycOMi5FRCnvsJLlz2D619PYbFX9RKPAu8s/CpN
fCI0jXTaAPXMxn07hv+3g14nxes224uar5ad9KIqZ1U3CsAkeaPgFoJ4K6Yw
Mn66odVVsxF+bVWVDa0U/rLa9OU5iFqYk9tEPa8YyumihkFhUouu3Vws5F4g
z8KPV1PdDXzb8Rwgst8fv3k2Pn519M2zr4E5Prh39z6S1jO+JfKWvxZFJFmJ
JIszFGpaVjHmS4/FZR1rnHTfBjdpfJ7+jL+blrHikz17cgI7fbxr2rg7IJxb
+DLy0znsASwSRo6LtsWrNIItmpbIwBrQtmSZoBggDQt304+vy563e9XOeCQ9
xGV5XXVFdudftFcozuA0elAcYTD8/jUvuG7GN92sWbVG+mjlIyIAcFrMZzqc
G1BNG3l/cP3tpucNaW00fAEmSsQH461bOFM58VV9seiRLnSMQHtIIsdxYxoB
d/LdtRAaSncge5wSLKdUkuaxwwk96ZZDAqDFxRZxCr8nhtJ7pgNn9nr7VqEY
gtdK2INqHIFDjOd1H8fIclFglZftBtTodPeAtCJwrq6awR2FX8Syg3l0Bd0T
GHeGguyaNqrGCRMPqqMda2QamlZdX8IDcN2BTpBzBc9lRjT96l0Jf62AJbeb
5UxufNWtajkN3DbYpC4fG84HiBgYWsa35DiMA+N7FXykKohccA9W5dsKdvm6
wKuNxBBQGwEdCBfFmxzxkvP5pC0B2sbpwYTlXzgYTLZcw9Kq2SNeC9z7oO8g
mQrzO0d+JrITmaKcR0ZxOzSZYIyKpNscFOXZBEX8c2CxoEBmfLn4PbKRY2Yj
n8VqOka+Mia+8gFvMhNK5EsM212pWlXwRpbE7OJPKFUsTxblJe6iMGe91E6P
ym7NrLqkPaTbCPsEisyMx4e331ZwbuEFHBTNCUkcyG+KmrKX5LZFm0Y0Bvxz
CTNLelxipKB4JD764cNIjhPXTNtIh7zIBWV5CRYScXUVEzS5wEICf4nH6+fN
Eo5Wfg2WGRhxvHnEjhzfOq1RaIvUCqWqLbQ+VVUHgkAOQb7NYyXGOwWWDQ/N
O7AXVQcCmpV/OkaJY8zrajmTWc2Q2cAvYjpifR95SruqghxJWpt8XGb0O3n8
NZjhfc07d6K7AdM/h8uqghM3MxC9N5cl2qy9aVHHr3939Ob46PXZUC+0R+MO
jSrdpqT5eXJN23lFJO0IAoaZg117rfcI1/v+fa4Vg0KKs3VKK8xh67LhoIFP
SeczK5DR1Mgbr/Vw4Kf5Bl/UudoAaZbVu2m17sMVyADlR2g9kBjwezbYMiBo
2lagB+FCG9TsUB3kAxYVj7Rfu7htF0hhnFcdTeO8gltcA9eCae2Yqeha798j
K7kgz8JY/g77ZLotSPixmfyZhkr3SwjORG4Y6O1CbSQigHxoEUiGaBCPyWWD
vELnhczvM14b01zxgi/Iad+BiMUlvP9sDaoIKuX0lw+iLep38ICIeVU1CZWy
WLagOck9a/EXwN+Bq/BvUKDgDepA3zoHrcMTm/IFvksykeewFfgkX5+6mYlo
Z/7TX6/pavOrSJOwzFixHgFr3nSoozOdwB9hnIL0f6WEctqByMjubaRLUmXL
YFUfFouSL+NEIAWym4MjkZyCzyANhdmmQ00SOHAj2l4V8R7XccE6PRsj+IwO
1CROgFZE313z4g/Gb87O0G1XonVM6iooA0iS9uZmdY5cCuj0qlqSlIugiUwr
eh+oC5RJJpw0n3D8lN1CF6Bzrsluk6M9r3AP8Ddi2sQS6Gi+bK94d+ni18zq
Yfhly0QpZxqFUUbl/rTJfldL2kw9CpzC9q0JvKHlEjUUUPtvuFdEhnKFinI2
o1mVy8EM8OMqfXbwADj4U0eqUXcY7h5avvD/1zLs7p0sjp8aj4+wkwHJDZcF
x4amhLqobqIaeO+aNoWYTzkHJdCfU0Y3QqTzdgnHgUc0ME3UOK0bL19tZXVD
7oHhRqPXaEBMD2k5+e+KdM/81qr1R/6YYigbdQhaHKvZIAR5XpPiKV8TEYbw
theHe7FCS+5Utvnwy8ntie3bDmljXHWfNhVGG8yfJfiC2DmJCTjTy3K5qYq9
g3cH8t/+LhEPY8lW0su7hLcuiWz7wh30Jjo5a985nBTfmidLVGE4PXECtOex
6i7TZ8UQYAU+XxWbO+J/wd3Bm9VuorlJYRAcGDRAMRb4LqlQEA3logNKhbMg
Tyiaesv2ukoSg6y7Au5bTXeDSQzuBtyhI/j2RR2BXw1P7Pbtye1d57WPvraf
ZlFwsR6KFGFGY0wqXdWyg8+WMLMbhxgho0RmA0rUeFk1F7CPTpUTF4UI/kS/
12K22khljC1QDKrLdBZlrsEiaaPPbXxeLkFyI1XzfXh9dAYbdI4iDOfPoik+
KnirUCnA1+wto2Z7B3Wnl8jCiuHqE8cDRiVbodua7QEzbv5LKAa8a9p26H5q
m1lUjn8zo+ttHLYzYbRl/RZ9IawO2EVAC4ndPCbEI3NUZSHwqDtSGEiWBRej
yQSGadLEcfgERYFwfLIoUKKhYYiavXzkEX7FKyIfG8ytemuT6ihO77ond84N
jNxxZieOdjNp4rq35vU79MnV/a2HfEhgRTezMXqmxmgFktLXkNak82Q1qp32
VW9OLOE6uve6PRs4WvKNi22Cp0KHcghKc4NyBWaqjhI6/lm1Qj/uelm9g/Ec
1/n+6ck481erQgwH9oz9fiSqvcbFi2NZkfFEdRqItpNmwB4gdHmhB+ddXzVR
na90i0WqnOMxFLhh7JcYKccknkDafFct8c5f02B1r9aAsnUyBlU5Hxe4pGZ6
TQIcR+fDgLV0n34Wtk4muOyy0tds/XIf5Vt6LOfXbiPiBvVc9BEU6D2YvqWT
moFBRL6Emn0sOfeCT1KID4MfvB3erwvqCJjQFHADvgPfHm8i+jQ+iA7W0THP
KuDvS4qG6NRR2+b98LeSxehtWoAsldRy5q3pHvCWeLUemYGRPVDPi/SZ6LgR
mTA9zFDJGVkEvBsX5dtK+adXDnaqBrg2vya+8rKc7Pp3GNptLCKl8p70Mccs
aH0jvGsDPmbsi2xt3gYxB4gNoneOrO9pWy7B4CW/C11XFF+sCJGvQteo4tSe
V8nZt2+rBmOiQAXlMrPJVHct+aFdwq9dl38BlYcUH/iyardANLQcdIYU02Ut
3Jtv1Sjpb/BejS4+mS0/+TmuATgebAlswBs0Xmxa7GkZzisLEGwkoJIGREHM
Cka2SNxsEHEboG5YA+1lEtB9X63WYgJmR4tXCL8qzJe4OA5PPhZ01SNp8KT3
BvrmvZ36C5HwLiUwvR5uVlf309aIHzp54tCNcD7fxKmGBMvmOlyV1xO8OsKJ
gRXM6E6YLNsSRgWN11505Rr2mQ7Xho2Bh9kV0Mn0CxJQ8iu1Co6Wid7Y67Jz
H1j1yelAfZ1OkcoGf4QhLXW3oanh/4j0ENM+mVdN3NK4ibB0ZPWoPTdjioeY
TGCaaOfzWPWJJrIPyPDtjLfd32giVnRn9jwLVQSKPY6I4FWANd+sNDEx7pNr
0FuaIsIGfGhrWh85yxnxg7dgQK6BHwuX/i38eII/sgPFmWzZ10fmKmOZCqPg
LVZ+pfFkNyVkB5s1ubHxkyD/xR2y9VX0zxY/NfHPPiueGCs8ESp5/1lidyG8
El2k2HI+nVeOj4LEbIEvgIpCoSj44mqkWrr+IpCCzGdV4T0jr84OPVNkF3Ok
H6uupUsJ7/jdU/fupPg9Oh39hbZpsUb40omNuMNuZtNKdz1W6xLD/tmCt4Td
DXbVJDhqUr1D5ZCKAfm76OQwZ1BGa88EzB8XiHPbexmxb2vPn+Jx+lSpzcTx
PbvwTnDXX7OtG8LR2qWekFrIfAWIYk1uLJRRZ09OvDOMnbhwNGxgs6VHvEK9
W0TT6iWAAUgyIPPAeIuLA5TsM0MnCjPR42dnz4NFd4B830vyDgZLiD9xkKq4
2MC5gkVe8aRLU4E58iU+NArWk/ZbXNSoVLNpjRFEmuOoUA+KPkAzR9Kma8z5
DsmFF8Sgk/wCdC27EWWBoH+LNwTjQ0jObkocPw5DE0YZMcsliz2Kew1zO0D3
Mv4SXCLO0bIfn15OWTGrI2cw4R8kP0R3PQUsaWeBJJ6zijqyI2UVdGDtsz7N
RqDGBWEX1HNRqHnD/uz0MnzwsuKLfm/cb+AJHygfmptiEyJ7EL1qFEonG+VS
yEhyIJlDdfB5JvkzdZi+MCXw/WemEH7AoPTV8E3mOuYmhHOlXC3YGXtR1S2M
AdV4Ny828CSFleQuU4SHYiHqXqbowTABRhW2LUMD+fkZKLnL5QZTz/pqKyyo
WRPeLewCdUkBDn7aamFFytOB9y6qpupAH8RY86ZRIl2j8tdtfQQEQlD+b35d
1VyFhOxbmEFAlIxxTQpRql/ARqibwLaE+GHzIWhzKIaDF+kcr9q0Bavxx2pW
+G3WXBaw7ZZVGdFZvOncV66qz4GSUGAWt56wIi5a8K1RceuUVBr3G9S19Lkn
mCFQ4ZbwH+zx7A949dQRpUGSYEdHFnlJTsmrhsN78/pinKgQ2bOKa5UZtgee
0ruqSgItUwZYfbP4PJ4MGPux2LuV1iUWgtIjExpJIklvkxXaVbnFW3GI8RJ7
f9aicrg/yTUI1IVsYvrxXTZYwLslNIdONlM5dthmOGrbkSmLKYizzZRvgcgV
2OicHkkr2/VR2N8j3f8FBfSTYUREFiuNC0nqDV5X8lEi+0O2yBofLIoJI7wA
UdimWDTrxWmsw08ai2mJx4I5/g3/C0J5n/CfvF4Uf/2Up/m/v8Ljvx7Df/lF
GO/+7x/t8T1V3EjLO4DV7d/w+H9wMn/9zQ3fzu8l/ubX+eN7h7jHydSj3Qau
DcJt3x7/z+9MuuE/sTM/MY1feGe2+M9/aqlMau8fFp9lrAgTqClB/Otb3/xH
5ELOt2+BXD1C9xMaKY6V8aakjBm5gFG1YExCy8nSLvcO/slvj2t+MuXSVGRL
oiKTU9DHxuLrm8bSyS+vcyGHDFhY3sOw7UyxleVfRqdR0j+Gz4IqiTZ0SGzk
c5gfBmBFXJ69PPVileP3/N3EZkil0qA9C9MtOjaR6GLemJGJIhPVtK05Ivsn
tYW0P0n33XYiwfeeGhNmrca8U/l5anbEXv7rkbKytGGwSPry1iL20+A698Pb
BwfsMo4qFESiie9QckRhuRe4algY5YcqUQNNw7Q4Aw5moRZ82XN6qM8IXVX4
ET42l5bMcdiqAFWnXm1WfB+OT3QfMbPxURiYand3GmqaqVuUU85OJAUUPdmS
FzLDuxJOjp4+PX79TTGHPa+iJjziFPKjGamEpQvG2r8PgOICh29g4K0qqZRg
05AdrenvSQvc9ubqLdOw7VGeSttUFYfDMDVRTAjNuLOD5ERATBSH+yBf0KiC
vIvzEfomPaMh/9OAyrz3IDFm1uL1GTiHjnx9xDVILQFNo8bcaPLYlsUaOII6
AjHxtKdMFxH46qb9mG1uiQjJr+aUrvNrSvdU3xrnIjLZYYo/h8l3zYHcQ8OB
U2ZszpsHiii7ltzODYyjj+0c+bO8WeRULWVIidlX7zjfTLLts8mCAhlklhT8
k0v/ImdyxEjJRfQi9yeRnruq+97SO3IVM6nMH9GRTU3lLdniM4ElAy5sPOXf
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
AAA=

-->

</rfc>
