rfc9312.original.xml | rfc9312.xml | |||
---|---|---|---|---|
<?xml version='1.0' encoding='utf-8'?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | ||||
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.10 (Ruby 3.0. | <!DOCTYPE rfc [ | |||
2) --> | <!ENTITY nbsp " "> | |||
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | <!ENTITY zwsp "​"> | |||
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | <!ENTITY nbhy "‑"> | |||
-ietf-quic-manageability-18" category="info" tocInclude="true" sortRefs="true" s | <!ENTITY wj "⁠"> | |||
ymRefs="true" version="3"> | ]> | |||
<!-- xml2rfc v2v3 conversion 3.5.0 --> | ||||
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" submissionType | ||||
="IETF" category="info" consensus="true" docName="draft-ietf-quic-manageability- | ||||
18" number="9312" tocInclude="true" sortRefs="true" symRefs="true" updates="" ob | ||||
soletes="" xml:lang="en" version="3"> | ||||
<front> | <front> | |||
<title abbrev="QUIC Manageability">Manageability of the QUIC Transport Proto col</title> | <title abbrev="QUIC Manageability">Manageability of the QUIC Transport Proto col</title> | |||
<seriesInfo name="Internet-Draft" value="draft-ietf-quic-manageability-18"/> | <seriesInfo name="RFC" value="9312"/> | |||
<author initials="M." surname="Kuehlewind" fullname="Mirja Kuehlewind"> | <author initials="M." surname="Kühlewind" fullname="Mirja Kühlewind"> | |||
<organization>Ericsson</organization> | <organization>Ericsson</organization> | |||
<address> | <address> | |||
<email>mirja.kuehlewind@ericsson.com</email> | <email>mirja.kuehlewind@ericsson.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="B." surname="Trammell" fullname="Brian Trammell"> | <author initials="B." surname="Trammell" fullname="Brian Trammell"> | |||
<organization>Google Switzerland GmbH</organization> | <organization>Google Switzerland GmbH</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Gustav-Gull-Platz 1</street> | <street>Gustav-Gull-Platz 1</street> | |||
<city>8004 Zurich</city> | <city>Zurich</city> | |||
<country>Switzerland</country> | <code>8004</code> | |||
<country>Switzerland</country> | ||||
</postal> | </postal> | |||
<email>ietf@trammell.ch</email> | <email>ietf@trammell.ch</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2022" month="July" day="15"/> | <date year="2022" month="September"/> | |||
<keyword>Internet-Draft</keyword> | <area>tsv</area> | |||
<workgroup>quic</workgroup> | ||||
<keyword>network management</keyword> | ||||
<keyword>wire image</keyword> | ||||
<abstract> | <abstract> | |||
<t>This document discusses manageability of the QUIC transport protocol, f ocusing | <t>This document discusses manageability of the QUIC transport protocol an d focuses | |||
on the implications of QUIC's design and wire image on network operations | on the implications of QUIC's design and wire image on network operations | |||
involving QUIC traffic. It is intended as a "user's manual" for the wire image, | involving QUIC traffic. It is intended as a "user's manual" for the wire image t | |||
providing guidance for network operators and equipment vendors who rely on the | o | |||
provide guidance for network operators and equipment vendors who rely on the | ||||
use of transport-aware network functions.</t> | use of transport-aware network functions.</t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section anchor="introduction"> | <section anchor="introduction"> | |||
<name>Introduction</name> | <name>Introduction</name> | |||
<t>QUIC <xref target="QUIC-TRANSPORT"/> is a new transport protocol | <t>QUIC <xref target="RFC9000"/> is a new transport protocol | |||
that is encapsulated in UDP. QUIC integrates TLS | that is encapsulated in UDP. QUIC integrates TLS | |||
<xref target="QUIC-TLS"/> to encrypt all payload data and most control | <xref target="RFC9001"/> to encrypt all payload data and most control | |||
information. QUIC version 1 was designed primarily as a transport for HTTP, with | 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> | the resulting protocol being known as HTTP/3 <xref target="RFC9114"/>.</t> | |||
<t>This document provides guidance for network operations that manage QUIC | <t>This document provides guidance for network operations that manage QUIC | |||
traffic. This includes guidance on how to interpret and utilize information that | 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 | 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 | design with respect to network treatment, and a description of how common | |||
network management practices will be impacted by QUIC.</t> | network management practices will be impacted by QUIC.</t> | |||
<t>QUIC is an end-to-end transport protocol; therefore, no information in | <t>QUIC is an end-to-end transport protocol; therefore, no information in | |||
the protocol header is intended to be mutable by the network. This | the protocol header is intended to be mutable by the network. This | |||
property is | property is | |||
enforced through integrity protection of the wire image <xref target="WIRE-IMAGE "/>. | enforced through integrity protection of the wire image <xref target="RFC8546"/> . | |||
Encryption of most transport-layer control signaling means that less information | Encryption of most transport-layer control signaling means that less information | |||
is visible to the network than is the case with TCP.</t> | is visible to the network in comparison to TCP.</t> | |||
<t>Integrity protection can also simplify troubleshooting at the end point s as none | <t>Integrity protection can also simplify troubleshooting at the end point s as none | |||
of the nodes on the network path can modify transport layer information. | of the nodes on the network path can modify transport layer information. | |||
However, it means in-network operations that depend on modification of data | However, it means in-network operations that depend on modification of data | |||
(for examples, see <xref target="RFC9065"/>) are not possible without the cooper ation of | (for examples, see <xref target="RFC9065"/>) are not possible without the cooper ation of | |||
a QUIC endpoint. Such cooperation might be possible with the introduction of | a QUIC endpoint. Such cooperation might be possible with the introduction of | |||
a proxy which authenticates as an endpoint. Proxy operations are not in scope | a proxy that authenticates as an endpoint. Proxy operations are not in scope | |||
for this document.</t> | for this document.</t> | |||
<t>Network management is not a one-size-fits-all endeavour: practices cons idered | <t>Network management is not a one-size-fits-all endeavor; for example, pr actices considered | |||
necessary or even mandatory within enterprise networks with certain compliance | necessary or even mandatory within enterprise networks with certain compliance | |||
requirements, for example, would be impermissible on other networks without | requirements would be impermissible on other networks without | |||
those requirements. The presence of a particular practice in this document | those requirements. Therefore, presence of a particular practice in this documen | |||
should therefore not be construed as a recommendation to apply it. For each | t | |||
should not be construed as a recommendation to apply it. For each | ||||
practice, this document describes what is and is not possible with the QUIC | practice, this document describes what is and is not possible with the QUIC | |||
transport protocol as defined.</t> | transport protocol as defined.</t> | |||
<t>This document focuses solely on network management practices that obser ve | <t>This document focuses solely on network management practices that obser ve | |||
traffic on the wire. Replacement of troubleshooting based on observation | traffic on the wire. For example, replacement of troubleshooting based on observ | |||
with active measurement techniques, for example, is therefore out of scope. | ation | |||
with active measurement techniques is therefore out of scope. | ||||
A more generalized treatment of network management operations on encrypted | A more generalized treatment of network management operations on encrypted | |||
transports is given in <xref target="RFC9065"/>.</t> | transports is given in <xref target="RFC9065"/>.</t> | |||
<t>QUIC-specific terminology used in this document is defined | <t>QUIC-specific terminology used in this document is defined | |||
in <xref target="QUIC-TRANSPORT"/>.</t> | in <xref target="RFC9000"/>.</t> | |||
</section> | </section> | |||
<section anchor="sec-wire-image"> | <section anchor="sec-wire-image"> | |||
<name>Features of the QUIC Wire Image</name> | <name>Features of the QUIC Wire Image</name> | |||
<t>This section discusses those aspects of the QUIC transport protocol tha t | <t>This section discusses aspects of the QUIC transport protocol that | |||
have an impact on the design and operation of devices that forward QUIC packets. | have an impact on the design and operation of devices that forward QUIC packets. | |||
This section is therefore primarily considering the unencrypted part of QUIC's | Therefore, this section is primarily considering the unencrypted part of QUIC's | |||
wire image <xref target="WIRE-IMAGE"/>, which is defined as the information avai | wire image <xref target="RFC8546"/>, which is defined as the information availab | |||
lable in the | le in the | |||
packet header in each QUIC packet, and the dynamics of that information. Since | 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 | 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 | change from version to version. However, the field that identifies the QUIC | |||
version in some packets, and the format of the Version Negotiation Packet, | version in some packets and the format of the Version Negotiation packet | |||
are both inspectable and invariant | are both inspectable and invariant | |||
<xref target="QUIC-INVARIANTS"/>.</t> | <xref target="RFC8999"/>.</t> | |||
<t>This document addresses version 1 of the QUIC protocol, whose wire imag e | <t>This document addresses version 1 of the QUIC protocol, whose wire imag e | |||
is fully defined in <xref target="QUIC-TRANSPORT"/> and <xref target="QUIC-TLS"/ | is fully defined in <xref target="RFC9000"/> and <xref target="RFC9001"/>. Featu | |||
>. Features of the wire | res of the wire | |||
image described herein may change in future versions of the protocol, except | image described herein may change in future versions of the protocol except | |||
when specified as an invariant <xref target="QUIC-INVARIANTS"/>, | when specified as an invariant <xref target="RFC8999"/> | |||
and cannot be used to identify QUIC as a protocol or | and cannot be used to identify QUIC as a protocol or | |||
to infer the behavior of future versions of QUIC.</t> | to infer the behavior of future versions of QUIC.</t> | |||
<section anchor="public-header"> | <section anchor="public-header"> | |||
<name>QUIC Packet Header Structure</name> | <name>QUIC Packet Header Structure</name> | |||
<t>QUIC packets may have either a long header or a short header. The fir st bit | <t>QUIC packets may have either a long header or a short header. The fir st bit | |||
of the QUIC header is the Header Form bit, and indicates which type of header | 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> | is present. The purpose of this bit is invariant across QUIC versions.</t> | |||
<t>The long header exposes more information. It contains a version numbe r, as well | <t>The long header exposes more information. It contains a version numbe r, as well | |||
as source and destination connection IDs for associating packets with a QUIC | as Source and Destination Connection IDs for associating packets with a QUIC | |||
connection. The definition and location of these fields in the QUIC long header | connection. 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 | 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> | provide additional fields in the long header <xref target="RFC8999"/>.</t> | |||
<t>In version 1 of QUIC, the long header is used during connection estab lishment | <t>In version 1 of QUIC, the long header is used during connection estab lishment | |||
to transmit crypto handshake data, perform version negotiation, retry, and | to transmit CRYPTO handshake data, perform version negotiation, retry, and | |||
send 0-RTT data.</t> | send 0-RTT data.</t> | |||
<t>Short headers are used after connection establishment in version 1 of | <t>Short headers are used after a connection establishment in version 1 | |||
QUIC, | of QUIC | |||
and expose only an optional destination connection ID and the initial flags | and expose only an optional Destination Connection ID and the initial flags | |||
byte with the spin bit for RTT measurement.</t> | byte with the spin bit for RTT measurement.</t> | |||
<t>The following information is exposed in QUIC packet headers in all ve rsions of | <t>The following information is exposed in QUIC packet headers in all ve rsions of | |||
QUIC (as specified in <xref target="QUIC-INVARIANTS"/>):</t> | QUIC (as specified in <xref target="RFC8999"/>):</t> | |||
<ul spacing="normal"> | <dl spacing="normal"> | |||
<li>version number: the version number is present in the long header, | <dt>version number:</dt> | |||
and | <dd>The version number is present in the long header and | |||
identifies the version used for that packet. During Version | identifies the version used for that packet. During Version | |||
Negotiation (see <xref section="17.2.1" sectionFormat="of" target="QUIC-TRANSPOR | Negotiation (see <xref section="17.2.1" sectionFormat="of" target="RFC9000"/> an | |||
T"/> and <xref target="version"/>), the | d <xref target="version"/>), the | |||
version number field has a special value (0x00000000) that identifies the | Version field has a special value (0x00000000) that identifies the | |||
packet as a Version Negotiation packet. QUIC | packet as a Version Negotiation packet. QUIC | |||
version 1 uses version 0x00000001. Operators should expect to observe | version 1 uses version 0x00000001. Operators should expect to observe | |||
packets with other version numbers as a result of various Internet | packets with other version numbers as a result of various Internet | |||
experiments, future standards, and greasing (<xref target="RFC7801"/>). An IANA registry | experiments, future standards, and greasing <xref target="RFC7801"/>. An IANA re gistry | |||
contains the values of all standardized versions of QUIC, and may contain some | contains the values of all standardized versions of QUIC, and may contain some | |||
proprietary versions (see <xref section="22.2" sectionFormat="of" target="QUIC-T | proprietary versions (see <xref section="22.2" sectionFormat="of" target="RFC900 | |||
RANSPORT"/>). However, other | 0"/>). | |||
versions of QUIC can be expected to be seen in the Internet at any given time.</ | However, other versions of QUIC can be expected to be seen in the Internet at an | |||
li> | y given time.</dd> | |||
<li>source and destination connection ID: short and long headers carry | <dt>Source and Destination Connection ID:</dt> <dd>Short and long head | |||
a | ers carry a | |||
destination connection ID, a variable-length field which, if not zero-length, | Destination Connection ID, which is a variable-length field. If the Destination | |||
can be used to | Connection ID is not zero length, | |||
identify the connection associated with a QUIC packet, for load-balancing and | it can be used to | |||
NAT rebinding purposes; see <xref target="sec-loadbalancing"/> and <xref target= | identify the connection associated with a QUIC packet for load balancing and | |||
"rebinding"/>. Long | NAT rebinding purposes; see Sections <xref target="sec-loadbalancing" format="co | |||
packet headers additionally carry a source connection ID. The source | unter"/> and <xref target="rebinding" format="counter"/>. Long | |||
connection ID corresponds to the destination connection ID the source would | packet headers additionally carry a Source Connection ID. The Source | |||
like to have on packets sent to it, and is only present on long | Connection ID is only present on long | |||
headers. On long header packets, the length of the connection | headers and indicates the Destination Connection | |||
IDs is also present; on short header packets, the length of the destination | ID that the other endpoint should use when sending packets. | |||
connection ID is implicit and as such need to be known from the long header | On long header packets, the length of the connection | |||
packets.</li> | IDs is also present; on short header packets, the length of the Destination | |||
</ul> | Connection ID is implicit, as it is known from preceding long header | |||
packets.</dd> | ||||
</dl> | ||||
<t>In version 1 of QUIC, the following additional information is exposed :</t> | <t>In version 1 of QUIC, the following additional information is exposed :</t> | |||
<ul spacing="normal"> | <dl spacing="normal"> | |||
<li>"fixed bit": The second-most-significant bit of the first octet of | <dt>"Fixed Bit":</dt> <dd>In version 1 of QUIC, the second-most-signif | |||
most QUIC | icant bit of the first octet | |||
packets of the current version is set to 1, enabling endpoints to demultiplex | is set to 1, unless the packet is a Version Negotiation packet or | |||
an extension is used that modifies the usage of this bit. | ||||
If the bit is set to 1, it enables endpoints to easily demultiplex | ||||
with other UDP-encapsulated protocols. Even though this bit is fixed in the | 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 | version 1 specification, endpoints might use an extension that varies the bit | |||
<xref target="QUIC-GREASE"/>. Therefore, observers cannot reliably use it as an | <xref target="RFC9287"/>. Therefore, observers cannot reliably use it as an iden | |||
identifier | tifier | |||
for QUIC.</li> | for QUIC.</dd> | |||
<li>latency spin bit: The third-most-significant bit of the first octe | <dt>latency spin bit:</dt> <dd>The third-most-significant bit of the f | |||
t in the | irst octet in the | |||
short header for version 1. The spin bit is set by endpoints such that | short 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 | tracking edge transitions can be used to passively observe end-to-end RTT. See | |||
<xref target="spin-usage"/> for further details.</li> | <xref target="spin-usage"/> for further details.</dd> | |||
<li>header type: The long header has a 2 bit packet type field followi | <dt>header type:</dt> <dd>The long header has a 2-bit packet type fiel | |||
ng the | d following the | |||
Header Form and fixed bits. Header types correspond to stages of the | Header Form and Fixed Bits. Header types correspond to stages of the | |||
handshake; see <xref section="17.2" sectionFormat="of" target="QUIC-TRANSPORT"/> | handshake; see <xref section="17.2" sectionFormat="of" target="RFC9000"/> for de | |||
for details.</li> | tails.</dd> | |||
<li>length: The length of the remaining QUIC packet after the length f | <dt>length:</dt> <dd>The length of the remaining QUIC packet after the | |||
ield, | Length field | |||
present on long headers. This field is used to implement coalesced packets | present on long headers. This field is used to implement coalesced packets | |||
during the handshake (see <xref target="coalesced"/>).</li> | during the handshake (see <xref target="coalesced"/>).</dd> | |||
<li>token: Initial packets may contain a token, a variable-length opaq | <dt>token:</dt> <dd> Initial packets may contain a token, a variable-l | |||
ue value | ength opaque value | |||
optionally sent from client to server, used for validating the client's | 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 | 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 | in an Initial packet on a subsequent connection attempt. The length of the | |||
token is explicit in both cases.</li> | token is explicit in both cases.</dd> | |||
</ul> | </dl> | |||
<t>Retry (<xref section="17.2.5" sectionFormat="of" target="QUIC-TRANSPO | <t>Retry (<xref section="17.2.5" sectionFormat="of" target="RFC9000"/>) | |||
RT"/>) and Version Negotiation (<xref section="17.2.1" sectionFormat="of" target | and Version Negotiation (<xref section="17.2.1" sectionFormat="of" target="RFC90 | |||
="QUIC-TRANSPORT"/>) packets are not encrypted. Retry packets are | 00"/>) packets are not encrypted. Retry packets are | |||
(forgibly) integrity protected. Transport parameters are used | integrity protected. Transport parameters are used to | |||
authenticate the contents of Retry packets later in the handshake. For other | authenticate the contents of Retry packets later in the handshake. For other | |||
kinds of packets, version 1 of QUIC cryptographically protects other | kinds of packets, version 1 of QUIC cryptographically protects other | |||
information in the packet headers:</t> | information in the packet headers:</t> | |||
<ul spacing="normal"> | <dl spacing="normal"> | |||
<li>packet number: All packets except Version Negotiation and | <dt>Packet Number:</dt> <dd>All packets except Version Negotiation and | |||
Retry packets have an associated packet number; however, this packet number | 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 | is encrypted, and therefore not of use to on-path observers. The offset of the | |||
packet number can be decoded in long headers, while it | packet number can be decoded in long headers while it | |||
is implicit (depending on destination connection ID length) in short headers. | is implicit (depending on Destination Connection ID length) in short headers. | |||
The length of the packet number is cryptographically protected.</li> | The length of the packet number is cryptographically protected.</dd> | |||
<li>key phase: The Key Phase bit, present in short headers, specifies | <dt>Key Phase:</dt> <dd>The Key Phase bit (present in short headers) s | |||
the keys | pecifies the keys | |||
used to encrypt the packet to support key rotation. The Key Phase bit is | used to encrypt the packet to support key rotation. The Key Phase bit is | |||
cryptographically protected.</li> | cryptographically protected.</dd> | |||
</ul> | </dl> | |||
</section> | </section> | |||
<section anchor="coalesced"> | <section anchor="coalesced"> | |||
<name>Coalesced Packets</name> | <name>Coalesced Packets</name> | |||
<t>Multiple QUIC packets may be coalesced into a single UDP datagram, | <t>Multiple QUIC packets may be coalesced into a single UDP datagram | |||
with a datagram | with a datagram | |||
carrying one or more long header packets followed by zero or one short header | 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 | 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" targe | used to separate QUIC packets; see <xref section="12.2" sectionFormat="of" targe | |||
t="QUIC-TRANSPORT"/>. | t="RFC9000"/>. | |||
The Length field is variable length, and its position in the header is | The Length field is a variable-length field, and its position in the header | |||
also variable depending on the length of the source and destination connection | also varies depending on the lengths of the Source and Destination Connection | |||
ID; see <xref section="17.2" sectionFormat="of" target="QUIC-TRANSPORT"/>.</t> | IDs; see <xref section="17.2" sectionFormat="of" target="RFC9000"/>.</t> | |||
</section> | </section> | |||
<section anchor="use-of-port-numbers"> | <section anchor="use-of-port-numbers"> | |||
<name>Use of Port Numbers</name> | <name>Use of Port Numbers</name> | |||
<t>Applications that have a mapping for TCP as well as QUIC are expected to | <t>Applications that have a mapping for TCP and QUIC are expected to | |||
use the same port number for both services. However, as for all other IETF | 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 appli cation | transports <xref target="RFC7605"/>, there is no guarantee that a specific appli cation | |||
will use a given registered port, or that a given port carries traffic belonging | will use a given registered port or that a given port carries traffic belonging | |||
to the respective registered service, especially when application layer | to the respective registered service, especially when application layer | |||
information is encrypted. For example, <xref target="QUIC-HTTP"/> specifies the use of the | information is encrypted. For example, <xref target="RFC9114"/> specifies the us e of the | |||
HTTP Alternative Services mechanism <xref target="RFC7838"/> for discovery of HT TP/3 | HTTP Alternative Services mechanism <xref target="RFC7838"/> for discovery of HT TP/3 | |||
services on other ports.</t> | services on other ports.</t> | |||
<t>Further, as QUIC has a connection ID, it is also possible to maintain multiple | <t>Further, as QUIC has a connection ID, it is also possible to maintain multiple | |||
QUIC connections over one 5-tuple (protocol, source and destination IP address, | QUIC connections over one 5-tuple (protocol, source, and destination IP address | |||
and source and destination port). However, if the connection ID is zero-length, | and | |||
source and destination port). However, if the connection ID is zero length, | ||||
all packets of the 5-tuple likely belong to the same QUIC connection.</t> | all packets of the 5-tuple likely belong to the same QUIC connection.</t> | |||
</section> | </section> | |||
<section anchor="handshake"> | <section anchor="handshake"> | |||
<name>The QUIC Handshake</name> | <name>The QUIC Handshake</name> | |||
<t>New QUIC connections are established using a handshake, which is dist | <t>New QUIC connections are established using a handshake that is distin | |||
inguishable | guishable | |||
on the wire (see <xref target="sec-identifying"/> for details), and contains som | on the wire (see <xref target="sec-identifying"/> for details) and contains some | |||
e information | information | |||
that can be passively observed.</t> | that can be passively observed.</t> | |||
<t>To illustrate the information visible in the QUIC wire image during t he | <t>To illustrate the information visible in the QUIC wire image during t he | |||
handshake, we first show the general communication pattern visible in the UDP | handshake, we first show the general communication pattern visible in the UDP | |||
datagrams containing the QUIC handshake, then examine each of the datagrams in | datagrams containing the QUIC handshake. Then, we examine each of the datagrams in | |||
detail.</t> | detail.</t> | |||
<t>The QUIC handshake can normally be recognized on the wire through fou r flights | <t>The QUIC handshake can normally be recognized on the wire through fou r flights | |||
of datagrams labelled "Client Initial", "Server Initial", "Client Completion", | of datagrams labeled "Client Initial", "Server Initial", "Client Completion", | |||
and "Server Completion", as illustrated in <xref target="fig-handshake"/>.</t> | and "Server Completion" as illustrated in <xref target="fig-handshake"/>.</t> | |||
<t>A handshake starts with the client sending one or more datagrams cont aining | <t>A handshake starts with the client sending one or more datagrams cont aining | |||
Initial packets, detailed in <xref target="fig-client-initial"/>, which elicits | Initial packets (detailed in <xref target="fig-client-initial"/>), which elicits | |||
the | the | |||
Server Initial response detailed in <xref target="fig-server-initial"/> typicall | Server Initial response (detailed in <xref target="fig-server-initial"/>), which | |||
y containing | typically contains three types of packets: Initial packet(s) with the beginning | |||
three types of packets: Initial packet(s) with the beginning of the server's | of the server's | |||
side of the TLS handshake, Handshake packet(s) with the rest of the server's | side of the TLS handshake, Handshake packet(s) with the rest of the server's | |||
portion of the TLS handshake, and 1-RTT packet(s), if present.</t> | portion of the TLS handshake, and 1-RTT packet(s), if present.</t> | |||
<figure anchor="fig-handshake"> | <figure anchor="fig-handshake"> | |||
<name>General communication pattern visible in the QUIC handshake</nam e> | <name>General Communication Pattern Visible in the QUIC Handshake</nam e> | |||
<artwork><![CDATA[ | <artwork><![CDATA[ | |||
Client Server | Client Server | |||
| | | | | | |||
+----Client Initial----------------------->| | +----Client Initial----------------------->| | |||
+----(zero or more 0-RTT)----------------->| | +----(zero or more 0-RTT)----------------->| | |||
| | | | | | |||
|<-----------------------Server Initial----+ | |<-----------------------Server Initial----+ | |||
|<--------(1-RTT encrypted data starts)----+ | |<--------(1-RTT encrypted data starts)----+ | |||
| | | | | | |||
+----Client Completion-------------------->| | +----Client Completion-------------------->| | |||
+----(1-RTT encrypted data starts)-------->| | +----(1-RTT encrypted data starts)-------->| | |||
| | | | | | |||
|<--------------------Server Completion----+ | |<--------------------Server Completion----+ | |||
| | | | |]]></artwork> | |||
]]></artwork> | ||||
</figure> | </figure> | |||
<t>As shown here, the client can send 0-RTT data as soon as it has sent | <t>As shown here, the client can send 0-RTT data as soon as it has sent | |||
its Client | its | |||
Hello, and the server can send 1-RTT data as soon as it has sent its Server | ClientHello and the server can send 1-RTT data as soon as it has sent its Server | |||
Hello. The Client Completion flight contains at least one Handshake packet and | Hello. | |||
could also include an Initial packet. QUIC packets in separate contexts during | The Client Completion flight contains at least one Handshake packet and | |||
the handshake can be coalesced (see <xref target="coalesced"/>) in order to redu | could also include an Initial packet. During the handshake, QUIC packets in sepa | |||
ce the | rate contexts can be coalesced (see <xref target="coalesced"/>) in order to redu | |||
ce the | ||||
number of UDP datagrams sent during the handshake.</t> | number of UDP datagrams sent during the handshake.</t> | |||
<t>Handshake packets can arrive out-of-order without impacting the hands hake as | <t>Handshake packets can arrive out-of-order without impacting the hands hake as | |||
long as the reordering was not accompanied by extensive delays that trigger a | long as the reordering was not accompanied by extensive delays that trigger a | |||
spurious Probe Timeout ({Section 6.2 of RFC9002}). | spurious Probe Timeout (<xref section="6.2" sectionFormat="of" target="RFC9002"/ >). | |||
If QUIC packets get lost or reordered, packets belonging | If QUIC packets get lost or reordered, packets belonging | |||
to the same flight might not be observed in close time succession, though | to the same flight might not be observed in close time succession, though | |||
the sequence of the flights will not change, because one flight depends | the sequence of the flights will not change because one flight depends | |||
upon the peer's previous flight.</t> | upon the peer's previous flight.</t> | |||
<t>Datagrams that contain an Initial packet (Client Initial, Server | <t>Datagrams that contain an Initial packet (Client Initial, Server | |||
Initial, and some Client Completion) contain at least 1200 octets of UDP | Initial, and some Client Completion) contain at least 1200 octets of UDP | |||
payload. This protects against amplification attacks and verifies that the | payload. This protects against amplification attacks and verifies that the | |||
network path meets the requirements for the minimum QUIC IP packet size; | network path meets the requirements for the minimum QUIC IP packet size; | |||
see <xref section="14" sectionFormat="of" target="QUIC-TRANSPORT"/>. This is acc omplished by either adding | see <xref section="14" sectionFormat="of" target="RFC9000"/>. This is accomplish ed by either adding | |||
PADDING frames within the Initial packet, coalescing other packets with the | PADDING frames within the Initial packet, coalescing other packets with the | |||
Initial packet, or leaving unused payload in the UDP packet after the Initial | 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. A network path needs to be able to forward packets of at least this size | |||
packet for QUIC to be used.</t> | for QUIC to be used.</t> | |||
<t>The content of Initial packets is encrypted using Initial Secrets, | <t>The content of Initial packets is encrypted using Initial Secrets, | |||
which are derived from a per-version constant and the client's | which are derived from a per-version constant and the client's | |||
destination connection ID. That content is therefore observable by | Destination Connection ID. That content is therefore observable by | |||
any on-path device that knows the per-version constant and is | any on-path device that knows the per-version constant and is | |||
considered visible in this illustration. The content of QUIC | considered visible in this illustration. The content of QUIC | |||
Handshake packets is encrypted using keys established during the | Handshake packets is encrypted using keys established during the | |||
initial handshake exchange, and is therefore not visible.</t> | initial handshake exchange and is therefore not visible.</t> | |||
<t>Initial, Handshake, and 1-RTT packets belong to different cryptograph ic and | <t>Initial, Handshake, and 1-RTT packets belong to different cryptograph ic and | |||
transport contexts. The Client Completion (<xref target="fig-init-complete"/>) a nd the | transport contexts. The Client Completion (<xref target="fig-init-complete"/>) a nd the | |||
Server Completion (<xref target="fig-hs-complete"/>) flights conclude the Initia l | Server Completion (<xref target="fig-hs-complete"/>) flights conclude the Initia l | |||
and Handshake contexts, by sending final acknowledgments and | and Handshake contexts by sending final acknowledgments and | |||
CRYPTO frames.</t> | CRYPTO frames.</t> | |||
<figure anchor="fig-client-initial"> | <figure anchor="fig-client-initial"> | |||
<name>Example Client Initial datagram without 0-RTT</name> | <name>Example Client Initial Datagram Without 0-RTT</name> | |||
<artwork><![CDATA[ | <artwork><![CDATA[ | |||
+----------------------------------------------------------+ | +----------------------------------------------------------+ | |||
| UDP header (source and destination UDP ports) | | | UDP header (source and destination UDP ports) | | |||
+----------------------------------------------------------+ | +----------------------------------------------------------+ | |||
| QUIC long header (type = Initial, Version, DCID, SCID) (Length) | | QUIC long header (type = Initial, Version, DCID, SCID) (Length) | |||
+----------------------------------------------------------+ | | +----------------------------------------------------------+ | | |||
| QUIC CRYPTO frame header | | | | QUIC CRYPTO frame header | | | |||
+----------------------------------------------------------+ | | +----------------------------------------------------------+ | | |||
| | TLS Client Hello (incl. TLS SNI) | | | | | | TLS ClientHello (incl. TLS SNI) | | | | |||
+----------------------------------------------------------+ | | +----------------------------------------------------------+ | | |||
| QUIC PADDING frames | | | | QUIC PADDING frames | | | |||
+----------------------------------------------------------+<-+ | +----------------------------------------------------------+<-+]]></artwork> | |||
]]></artwork> | ||||
</figure> | </figure> | |||
<t>A Client Initial packet exposes the version, source and destination | <t>A Client Initial packet exposes the Version, Source, and Destination | |||
connection IDs without encryption. The payload of the Initial | Connection IDs without encryption. The payload of the Initial | |||
packet is protected using the Initial secret. The complete TLS | packet is protected using the Initial secret. The complete TLS | |||
Client Hello, including any TLS Server Name Indication (SNI) | ClientHello, including any TLS Server Name Indication (SNI) | |||
present, is sent in one or more CRYPTO frames across one or more | present, is sent in one or more CRYPTO frames across one or more | |||
QUIC Initial packets.</t> | QUIC Initial packets.</t> | |||
<figure anchor="fig-server-initial"> | <figure anchor="fig-server-initial"> | |||
<name>Coalesced Server Initial datagram pattern</name> | <name>Coalesced Server Initial Datagram Pattern</name> | |||
<artwork><![CDATA[ | <artwork><![CDATA[ | |||
+------------------------------------------------------------+ | +------------------------------------------------------------+ | |||
| UDP header (source and destination UDP ports) | | | UDP header (source and destination UDP ports) | | |||
+------------------------------------------------------------+ | +------------------------------------------------------------+ | |||
| QUIC long header (type = Initial, Version, DCID, SCID) (Length) | | QUIC long header (type = Initial, Version, DCID, SCID) (Length) | |||
+------------------------------------------------------------+ | | +------------------------------------------------------------+ | | |||
| QUIC CRYPTO frame header | | | | QUIC CRYPTO frame header | | | |||
+------------------------------------------------------------+ | | +------------------------------------------------------------+ | | |||
| TLS Server Hello | | | | TLS ServerHello | | | |||
+------------------------------------------------------------+ | | +------------------------------------------------------------+ | | |||
| QUIC ACK frame (acknowledging client hello) | | | | QUIC ACK frame (acknowledging client hello) | | | |||
+------------------------------------------------------------+<-+ | +------------------------------------------------------------+<-+ | |||
| QUIC long header (type = Handshake, Version, DCID, SCID) (Length) | | QUIC long header (type = Handshake, Version, DCID, SCID) (Length) | |||
+------------------------------------------------------------+ | | +------------------------------------------------------------+ | | |||
| encrypted payload (presumably CRYPTO frames) | | | | encrypted payload (presumably CRYPTO frames) | | | |||
+------------------------------------------------------------+<-+ | +------------------------------------------------------------+<-+ | |||
| QUIC short header | | | QUIC short header | | |||
+------------------------------------------------------------+ | +------------------------------------------------------------+ | |||
| 1-RTT encrypted payload | | | 1-RTT encrypted payload | | |||
+------------------------------------------------------------+ | +------------------------------------------------------------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | </figure> | |||
<t>The Server Initial datagram also exposes version number, source and d | <t>The Server Initial datagram also exposes the version number and the S | |||
estination | ource and Destination | |||
connection IDs in the clear; the payload of the Initial packet(s) is | Connection IDs in the clear; the payload of the Initial packet is | |||
protected using the Initial secret.</t> | protected using the Initial secret.</t> | |||
<figure anchor="fig-init-complete"> | <figure anchor="fig-init-complete"> | |||
<name>Coalesced Client Completion datagram pattern</name> | <name>Coalesced Client Completion Datagram Pattern</name> | |||
<artwork><![CDATA[ | <artwork><![CDATA[ | |||
+------------------------------------------------------------+ | +------------------------------------------------------------+ | |||
| UDP header (source and destination UDP ports) | | | UDP header (source and destination UDP ports) | | |||
+------------------------------------------------------------+ | +------------------------------------------------------------+ | |||
| QUIC long header (type = Initial, Version, DCID, SCID) (Length) | | QUIC long header (type = Initial, Version, DCID, SCID) (Length) | |||
+------------------------------------------------------------+ | | +------------------------------------------------------------+ | | |||
| QUIC ACK frame (acknowledging Server Initial) | | | | QUIC ACK frame (acknowledging Server Initial) | | | |||
+------------------------------------------------------------+<-+ | +------------------------------------------------------------+<-+ | |||
| QUIC long header (type = Handshake, Version, DCID, SCID) (Length) | | QUIC long header (type = Handshake, Version, DCID, SCID) (Length) | |||
+------------------------------------------------------------+ | | +------------------------------------------------------------+ | | |||
| encrypted payload (presumably CRYPTO/ACK frames) | | | | encrypted payload (presumably CRYPTO/ACK frames) | | | |||
+------------------------------------------------------------+<-+ | +------------------------------------------------------------+<-+ | |||
| QUIC short header | | | QUIC short header | | |||
+------------------------------------------------------------+ | +------------------------------------------------------------+ | |||
| 1-RTT encrypted payload | | | 1-RTT encrypted payload | | |||
+------------------------------------------------------------+ | +------------------------------------------------------------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | </figure> | |||
<t>The Client Completion flight does not expose any additional informati on; | <t>The Client Completion flight does not expose any additional informati on; | |||
however, as the destination connection ID is server-selected, it usually | however, as the Destination Connection ID is server-selected, it usually | |||
is not the same ID that is sent in the Client Initial. Client Completion | is not the same ID that is sent in the Client Initial. Client Completion | |||
flights contain 1-RTT packets which indicate the handshake has completed | flights contain 1-RTT packets that indicate the handshake has completed | |||
(see <xref target="sec-confirm"/>) on the client, and for three-way handshake RT | (see <xref target="sec-confirm"/>) on the client and for three-way handshake RTT | |||
T | ||||
estimation as in <xref target="sec-rtt"/>.</t> | estimation as in <xref target="sec-rtt"/>.</t> | |||
<figure anchor="fig-hs-complete"> | <figure anchor="fig-hs-complete"> | |||
<name>Coalesced Server Completion datagram pattern</name> | <name>Coalesced Server Completion Datagram Pattern</name> | |||
<artwork><![CDATA[ | <artwork><![CDATA[ | |||
+------------------------------------------------------------+ | +------------------------------------------------------------+ | |||
| UDP header (source and destination UDP ports) | | | UDP header (source and destination UDP ports) | | |||
+------------------------------------------------------------+ | +------------------------------------------------------------+ | |||
| QUIC long header (type = Handshake, Version, DCID, SCID) (Length) | | QUIC long header (type = Handshake, Version, DCID, SCID) (Length) | |||
+------------------------------------------------------------+ | | +------------------------------------------------------------+ | | |||
| encrypted payload (presumably ACK frame) | | | | encrypted payload (presumably ACK frame) | | | |||
+------------------------------------------------------------+<-+ | +------------------------------------------------------------+<-+ | |||
| QUIC short header | | | QUIC short header | | |||
+------------------------------------------------------------+ | +------------------------------------------------------------+ | |||
| 1-RTT encrypted payload | | | 1-RTT encrypted payload | | |||
+------------------------------------------------------------+ | +------------------------------------------------------------+]]></artwork> | |||
]]></artwork> | ||||
</figure> | </figure> | |||
<t>Similar to Client Completion, Server Completion also exposes no addit ional | <t>Similar to Client Completion, Server Completion does not expose addit ional | |||
information; observing it serves only to determine that the handshake has | information; observing it serves only to determine that the handshake has | |||
completed.</t> | completed.</t> | |||
<t>When the client uses 0-RTT data, the Client Initial | <t>When the client uses 0-RTT data, the Client Initial | |||
flight can also include one or more 0-RTT packets, as shown in | flight can also include one or more 0-RTT packets as shown in | |||
<xref target="fig-client-initial-0rtt"/>.</t> | <xref target="fig-client-initial-0rtt"/>.</t> | |||
<figure anchor="fig-client-initial-0rtt"> | <figure anchor="fig-client-initial-0rtt"> | |||
<name>Coalesced 0-RTT Client Initial datagram</name> | <name>Coalesced 0-RTT Client Initial Datagram</name> | |||
<artwork><![CDATA[ | <artwork><![CDATA[ | |||
+----------------------------------------------------------+ | +----------------------------------------------------------+ | |||
| UDP header (source and destination UDP ports) | | | UDP header (source and destination UDP ports) | | |||
+----------------------------------------------------------+ | +----------------------------------------------------------+ | |||
| QUIC long header (type = Initial, Version, DCID, SCID) (Length) | | QUIC long header (type = Initial, Version, DCID, SCID) (Length) | |||
+----------------------------------------------------------+ | | +----------------------------------------------------------+ | | |||
| QUIC CRYPTO frame header | | | | QUIC CRYPTO frame header | | | |||
+----------------------------------------------------------+ | | +----------------------------------------------------------+ | | |||
| TLS Client Hello (incl. TLS SNI) | | | | TLS ClientHello (incl. TLS SNI) | | | |||
+----------------------------------------------------------+<-+ | +----------------------------------------------------------+<-+ | |||
| QUIC long header (type = 0-RTT, Version, DCID, SCID) (Length) | | QUIC long header (type = 0-RTT, Version, DCID, SCID) (Length) | |||
+----------------------------------------------------------+ | | +----------------------------------------------------------+ | | |||
| 0-RTT encrypted payload | | | | 0-RTT encrypted payload | | | |||
+----------------------------------------------------------+<-+ | +----------------------------------------------------------+<-+]]></artwork> | |||
]]></artwork> | ||||
</figure> | </figure> | |||
<t>When a 0-RTT packet is coalesced with an Initial packet, the datagram | <t>When a 0-RTT packet is coalesced with an Initial packet, the datagram | |||
will be padded to 1200 bytes. Additional datagrams containing only 0-RTT | will be padded to 1200 bytes. Additional datagrams containing only 0-RTT | |||
packets with long headers can be sent after the client Initial packet(s), | packets with long headers can be sent after the client Initial packet, which con | |||
containing more 0-RTT data. The amount of 0-RTT protected data that | tains more 0-RTT data. The amount of 0-RTT protected data that | |||
can be sent in the first flight is limited by the initial congestion | can be sent in the first flight is limited by the initial congestion | |||
window, typically to around 10 packets (see <xref section="7.2" sectionFormat="o f" target="QUIC-RECOVERY"/>).</t> | window, typically to around 10 packets (see <xref section="7.2" sectionFormat="o f" target="RFC9002"/>).</t> | |||
</section> | </section> | |||
<section anchor="wire-integrity"> | <section anchor="wire-integrity"> | |||
<name>Integrity Protection of the Wire Image</name> | <name>Integrity Protection of the Wire Image</name> | |||
<t>As soon as the cryptographic context is established, all information in the QUIC | <t>As soon as the cryptographic context is established, all information in the QUIC | |||
header, including exposed information, is integrity protected. Further, | header, including exposed information, is integrity protected. Further, | |||
information that was exposed in packets sent before the cryptographic context | information that was exposed in packets sent before the cryptographic context | |||
was established is validated during the cryptographic handshake. Therefore, | was established is validated during the cryptographic handshake. Therefore, | |||
devices on path cannot alter any information or bits in QUIC packets. Such | 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 | alterations would cause the integrity check to fail, which results in the | |||
receiver discarding the packet. Some parts of Initial packets could be altered | receiver discarding the packet. Some parts of Initial packets could be altered | |||
by removing and re-applying the authenticated encryption without immediate | by removing and reapplying the authenticated encryption without immediate | |||
discard at the receiver. However, the cryptographic handshake validates most | discard at the receiver. However, the cryptographic handshake validates most | |||
fields and any modifications in those fields will result in connection | fields and any modifications in those fields will result in a connection | |||
establishment failing later.</t> | establishment failure later.</t> | |||
</section> | </section> | |||
<section anchor="rebinding"> | <section anchor="rebinding"> | |||
<name>Connection ID and Rebinding</name> | <name>Connection ID and Rebinding</name> | |||
<t>The connection ID in the QUIC packet headers allows association of QU IC | <t>The connection ID in the QUIC packet headers allows association of QU IC | |||
packets using information independent of the 5-tuple. This allows | packets using information independent of the 5-tuple. This allows | |||
rebinding of a connection after one of the endpoints - usually the | rebinding of a connection after one of the endpoints (usually the | |||
client - has experienced an address change. Further it can be used by | client) has experienced an address change. Further, it can be used by | |||
in-network devices to ensure that related 5-tuple flows are appropriately | in-network devices to ensure that related 5-tuple flows are appropriately | |||
balanced together (see Section <xref target="sec-loadbalancing"/>).</t> | balanced together (see <xref target="sec-loadbalancing"/>).</t> | |||
<t>Client and server each choose a connection ID during the handshake; f or | <t>Client and server each choose a connection ID during the handshake; f or | |||
example, a server might request that a client use a connection ID, whereas the | example, a server might request that a client use a connection ID, whereas the | |||
client might choose a zero-length value. Connection IDs for either endpoint may | client might choose a zero-length value. Connection IDs for either endpoint may | |||
change during the lifetime of a connection, with the new connection ID being | 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"/>). | supplied via encrypted frames (see <xref section="5.1" sectionFormat="of" target ="RFC9000"/>). | |||
Therefore, observing a new connection ID does not necessarily indicate a new | Therefore, observing a new connection ID does not necessarily indicate a new | |||
connection.</t> | connection.</t> | |||
<t><xref target="QUIC-LB"/> specifies algorithms for | <t><xref target="I-D.ietf-quic-load-balancers"/> specifies algorithms fo r | |||
encoding the server mapping in a connection ID in order to share this | encoding the server mapping in a connection ID in order to share this | |||
information with selected on-path devices such as load balancers. Server | information with selected on-path devices such as load balancers. Server | |||
mappings should only be exposed to selected entities. Uncontrolled exposure | mappings should only be exposed to selected entities. Uncontrolled exposure | |||
would allow linkage of multiple IP addresses to the same host if the server | would allow linkage of multiple IP addresses to the same host if the server | |||
also supports migration that opens an attack vector on specific servers or | also supports migration that opens an attack vector on specific servers or | |||
pools. The best way to obscure an encoding is to appear random to any other | 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, | observers, which is most rigorously achieved with encryption. As a result, | |||
any attempt to infer information from specific parts of a connection ID is | any attempt to infer information from specific parts of a connection ID is | |||
unlikely to be useful.</t> | unlikely to be useful.</t> | |||
</section> | </section> | |||
<section anchor="packetnumber"> | <section anchor="packetnumber"> | |||
<name>Packet Numbers</name> | <name>Packet Numbers</name> | |||
<t>The Packet Number field is always present in the QUIC packet header i n version | <t>The Packet Number field is always present in the QUIC packet header i n version | |||
1; however, it is always encrypted. The encryption key for packet number | 1; however, it is always encrypted. The encryption key for packet number | |||
protection on Initial packets -- which are sent before cryptographic context | protection on Initial packets (which are sent before cryptographic context | |||
establishment -- is specific to the QUIC version, while packet number protection | establishment) is specific to the QUIC version while packet number protection | |||
on subsequent packets uses secrets derived from the end-to-end cryptographic | 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 | context. Packet numbers are therefore not part of the wire image that is visible | |||
to on-path observers.</t> | to on-path observers.</t> | |||
</section> | </section> | |||
<section anchor="version"> | <section anchor="version"> | |||
<name>Version Negotiation and Greasing</name> | <name>Version Negotiation and Greasing</name> | |||
<t>Version Negotiation packets are used by the server to indicate that a requested | <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="o f" target="QUIC-TRANSPORT"/>. | version from the client is not supported (see <xref section="6" sectionFormat="o f" target="RFC9000"/>). | |||
Version Negotiation packets are not intrinsically protected, but future QUIC | Version Negotiation packets are not intrinsically protected, but future QUIC | |||
versions could use later encrypted messages to verify that they were authentic. | versions could use later encrypted messages to verify that they were authentic. | |||
Therefore, any modification of this list will be detected and may cause the | Therefore, any modification of this list will be detected and may cause the | |||
endpoints to terminate the connection attempt.</t> | endpoints to terminate the connection attempt.</t> | |||
<t>Also note that the list of versions in the Version Negotiation packet may | <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 | contain reserved versions. This mechanism is used to avoid ossification in the | |||
implementation of the selection mechanism. Further, a client may send an Initial | implementation of the selection mechanism. Further, a client may send an Initial | |||
packet with a reserved version number to trigger version negotiation. In | packet with a reserved version number to trigger version negotiation. In | |||
the Version Negotiation packet, the connection IDs of the client's | the Version Negotiation packet, the connection IDs of the client's | |||
Initial packet | Initial packet | |||
are reflected to provide a proof of return-routability. Therefore, changing this | are reflected to provide a proof of return-routability. Therefore, changing this | |||
information will also cause the connection to fail.</t> | information will also cause the connection to fail.</t> | |||
<t>QUIC is expected to evolve rapidly, so new versions, both experimenta | <t>QUIC is expected to evolve rapidly. Therefore, new versions (both exp | |||
l and IETF | erimental and IETF | |||
standard versions, will be deployed on the Internet more often than with | standard versions) will be deployed on the Internet more often than with | |||
other commonly deployed Internet- and transport-layer protocols. Use | other commonly deployed Internet and transport-layer protocols. Use | |||
of the version number field for traffic recognition will therefore behave | of the Version field for traffic recognition will therefore behave | |||
differently than with these protocols. Using a particular version number | differently than with these protocols. Using a particular version number | |||
to recognize valid QUIC traffic is likely to persistently miss a fraction of | to recognize valid QUIC traffic is likely to persistently miss a fraction of | |||
QUIC flows, | QUIC flows | |||
and completely fail in the near future. Reliance on the version number field | and completely fail in the near future. Reliance on the Version field for the pu | |||
for the purposes of admission control is similarly likely to rapidly lead to | rpose of | |||
admission control is also likely to lead to | ||||
unintended failure modes. Admission of QUIC traffic regardless of version | unintended failure modes. Admission of QUIC traffic regardless of version | |||
avoids these failure modes, avoids unnecessary deployment delays, and | avoids these failure modes, avoids unnecessary deployment delays, and | |||
supports continuous version-based evolution.</t> | supports continuous version-based evolution.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="network-visible-information-about-quic-flows"> | <section anchor="network-visible-information-about-quic-flows"> | |||
<name>Network-Visible Information about QUIC Flows</name> | <name>Network-Visible Information about QUIC Flows</name> | |||
<t>This section addresses the different kinds of observations and inferenc es that | <t>This section addresses the different kinds of observations and inferenc es that | |||
can be made about QUIC flows by a passive observer in the network based on the | 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 ob server (one | wire image in <xref target="sec-wire-image"/>. Here, we assume a bidirectional o bserver (one | |||
that can see packets in both directions in the sequence in which they are | that can see packets in both directions in the sequence in which they are | |||
carried on the wire) unless noted, but typically without access to any keying | carried on the wire) unless noted, but typically without access to any keying | |||
information.</t> | information.</t> | |||
<section anchor="sec-identifying"> | <section anchor="sec-identifying"> | |||
<name>Identifying QUIC Traffic</name> | <name>Identifying QUIC Traffic</name> | |||
<t>The QUIC wire image is not specifically designed to be distinguishabl e | <t>The QUIC wire image is not specifically designed to be distinguishabl e | |||
from other UDP traffic by a passive observer in the network. While certain | from other UDP traffic by a passive observer in the network. While certain | |||
QUIC applications may be heuristically identifiable on a per-application | QUIC applications may be heuristically identifiable on a per-application | |||
basis, there is no general method for distinguishing QUIC traffic from | basis, there is no general method for distinguishing QUIC traffic from | |||
otherwise-unclassifiable UDP traffic on a given link. Any unrecognized UDP | otherwise unclassifiable UDP traffic on a given link. Therefore, any unrecognize | |||
traffic may therefore be QUIC traffic.</t> | d UDP | |||
traffic may be QUIC traffic.</t> | ||||
<t>At the time of writing, two application bindings for QUIC have been p ublished | <t>At the time of writing, two application bindings for QUIC have been p ublished | |||
or adopted by the IETF: HTTP/3 <xref target="QUIC-HTTP"/> and DNS over Dedicated | or adopted by the IETF: HTTP/3 <xref target="RFC9114"/> and DNS over Dedicated Q | |||
QUIC | UIC | |||
Connections <xref target="I-D.ietf-dprive-dnsoquic"/>. These are both known at t | Connections <xref target="RFC9250"/>. These are both known to have active Intern | |||
he time | et deployments, so an assumption that all | |||
of writing to have active Internet deployments, so an assumption that all | ||||
QUIC traffic is HTTP/3 is not valid. HTTP/3 uses UDP port 443 by | QUIC traffic is HTTP/3 is not valid. HTTP/3 uses UDP port 443 by | |||
convention but various methods can be used to specify alternate port numbers. | convention but various methods can be used to specify alternate port numbers. | |||
Other applications (e.g., Microsoft's SMB over QUIC) also use UDP port 443 by | Other applications (e.g., Microsoft's SMB over QUIC) also use UDP port 443 by | |||
default. Therefore, simple assumptions about whether a given flow is using | default. Therefore, simple assumptions about whether a given flow is using | |||
QUIC, or indeed which application it might be using QUIC, based solely upon | QUIC (or indeed which application might be using QUIC) based solely upon | |||
a UDP port number may not hold; see also <xref section="5" sectionFormat="of" ta | a UDP port number may not hold; see <xref section="5" sectionFormat="of" target= | |||
rget="RFC7605"/>.</t> | "RFC7605"/>.</t> | |||
<t>While the second-most-significant bit (0x40) of the first octet is se t to 1 in | <t>While the second-most-significant bit (0x40) of the first octet is se t 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 o f recognizing QUIC traffic is not reliable. | most QUIC packets of the current version (see <xref target="public-header"/> and <xref section="17" sectionFormat="of" target="RFC9000"/>), this method of recog nizing QUIC traffic is not reliable. | |||
First, it only provides one bit of information and is prone to collision with | 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"/>. Sec ond, this | UDP-based protocols other than those considered in <xref target="RFC7983"/>. Sec ond, this | |||
feature of the wire image is not invariant <xref target="QUIC-INVARIANTS"/> and | feature of the wire image is not invariant <xref target="RFC8999"/> and may chan | |||
may change in | ge in | |||
future versions of the protocol, or even be negotiated during the handshake via | future versions of the protocol or even be negotiated during the handshake via | |||
the use of an extension <xref target="QUIC-GREASE"/>.</t> | the use of an extension <xref target="RFC9287"/>.</t> | |||
<t>Even though transport parameters transmitted in the client's Initial packet are | <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 | observable by the network, they cannot be modified by the network without | |||
causing connection failure. Further, the reply from the server cannot be | causing a connection failure. Further, the reply from the server cannot be | |||
observed, so observers on the network cannot know which parameters are actually | observed, so observers on the network cannot know which parameters are actually | |||
in use.</t> | in use.</t> | |||
<section anchor="identifying-negotiated-version"> | <section anchor="identifying-negotiated-version"> | |||
<name>Identifying Negotiated Version</name> | <name>Identifying Negotiated Version</name> | |||
<t>An in-network observer assuming that a set of packets belongs to a QUIC flow | <t>An in-network observer assuming that a set of packets belongs to a QUIC flow | |||
might infer the version number in use by observing the handshake. If the | might infer the version number in use by observing the handshake. If the | |||
version number in an Initial packet of the server response is subsequently | version number in an Initial packet of the server response is subsequently | |||
seen in a packet from the client, that version has been accepted by both | seen in a packet from the client, that version has been accepted by both | |||
endpoints to be used for the rest of the connection (see | endpoints to be used for the rest of the connection (see | |||
<xref section="2" sectionFormat="of" target="I-D.ietf-quic-version-negotiation"/ >).</t> | <xref section="2" sectionFormat="of" target="I-D.ietf-quic-version-negotiation"/ >).</t> | |||
<t>The negotiated version cannot be identified for flows for which a h | <t>The negotiated version cannot be identified for flows in which a ha | |||
andshake is | ndshake is | |||
not observed, such as in the case of connection migration; however, it might be | 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 | possible to associate a flow with a flow for which a version has been | |||
identified; see <xref target="sec-flow-association"/>.</t> | identified; see <xref target="sec-flow-association"/>.</t> | |||
</section> | </section> | |||
<section anchor="sec-garbage"> | <section anchor="sec-garbage"> | |||
<name>First Packet Identification for Garbage Rejection</name> | <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 | <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 | to be associated with QUIC is a valid QUIC packet. This determination supports | |||
in-network filtering of garbage UDP packets (reflection attacks, random | in-network filtering of garbage UDP packets (reflection attacks, random | |||
backscatter, etc.). While heuristics based on the first byte of the packet | 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, | (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 | 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> | may have different meanings in future versions of the protocol.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec-confirm"> | <section anchor="sec-confirm"> | |||
<name>Connection Confirmation</name> | <name>Connection Confirmation</name> | |||
<t>This document focuses on QUIC version 1, and this Connection Confirma tion | <t>This document focuses on QUIC version 1, and this Connection Confirma tion | |||
section applies only to packets belonging to QUIC version 1 flows; for purposes | 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 | 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 > | such through the observation of a version number exchange as described above.</t > | |||
<t>Connection establishment uses Initial and Handshake packets containin g a | <t>Connection establishment uses Initial and Handshake packets containin g a | |||
TLS handshake, and Retry packets that do not contain parts of the handshake. | TLS handshake and Retry packets that do not contain parts of the handshake. | |||
Connection establishment can therefore be detected using heuristics similar to | Connection establishment can therefore be detected using heuristics similar to | |||
those used to detect TLS over TCP. A client initiating a connection may | those used to detect TLS over TCP. A client initiating a connection may | |||
also send data in 0-RTT packets directly after the Initial | also send data in 0-RTT packets directly after the Initial | |||
packet containing the TLS Client Hello. Since packets may be reordered or lost | packet containing the TLS ClientHello. Since packets may be reordered or lost | |||
in the network, 0-RTT packets could be seen before the Initial | in the network, 0-RTT packets could be seen before the Initial | |||
packet.</t> | packet.</t> | |||
<t>Note that in this version of QUIC, clients send Initial packets befor e servers | <t>Note that in this version of QUIC, clients send Initial packets befor e servers | |||
do, servers send Handshake packets before clients do, and only clients send | do, servers send Handshake packets before clients do, and only clients send | |||
Initial packets with tokens. Therefore, an endpoint can be identified as a | 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 | 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 | 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> | the Destination Connection ID fields of the new Initial packet.</t> | |||
</section> | </section> | |||
<section anchor="distinguishing-acknowledgment-traffic"> | <section anchor="distinguishing-acknowledgment-traffic"> | |||
<name>Distinguishing Acknowledgment Traffic</name> | <name>Distinguishing Acknowledgment Traffic</name> | |||
<t>Some deployed in-network functions distinguish packets that carry onl y | <t>Some deployed in-network functions distinguish packets that carry onl y | |||
acknowledgment (ACK-only) information | acknowledgment (ACK-only) information | |||
from packets carrying upper-layer data in order to attempt to enhance | from packets carrying upper-layer data in order to attempt to enhance | |||
performance, for example by queueing ACKs differently or manipulating ACK | performance (for example, by queuing ACKs differently or manipulating ACK | |||
signaling <xref target="RFC3449"/>. Distinguishing ACK packets is possible in TC | signaling <xref target="RFC3449"/>). Distinguishing ACK packets is possible in T | |||
P, | CP, | |||
but is not supported by | but is not supported by | |||
QUIC, since acknowledgment signaling is carried inside QUIC's encrypted payload, | QUIC since acknowledgment signaling is carried inside QUIC's encrypted payload | |||
and ACK manipulation is impossible. Specifically, heuristics attempting to | and ACK manipulation is impossible. Specifically, heuristics attempting to | |||
distinguish ACK-only packets from payload-carrying packets based on packet size | 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 | 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 | internals of QUIC's operation as those mechanisms can change, e.g., due to the | |||
use of extensions.</t> | use of extensions.</t> | |||
</section> | </section> | |||
<section anchor="sec-server"> | <section anchor="sec-server"> | |||
<name>Server Name Indication (SNI)</name> | <name>Server Name Indication (SNI)</name> | |||
<t>The client's TLS ClientHello may contain a Server Name Indication (SN I) | <t>The client's TLS ClientHello may contain a Server Name Indication (SN I) | |||
<xref target="RFC6066"/> extension, by which the client reveals the name of the | extension <xref target="RFC6066"/> by which the client reveals the name of the s | |||
server it | erver it | |||
intends to connect to, in order to allow the server to present a certificate | intends to connect to in order to allow the server to present a certificate | |||
based on that name. SNI information is available to unidirectional observers | based on that name. If present, SNI information is available to unidirectional o | |||
on the client-to-server path, if present.</t> | bservers | |||
on the client-to-server path if it.</t> | ||||
<t>The TLS ClientHello may also contain an Application-Layer Protocol | <t>The TLS ClientHello may also contain an Application-Layer Protocol | |||
Negotiation (ALPN) <xref target="RFC7301"/> extension, by which the client expos es the names | Negotiation (ALPN) extension <xref target="RFC7301"/>, by which the client expos es the names | |||
of application-layer protocols it supports; an observer can deduce that one of | of application-layer protocols it supports; an observer can deduce that one of | |||
those protocols will be used if the connection continues.</t> | those protocols will be used if the connection continues.</t> | |||
<t>Work is currently underway in the TLS working group to encrypt the co ntents of | <t>Work is currently underway in the TLS working group to encrypt the co ntents of | |||
the ClientHello in TLS 1.3 <xref target="TLS-ECH"/>. This would make | the ClientHello in TLS 1.3 <xref target="I-D.ietf-tls-esni"/>. This would make | |||
SNI-based application identification impossible by on-path observation for QUIC | SNI-based application identification impossible by on-path observation for QUIC | |||
and other protocols that use TLS.</t> | and other protocols that use TLS.</t> | |||
<section anchor="extracting-server-name-indication-sni-information"> | <section anchor="extracting-server-name-indication-sni-information"> | |||
<name>Extracting Server Name Indication (SNI) Information</name> | <name>Extracting Server Name Indication (SNI) Information</name> | |||
<t>If the ClientHello is not encrypted, SNI can be derived from the cl ient's | <t>If the ClientHello is not encrypted, SNI can be derived from the cl ient's | |||
Initial packet(s) by calculating the Initial secret to decrypt the packet | Initial packets by calculating the Initial secret to decrypt the packet | |||
payload and parsing the QUIC CRYPTO frame(s) containing the TLS ClientHello.</t> | payload and parsing the QUIC CRYPTO frames containing the TLS ClientHello.</t> | |||
<t>As both the derivation of the Initial secret and the structure of t he Initial | <t>As both the derivation of the Initial secret and the structure of t he Initial | |||
packet itself are version-specific, the first step is always to parse the | packet itself are version specific, the first step is always to parse the | |||
version number (the second through fifth bytes of the long header). Note that | version number (the second through fifth bytes of the long header). Note that | |||
only long header packets carry the version number, so it is necessary to also | 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. | check if the first bit of the QUIC packet is set to 1, which indicates a long he | |||
</t> | ader.</t> | |||
<t>Note that proprietary QUIC versions, that have been deployed before | <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 | standardization might not set the first bit in a QUIC long header packet to | |||
1. However, it is expected that these versions will | 1. However, it is expected that these versions will | |||
gradually disappear over time and therefore do not require any special | gradually disappear over time and therefore do not require any special | |||
consideration or treatment.</t> | consideration or treatment.</t> | |||
<t>When the version has been identified as QUIC version 1, the packet type needs to | <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 | 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 | the header are both set to 0. Then, the Destination Connection ID needs to be | |||
extracted from the packet. The Initial secret is calculated using the | extracted from the packet. The Initial secret is calculated using the | |||
version-specific Initial salt, as described in <xref section="5.2" sectionFormat ="of" target="QUIC-TLS"/>. | version-specific Initial salt as described in <xref section="5.2" sectionFormat= "of" target="RFC9001"/>. | |||
The length of the connection ID is indicated in the 6th byte of the header | The length of the connection ID is indicated in the 6th byte of the header | |||
followed by the connection ID itself.</t> | followed by the connection ID itself.</t> | |||
<t>Note that subsequent Initial packets might contain a Destination Co nnection ID | <t>Note that subsequent Initial packets might contain a Destination Co nnection ID | |||
other than the one used to generate the Initial secret. Therefore, attempts to | 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 | decrypt these packets using the procedure above might fail unless the Initial | |||
secret is retained by the observer.</t> | secret is retained by the observer.</t> | |||
<t>To determine the end of the packet header and find the start of the payload, | <t>To determine the end of the packet header and find the start of the payload, | |||
the packet number length, the source connection ID length, and the token length | 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 | 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" | eighth bits of the header as described in <xref section="17.2" sectionFormat="of | |||
target="QUIC-TRANSPORT"/>, | " target="RFC9000"/>, | |||
but is protected as described in <xref section="5.4" sectionFormat="of" target=" | but is protected as described in <xref section="5.4" sectionFormat="of" target=" | |||
QUIC-TLS"/>. The source | RFC9001"/>. The Source | |||
connection ID length is specified in the byte after the destination | Connection ID Length is specified in the byte after the Destination | |||
connection ID. The token length, which follows the source connection ID, is | Connection ID. The Token Length, which follows the Source Connection ID, is | |||
a variable-length integer as specified in <xref section="16" sectionFormat="of" | a variable-length integer as specified in <xref section="16" sectionFormat="of" | |||
target="QUIC-TRANSPORT"/>.</t> | target="RFC9000"/>.</t> | |||
<t>After decryption, the client's Initial packet(s) can be parsed to d | <t>After decryption, the client's Initial packets can be parsed to det | |||
etect the | ect the | |||
CRYPTO frame(s) that contains the TLS ClientHello, which then can be parsed | CRYPTO frames that contain the TLS ClientHello, which then can be parsed | |||
similarly to TLS over TCP connections. Note that there can be multiple CRYPTO | similarly to TLS over TCP connections. Note that there can be multiple CRYPTO | |||
frames spread out over one or more Initial packets, and they might not be in | frames spread out over one or more Initial packets and they might not be in | |||
order, so reassembling the CRYPTO stream by parsing offsets and lengths is | order, so reassembling the CRYPTO stream by parsing offsets and lengths is | |||
required. Further, the client's Initial packet(s) may contain other frames, | required. Further, the client's Initial packets may contain other frames, | |||
so the first bytes of each frame need to be checked to identify the frame | so the first bytes of each frame need to be checked to identify the frame | |||
type and determine whether the frame can be skipped over. Note that the | type and determine whether the frame can be skipped over. Note that the | |||
length of the frames is dependent on the frame type; see | length of the frames is dependent on the frame type; see | |||
<xref section="18" sectionFormat="of" target="QUIC-TRANSPORT"/>. | <xref section="18" sectionFormat="of" target="RFC9000"/>. | |||
E.g., PADDING frames, each consisting of a single zero byte, may occur before, | For example, PADDING frames (each consisting of a single zero byte) may occur be | |||
fore, | ||||
after, or between CRYPTO frames. However, extensions might define additional | after, or between CRYPTO frames. However, extensions might define additional | |||
frame types. If an unknown frame type is encountered, it is impossible to | frame types. If an unknown frame type is encountered, it is impossible to | |||
know the length of that frame which prevents skipping over it, and therefore | know the length of that frame, which prevents skipping over it; therefore, | |||
parsing fails.</t> | parsing fails.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec-flow-association"> | <section anchor="sec-flow-association"> | |||
<name>Flow Association</name> | <name>Flow Association</name> | |||
<t>The QUIC connection ID (see <xref target="rebinding"/>) is designed t o allow a coordinating | <t>The QUIC connection ID (see <xref target="rebinding"/>) is designed t o allow a coordinating | |||
on-path device, such as a load-balancer, to associate two flows when one of the | on-path device, such as a load balancer, to associate two flows when one of the | |||
endpoints changes address. This change can be due to NAT rebinding or address | endpoints changes address. This change can be due to NAT rebinding or address | |||
migration.</t> | migration.</t> | |||
<t>The connection ID must change upon intentional address change by an e | <t>The connection ID must change upon intentional address change by an e | |||
ndpoint, | ndpoint | |||
and connection ID negotiation is encrypted, so it is not possible for a | and connection ID negotiation is encrypted; therefore, it is not possible for a | |||
passive observer to link intended changes of address using the connection ID.</t > | passive observer to link intended changes of address using the connection ID.</t > | |||
<t>When one endpoint's address unintentionally changes, as is the case w ith NAT | <t>When one endpoint's address unintentionally changes, as is the case w ith NAT | |||
rebinding, an on-path observer may be able to use the connection ID to | 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> | 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 associat e flows | <t>A network function that attempts to use the connection ID to associat e flows | |||
must be robust to the failure of this technique. Since the connection ID may | 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 | change multiple times during the lifetime of a connection, packets with the | |||
same 5-tuple but different connection IDs might or might not belong to | same 5-tuple but different connection IDs might or might not belong to | |||
the same connection. Likewise, packets with the same connection ID but | the same connection. Likewise, packets with the same connection ID but | |||
different 5-tuples might not belong to the same connection, either.</t> | different 5-tuples might not belong to the same connection either.</t> | |||
<t>Connection IDs should be treated as opaque; see <xref target="sec-loa dbalancing"/> | <t>Connection IDs should be treated as opaque; see <xref target="sec-loa dbalancing"/> | |||
for caveats regarding connection ID selection at servers.</t> | for caveats regarding connection ID selection at servers.</t> | |||
</section> | </section> | |||
<section anchor="sec-teardown"> | <section anchor="sec-teardown"> | |||
<name>Flow Teardown</name> | <name>Flow Teardown</name> | |||
<t>QUIC does not expose the end of a connection; the only indication to on-path | <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 that a flow has ended is that packets are no longer observed. Therefore, | |||
devices on path such as NATs and firewalls must therefore use idle timeouts to | stateful | |||
devices on path such as NATs and firewalls must use idle timeouts to | ||||
determine when to drop state for QUIC flows; see <xref target="sec-stateful"/>.< /t> | determine when to drop state for QUIC flows; see <xref target="sec-stateful"/>.< /t> | |||
</section> | </section> | |||
<section anchor="sec-symmetry"> | <section anchor="sec-symmetry"> | |||
<name>Flow Symmetry Measurement</name> | <name>Flow Symmetry Measurement</name> | |||
<t>QUIC explicitly exposes which side of a connection is a client and wh ich side is | <t>QUIC explicitly exposes which side of a connection is a client and wh ich side is | |||
a server during the handshake. In addition, the symmetry of a flow (whether | a server during the handshake. In addition, the symmetry of a flow (whether it i s | |||
primarily client-to-server, primarily server-to-client, or roughly | primarily client-to-server, primarily server-to-client, or roughly | |||
bidirectional, as input to basic traffic classification techniques) can be | bidirectional, as input to basic traffic classification techniques) can be | |||
inferred through the measurement of data rate in each direction. | inferred through the measurement of data rate in each direction. | |||
Note that QUIC packets containing only control frames (such as | Note that QUIC packets containing only control frames (such as | |||
ACK-only packets) may be padded. Padding, though optional, | ACK-only packets) may be padded. Padding, though optional, | |||
may conceal connection roles or flow symmetry information.</t> | may conceal connection roles or flow symmetry information.</t> | |||
</section> | </section> | |||
<section anchor="sec-rtt"> | <section anchor="sec-rtt"> | |||
<name>Round-Trip Time (RTT) Measurement</name> | <name>Round-Trip Time (RTT) Measurement</name> | |||
<t>The round-trip time (RTT) of QUIC flows can be inferred | <t>The round-trip time (RTT) of QUIC flows can be inferred | |||
by observation once per flow, | by observation once per flow | |||
during the handshake, as in passive TCP measurement; this requires parsing of | during the handshake in passive TCP measurement; this requires parsing of | |||
the QUIC packet header and recognition of the handshake, as illustrated in | 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, | <xref target="handshake"/>. It can also be inferred during the flow's lifetime i | |||
if the | f the | |||
endpoints use the spin bit facility described below and in <xref section="17.3.1 | endpoints use the spin bit facility described below and in <xref section="17.3.1 | |||
" sectionFormat="of" target="QUIC-TRANSPORT"/>. RTT measurement is available to | " sectionFormat="of" target="RFC9000"/>. RTT measurement is available to unidire | |||
unidirectional observers | ctional observers | |||
when the spin bit is enabled.</t> | when the spin bit is enabled.</t> | |||
<section anchor="measuring-initial-rtt"> | <section anchor="measuring-initial-rtt"> | |||
<name>Measuring Initial RTT</name> | <name>Measuring Initial RTT</name> | |||
<t>In the common case, the delay between the client's Initial packet ( containing | <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 | the TLS ClientHello) and the server's Initial packet (containing the TLS | |||
ServerHello) represents the RTT component on the path between the observer and | 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 | 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 | 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 | 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 | after the Initial packet during connection re-establishment, these can be | |||
ignored for RTT measurement purposes.</t> | ignored for RTT measurement purposes.</t> | |||
<t>Handshake RTT can be measured by adding the client-to-observer and | <t>Handshake RTT can be measured by adding the client-to-observer and | |||
observer-to-server RTT components together. This measurement necessarily | observer-to-server RTT components together. This measurement necessarily | |||
includes all transport- and application-layer delay at both endpoints.</t> | includes all transport- and application-layer delay at both endpoints.</t> | |||
</section> | </section> | |||
<section anchor="spin-usage"> | <section anchor="spin-usage"> | |||
<name>Using the Spin Bit for Passive RTT Measurement</name> | <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 | <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. | observation points on the network path throughout the duration of a connection. | |||
See <xref section="17.4" sectionFormat="of" target="QUIC-TRANSPORT"/> for the de | See <xref section="17.4" sectionFormat="of" target="RFC9000"/> for the definitio | |||
finition of the spin bit in | n of the spin bit in | |||
Version 1 of QUIC. Endpoint participation in spin bit signaling is optional. | Version 1 of QUIC. Endpoint participation in spin bit signaling is optional. Whi | |||
That is, while its location is fixed in this version of QUIC, an endpoint can | le its location is fixed in this version of QUIC, an endpoint can | |||
unilaterally choose to not support "spinning" the bit.</t> | 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 | <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 | 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 | 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 | 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 | making these connections identifiable based on the usage of the spin bit, all | |||
endpoints randomly disable "spinning" for at least one eighth of connections, | endpoints randomly disable "spinning" for at least one eighth of connections, | |||
even if otherwise enabled by default. An endpoint not participating in spin bit | 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 | 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> | the connection or can set the bit randomly on each packet sent.</t> | |||
<t>When in use, the latency spin bit in each direction changes value o nce per | <t>When in use, the latency spin bit in each direction changes value o nce per | |||
RTT any time that both endpoints are sending packets | RTT any time that both endpoints are sending packets | |||
continuously. An on-path observer can observe the time difference between edges | continuously. 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 | (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 | measure one sample of end-to-end RTT. This mechanism follows the principles of | |||
protocol measurability laid out in <xref target="IPIM"/>.</t> | protocol measurability laid out in <xref target="IPIM"/>.</t> | |||
<t>Note that this measurement, as with passive RTT measurement for TCP , includes | <t>Note that this measurement, as with passive RTT measurement for TCP , includes | |||
all transport protocol delay (e.g., delayed sending of acknowledgments) and/or | all transport protocol delay (e.g., delayed sending of acknowledgments) and/or | |||
application layer delay (e.g., waiting for a response to be generated). It | 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 | therefore provides devices on path a good instantaneous estimate of the RTT as | |||
experienced by the application.</t> | experienced by the application.</t> | |||
<t>However, application-limited and flow-control-limited senders can h ave | <t>However, application-limited and flow-control-limited senders can h ave | |||
application and transport layer delay, respectively, that are much greater than | 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 | network RTT. For example, if the sender only sends small | |||
amount of periodic application traffic, where that period is longer than the | amounts of application traffic periodically, where the periodicity is longer tha | |||
RTT, measuring the spin bit provides information about the application period, | n the | |||
not the network RTT.</t> | RTT, spin bit measurements provide information about the application period rath | |||
er | ||||
than network RTT.</t> | ||||
<t>Since the spin bit logic at each endpoint considers only samples fr om packets | <t>Since the spin bit logic at each endpoint considers only samples fr om packets | |||
that advance the largest packet number, signal generation itself is | that advance the largest packet number, signal generation itself is | |||
resistant to reordering. However, reordering can cause problems at an observer | resistant to reordering. However, reordering can cause problems at an observer | |||
by causing spurious edge detection and therefore inaccurate (i.e., lower) RTT | 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> | 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 chang es in the RTT | <t>Simple heuristics based on the observed data rate per flow or chang es in the RTT | |||
series can be used to reject bad RTT samples due to lost or reordered edges in | 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, | the spin signal, as well as application or flow control limitation; for example, | |||
QoF <xref target="TMA-QOF"/> rejects component RTTs significantly higher than RT Ts over the | QoF <xref target="TMA-QOF"/> rejects component RTTs significantly higher than RT Ts over the | |||
history of the flow. These heuristics may use the handshake RTT as an initial | 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 | 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> | 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 c lient to | <t>An on-path observer that can see traffic in both directions (from c lient to | |||
server and from server to client) can also use the spin bit to measure | 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 | "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 | 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 | and between 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 | delay between a spin edge observed in the upstream direction and that observed | |||
in the downstream direction, and vice versa.</t> | in the downstream direction, and vice versa.</t> | |||
<t>Raw RTT samples generated using these techniques can be processed i n various | <t>Raw RTT samples generated using these techniques can be processed i n various | |||
ways to generate useful network performance metrics. A simple linear smoothing | 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 | 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 | more stable estimate of application-experienced RTT. RTT samples measured from | |||
the spin bit can also be used to generate RTT distribution information, | the spin bit can also be used to generate RTT distribution information, | |||
including minimum RTT (which approximates network RTT over longer time windows) | including minimum RTT (which approximates network RTT over longer time windows) | |||
and RTT variance (which approximates one-way packet delay variance as seen | and RTT variance (which approximates one-way packet delay variance as seen | |||
by an application end-point).</t> | by an application end-point).</t> | |||
skipping to change at line 779 ¶ | skipping to change at line 783 ¶ | |||
<name>Specific Network Management Tasks</name> | <name>Specific Network Management Tasks</name> | |||
<t>In this section, we review specific network management and measurement | <t>In this section, we review specific network management and measurement | |||
techniques and how QUIC's design impacts them.</t> | techniques and how QUIC's design impacts them.</t> | |||
<section anchor="passive-network-performance-measurement-and-troubleshooti ng"> | <section anchor="passive-network-performance-measurement-and-troubleshooti ng"> | |||
<name>Passive Network Performance Measurement and Troubleshooting</name> | <name>Passive Network Performance Measurement and Troubleshooting</name> | |||
<t>Limited RTT measurement is possible by passive observation of QUIC tr affic; | <t>Limited RTT measurement is possible by passive observation of QUIC tr affic; | |||
see <xref target="sec-rtt"/>. No passive measurement of loss is possible with th e present | see <xref target="sec-rtt"/>. No passive measurement of loss is possible with th e present | |||
wire image. Limited observation of upstream congestion may be | wire image. Limited observation of upstream congestion may be | |||
possible via the observation of Congestion Experienced (CE) markings in the | possible via the observation of Congestion Experienced (CE) markings in the | |||
IP header <xref target="RFC3168"/> on ECN-enabled QUIC traffic.</t> | IP header <xref target="RFC3168"/> on ECN-enabled QUIC traffic.</t> | |||
<t>On-path devices can also make measurements of RTT, loss and other | <t>On-path devices can also make measurements of RTT, loss, and other | |||
performance metrics when information is carried in an additional network-layer | performance metrics when information is carried in an additional network-layer | |||
packet header (Section 6 of | packet header (<xref target="RFC9065" sectionFormat="of" section="6"/> describes | |||
<xref target="RFC9065"/> describes use of operations, | the use of Operations, | |||
administration and management (OAM) information). | Administration, and Management (OAM) information). | |||
Using network-layer approaches also has the advantage that common observation | Using network-layer approaches also has the advantage that common observation | |||
and analysis tools can be consistently used for multiple transport protocols, | and analysis tools can be consistently used for multiple transport protocols; | |||
however, these techniques are often limited to measurements within one or | however, these techniques are often limited to measurements within one or | |||
multiple cooperating domains.</t> | multiple cooperating domains.</t> | |||
</section> | </section> | |||
<section anchor="sec-stateful"> | <section anchor="sec-stateful"> | |||
<name>Stateful Treatment of QUIC Traffic</name> | <name>Stateful Treatment of QUIC Traffic</name> | |||
<t>Stateful treatment of QUIC traffic (e.g., at a firewall or NAT middle box) is | <t>Stateful treatment of QUIC traffic (e.g., at a firewall or NAT middle box) is | |||
possible through QUIC traffic and version identification (<xref target="sec-iden tifying"/>) | possible through QUIC traffic and version identification (<xref target="sec-iden tifying"/>) | |||
and observation of the handshake for connection confirmation (<xref target="sec- confirm"/>). | 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 | 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 | state must be purged either through timers or least-recently-used | |||
eviction, depending on application requirements.</t> | eviction depending on application requirements.</t> | |||
<t>While QUIC has no clear network-visible end-of-flow signal and theref ore | <t>While QUIC has no clear network-visible end-of-flow signal and theref ore | |||
does require timer-based state removal, the QUIC handshake indicates | does require timer-based state removal, the QUIC handshake indicates | |||
confirmation by both ends of a valid bidirectional transmission. As soon | confirmation by both ends of a valid bidirectional transmission. As soon | |||
as the handshake completed, timers should be set long enough to also | as the handshake completed, timers should be set long enough to also | |||
allow for short idle time during a valid transmission.</t> | allow for short idle time during a valid transmission.</t> | |||
<t><xref target="RFC4787"/> requires a network state timeout that is not less than 2 minutes | <t><xref target="RFC4787"/> requires a network state timeout that is not less than 2 minutes | |||
for most UDP traffic. However, in practice, a QUIC endpoint can experience | for most UDP traffic. However, in practice, a QUIC endpoint can experience | |||
lower timeouts, in the range of 30 to 60 seconds <xref target="QUIC-TIMEOUT"/>.< /t> | lower timeouts in the range of 30 to 60 seconds <xref target="QUIC-TIMEOUT"/>.</ t> | |||
<t>In contrast, <xref target="RFC5382"/> recommends a state timeout of m ore than 2 | <t>In contrast, <xref target="RFC5382"/> recommends a state timeout of m ore than 2 | |||
hours for TCP, given that TCP is a connection-oriented protocol with | hours for TCP given that TCP is a connection-oriented protocol with | |||
well-defined closure semantics. | well-defined closure semantics. | |||
Even though QUIC has explicitly been designed to tolerate NAT rebindings, | Even though QUIC has explicitly been designed to tolerate NAT rebindings, | |||
decreasing the NAT timeout is not recommended, as it may negatively impact | decreasing the NAT timeout is not recommended as it may negatively impact | |||
application performance or incentivize endpoints to send very frequent | application performance or incentivize endpoints to send very frequent | |||
keep-alive packets.</t> | keep-alive packets.</t> | |||
<t>The recommendation is therefore that, even when lower state timeouts | <t>Therefore, | |||
are | a state timeout of at least two minutes is recommended for | |||
used for other UDP traffic, a state timeout of at least two minutes | QUIC traffic, even when lower state timeouts | |||
ought to be used for QUIC traffic.</t> | are used for other UDP traffic.</t> | |||
<t>If state is removed too early, this could lead to black-holing of inc oming | <t>If state is removed too early, this could lead to black-holing of inc oming | |||
packets after a short idle period. To detect this situation, a timer at the | 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 | client needs to expire before a re-establishment can happen (if at all), which | |||
would lead to unnecessarily long delays in an otherwise working connection.</t> | would lead to unnecessarily long delays in an otherwise working connection.</t> | |||
<t>Furthermore, not all endpoints use routing architectures where connec tions | <t>Furthermore, not all endpoints use routing architectures where connec tions | |||
will survive a port or address change. So even when the client revives the | will survive a port or address change. Even when the client revives the | |||
connection, a NAT rebinding can cause a routing mismatch where a packet | connection, a NAT rebinding can cause a routing mismatch where a packet | |||
is not even delivered to the server that might support address migration. | 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 | 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 | 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 | client), especially where devices are able to distinguish QUIC traffic from | |||
other UDP payloads.</t> | other UDP payloads.</t> | |||
<t>The QUIC header optionally contains a connection ID which could provi de | <t>The QUIC header optionally contains a connection ID, which could prov ide | |||
additional entropy beyond the 5-tuple. The QUIC handshake needs | additional entropy beyond the 5-tuple. The QUIC handshake needs | |||
to be observed in order to understand whether the connection ID is present and | to be observed in order to understand whether the connection ID is present and | |||
what length it has. However, connection IDs may be renegotiated | what length it has. However, connection IDs may be renegotiated | |||
after the handshake, and this renegotiation is not visible to the path. | 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 | 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 | of flows is not recommended as connection ID changes will cause undetectable | |||
and unrecoverable loss of state in the middle of a connection. In particular, | and unrecoverable loss of state in the middle of a connection. In particular, | |||
the use of the connection ID for functions that require state to make a | the use of the connection ID for functions that require state to make a | |||
forwarding decision is not viable as it will break connectivity, or at minimum | forwarding decision is not viable as it will break connectivity, or at minimum, | |||
cause long timeout-based delays before this problem is detected by the | cause long timeout-based delays before this problem is detected by the | |||
endpoints and the connection can potentially be re-established.</t> | endpoints and the connection can potentially be re-established.</t> | |||
<t>Use of connection IDs is specifically discouraged for NAT application s. | <t>Use of connection IDs is specifically discouraged for NAT application s. | |||
If a NAT hits an operational limit, it is recommended to rather drop the | 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"/>), | initial packets of a flow (see also <xref target="sec-filtering"/>), | |||
which potentially triggers TCP fallback. Use of the connection ID to | which potentially triggers TCP fallback. Use of the connection ID to | |||
multiplex multiple connections on the same IP address/port pair is not a | multiplex multiple connections on the same IP address/port pair is not a | |||
viable solution as it risks connectivity breakage, in case the connection | viable solution as it risks connectivity breakage in case the connection | |||
ID changes.</t> | ID changes.</t> | |||
</section> | </section> | |||
<section anchor="address-rewriting-to-ensure-routing-stability"> | <section anchor="address-rewriting-to-ensure-routing-stability"> | |||
<name>Address Rewriting to Ensure Routing Stability</name> | <name>Address Rewriting to Ensure Routing Stability</name> | |||
<t>While QUIC's migration capability makes it possible for a connection to survive | <t>While QUIC's migration capability makes it possible for a connection to survive | |||
client address changes, this does not work if the routers or switches in the | client address changes, this does not work if the routers or switches in the | |||
server infrastructure route using the address-port 4-tuple. If infrastructure | server infrastructure route using the address-port 4-tuple. If infrastructure | |||
routes on addresses only, NAT rebinding or address migration will cause packets | 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 | to be delivered to the wrong server. <xref target="I-D.ietf-quic-load-balancers" /> describes a way to addresses | |||
this problem by coordinating the selection and use of connection IDs between | this problem by coordinating the selection and use of connection IDs between | |||
load-balancers and servers.</t> | load balancers and servers.</t> | |||
<t>Applying address translation at a middlebox to maintain a stable | <t>Applying address translation at a middlebox to maintain a stable | |||
address-port mapping for flows based on connection ID might seem | address-port mapping for flows based on connection ID might seem like a solution | |||
like a solution to this problem. However, hiding information about the | to this problem. However, hiding information about the | |||
change of the IP address or port conceals important and security-relevant | change of the IP address or port conceals important and security-relevant | |||
information from QUIC endpoints and as such would facilitate amplification | information from QUIC endpoints, and as such, would facilitate amplification | |||
attacks (see <xref section="8" sectionFormat="of" target="QUIC-TRANSPORT"/>). A | attacks (see <xref section="8" sectionFormat="of" target="RFC9000"/>). A NAT fun | |||
NAT function that hides | ction that hides | |||
peer address changes prevents the other end from | peer address changes prevents the other end from | |||
detecting and mitigating attacks as the endpoint cannot verify connectivity | detecting and mitigating attacks as the endpoint cannot verify connectivity | |||
to the new address using QUIC PATH_CHALLENGE and PATH_RESPONSE frames.</t> | 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 t o other | <t>In addition, a change of IP address or port is also an input signal t o other | |||
internal mechanisms in QUIC. When a path change is detected, path-dependent | internal mechanisms in QUIC. When a path change is detected, path-dependent | |||
variables like congestion control parameters will be reset protecting | variables like congestion control parameters will be reset, which protects | |||
the new path from overload.</t> | the new path from overload.</t> | |||
</section> | </section> | |||
<section anchor="sec-loadbalancing"> | <section anchor="sec-loadbalancing"> | |||
<name>Server Cooperation with Load Balancers</name> | <name>Server Cooperation with Load Balancers</name> | |||
<t>In the case of networking architectures that include load balancers, | <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 | 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 | about the desired treatment of a flow to the load balancers. Guidance on | |||
assigning connection IDs is given in | assigning connection IDs is given in | |||
<xref target="QUIC-APPLICABILITY"/>. <xref target="QUIC-LB"/> | <xref target="RFC9308"/>. <xref target="I-D.ietf-quic-load-balancers"/> | |||
describes a system for coordinating selection and use of connection IDs between | describes a system for coordinating selection and use of connection IDs between | |||
load-balancers and servers.</t> | load balancers and servers.</t> | |||
</section> | </section> | |||
<section anchor="sec-filtering"> | <section anchor="sec-filtering"> | |||
<name>Filtering Behavior</name> | <name>Filtering Behavior</name> | |||
<t><xref target="RFC4787"/> describes possible packet filtering behavior | <t><xref target="RFC4787"/> describes | |||
s that relate to NATs | possible packet-filtering behaviors that relate to NATs but are often | |||
but is often also used is other scenarios where packet filtering is desired. | also used in other scenarios where packet filtering is desired. | |||
Though the guidance there holds, a particularly unwise behavior admits a | Though the guidance there holds, a particularly unwise behavior admits | |||
handful of UDP packets and then makes a decision to whether or not filter | a handful of UDP packets and then makes a decision to whether or not | |||
later packets in the same connection. | filter later packets in the same connection. QUIC applications are | |||
QUIC applications are encouraged to fall back to TCP if early packets do | encouraged to fall back to TCP if early packets do not arrive at their | |||
not arrive at their destination <xref target="QUIC-APPLICABILITY"/>, as QUIC is | destination <xref target="RFC9308"/>, as QUIC is | |||
based on UDP and there are known blocks of UDP traffic (see <xref target="sec-ud | based on UDP and there are known blocks of UDP traffic (see <xref | |||
p-1312"/>). | target="sec-udp-1312"/>). Admitting a few packets allows the QUIC | |||
Admitting a few packets allows the QUIC endpoint to determine that the path | endpoint to determine that the path accepts QUIC. Sudden drops | |||
accepts QUIC. Sudden drops afterwards will result in slow and costly timeouts | afterwards will result in slow and costly timeouts before abandoning | |||
before abandoning the connection.</t> | the connection.</t> | |||
</section> | </section> | |||
<section anchor="sec-udp-1312"> | <section anchor="sec-udp-1312"> | |||
<name>UDP Blocking, Throttling, and NAT Binding</name> | <name>UDP Blocking, Throttling, and NAT Binding</name> | |||
<t>Today, UDP is the most prevalent DDoS vector, since it is easy for co mpromised | <t>Today, UDP is the most prevalent DDoS vector, since it is easy for co mpromised | |||
non-admin applications to send a flood of large UDP packets (while with TCP the | 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 | attacker gets throttled by the congestion controller) or to craft reflection and | |||
amplification attacks. Some networks therefore block UDP traffic. | amplification attacks; therefore, some networks block UDP traffic. | |||
With increased deployment of QUIC, there is also an increased need to allow | 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 | 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 | 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 | 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 | 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 | 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, | increase over time, using such a limit is not recommended; if this is done, | |||
limits might need to be adapted dynamically.</t> | limits might need to be adapted dynamically.</t> | |||
<t>Further, if UDP traffic is desired to be throttled, it is recommended to | <t>Further, if UDP traffic is desired to be throttled, it is recommended to | |||
block individual | block individual | |||
QUIC flows entirely rather than dropping packets indiscriminately. | QUIC flows entirely rather than dropping packets indiscriminately. | |||
When the handshake is blocked, QUIC-capable applications may fall back | When the handshake is blocked, QUIC-capable applications may fall back | |||
to TCP. However, blocking a random fraction of QUIC packets across | to TCP. However, blocking a random fraction of QUIC packets across | |||
4-tuples will allow many QUIC handshakes to complete, preventing TCP fallback, | 4-tuples will allow many QUIC handshakes to complete, preventing TCP fallback, b | |||
but these connections will suffer from | ut | |||
these connections will suffer from | ||||
severe packet loss (see also <xref target="sec-filtering"/>). Therefore, UDP thr ottling | severe packet loss (see also <xref target="sec-filtering"/>). Therefore, UDP thr ottling | |||
should be realized by per-flow policing, as opposed to per-packet | should be realized by per-flow policing as opposed to per-packet | |||
policing. Note that this per-flow policing should be stateless to avoid | policing. Note that this per-flow policing should be stateless to avoid | |||
problems with stateful treatment of QUIC flows (see <xref target="sec-stateful"/ >), | 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 | for example, blocking a portion of the space of values of a hash function | |||
over the addresses and ports in the UDP datagram. | over the addresses and ports in the UDP datagram. | |||
While QUIC endpoints are often able to survive address changes, e.g., by NAT | 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 | 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> | the risk of black-holing an active connection when the address changes.</t> | |||
<t>Note that some source ports are assumed to be reflection attack vecto rs by some | <t>Note that some source ports are assumed to be reflection attack vecto rs by some | |||
servers; see <xref section="8.1" sectionFormat="of" target="QUIC-APPLICABILITY"/ >. As a result, NAT | servers; see <xref section="8.1" sectionFormat="of" target="RFC9308"/>. As a res ult, NAT | |||
binding to these source ports can result in that traffic being blocked.</t> | binding to these source ports can result in that traffic being blocked.</t> | |||
</section> | </section> | |||
<section anchor="sec-ddos-dec"> | <section anchor="sec-ddos-dec"> | |||
<name>DDoS Detection and Mitigation</name> | <name>DDoS Detection and Mitigation</name> | |||
<t>On-path observation of the transport headers of packets can be used f or various | <t>On-path observation of the transport headers of packets can be used f or various | |||
security functions. For example, Denial of Service (DoS) and Distributed DoS | security functions. For example, Denial of Service (DoS) and Distributed DoS | |||
(DDoS) attacks against the infrastructure or against an endpoint can be | (DDoS) attacks against the infrastructure or against an endpoint can be | |||
detected and mitigated by characterising anomalous traffic. | detected and mitigated by characterizing anomalous traffic. | |||
Other uses include support for security audits (e.g., verifying the | Other uses include support for security audits (e.g., verifying the | |||
compliance with ciphersuites); client and application fingerprinting for | compliance with cipher suites), client and application fingerprinting for | |||
inventory; and to provide alerts for network intrusion detection and other | inventory, and providing alerts for network intrusion detection and other | |||
next generation firewall functions.</t> | next-generation firewall functions.</t> | |||
<t>Current practices in detection and mitigation of DDoS | <t>Current practices in detection and mitigation of DDoS | |||
attacks generally involve classification of incoming traffic (as | attacks generally involve classification of incoming traffic (as | |||
packets, flows, or some other aggregate) into "good" (productive) and "bad" | packets, flows, or some other aggregate) into "good" (productive) and "bad" | |||
(DDoS) traffic, and then differential treatment of this traffic to forward only | (DDoS) traffic, and then differential treatment of this traffic to forward only | |||
good traffic. This operation is often done in a separate specialized mitigation | good traffic. This operation is often done in a separate specialized mitigation | |||
environment through which all traffic is filtered; a generalized architecture | environment through which all traffic is filtered; a generalized architecture | |||
for separation of concerns in mitigation is given in | for separation of concerns in mitigation is given in | |||
<xref target="DOTS-ARCH"/>.</t> | <xref target="RFC8811"/>.</t> | |||
<t>Efficient classification of this DDoS traffic in the mitigation envir onment | <t>Efficient classification of this DDoS traffic in the mitigation envir onment | |||
is key to the success of this approach. Limited first-packet garbage detection | 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 | as in <xref target="sec-garbage"/> and stateful tracking of QUIC traffic as ment | |||
ioned in | ||||
<xref target="sec-stateful"/> above may be useful during classification.</t> | <xref target="sec-stateful"/> above may be useful during classification.</t> | |||
<t>Note that the use of a connection ID to support connection migration | <t>Note that using a connection ID to support connection migration rende | |||
renders | rs | |||
5-tuple based filtering insufficient to detect active flows and requires more | 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 | 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 | 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 | 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 | 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 | the server's connection IDs. However, QUIC's linkability resistance ensures that | |||
a deliberate connection migration is accompanied by a change in the connection | 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 | ID. In this case, the connection ID cannot be used to distinguish valid, active | |||
traffic from new attack traffic.</t> | traffic from new attack traffic.</t> | |||
<t>It is also possible for | <t>It is also possible for | |||
endpoints to directly support security functions such as DoS | endpoints to directly support security functions such as DoS | |||
classification and mitigation. | classification and mitigation. | |||
Endpoints can cooperate with an in-network device directly by e.g., | Endpoints can cooperate with an in-network device directly by e.g., | |||
sharing information about connection IDs.</t> | sharing information about connection IDs.</t> | |||
<t>Another potential method could use an | <t>Another potential method could use an | |||
on-path network device that relies on pattern inferences in the traffic and | on-path network device that relies on pattern inferences in the traffic and | |||
heuristics or machine learning instead of processing observed header | heuristics or machine learning instead of processing observed header | |||
information.</t> | information.</t> | |||
<t>However, it is questionable whether connection migrations must be sup ported | <t>However, it is questionable whether connection migrations must be sup ported | |||
during a DDoS attack. While unintended migration without a connection ID | during a DDoS attack. While unintended migration without a connection ID | |||
change can be more easily supported, it might be acceptable to not | change can be supported much easier, it might be acceptable to not | |||
support migrations of active QUIC connections that are not visible to | support migrations of active QUIC connections that are not visible to | |||
the network functions performing the DDoS detection. | the network functions performing the DDoS detection. | |||
As soon as the connection blocking is detected by the client, | As soon as the connection blocking is detected by the client, | |||
the client may be able to rely on the 0-RTT data mechanism | the client may be able to rely on the 0-RTT data mechanism | |||
provided by QUIC. When clients migrate to a new path, they should be prepared | 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> | for the migration to fail and attempt to reconnect quickly.</t> | |||
<t>Beyond in-network DDoS protection mechanisms, TCP syncookies <xref ta rget="RFC4937"/> | <t>Beyond in-network DDoS protection mechanisms, TCP SYN cookies <xref t arget="RFC4987"/> | |||
are a well-established method of mitigating some | are a well-established method of mitigating some | |||
kinds of TCP DDoS attacks. QUIC Retry packets are the functional analogue to | kinds of TCP DDoS attacks. QUIC Retry packets are the functional analogue to | |||
syncookies, forcing clients to prove possession of their IP address before | SYN cookies, forcing clients to prove possession of their IP address before | |||
committing server state. However, there are safeguards in QUIC against | committing server state. However, there are safeguards in QUIC against | |||
unsolicited injection of these packets by intermediaries who do not have consent | unsolicited injection of these packets by intermediaries who do not have consent | |||
of the end server. See <xref target="QUIC-RETRY"/> for standard | of the end server. See <xref target="I-D.ietf-quic-retry-offload"/> for standard | |||
ways for intermediaries to send Retry packets on behalf of consenting servers.</ t> | ways for intermediaries to send Retry packets on behalf of consenting servers.</ t> | |||
</section> | </section> | |||
<section anchor="quality-of-service-handling-and-ecmp-routing"> | <section anchor="quality-of-service-handling-and-ecmp-routing"> | |||
<name>Quality of Service Handling and ECMP Routing</name> | <name>Quality of Service Handling and ECMP Routing</name> | |||
<t>It is expected that any QoS handling in the network, e.g., based on u se of | <t>It is expected that any QoS handling in the network, e.g., based on u se of | |||
DiffServ Code Points (DSCPs) <xref target="RFC2475"/> as well as Equal-Cost | 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) | 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 active QUIC connection | and as such that all packets belonging to the same active QUIC connection | |||
get uniform treatment.</t> | get uniform treatment.</t> | |||
<t>Using ECMP to distribute packets from a single flow across multiple | <t>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 | network paths or any other nonuniform treatment of packets belong to the same | |||
connection could result in variations in order, delivery rate, and drop rate. | 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 | As feedback about loss or delay of each packet is used as input to | |||
the congestion controller, these variations could adversely affect performance. | the congestion controller, these variations could adversely affect performance. | |||
Depending on the loss recovery mechanism implemented, QUIC may be | Depending on the loss recovery mechanism that is implemented, QUIC may be | |||
more tolerant of packet re-ordering than typical TCP traffic (see | more tolerant of packet reordering than typical TCP traffic (see | |||
<xref target="packetnumber"/>). However, the recovery mechanism used by a flow c annot be | <xref target="packetnumber"/>). However, the recovery mechanism used by a flow c annot be | |||
known by the network and therefore reordering tolerance should be | known by the network and therefore reordering tolerance should be | |||
considered as unknown.</t> | considered as unknown.</t> | |||
<t>Note that the 5-tuple of a QUIC connection can change due to migratio n. | <t>Note that the 5-tuple of a QUIC connection can change due to migratio n. | |||
In this case different flows are observed by the path and maybe be treated | In this case different flows are observed by the path and may be treated | |||
differently, as congestion control is usually reset on migration (see also | differently, as congestion control is usually reset on migration (see also | |||
<xref target="sec-flow-association"/>).</t> | <xref target="sec-flow-association"/>).</t> | |||
</section> | </section> | |||
<section anchor="handling-icmp-messages"> | <section anchor="handling-icmp-messages"> | |||
<name>Handling ICMP Messages</name> | <name>Handling ICMP Messages</name> | |||
<t>Datagram Packetization Layer PMTU Discovery (PLPMTUD) can be used by | <t>Datagram Packetization Layer PMTU Discovery (DPLPMTUD) can be used by | |||
QUIC to | QUIC to | |||
probe for the supported PMTU. PLPMTUD optionally uses ICMP messages (e.g., | probe for the supported PMTU. DPLPMTUD optionally uses ICMP messages (e.g., | |||
IPv6 Packet Too Big messages). Given known attacks with the use of ICMP | IPv6 Packet Too Big (PTB) messages). Given known attacks with the use of ICMP | |||
messages, the use of PLPMTUD in QUIC has been designed to safely use but | messages, the use of DPLPMTUD in QUIC has been designed to safely use but | |||
not rely on receiving ICMP feedback (see | not rely on receiving ICMP feedback (see | |||
<xref section="14.2.1." sectionFormat="of" target="QUIC-TRANSPORT"/>).</t> | <xref section="14.2.1" sectionFormat="of" target="RFC9000"/>).</t> | |||
<t>Networks are recommended to forward these ICMP messages and retain as much of | <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 | the original packet as possible without exceeding the minimum MTU for the IP | |||
version when generating ICMP messages as recommended in <xref target="RFC1812"/> | version when generating ICMP messages as recommended in <xref target="RFC1812"/> | |||
and <xref target="RFC4443"/>.</t> | and <xref target="RFC4443"/>.</t> | |||
</section> | </section> | |||
<section anchor="guiding-path-mtu"> | <section anchor="guiding-path-mtu"> | |||
<name>Guiding Path MTU</name> | <name>Guiding Path MTU</name> | |||
<t>Some network segments support 1500-byte packets, | <t>Some network segments support 1500-byte packets, | |||
but can only do so by fragmenting at a | but can only do so by fragmenting at a | |||
lower layer before traversing a network segment with a smaller MTU, | lower layer before traversing a network segment with a smaller MTU, | |||
and then reassembling within the network segment. | and then reassembling within the network segment. | |||
This is permissible even when the IP layer is IPv6 or IPv4 with the DF bit set, | This is permissible even when the IP layer is IPv6 or IPv4 with the Don't Fragme nt (DF) bit set, | |||
because fragmentation occurs below the IP layer. | because fragmentation occurs below the IP layer. | |||
However, this process can add to compute | However, this process can add to compute | |||
and memory costs, leading to a bottleneck that limits network capacity. In such | 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 | networks, this generates a desire to influence a majority of senders to use | |||
smaller packets, to avoid exceeding limited reassembly capacity.</t> | smaller packets to avoid exceeding limited reassembly capacity.</t> | |||
<t>For TCP, MSS clamping (<xref section="3.2" sectionFormat="of" target= | <t>For TCP, Maximum Segment Size (MSS) clamping (<xref section="3.2" sec | |||
"RFC4459"/>) is often used to change | tionFormat="of" target="RFC4459"/>) is often used to change | |||
the sender's TCP maximum segment size, but QUIC requires a different approach. | the sender's TCP maximum segment size, but QUIC requires a different approach. | |||
<xref section="14" sectionFormat="of" target="QUIC-TRANSPORT"/> advises senders | <xref section="14" sectionFormat="of" target="RFC9000"/> advises senders to prob | |||
to probe larger sizes using | e larger sizes using DPLPMTUD <xref target="RFC8899"/> or Path | |||
Datagram Packetization Layer PMTU Discovery (<xref target="DPLPMTUD"/>) or Path | Maximum Transmission Unit Discovery (PMTUD) <xref target="RFC1191"/> <xref targe | |||
Maximum Transmission Unit Discovery (PMTUD: <xref target="RFC1191"/> and <xref t | t="RFC8201"/>. | |||
arget="RFC8201"/>). | ||||
This mechanism encourages senders to approach the maximum packet size, which | This mechanism encourages senders to approach the maximum packet size, which | |||
could then cause fragmentation within a network segment of which | could then cause fragmentation within a network segment of which | |||
they may not be aware.</t> | they may not be aware.</t> | |||
<t>If path performance is limited when forwarding larger packets, an on- path | <t>If path performance is limited when forwarding larger packets, an on- path | |||
device should support a maximum packet size for a specific transport flow | device should support a maximum packet size for a specific transport flow | |||
and then consistently drop all packets that exceed the configured size | and then consistently drop all packets that exceed the configured size | |||
when the inner IPv4 packet has DF set, or IPv6 is used.</t> | when the inner IPv4 packet has DF set or IPv6 is used.</t> | |||
<t>Networks with configurations that would lead to fragmentation of larg e | <t>Networks with configurations that would lead to fragmentation of larg e | |||
packets within a network segment should drop such packets rather than | packets within a network segment should drop such packets rather than | |||
fragmenting them. Network operators who plan to implement a more | fragmenting them. Network operators who plan to implement a more | |||
selective policy may start by focusing on QUIC.</t> | selective policy may start by focusing on QUIC.</t> | |||
<t>QUIC flows cannot always be easily distinguished from other UDP traff ic, but | <t>QUIC flows cannot always be easily distinguished from other UDP traff ic, but | |||
we assume at least some portion of QUIC traffic can be identified | we assume at least some portion of QUIC traffic can be identified | |||
(see <xref target="sec-identifying"/>). For networks supporting QUIC, it is reco mmended | (see <xref target="sec-identifying"/>). For networks supporting QUIC, it is reco mmended | |||
that a path drops any packet larger than the fragmentation size. | that a path drops any packet larger than the fragmentation size. | |||
When a QUIC endpoint uses DPLPMTUD, it will use a QUIC probe packet to | When a QUIC endpoint uses DPLPMTUD, it will use a QUIC probe packet to | |||
discover the PMTU. If this probe is lost, it will not impact the flow of | discover the PMTU. If this probe is lost, it will not impact the flow of | |||
QUIC data.</t> | QUIC data.</t> | |||
<t>IPv4 routers generate an ICMP message when a packet is dropped becaus e the | <t>IPv4 routers generate an ICMP message when a packet is dropped becaus e the | |||
link MTU was exceeded. <xref target="RFC8504"/> specifies how an IPv6 node gener ates an | link MTU was exceeded. <xref target="RFC8504"/> specifies how an IPv6 node gener ates an | |||
ICMPv6 Packet Too Big message (PTB) in this case. PMTUD relies upon an | ICMPv6 PTB in this case. PMTUD relies upon an | |||
endpoint receiving such PTB messages <xref target="RFC8201"/>, whereas DPLPMTUD does not | endpoint receiving such PTB messages <xref target="RFC8201"/>, whereas DPLPMTUD does not | |||
reply upon these messages, but still can optionally use these to improve | reply upon these messages, but can still optionally use these to improve | |||
performance <xref section="4.6" sectionFormat="of" target="DPLPMTUD"/>.</t> | performance <xref section="4.6" sectionFormat="of" target="RFC8899"/>.</t> | |||
<t>A network cannot know in advance which discovery method is used by a QUIC | <t>A network cannot know in advance which discovery method is used by a QUIC | |||
endpoint, so it should send a PTB message in addition to dropping an | endpoint, so it should send a PTB message in addition to dropping an | |||
oversized packet. A generated PTB message should be compliant with the | oversized packet. A generated PTB message should be compliant with the | |||
validation requirements of <xref section="14.2.1" sectionFormat="of" target="QUI C-TRANSPORT"/>, otherwise | validation requirements of <xref section="14.2.1" sectionFormat="of" target="RFC 9000"/>, otherwise | |||
it will be ignored for PMTU discovery. This provides a signal to the | it will be ignored for PMTU discovery. This provides a signal to the | |||
endpoint to prevent the packet size from growing too large, which can | endpoint to prevent the packet size from growing too large, which can | |||
entirely avoid network segment fragmentation for that flow.</t> | entirely avoid network segment fragmentation for that flow.</t> | |||
<t>Endpoints can cache PMTU information, in the IP-layer cache. This sho rt-term | <t>Endpoints can cache PMTU information in the IP-layer cache. This shor t-term | |||
consistency between the PMTU for flows can help avoid an endpoint using a | consistency between the PMTU for flows can help avoid an endpoint using a | |||
PMTU that is inefficient. The IP cache can also influence the PMTU value of | PMTU that is inefficient. The IP cache can also influence the PMTU value of | |||
other IP flows that use the same path <xref target="RFC8201"/><xref target="DPLP MTUD"/>, | other IP flows that use the same path <xref target="RFC8201"/> <xref target="RFC 8899"/>, | |||
including IP packets carrying | including IP packets carrying | |||
protocols other than QUIC. The representation of an IP path is | protocols other than QUIC. The representation of an IP path is | |||
implementation-specific <xref target="RFC8201"/>.</t> | implementation specific <xref target="RFC8201"/>.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="iana-considerations"> | <section anchor="iana-considerations"> | |||
<name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
<t>This document has no actions for IANA.</t> | <t>This document has no actions for IANA.</t> | |||
</section> | </section> | |||
<section anchor="security-considerations"> | <section anchor="security-considerations"> | |||
<name>Security Considerations</name> | <name>Security Considerations</name> | |||
<t>QUIC is an encrypted and authenticated transport. That means, once the | <t>QUIC is an encrypted and authenticated transport. That means once the | |||
cryptographic handshake is complete, QUIC endpoints discard most packets that | cryptographic handshake is complete, QUIC endpoints discard most packets that | |||
are not authenticated, greatly limiting the ability of an attacker to interfere | are not authenticated, greatly limiting the ability of an attacker to interfere | |||
with existing connections.</t> | with existing connections.</t> | |||
<t>However, some information is still observable, as supporting manageabil | <t>However, some information is still observable as supporting manageabili | |||
ity of | ty of | |||
QUIC traffic inherently involves tradeoffs with the confidentiality of QUIC's | QUIC traffic inherently involves trade-offs with the confidentiality of QUIC's | |||
control information; this entire document is therefore security-relevant.</t> | control information; this entire document is therefore security-relevant.</t> | |||
<t>More security considerations for QUIC are discussed in <xref target="QU | <t>More security considerations for QUIC are discussed in <xref target="RF | |||
IC-TRANSPORT"/> | C9000"/> | |||
and <xref target="QUIC-TLS"/>, generally considering active or passive attackers | and <xref target="RFC9001"/>, which generally consider active or passive attacke | |||
in the | rs in the | |||
network as well as attacks on specific QUIC mechanism.</t> | network as well as attacks on specific QUIC mechanism.</t> | |||
<t>Version Negotiation packets do not contain any mechanism to prevent ver sion | <t>Version Negotiation packets do not contain any mechanism to prevent ver sion | |||
downgrade attacks. However, future versions of QUIC that use Version Negotiation | downgrade attacks. However, future versions of QUIC that use Version Negotiation | |||
packets are required to define a mechanism that is robust against version | packets are required to define a mechanism that is robust against version | |||
downgrade attacks. Therefore, a network node should not attempt to impact | downgrade attacks. Therefore, a network node should not attempt to impact | |||
version selection, as version downgrade may result in connection failure.</t> | version selection, as version downgrade may result in connection failure.</t> | |||
</section> | </section> | |||
<section anchor="contributors"> | ||||
<name>Contributors</name> | ||||
<t>The following people have contributed significant text to and/or | ||||
feedback on this document:</t> | ||||
<ul spacing="normal"> | ||||
<li>Chris Box</li> | ||||
<li>Dan Druta</li> | ||||
<li>David Schinazi</li> | ||||
<li>Gorry Fairhurst</li> | ||||
<li>Ian Swett</li> | ||||
<li>Igor Lubashev</li> | ||||
<li>Jana Iyengar</li> | ||||
<li>Jared Mauch</li> | ||||
<li>Lars Eggert</li> | ||||
<li>Lucas Purdue</li> | ||||
<li>Marcus Ihlar</li> | ||||
<li>Mark Nottingham</li> | ||||
<li>Martin Duke</li> | ||||
<li>Martin Thomson</li> | ||||
<li>Matt Joras</li> | ||||
<li>Mike Bishop</li> | ||||
<li>Nick Banks</li> | ||||
<li>Thomas Fossati</li> | ||||
<li>Sean Turner</li> | ||||
</ul> | ||||
</section> | ||||
<section anchor="acknowledgments"> | ||||
<name>Acknowledgments</name> | ||||
<t>Special thanks to last call reviewers Elwyn Davies, Barry Leiba, | ||||
Al Morton, and Peter Saint-Andre.</t> | ||||
<t>This work was partially supported by the European Commission under Hori | ||||
zon 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> | </middle> | |||
<back> | <back> | |||
<displayreference target="RFC9000" to="QUIC-TRANSPORT"/> | ||||
<displayreference target="RFC9001" to="QUIC-TLS"/> | ||||
<displayreference target="RFC9002" to="QUIC-RECOVERY"/> | ||||
<displayreference target="RFC9287" to="QUIC-GREASE"/> | ||||
<displayreference target="RFC9114" to="QUIC-HTTP"/> | ||||
<displayreference target="RFC8546" to="WIRE-IMAGE"/> | ||||
<displayreference target="RFC8999" to="QUIC-INVARIANTS"/> | ||||
<displayreference target="I-D.ietf-quic-load-balancers" to="QUIC-LB"/> | ||||
<displayreference target="I-D.ietf-tls-esni" to="TLS-ECH"/> | ||||
<displayreference target="RFC9308" to="QUIC-APPLICABILITY"/> | ||||
<displayreference target="RFC8811" to="DOTS-ARCH"/> | ||||
<displayreference target="I-D.ietf-quic-retry-offload" to="QUIC-RETRY"/> | ||||
<displayreference target="RFC8899" to="DPLPMTUD"/> | ||||
<displayreference target="I-D.ietf-quic-version-negotiation" to="QUIC-VERSIO | ||||
N-NEGOTIATION"/> | ||||
<references> | <references> | |||
<name>References</name> | <name>References</name> | |||
<references> | <references> | |||
<name>Normative References</name> | <name>Normative References</name> | |||
<reference anchor="QUIC-TRANSPORT"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9000. | |||
<front> | xml"/> | |||
<title>QUIC: A UDP-Based Multiplexed and Secure Transport</title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9001. | |||
<author fullname="J. Iyengar" initials="J." role="editor" surname="I | xml"/> | |||
yengar"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="M. Thomson" initials="M." role="editor" surname="T | ||||
homson"> | ||||
<organization/> | ||||
</author> | ||||
<date month="May" year="2021"/> | ||||
<abstract> | ||||
<t>This document defines the core of the QUIC transport protocol. | ||||
QUIC provides applications with flow-controlled streams for structured communic | ||||
ation, low-latency connection establishment, and network path migration. QUIC in | ||||
cludes security measures that ensure confidentiality, integrity, and availabilit | ||||
y in a range of deployment circumstances. Accompanying documents describe the i | ||||
ntegration of TLS for key negotiation, loss detection, and an exemplary congesti | ||||
on control algorithm.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9000"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9000"/> | ||||
</reference> | ||||
<reference anchor="QUIC-TLS"> | ||||
<front> | ||||
<title>Using TLS to Secure QUIC</title> | ||||
<author fullname="M. Thomson" initials="M." role="editor" surname="T | ||||
homson"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="S. Turner" initials="S." role="editor" surname="Tu | ||||
rner"> | ||||
<organization/> | ||||
</author> | ||||
<date month="May" year="2021"/> | ||||
<abstract> | ||||
<t>This document describes how Transport Layer Security (TLS) is u | ||||
sed to secure QUIC.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9001"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9001"/> | ||||
</reference> | ||||
</references> | </references> | |||
<references> | <references> | |||
<name>Informative References</name> | <name>Informative References</name> | |||
<reference anchor="TMA-QOF"> | <reference anchor="TMA-QOF" target="https://link.springer.com/chapter/10 .1007/978-3-642-54999-1_2"> | |||
<front> | <front> | |||
<title>Inline Data Integrity Signals for Passive Measurement (in Pro c. TMA 2014)</title> | <title>Inline Data Integrity Signals for Passive Measurement</title> | |||
<author initials="B." surname="Trammell"> | <author initials="B." surname="Trammell"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author initials="D." surname="Gugelmann"> | <author initials="D." surname="Gugelmann"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author initials="N." surname="Brownlee"> | <author initials="N." surname="Brownlee"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date year="2014" month="April"/> | <date year="2014" month="April"/> | |||
</front> | </front> | |||
<seriesInfo name="DOI" value="10.1007/978-3-642-54999-1_2"/> | ||||
<refcontent>Traffic Measurement and Analysis, TMA 2014, Lecture Notes i | ||||
n Computer Science, vol. 8406, pp. 15-25</refcontent> | ||||
</reference> | </reference> | |||
<reference anchor="IPIM" target="https://arxiv.org/abs/1612.02902"> | <reference anchor="IPIM" target="https://arxiv.org/abs/1612.02902"> | |||
<front> | <front> | |||
<title>In-Protocol Internet Measurement (arXiv preprint 1612.02902)< /title> | <title>Principles for Measurability in Protocol Design</title> | |||
<author initials="M." surname="Allman"> | <author initials="M." surname="Allman"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author initials="R." surname="Beverly"> | <author initials="R." surname="Beverly"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author initials="B." surname="Trammell"> | <author initials="B." surname="Trammell"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date year="2016" month="December" day="09"/> | <date year="2016" month="December" day="09"/> | |||
</front> | </front> | |||
</reference> | </reference> | |||
<reference anchor="QUIC-TIMEOUT" target="https://www.ietf.org/proceeding s/88/slides/slides-88-tsvarea-10.pdf"> | <reference anchor="QUIC-TIMEOUT" target="https://www.ietf.org/proceeding s/88/slides/slides-88-tsvarea-10.pdf"> | |||
<front> | <front> | |||
<title>QUIC (IETF-88 TSV Area Presentation)</title> | <title>QUIC</title> | |||
<author initials="J." surname="Roskind"> | <author initials="J." surname="Roskind"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date year="2013" month="November" day="07"/> | <date year="2013" month="November" day="07"/> | |||
</front> | </front> | |||
<refcontent>IETF-88 TSV Area Presentation</refcontent> | ||||
</reference> | </reference> | |||
<reference anchor="RFC7605"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<front> | FC.7605.xml"/> | |||
<title>Recommendations on Using Assigned Transport Port Numbers</tit | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
le> | FC.9002.xml"/> | |||
<author fullname="J. Touch" initials="J." surname="Touch"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<organization/> | FC.4459.xml"/> | |||
</author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<date month="August" year="2015"/> | FC.9114.xml"/> | |||
<abstract> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<t>This document provides recommendations to designers of applicat | FC.8546.xml"/> | |||
ion and service protocols on how to use the transport protocol port number space | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
and when to request a port assignment from IANA. It provides designer guidance | FC.9065.xml"/> | |||
to requesters or users of port numbers on how to interact with IANA using the p | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
rocesses defined in RFC 6335; thus, this document complements (but does not upda | FC.8999.xml"/> | |||
te) that document.</t> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
</abstract> | FC.7801.xml"/> | |||
</front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<seriesInfo name="BCP" value="165"/> | FC.7838.xml"/> | |||
<seriesInfo name="RFC" value="7605"/> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
<seriesInfo name="DOI" value="10.17487/RFC7605"/> | .ietf-quic-load-balancers.xml"/> | |||
</reference> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<reference anchor="QUIC-RECOVERY"> | FC.9250.xml"/> | |||
<front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<title>QUIC Loss Detection and Congestion Control</title> | FC.7983.xml"/> | |||
<author fullname="J. Iyengar" initials="J." role="editor" surname="I | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
yengar"> | .ietf-quic-version-negotiation.xml"/> | |||
<organization/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
</author> | FC.3449.xml"/> | |||
<author fullname="I. Swett" initials="I." role="editor" surname="Swe | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
tt"> | FC.6066.xml"/> | |||
<organization/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
</author> | FC.7301.xml"/> | |||
<date month="May" year="2021"/> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
<abstract> | .ietf-tls-esni.xml"/> | |||
<t>This document describes loss detection and congestion control m | ||||
echanisms for QUIC.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9002"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9002"/> | ||||
</reference> | ||||
<reference anchor="QUIC-GREASE"> | ||||
<front> | ||||
<title>Greasing the QUIC Bit</title> | ||||
<author fullname="Martin Thomson"> | ||||
<organization>Mozilla</organization> | ||||
</author> | ||||
<date day="8" month="June" year="2022"/> | ||||
<abstract> | ||||
<t> This document describes a method for negotiating the ability | ||||
to send | ||||
an arbitrary value for the second-to-most significant bit in QUIC | ||||
packets. | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-quic-bit-grease-04 | ||||
"/> | ||||
</reference> | ||||
<reference anchor="RFC4459"> | ||||
<front> | ||||
<title>MTU and Fragmentation Issues with In-the-Network Tunneling</t | ||||
itle> | ||||
<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 midd | ||||
le of the network, typically between routers, have certain issues regarding how | ||||
large packets can be handled: whether such packets would be fragmented and reass | ||||
embled (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-t | ||||
rivial problem, and goes on to describe the different solutions and their charac | ||||
teristics at some length. This memo provides information for the Internet commu | ||||
nity.</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 desir | ||||
able in a transport for HTTP, such as stream multiplexing, per-stream flow contr | ||||
ol, and low-latency connection establishment. This document describes a mapping | ||||
of HTTP semantics over QUIC. This document also identifies HTTP/2 features tha | ||||
t 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 inf | ||||
ormation available to an on-path non-participant in a networking protocol. This | ||||
abstraction is intended to shed light on the implications that increased encryp | ||||
tion 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="RFC9065"> | ||||
<front> | ||||
<title>Considerations around Transport Header Confidentiality, Netwo | ||||
rk Operations, and the Evolution of Internet Transport Protocols</title> | ||||
<author fullname="G. Fairhurst" initials="G." surname="Fairhurst"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="C. Perkins" initials="C." surname="Perkins"> | ||||
<organization/> | ||||
</author> | ||||
<date month="July" year="2021"/> | ||||
<abstract> | ||||
<t>To protect user data and privacy, Internet transport protocols | ||||
have supported payload encryption and authentication for some time. Such encrypt | ||||
ion and authentication are now also starting to be applied to the transport prot | ||||
ocol headers. This helps avoid transport protocol ossification by middleboxes, m | ||||
itigate attacks against the transport protocol, and protect metadata about the c | ||||
ommunication. Current operational practice in some networks inspect transport he | ||||
ader information within the network, but this is no longer possible when those t | ||||
ransport headers are encrypted.</t> | ||||
<t>This document discusses the possible impact when network traffi | ||||
c uses a protocol with an encrypted transport header. It suggests issues to cons | ||||
ider when designing new transport protocols or features.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9065"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9065"/> | ||||
</reference> | ||||
<reference anchor="QUIC-INVARIANTS"> | ||||
<front> | ||||
<title>Version-Independent Properties of QUIC</title> | ||||
<author fullname="M. Thomson" initials="M." surname="Thomson"> | ||||
<organization/> | ||||
</author> | ||||
<date month="May" year="2021"/> | ||||
<abstract> | ||||
<t>This document defines the properties of the QUIC transport prot | ||||
ocol that are common to all versions of the protocol.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8999"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8999"/> | ||||
</reference> | ||||
<reference anchor="RFC7801"> | ||||
<front> | ||||
<title>GOST R 34.12-2015: Block Cipher "Kuznyechik"</title> | ||||
<author fullname="V. Dolmatov" initials="V." role="editor" surname=" | ||||
Dolmatov"> | ||||
<organization/> | ||||
</author> | ||||
<date month="March" year="2016"/> | ||||
<abstract> | ||||
<t>This document is intended to be a source of information about t | ||||
he Russian Federal standard GOST R 34.12-2015 describing the block cipher with a | ||||
block length of n=128 bits and a key length of k=256 bits, which is also referr | ||||
ed to as "Kuznyechik". This algorithm is one of the set of Russian cryptographi | ||||
c standard algorithms (called GOST algorithms).</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7801"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7801"/> | ||||
</reference> | ||||
<reference anchor="RFC7838"> | ||||
<front> | ||||
<title>HTTP Alternative Services</title> | ||||
<author fullname="M. Nottingham" initials="M." surname="Nottingham"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="P. McManus" initials="P." surname="McManus"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="J. Reschke" initials="J." surname="Reschke"> | ||||
<organization/> | ||||
</author> | ||||
<date month="April" year="2016"/> | ||||
<abstract> | ||||
<t>This document specifies "Alternative Services" for HTTP, which | ||||
allow an origin's resources to be authoritatively available at a separate networ | ||||
k location, possibly accessed with a different protocol configuration.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7838"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7838"/> | ||||
</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="11" month="July" year="2022"/> | ||||
<abstract> | ||||
<t> QUIC address migration allows clients to change their IP add | ||||
ress | ||||
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-balancer | ||||
s-14"/> | ||||
</reference> | ||||
<reference anchor="I-D.ietf-dprive-dnsoquic"> | ||||
<front> | ||||
<title>DNS over Dedicated QUIC Connections</title> | ||||
<author fullname="Christian Huitema"> | ||||
<organization>Private Octopus Inc.</organization> | ||||
</author> | ||||
<author fullname="Sara Dickinson"> | ||||
<organization>Sinodun IT</organization> | ||||
</author> | ||||
<author fullname="Allison Mankin"> | ||||
<organization>Salesforce</organization> | ||||
</author> | ||||
<date day="20" month="April" year="2022"/> | ||||
<abstract> | ||||
<t>This document describes the use of QUIC to provide transport co | ||||
nfidentiality for DNS. The encryption provided by QUIC has similar properties t | ||||
o those provided by TLS, while QUIC transport eliminates the head-of-line blocki | ||||
ng issues inherent with TCP and provides more efficient packet-loss recovery tha | ||||
n UDP. DNS over QUIC (DoQ) has privacy properties similar to DNS over TLS (DoT) | ||||
specified in RFC 7858, and latency characteristics similar to classic DNS over | ||||
UDP. This specification describes the use of DoQ as a general-purpose transport | ||||
for DNS and includes the use of DoQ for stub to recursive, recursive to authori | ||||
tative, and zone transfer scenarios. | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-dprive-dnsoquic-12 | ||||
"/> | ||||
</reference> | ||||
<reference anchor="RFC7983"> | ||||
<front> | ||||
<title>Multiplexing Scheme Updates for Secure Real-time Transport Pr | ||||
otocol (SRTP) Extension for Datagram Transport Layer Security (DTLS)</title> | ||||
<author fullname="M. Petit-Huguenin" initials="M." surname="Petit-Hu | ||||
guenin"> | ||||
<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 (DT | ||||
LS), Real-time Transport Protocol (RTP), RTP Control Protocol (RTCP), Session Tr | ||||
aversal Utilities for NAT (STUN), Traversal Using Relays around NAT (TURN), and | ||||
ZRTP packets are multiplexed on a single receiving socket. It overrides the gui | ||||
dance from RFC 5764 ("SRTP Extension for DTLS"), which suffered f | ||||
rom 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="I-D.ietf-quic-version-negotiation"> | ||||
<front> | ||||
<title>Compatible Version Negotiation for QUIC</title> | ||||
<author fullname="David Schinazi"> | ||||
<organization>Google LLC</organization> | ||||
</author> | ||||
<author fullname="Eric Rescorla"> | ||||
<organization>Mozilla</organization> | ||||
</author> | ||||
<date day="11" month="July" year="2022"/> | ||||
<abstract> | ||||
<t> QUIC does not provide a complete version negotiation mechani | ||||
sm but | ||||
instead only provides a way for the server to indicate that the | ||||
version the client chose is unacceptable. This document describes a | ||||
version negotiation mechanism that allows a client and server to | ||||
select a mutually supported version. Optionally, if the client's | ||||
chosen version and the negotiated version share a compatible first | ||||
flight format, the negotiation can take place without incurring an | ||||
extra round trip. | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-quic-version-negot | ||||
iation-09"/> | ||||
</reference> | ||||
<reference anchor="RFC3449"> | ||||
<front> | ||||
<title>TCP Performance Implications of Network Path Asymmetry</title | ||||
> | ||||
<author fullname="H. Balakrishnan" initials="H." surname="Balakrishn | ||||
an"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="V. Padmanabhan" initials="V." surname="Padmanabhan | ||||
"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="G. Fairhurst" initials="G." surname="Fairhurst"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="M. Sooriyabandara" initials="M." surname="Sooriyab | ||||
andara"> | ||||
<organization/> | ||||
</author> | ||||
<date month="December" year="2002"/> | ||||
<abstract> | ||||
<t>This document describes TCP performance problems that arise bec | ||||
ause of asymmetric effects. These problems arise in several access networks, in | ||||
cluding bandwidth-asymmetric networks and packet radio subnetworks, for differen | ||||
t underlying reasons. However, the end result on TCP performance is the same in | ||||
both cases: performance often degrades significantly because of imperfection an | ||||
d variability in the ACK feedback from the receiver to the sender. The document | ||||
details several mitigations to these effects, which have either been proposed or | ||||
evaluated in the literature, or are currently deployed in networks. These solu | ||||
tions use a combination of local link- layer techniques, subnetwork, and end-to- | ||||
end mechanisms, consisting of: (i) techniques to manage the channel used for the | ||||
upstream bottleneck link carrying the ACKs, typically using header compression | ||||
or reducing the frequency of TCP ACKs, (ii) techniques to handle this reduced AC | ||||
K frequency to retain the TCP sender's acknowledgment-triggered self- clocking a | ||||
nd (iii) techniques to schedule the data and ACK packets in the reverse directio | ||||
n to improve performance in the presence of two-way traffic. Each technique is | ||||
described, together with known issues, and recommendations for use. A summary o | ||||
f the recommendations is provided at the end of the document. This document spe | ||||
cifies an Internet Best Current Practices for the Internet Community, and reques | ||||
ts discussion and suggestions for improvements.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="69"/> | ||||
<seriesInfo name="RFC" value="3449"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3449"/> | ||||
</reference> | ||||
<reference anchor="RFC6066"> | ||||
<front> | ||||
<title>Transport Layer Security (TLS) Extensions: Extension Definiti | ||||
ons</title> | ||||
<author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3 | ||||
rd"> | ||||
<organization/> | ||||
</author> | ||||
<date month="January" year="2011"/> | ||||
<abstract> | ||||
<t>This document provides specifications for existing TLS extensio | ||||
ns. 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_req | ||||
uest. [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 Neg | ||||
otiation 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) extens | ||||
ion for application-layer protocol negotiation within the TLS handshake. For ins | ||||
tances in which multiple application protocols are supported on the same TCP or | ||||
UDP port, this extension allows the application layer to negotiate which protoco | ||||
l 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 Secur | ||||
ity (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> | <reference anchor="RFC9308" target="https://www.rfc-editor.org/info/rfc9 | |||
</abstract> | 308"> | |||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-tls-esni-14"/> | ||||
</reference> | ||||
<reference anchor="RFC3168"> | ||||
<front> | ||||
<title>The Addition of Explicit Congestion Notification (ECN) to IP< | ||||
/title> | ||||
<author fullname="K. Ramakrishnan" initials="K." surname="Ramakrishn | ||||
an"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="S. Floyd" initials="S." surname="Floyd"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="D. Black" initials="D." surname="Black"> | ||||
<organization/> | ||||
</author> | ||||
<date month="September" year="2001"/> | ||||
<abstract> | ||||
<t>This memo specifies the incorporation of ECN (Explicit Congesti | ||||
on Notification) to TCP and IP, including ECN's use of two bits in the IP header | ||||
. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3168"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3168"/> | ||||
</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="Aud | ||||
et"> | ||||
<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 differen | ||||
t 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 th | ||||
at these applications will function properly. This document specifies an Intern | ||||
et Best Current Practices for the Internet Community, and requests discussion an | ||||
d 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 handl | ||||
e 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 requir | ||||
ements will greatly increase the likelihood that these applications will functio | ||||
n 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> | <front> | |||
<title>Applicability of the QUIC Transport Protocol</title> | <title>Applicability of the QUIC Transport Protocol</title> | |||
<author fullname="Mirja Kuehlewind"> | <author fullname="Mirja Kühlewind"> | |||
<organization>Ericsson</organization> | <organization>Ericsson</organization> | |||
</author> | </author> | |||
<author fullname="Brian Trammell"> | <author fullname="Brian Trammell"> | |||
<organization>Google</organization> | <organization>Google Switzerland GmbH</organization> | |||
</author> | ||||
<date day="11" month="July" year="2022"/> | ||||
<abstract> | ||||
<t> This document discusses the applicability of the QUIC transp | ||||
ort | ||||
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 | ||||
-17"/> | ||||
</reference> | ||||
<reference anchor="DOTS-ARCH"> | ||||
<front> | ||||
<title>DDoS Open Threat Signaling (DOTS) Architecture</title> | ||||
<author fullname="A. Mortensen" initials="A." role="editor" surname= | ||||
"Mortensen"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="T. Reddy.K" initials="T." role="editor" surname="R | ||||
eddy.K"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="F. Andreasen" initials="F." surname="Andreasen"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="N. Teague" initials="N." surname="Teague"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="R. Compton" initials="R." surname="Compton"> | ||||
<organization/> | ||||
</author> | ||||
<date month="August" year="2020"/> | ||||
<abstract> | ||||
<t>This document describes an architecture for establishing and ma | ||||
intaining Distributed Denial-of-Service (DDoS) Open Threat Signaling (DOTS) with | ||||
in and between domains. The document does not specify protocols or protocol exte | ||||
nsions, instead focusing on defining architectural relationships, components, an | ||||
d concepts used in a DOTS deployment.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8811"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8811"/> | ||||
</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> | </author> | |||
<date month="June" year="2007"/> | <date month="September" year="2022"/> | |||
<abstract> | ||||
<t>This document describes the IANA considerations for the PPP ove | ||||
r Ethernet (PPPoE) protocol. This memo provides information for the Internet co | ||||
mmunity.</t> | ||||
</abstract> | ||||
</front> | </front> | |||
<seriesInfo name="RFC" value="4937"/> | <seriesInfo name="RFC" value="9308"/> | |||
<seriesInfo name="DOI" value="10.17487/RFC4937"/> | <seriesInfo name="DOI" value="10.17487/RFC9308"/> | |||
</reference> | </reference> | |||
<reference anchor="QUIC-RETRY"> | ||||
<front> | ||||
<title>QUIC Retry Offload</title> | ||||
<author fullname="Martin Duke"> | ||||
<organization>Google</organization> | ||||
</author> | ||||
<author fullname="Nick Banks"> | ||||
<organization>Microsoft</organization> | ||||
</author> | ||||
<date day="28" month="March" year="2022"/> | ||||
<abstract> | ||||
<t> QUIC uses Retry packets to reduce load on stressed servers, | ||||
by | ||||
forcing the client to prove ownership of its address before the | ||||
server commits state. QUIC also has an anti-tampering mechanism to | ||||
prevent the unauthorized injection of Retry packets into a | ||||
connection. However, a server operator may want to offload | ||||
production of Retry packets to an anti-Denial-of-Service agent or | ||||
hardware accelerator. "Retry Offload" is a mechanism for | ||||
coordination between a server and an external generator of Retry | ||||
packets that can succeed despite the anti-tampering mechanism. | ||||
</t> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
</abstract> | FC.9287.xml"/> | |||
</front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<seriesInfo name="Internet-Draft" value="draft-duke-quic-retry-offload | FC.3168.xml"/> | |||
-00"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
</reference> | FC.4787.xml"/> | |||
<reference anchor="RFC2475"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<front> | FC.5382.xml"/> | |||
<title>An Architecture for Differentiated Services</title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<author fullname="S. Blake" initials="S." surname="Blake"> | FC.8811.xml"/> | |||
<organization/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
</author> | FC.4987.xml"/> | |||
<author fullname="D. Black" initials="D." surname="Black"> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
<organization/> | .ietf-quic-retry-offload.xml"/> | |||
</author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<author fullname="M. Carlson" initials="M." surname="Carlson"> | FC.2475.xml"/> | |||
<organization/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
</author> | FC.1812.xml"/> | |||
<author fullname="E. Davies" initials="E." surname="Davies"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<organization/> | FC.4443.xml"/> | |||
</author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<author fullname="Z. Wang" initials="Z." surname="Wang"> | FC.8899.xml"/> | |||
<organization/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
</author> | FC.1191.xml"/> | |||
<author fullname="W. Weiss" initials="W." surname="Weiss"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<organization/> | FC.8201.xml"/> | |||
</author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<date month="December" year="1998"/> | FC.8504.xml"/> | |||
<abstract> | ||||
<t>This document defines an architecture for implementing scalable | ||||
service differentiation in the Internet. This memo provides information for th | ||||
e 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="Bak | ||||
er"> | ||||
<organization/> | ||||
</author> | ||||
<date month="June" year="1995"/> | ||||
<abstract> | ||||
<t>This memo defines and discusses requirements for devices that p | ||||
erform the network layer forwarding function of the Internet protocol suite. [ST | ||||
ANDARDS-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 P | ||||
rotocol 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="Gup | ||||
ta"> | ||||
<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 Con | ||||
trol 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 Transport | ||||
s</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 D | ||||
iscovery (DPLPMTUD). This is a robust method for Path MTU Discovery (PMTUD) for | ||||
datagram Packetization Layers (PLs). It allows a PL, or a datagram application t | ||||
hat uses a PL, to discover whether a network path can support the current size o | ||||
f datagram. This can be used to detect and reduce the message size when a sende | ||||
r encounters a packet black hole. It can also probe a network path to discover w | ||||
hether the maximum packet size can be increased. This provides functionality fo | ||||
r datagram transports that is equivalent to the PLPMTUD specification for TCP, s | ||||
pecified 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 Da | ||||
tagram PMTUD into IETF datagram transports or applications that use datagram tra | ||||
nsports.</t> | ||||
<t>This specification updates RFC 4960, RFC 4821, RFC 6951, RFC 80 | ||||
85, 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 t | ||||
hat passes through a router that has not been so changed, this technique might n | ||||
ot discover the correct Path MTU, but it will always choose a Path MTU as accura | ||||
te as, and in many cases more accurate than, the Path MTU that would be chosen b | ||||
y 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="Hi | ||||
nden"> | ||||
<organization/> | ||||
</author> | ||||
<date month="July" year="2017"/> | ||||
<abstract> | ||||
<t>This document describes Path MTU Discovery (PMTUD) for IP versi | ||||
on 6. It is largely derived from RFC 1191, which describes Path MTU Discovery fo | ||||
r 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 expec | ||||
ted that IPv6 will be deployed in a wide range of devices and situations. Specif | ||||
ying the requirements for IPv6 nodes allows IPv6 to function well and interopera | ||||
te 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> | |||
</references> | </references> | |||
</back> | <section numbered="false" anchor="acknowledgments"> | |||
<!-- ##markdown-source: | <name>Acknowledgments</name> | |||
H4sIAAAAAAAAA+29bXcbR5Ym+D1+RY70wWQ3AJOyLMty185QL7bZJckska7a | <t>Special thanks to last call reviewers <contact fullname="Elwyn | |||
3jlz5iSBBJktIBOVmSDFcml++9znvkTcSICyuu3e3bPbPjNdIoCMjJcb9/0+ | Davies"/>, <contact fullname="Barry Leiba"/>, <contact fullname="Al | |||
dzqdhqEeVtWz4k3ZlFdVeVmv6uGuaJfFcF0Vf/r59EVx0ZVNv2m7oTjr2qGd | Morton"/>, and <contact fullname="Peter Saint-Andre"/>.</t> | |||
t6tQXl521c0z+T57MizaeVOuacBFVy6HaV0Ny+lft/V8uvY/mx4/DYtyqJ6F | <t>This work was partially supported by the European Commission under | |||
Of3fq7a7e1bUzbINod50z4qh2/bDo6Ojb48ehffV3W3bLZ4Vp81QdU01TF9i | Horizon 2020 grant agreement no. 688421 Measurement and Architecture for | |||
5BD6oWwW/7NctQ297a7qw6Z+Vvx3muCk6Gm2XbXs6V93a/zjf4QQyu1w3XbP | a Middleboxed Internet (MAMI), and by the Swiss State Secretariat for | |||
QlFM6f8X9L6elj0r/ritrlfVbd0s+GOZ/Zu6+9dy/FXbXT0rXnX1vO/bhj+p | Education, Research, and Innovation under contract no. 15.0268. This | |||
1mW9elas8evZ+/jr/1bpj2bzdp2/8PkMG7peV6uVe93zri6b/At+2Q9te7Wq | support does not imply endorsement.</t> | |||
ivPbevhb1a1owcUP68sf/buxw/9t0Cdn82v+rqflVwM9T/tY3kx/2K5W07NV | </section> | |||
OfytOObv53QGz4qnR0ePi/9rS3OVp+btthlwFO59ITRtty6H+oYOK+CM4l9F | <section numbered="false" anchor="contributors"> | |||
cfHmZPqnn75/xk8rIZ02q7qpipflUPKRXXUgqPP6qilXfUGPF2dl39MAxZuq | <name>Contributors</name> | |||
7Lddta6aoTioG5DXfIYxi0dHx48PedB0aPhvqv97z17u/ODljHbgqloR7TX7 | <t>The following people have contributed significant text to and/or | |||
f/F2Rnvf3jarquIvmCj5/dOjx/TJ6dnpm9HypnYNIkXmKym7/7O+KTZdtelq | feedback on this document:</t> | |||
+vv4yfGj2dEjIuXPWBGR48kK093/9TuabXVDB3P3eRsylN0VyOB6GDb9sy+/ | <contact fullname="Chris Box"/> | |||
LLsP9c2MKOvL8rL/Ms0sX/qT6fGj6dG39CHu9/Ti9M2rn36+yHaBL/7B6auL | <contact fullname="Dan Druta"/> | |||
76dPnxYX538uTrqqpBOsetoDoo+2+YzV/vOseNf27+16jWd7e3s7A3XzhDdE | <contact fullname="David Schinazi"/> | |||
HFW1qJur/sunT7/sV/Wi6vV/aA7Tob8paQrT46PZZrHMF/TV9Ph4evQNffju | <contact fullname="Gorry Fairhurst"/> | |||
+xffPDn6+pmt7d2rFz/9+dW7f3mGb7494p3gL3549+rk/BUd9/TlLPGwy3qY | <contact fullname="Ian Swett"/> | |||
XtFb+krGevz462/pVkyn04I2lC7hnPjSxXXdF8QGt0wOi7qfb/u+6ov1vRx2 | <contact fullname="Igor Lubashev"/> | |||
iBx2o6Q1oYtCj9FqQ9vwD+v1ZlXPeWd7PIwHv6D3VD3drAKM4bbu8DN6R0HP | <contact fullname="Jana Iyengar"/> | |||
EFkS23xftJuqk6fo8t60qxsaM751uazpxp0OBc2YaLVqFtWiKPuiLB5s+6r7 | <contact fullname="Jared Mauch"/> | |||
gie9LVcP+N5iGuklk0CTvalxIsXVtl6Uzbzin+VvbrueZ1fRBm54R27oNfj0 | <contact fullname="Lars Eggert"/> | |||
9rotump1V8gKA72Rd8U2Y1re0onG4ZbbZs7rmMmGr+vFYlWF8BDXsGsXW/42 | <contact fullname="Lucas Purdue"/> | |||
BF7bL7/8V6Hddydvz89+enfxBznfo48fsdaSRr3ds+1huC55M6pmXm76LXFM | <contact fullname="Marcus Ihlar"/> | |||
2hBiTT+/PJvJrtXM0ujzvrh4fR7ii16f6yuO6RVDixG6u81QlKtVsSnvVm25 | <contact fullname="Mark Nottingham"/> | |||
AEGWvBnrth+I22Leq8RTSVzIO+iG9/RXcVzclnbENA/iJ+uyq2nH+IjS9LHr | <contact fullname="Martin Duke"/> | |||
P15cnE3oeIbrgHOii7hdDTgbW1txWeHP9w1xOwyAB778Ku4U/vxDTu24hx8/ | <contact fullname="Martin Thomson"/> | |||
zsYULcdO6//EqTOV8mYK1fO6QqQ4HrBu5qttNg4t+bq9xe5hlztioQNv13ag | <contact fullname="Matt Joras"/> | |||
O/O3qnA7xYMHnNSHTdvT5lzeKVW3TKc6nQltBK1FWLMQIgmf7XoT75FdwqA3 | <contact fullname="Mike Bishop"/> | |||
CTuI3dtU8wGD2bpIoJYDRpnIKDiWeVfzQBgHEydhvyYStEdk6bpnxBrqOS32 | <contact fullname="Nick Banks"/> | |||
tl7hKHCf6aM08ZlSLqizIepZTId2Sv+zh0q/w6RJq2m7alI0bbYtdcPHHw/9 | <contact fullname="Thomas Fossati"/> | |||
uioXVZfdb1oUvX+9HcpLUi3o9W6/5Ghws+kYiUvRvyuMPsdz1127vbrWGwAe | <contact fullname="Sean Turner"/> | |||
hrdUc9uBnD2AsP5y+u7V9PTNyQ+vcDeefv34CcjpldwMfYqvQrrzq/KOpqtX | </section> | |||
o+hZawDZrqvSKGpV9b1fM6jgpu5rrCY/ffy+wdrx2Zy4tpzuxYsz2u3TfcuY | </back> | |||
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 | ||||
stmTLAQBAA== | ||||
</rfc> | </rfc> | |||
End of changes. 201 change blocks. | ||||
1773 lines changed or deleted | 546 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |