<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-quic-multipath-14" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="Multipath QUIC">Multipath Extension for QUIC</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-quic-multipath-14"/>
    <author fullname="刘彦梅" asciiFullname="Yanmei Liu" role="editor">
      <organization>Alibaba Inc.</organization>
      <address>
        <email>miaoji.lym@alibaba-inc.com</email>
      </address>
    </author>
    <author fullname="马云飞" asciiFullname="Yunfei Ma">
      <organization>Uber Technologies Inc.</organization>
      <address>
        <email>yunfei.ma@uber.com</email>
      </address>
    </author>
    <author initials="Q." surname="De Coninck" fullname="Quentin De Coninck" role="editor">
      <organization>University of Mons (UMONS)</organization>
      <address>
        <email>quentin.deconinck@umons.ac.be</email>
      </address>
    </author>
    <author initials="O." surname="Bonaventure" fullname="Olivier Bonaventure">
      <organization>UCLouvain and Tessares</organization>
      <address>
        <email>olivier.bonaventure@uclouvain.be</email>
      </address>
    </author>
    <author initials="C." surname="Huitema" fullname="Christian Huitema">
      <organization>Private Octopus Inc.</organization>
      <address>
        <email>huitema@huitema.net</email>
      </address>
    </author>
    <author initials="M." surname="Kuehlewind" fullname="Mirja Kuehlewind" role="editor">
      <organization>Ericsson</organization>
      <address>
        <email>mirja.kuehlewind@ericsson.com</email>
      </address>
    </author>
    <date/>
    <area>Transport</area>
    <workgroup>QUIC Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 80?>

<t>This document specifies a multipath extension for the QUIC protocol to
enable the simultaneous usage of multiple paths for a single connection.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    QUIC Working Group mailing list (quic@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/quic/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/quicwg/multipath"/>.</t>
    </note>
  </front>
  <middle>
    <?line 85?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document specifies an extension to QUIC version 1 <xref target="QUIC-TRANSPORT"/>
to enable the simultaneous usage of multiple paths for a single
connection, using the same or different 4-tuples.</t>
      <t>Connection migration as specified in <xref section="9" sectionFormat="of" target="QUIC-TRANSPORT"/>
directs a peer to switch sending through
a new preferred path, and, if successful, to release resources
associated with the old path. The multipath extension specified in this document
builds on this mechanism but introduces a path identifier, or path ID,
to manage connection IDs and packet number spaces per path, enabling the use
of multiple paths simultaneously.</t>
      <t>The connection ID of a packet binds the packet to a path ID, and therefore
to a packet number space. That means each connection ID is associated with exactly one path ID
but multiple connection IDs are usually issued for each path ID.
The same path ID is used in both directions, starting with 0 for the initial path.
Path ID are generated monotonically increasing and cannot be reused.</t>
      <t>This extension uses multiple packet number spaces, one for each path.
Each path ID-specific packet number space starts at packet number 0.
As such, each path maintains distinct packet number states for sending and receiving packets, as in <xref target="QUIC-TRANSPORT"/>.
Using multiple packet number spaces enables direct use of the
loss detection and congestion control mechanisms defined in
<xref target="QUIC-RECOVERY"/> on a per-path basis.
However, use of multiple packet number spaces requires
non-zero connection IDs in order to identify the path and the respective
packet number space as well as a modified AEAD calculation including the
path ID (see <xref target="nonce"/>).</t>
      <t>As such, this extension specifies a departure from the specification of
path management in <xref section="9" sectionFormat="of" target="QUIC-TRANSPORT"/> and therefore
requires a new transport parameter, as specified in <xref target="nego"/>, to indicate
support of the multipath extension specified in this document.</t>
      <t>Further, this document specifies the needed path management mechanisms for path
initiation in <xref target="path-initiation"/>, handling of per-path connection IDs in <xref target="consume-retire-cid"/>,
signaling of preferred path usage in <xref target="path-state"/>, and explicit
removal of paths that have been abandoned in <xref target="path-close"/>.
Note that in this extension, a QUIC server does not initiate the creation
of a path, but it has to validate a new path created by a client.</t>
      <t>This extension does not cover address discovery and management. Addresses
and the actual decision to setup or tear down paths are assumed
to be handled by the application. But this document does not prevent future extensions from
defining mechanisms to cope with the remaining scenarios.</t>
      <t>Further, this document does not specify scheduling algorithms that define
how multiple, simultaneously open paths are used to send packets.
As these differ depending on application requirements,
only some basic implementation guidance is discussed in <xref target="impl-consideration"/>.
This extension can be used with different scheduling algorithms that,
e.g., can range from support for failover to simulatenous
use of the aggregated capacity across all open paths.
There are currently no IETF specifications for simultaneously
(concurrently) using multiple paths.</t>
      <t>Specifically, while failover between Wi-Fi
and mobile networks is a well-known multipath use case,
it only temporarily uses two paths at the same time
to avoid transmission pauses.
Simultaneous path usage generally, however, needs more consideration
than specified in this document to avoid negative performance
impacts, e.g., when stream data is distributed over multiple paths with
different delays.</t>
      <section anchor="definition">
        <name>Conventions and Definitions</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP 14
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
capitals, as shown here.</t>
        <t>We assume that the reader is familiar with the terminology used in
<xref target="QUIC-TRANSPORT"/>. When this document uses the term "path", it refers
to the notion of "network path" used in <xref target="QUIC-TRANSPORT"/>.</t>
      </section>
    </section>
    <section anchor="transport-handshake-and-cryptographic-packet-protection">
      <name>Transport Handshake and Cryptographic Packet Protection</name>
      <t>This document defines a new transport parameter initial_max_path_id
to indicate the support of the multipath extension.
If any of the endpoints does not advertise the initial_max_path_id transport
parameter, then the endpoints MUST NOT use any frame or
mechanism defined in this document.
If the use of the multipath extension is agreed after handshake completion,
a new AEAD usage applies to all 1-RTT packets, as specified in Section <xref target="nonce"/>
and new paths can be used, as specified in Section <xref target="path-management"/>.</t>
      <section anchor="nego">
        <name>initial_max_path_id Transport Parameter</name>
        <t>The new transport parameter is defined as follows:</t>
        <ul spacing="normal">
          <li>
            <t>initial_max_path_id (current version uses 0x0f739bbc1b666d0d): a
variable-length integer specifying the maximum path ID
an endpoint is willing to maintain at connection initiation.
This value MUST NOT exceed 2^32-1, the maximum allowed value for the path ID due to
restrictions on the nonce calculation (see <xref target="nonce"/>).</t>
          </li>
        </ul>
        <t>The initial_max_path_id transport parameter limits the initial
maximum number of open paths that can be used during a connection.
For example, if initial_max_path_id is set to 1, only connection IDs
associated with path IDs 0 and 1 should be issued by the peer.
If an endpoint receives an initial_max_path_id transport parameter with value 0,
the peer aims to enable the multipath extension without allowing extra paths immediately.</t>
        <t>Setting initial_max_path_id parameter is equivalent to sending a
MAX_PATH_ID frame (<xref target="max-paths-frame"/>) with the same value.
As such to allow for the use of more paths later,
endpoints can send the MAX_PATH_ID frame to increase the maximum allowed path ID.</t>
        <t>If an initial_max_path_id transport parameter value higher than 2^32-1
is received, the receiver MUST close the connection with an error of type
TRANSPORT_PARAMETER_ERROR.</t>
        <t>When advertising the initial_max_path_id transport parameter, endpoints
MUST use non-zero length Source and Destination Connection IDs.
If an initial_max_path_id transport
parameter is received and the carrying packet contains a zero-length
connection ID, the receiver MUST treat this as a connection error of type
PROTOCOL_VIOLATION and close the connection.</t>
        <t>Cipher suites with a nonce shorter than 12 bytes cannot be used together with
the multipath extension. If such a cipher suite is selected and the use of the
multipath extension is supported, endpoints MUST abort the handshake with a
an error of type TRANSPORT_PARAMETER_ERROR.</t>
        <t>The initial_max_path_id parameter MUST NOT be remembered
for use in a subsequent connection (<xref section="7.4.1" sectionFormat="of" target="QUIC-TRANSPORT"/>).</t>
      </section>
      <section anchor="relation-to-other-transport-parameters">
        <name>Relation to Other Transport Parameters</name>
        <t>When the QUIC multipath extension is used, the active_connection_id_limit transport parameter
<xref target="QUIC-TRANSPORT"/> limits the maximum number of active connection IDs per path.
As defined in <xref section="5.1.1" sectionFormat="of" target="QUIC-TRANSPORT"/> connection IDs that are issued
and not retired are considered active.</t>
        <t>If an endpoint receives a disable_active_migration transport parameter,
it is forbidden to establish new paths to the peer's handshake address. However,
establishment of additional paths to other peer addresses
(e.g carried by peer’s preferred_address) is immediately valid.</t>
        <t>If the server uses the preferred_address transport parameter, clients
cannot assume that the initial server address and the addresses
contained in this parameter can be simultaneously used for multipath
(<xref section="9.6.2" sectionFormat="of" target="QUIC-TRANSPORT"/>).
Use of the preferred address with the same local address is considered as a migration event
that does not change the path ID. A such, the path ID for
the connection ID specified in the preferred_address transport parameter is 0.</t>
      </section>
      <section anchor="handling-ack-and-pathack-in-0-rtt-and-1-rtt">
        <name>Handling ACK and PATH_ACK in 0-RTT and 1-RTT</name>
        <t>The PATH_ACK frame (see <xref target="mp-ack-frame"/>) is used to
acknowledge 1-RTT packets.
Compared to the ACK frame, as specified in <xref section="19.3" sectionFormat="of" target="QUIC-TRANSPORT"/>, the PATH_ACK frame additionally
contains the path ID to identify the path-specific packet number space.
ACK frames when used with the multipath extension acknowledge packets for the path with path ID 0.
As multipath support is unknown during the handshake, acknowledgments of
Initial and Handshake packets are sent using ACK frames.</t>
        <t>After the handshake concluded with support for the multipath extension,
endpoints SHOULD use PATH_ACK frames instead of ACK frames,
including for so far unacknowledged 0-RTT packets using Path ID 0.
Endpoints MUST still process ACK frames that acknowledge 0-RTT packets or 1-RTT packets.
For example, a sender may negotiate multipath support for later use and keep
only the initial path with path ID 0 for a while. During this single-path period,
the sender might prefer to send ACK frames.</t>
      </section>
      <section anchor="nonce">
        <name>Nonce Calculation after Handshake Completion</name>
        <t><xref section="5.3" sectionFormat="of" target="QUIC-TLS"/> specifies AEAD usage, and in particular
the use of a nonce, N, formed by combining the packet protection IV
with the packet number. When multiple packet number spaces are used,
the packet number alone would not guarantee the uniqueness of the nonce.
Therefore, the nonce N is calculated for 1-RTT if the multipath extension is used
by combining the packet protection
IV with the packet number and with the least significant 32 bits of the
path ID. In order to guarantee the uniqueness of the nonce, the path ID
is limited to a max value of 2^32-1, as specified in Section <xref target="nego"/></t>
        <t>To calculate the nonce, a 96-bit path-and-packet-number is composed of the least
significant 32 bits of the path ID in network byte order,
two zero bits, and the 62 bits of the reconstructed QUIC packet number in
network byte order. The IV length is equal to the nonce length. If the IV is larger than 96 bits, the path-and-packet-number
is left-padded with zeros to the size of the IV. The exclusive OR of the padded
packet number and the IV forms the AEAD nonce. An AEAD algorithm where the nonce length
is less than 12 bytes MUST NOT be used with the QUIC multipath extension.</t>
        <t>For example, assuming the IV value is <tt>6b26114b9cba2b63a9e8dd4f</tt>,
the path ID is <tt>3</tt>, and the packet number is <tt>aead</tt>,
the nonce will be set to <tt>6b2611489cba2b63a9e873e2</tt>.</t>
      </section>
      <section anchor="multipath-key-update">
        <name>Key Phase Update Process</name>
        <t>The Key Phase bit update process is specified in
<xref section="6" sectionFormat="of" target="QUIC-TLS"/>. The general principles of key update
are not changed in this specification. Following <xref target="QUIC-TLS"/>, the Key Phase bit is used to
indicate which packet protection keys are used to protect the packet.
The Key Phase bit is toggled to signal each subsequent key update.</t>
        <t>Because of network delays, packets protected with the older key might
arrive later than the packets protected with the new key, however receivers
can solely rely on the Key Phase bit to determine the corresponding packet
protection key, assuming that there is sufficient interval between two
consecutive key updates (<xref section="6.5" sectionFormat="of" target="QUIC-TLS"/>).</t>
        <t>When this specification is used, endpoints SHOULD wait for at least three times
the largest PTO among all the paths before initiating a new key update
after receiving an acknowledgment that confirms the receipt of the previous key
update. This interval is different from that in <xref target="QUIC-TLS"/>
which used three times the PTO of the sole single path.</t>
        <t>The choice of three times the largest PTO is a trade-off.
Packets that arrive after their decryption key has been discarded will be dropped.
Longer delays reduce the probability of losing packets but keeping old keys
longer can negatively impact the security of the protocol.
The use of three times the largest PTO aims to minimize packet lost for all paths
and therefore limits the impact on performance.</t>
        <t>Following <xref section="5.4" sectionFormat="of" target="QUIC-TLS"/>, the Key Phase bit is protected,
so sending multiple packets with Key Phase bit flipping at the same time
should not cause linkability issues.</t>
      </section>
    </section>
    <section anchor="path-management">
      <name>Path Management</name>
      <t>After completing the handshake indicating
multipath support, endpoints can start using multiple paths.
An endpoint can open a new path when both endpoints
have issued available connection IDs for at least one unused, common path ID,
as the same path ID is used in both directions.</t>
      <t>This documents specfies path initiation (see <xref target="path-initiation"/>),
issuing and retirement of per-path connection IDs (see
<xref target="consume-retire-cid"/>), path status management (see <xref target="path-state"/>) and
path closure (see <xref target="path-close"/>).
However, this document does not specify when a client decides to initiate or close a path,
or how multiple open paths are used for sending.</t>
      <section anchor="path-initiation">
        <name>Path Initiation and Validation</name>
        <t>To open a new path, an endpoint MUST use a new connection ID associated
with an unused path ID.
When sending a PATH_RESPONSE frame, an endpoint MUST use a connection ID associated to
the same path ID as used in the packet that contained the PATH_CHALLENGE frame.</t>
        <t>A client that wants to use an
additional path MUST validate the peer's address before sending any data packets
as described in <xref section="8.2" sectionFormat="of" target="QUIC-TRANSPORT"/>,
unless it has previously validated the 4-tuple used for that path.</t>
        <t>After receiving packets from the
client on a new path, if the server decides to use the new path,
the server MUST validate the peer's address before sending any data packets
as described in (<xref section="8.2" sectionFormat="of" target="QUIC-TRANSPORT"/>),
unless it has previously validated the 4-tuple used for that path.
Until the client's address is
validated, the anti-amplification limit from <xref section="8" sectionFormat="of" target="QUIC-TRANSPORT"/>
applies.</t>
        <t>The server may receive packets for a yet unused path ID that do not
contain a PATH_CHALLENGE frame. Such packets are valid if they can be properly decrypted
given a valid connection ID.</t>
        <t>Each endpoint MUST also validate that a minimum QUIC packet MTU of 1200 bytes is supported
on the path. This can be done during initial path validation or separately later if
the amplification limit prevents it initially, as specified in <xref section="8.2.1" sectionFormat="of" target="QUIC-TRANSPORT"/>.</t>
        <t>An endpoint that receives packets on a new path and does not want to establish
this path is expected to close the path by sending a PATH_ABANDON
on another path, as specified in <xref target="path-close"/>.</t>
        <t>An endpoint that has no active connection ID for this path or
lacks other resource to immediately configure a new path could
delay sending the PATH_RESPONSE until sufficient resource are available.
Long delays may cause the peer to repeat the PATH_CHALLENGE and eventually
send a PATH_ABANDON, in which case the procedures specified in
Section <xref target="path-close"/> apply.</t>
        <t>PATH_ACK frames (see <xref target="mp-ack-frame"/>) can be returned on any path.
If the PATH_ACK is preferred to be sent on the same path as the acknowledged
packet (see <xref target="compute-rtt"/> for further guidance), it can be beneficial
to bundle a PATH_ACK frame with the PATH_RESPONSE frame during
path validation.</t>
        <t>If validation succeeds, the client can continue to use the path.
If validation fails, the client MUST NOT use the path and can
remove any status associated to the path initiation attempt.
As the used path ID is anyway consumed,
the endpoint MUST explicitly close the path, as specified in
<xref target="path-close"/>.</t>
        <section anchor="path-establishment-example">
          <name>Path Establishment Example</name>
          <t>In the example below it is assumed that both endpoints have
indicated an initial_max_path_id value of at least 2, which means
both endpoints can use path IDs 0, 1, and 2. Note that
path ID 0 is already used for the initial path.</t>
          <figure anchor="fig-example-new-path">
            <name>Example of new path establishment</name>
            <artwork><![CDATA[
   Client                                                  Server

   (Exchanges start on default path)
   1-RTT[]: PATH_NEW_CONNECTION_ID[C1, Seq=0, PathID=1] -->
             <-- 1-RTT[]: PATH_NEW_CONNECTION_ID[S1, Seq=0, PathID=1]
             <-- 1-RTT[]: PATH_NEW_CONNECTION_ID[S2, Seq=0, PathID=2]
   ...
   (starts new path)
   1-RTT[0]: DCID=S1, PATH_CHALLENGE[X] -->
                           Checks AEAD using nonce(path ID 1, PN 0)
        <-- 1-RTT[0]: DCID=C1, PATH_RESPONSE[X], PATH_CHALLENGE[Y],
                                             PATH_ACK[PathID=1, PN=0]
   Checks AEAD using nonce(path ID 1, PN 0)
   1-RTT[1]: DCID=S1, PATH_RESPONSE[Y],
            PATH_ACK[PathID=1, PN=0], ... -->

]]></artwork>
          </figure>
          <t>In <xref target="fig-example-new-path"/>, the endpoints first exchange
new available connection IDs with the PATH_NEW_CONNECTION_ID frame.
In this example, the client provides one connection ID (C1 with
path ID 1), and server provides two connection IDs
(S1 with path ID 1, and S2 with path ID 2).</t>
          <t>Before the client opens a new path by sending a packet on that path
with a PATH_CHALLENGE frame, it has to check whether there is
an unused connection IDs for the same unused path ID available for each side.
In this example the path ID 1 is used which is the smallest unused path ID available
as recommended in <xref target="consume-retire-cid"/>.
Respectively, the client chooses the connection ID S1
as the Destination Connection ID of the new path when sending the PATH_CHALLENGE frame.
The server replies with a PATH_RESPONSE bundled with the PATH_ACK using connection ID S1
associated with the same path ID.</t>
        </section>
        <section anchor="relation-to-probing-and-migration">
          <name>Relation to Probing and Migration</name>
          <t><xref section="9.1" sectionFormat="of" target="QUIC-TRANSPORT"/> introduces the concept of
"probing" and "non-probing" frames. A packet that contains at least
one "non-probing" frame is a "non-probing" packet. When the multipath extension
is negotiated, the reception of a "non-probing"
packet on a new path with a new so far unused path ID
does not impact the path status of any existing
path. Therefore, any frame can be sent on a new path at any time
as long as the anti-amplification limits
(see <xref section="21.1.1.1" sectionFormat="of" target="QUIC-TRANSPORT"/>) and the congestion control
limits for this path are respected.</t>
          <t>The receiver may receive a connection ID associated with a used path ID
on different 4-tuples, e.g., due to NAT rebinding. This causes the receiver to initiate
path validation as specified in <xref section="9.3" sectionFormat="of" target="QUIC-TRANSPORT"/>
which MUST use a new connection ID for the same path ID.</t>
        </section>
        <section anchor="address-validation-token">
          <name>Address Validation Token</name>
          <t>As specified in <xref section="9.3" sectionFormat="of" target="QUIC-TRANSPORT"/>, the server is expected to send a new
address validation token to a client following the successful validation of a
new client address. The client will receive several tokens. When considering using a token
for subsequent connections, it might be difficult for the client
to pick the "right" token among multiple tokens obtained in a previous connection.
The client is likely to fall back to the strategy specified in <xref section="8.1.3" sectionFormat="of" target="QUIC-TRANSPORT"/>,
i.e., pick the last received token. To avoid issues when clients make the "wrong" choice,
a server SHOULD issue tokens that are capable of validating
any of the previously validated addresses. Further guidance on token usage can be
found in <xref section="8.1.3" sectionFormat="of" target="QUIC-TRANSPORT"/>.</t>
        </section>
      </section>
      <section anchor="consume-retire-cid">
        <name>Handling Connection IDs</name>
        <t>When the multipath extension is used,
endpoints have to use the PATH_NEW_CONNECTION_ID and PATH_RETIRE_CONNECTION_ID frames
to indicate the respective path ID together with associated sequence number
(see <xref section="5.1.1" sectionFormat="of" target="QUIC-TRANSPORT"/>), at least for all paths with a path ID other than 0.
Each path ID has its own connection ID sequence number space whose initial value is 0.</t>
        <t>Endpoints SHOULD also use PATH_NEW_CONNECTION_ID and
PATH_RETIRE_CONNECTION_ID for the initial path with path ID 0.
However, the use of NEW_CONNECTION_ID and RETIRE_CONNECTION_ID
is still valid and endpoints need to process these frames
as corresponding to path ID 0.</t>
        <section anchor="issuing-new-connection-ids">
          <name>Issuing New Connection IDs</name>
          <t>In order to let the peer open new paths, it is RECOMMENDED to proactively
issue at least one Connection ID for each unused path ID up to the
minimum of the peer's and the local maximum path ID limits.</t>
          <t>If for any reason an endpoint does not want to issue connection IDs for all
unused path ID, it SHOULD NOT introduce discontinuity
in the issuing of path IDs as path initiation
requires available connection IDs for the same path ID on both sides. For instance,
if the maximum path ID limit is 2 and the endpoint wants to provide connection IDs
for only one path ID inside range [1, 2], it should select path ID 1 (and not Path
ID 2).</t>
          <t>Similarly, endpoints SHOULD consume path IDs in a continuous way, i.e., when
creating paths. However, endpoints cannot expect to receive new connection IDs
or path initiation attempts with in-order use of path IDs
due to out-of-order delivery or path validation failure.</t>
          <t>Each endpoint maintains the set of connection IDs received from its peer for each path,
any of which it can use when sending packets on that path; see also <xref section="5.1" sectionFormat="of" target="QUIC-TRANSPORT"/>.
Usually, it is desired to provide at least one additional connection ID for
all used paths, to allow for (unintentional) migration events (<xref section="9.5" sectionFormat="of" target="QUIC-TRANSPORT"/>).</t>
          <t>As further specified in <xref section="5.1" sectionFormat="of" target="QUIC-TRANSPORT"/> connection IDs
cannot be issued more than once on the same connection
and therefore are unique for the scope of the connection,
regardless of the associated path ID.</t>
          <t>Endpoints MUST NOT issue new connection IDs with path IDs greater than
the Maximum Path Identifier field in MAX_PATH_ID frames (see <xref target="max-paths-frame"/>)
or the value of initial_max_path_id transport parameter if no MAX_PATH_ID frame was received yet.
Receipt of a frame with a greater path ID is a connection error as specified
in <xref target="frames"/>.</t>
          <t>When an endpoint finds it has not enough available unused path IDs,
it SHOULD either send a MAX_PATH_ID frame to increase the active path limit
(when limited by the sender) or a PATHS_BLOCKED frame
(see <xref target="paths-and-cids-blocked-frame"/>) to inform the peer that
its current limit prevented the creation of the new path.</t>
        </section>
        <section anchor="rotating-and-retiring-connection-ids">
          <name>Rotating and Retiring Connection IDs</name>
          <t><xref section="5.1.2" sectionFormat="of" target="QUIC-TRANSPORT"/> indicates that an endpoint
can change the connection ID it uses to another available one
at any time during the connection. For the extension specified in
this document, endpoints MUST only rotate to another connection IDs associated
to the same path ID. Use of a connection ID associated with
another path ID will be considered as an attempt to open a new path instead.</t>
          <t>An endpoint is supposed to retire connection ID that are not used anymore,
and the server is supposed to provide
replacements, as specified in <xref section="5.1.2." sectionFormat="of" target="QUIC-TRANSPORT"/>.
As such, when receiving a PATH_RETIRE_CONNECTION_ID frame, an endpoint
SHOULD provide new connection IDs for that path, if still open, using PATH_NEW_CONNECTION_ID frames.</t>
          <t>While it it expected that the peer provides at least one unused connection ID
for all active paths using the PATH_NEW_CONNECTION_ID after retirement
of an old connection ID, an endpoint MAY send
a PATH_CIDS_BLOCKED (see <xref target="paths-and-cids-blocked-frame"/>)
if it wants to change the connection ID but no
unused connection ID for a that path is available. Further, an
endpoint MAY also send a PATH_CIDS_BLOCKED frame if it wants to
open a new path and has no connection IDs available for an unused
path ID even though the Maximum Path Identifier value would allow
for more paths.</t>
          <t>Retirement of connection IDs will not retire the path ID
that corresponds to the connection ID or any other path resources
as the packet number space is associated to the path ID.</t>
          <t>The peer that sends the PATH_RETIRE_CONNECTION_ID frame can keep sending data
on the path that the retired connection ID was used on but has
to use a different connection ID for the same path ID when doing so.</t>
        </section>
      </section>
      <section anchor="path-state">
        <name>Path Status Management</name>
        <t>An endpoint can send PATH_BACKUP and PATH_AVAILABLE frames (see
<xref target="path-backup-available-frame"/>) to inform the peer that it should
send packets on the paths with the preference expressed by these frames.
Note that an endpoint might not follow the peer’s advertisements,
but these frames are still a clear signal of the peer's preference of path usage.</t>
        <t>Each peer indicates its preference of path usage independently of the other peer.
That means that peers may have different usage preferences for the same path.
Depending on the data sender's decisions, this may lead to usage of paths that have been
indicated as "backup" by the peer or non-usage of some locally available paths.</t>
        <t>PATH_AVAILABLE indicates that a path is "available", i.e., it suggests to
the peer to use its own logic to split traffic among available paths.</t>
        <t>PATH_BACKUP suggests that a path should only be used as backup i.e. that no traffic
should be sent on that path if another path is available and usable.
If all established paths are indicated as backup paths, no guidance is provided about
which path should be used.</t>
        <t>Similarly, if no frame indicating a path usage preference was received for a certain path,
the preference of the peer is unknown and the sender needs to decide based on it
own local logic if the path should be used.</t>
        <t>If an endpoint starts using a backup path
because it has detected issues on the paths marked as "available", it is RECOMMENDED
to update its own path state signaling such that the peer avoids using the broken path.
An endpoint that detects a path breakage can also explicitly close the path
by sending a PATH_ABANDON frame (see <xref target="path-close"/>) in order to avoid
that its peer keeps using it and enable faster switchover to a backup path.
If the endpoints do not want to close the path immediately, as connectivity
could be re-established, PING frames can potentially be used to quickly detect
connectivity changes and switch back in a timely way.</t>
        <t>The PATH_AVAILABLE and PATH_BACKUP frames share a common, per-path sequence number space
to detect and ignore outdated information, as further described in <xref target="path-backup-available-frame"/>.
This is needed as they might arrive out-of-order,
e.g., if sent using different paths.</t>
      </section>
      <section anchor="path-close">
        <name>Path Close</name>
        <t>At any time in the connection, each endpoint can decide to
abandon a path, for example following changes in local
connectivity or local preferences.
An endpoint that wants to abandon a path MUST explicitly
close the path by sending a PATH_ABANDON frame (see <xref target="path-abandon-frame"/>).
This is true whether the decision to close the path results
from implicit signals such as an idle time-out (see <xref target="idle-time-close"/>)
or packet losses as well as for any other reason such as management
of local resources.</t>
        <t>The peers that send a PATH_ABANDON frame MUST treat all connection
IDs received from the peer for the path ID indicated in the PATH_ABANDON as immediately
retired, and subsequently cannot send any packet on that path anymore.
Note that while abandoning a path will cause
connection ID retirement, the inverse is not true: retiring the associated connection IDs
does not indicate path abandonment (see further <xref target="consume-retire-cid"/>).</t>
        <t>PATH_ABANDON frames can be sent on any open path,
not only on the path that is intended to be closed.
It is RECOMMENDED to send the PATH_ABANDON frames on another open path,
especially if connectivity on the to-be-abandoned path
is expected to be broken.</t>
        <t>When an endpoint receives a PATH_ABANDON frame, it MUST send a corresponding
PATH_ABANDON frame, if it has not already done so, and respectively treat all
connection IDs received from the peer for that path as immediately
retired. While that means retired connection IDs received from the peer cannot be used
for sending anymore, packets from the peer might still be in transit.
Therefore, knowledge of the
connection IDs issued to the peer and of the state
of the number space associated to the path SHOULD be retained for
3 PTO after the PATH_ABANDON frame has been received.
This avoids generating spurious stateless packets, as discussed in
<xref target="spurious-stateless-reset"/>, and helps acknowledge any
potentially reordered, outstanding packets from the peer (see <xref target="ack-after-abandon"/>).</t>
        <t>It is also possible that an endpoint will receive a PATH_ABANDON frame
before receiving or sending any traffic on a path. For example, if the client
tries to initiate a path and the path cannot be established, it will send a
PATH_ABANDON frame (see <xref target="path-initiation"/>). An endpoint may also decide
to abandon an unused path for any other reason, for example, removing a hole from
the sequence of path IDs in use. This is not an error.</t>
        <t>If a peer sends a PATH_ABANDON frame but never receives
a corresponding PATH_ABANDON frame, it might not be able to remove path state.
It is left to the implementation to handle this unexpected
behavior as it does not impact interoperability. If the endpoint is no longer
willing to process the issued connection IDs for the abandoned path,
it MAY close the connection, but SHOULD wait at least 3 PTOs after
sending the PATH_ABANDON frame.</t>
        <t>After a path is abandoned, the path ID MUST NOT be reused
for new paths, as the path ID is part of the nonce calculation <xref target="nonce"/>.</t>
        <t>If a PATH_ABANDON frame is received for the only open path of a QUIC
connection, the receiving peer SHOULD send a CONNECTION_CLOSE frame
and enter the closing state. Alternatively, a client MAY instead try to open a new path, if
available, and only initiate connection closure if path validation fails
or a CONNECTION_CLOSE frame is received from the server. Similarly,
the server MAY wait for a short, limited time such as one PTO if a path
probing packet is received on a new path before sending the
CONNECTION_CLOSE frame.</t>
        <t>Note that other explicit closing mechanisms of <xref target="QUIC-TRANSPORT"/> still
apply on the whole connection. In particular, the reception of either a
CONNECTION_CLOSE (<xref section="10.2" sectionFormat="of" target="QUIC-TRANSPORT"/>) or a Stateless
Reset (<xref section="10.3" sectionFormat="of" target="QUIC-TRANSPORT"/>) closes the connection.</t>
        <section anchor="path-closure-example">
          <name>Path Closure Example</name>
          <t>In the example below, the client wants to close the path with path ID 0.
It sends the PATH_ABANDON frame to terminate the path with path ID 0
on the path with path ID 1 using the connection ID S1. After receiving
the PATH_ABANDON frame for path ID 0, the server also sends a
PATH_ABANDON frame with path ID 0 together with an PATH_ACK frame
on the same path using connection ID C1.</t>
          <figure anchor="fig-example-path-close1">
            <name>Example of closing a path.</name>
            <artwork><![CDATA[
Client                                                      Server

(client tells server to abandon a path with path ID 0)
1-RTT[X]: DCID=S1 PATH_ABANDON[path ID=0]->
                           (server tells client to abandon a path)
                    <-1-RTT[Y]: DCID=C1 PATH_ABANDON[path ID=0],
                                           PATH_ACK[PATH ID=1, PN=X]
1-RTT[U]: DCID=S1 PATH_ACK[path ID=1, PN=Y] ->
]]></artwork>
          </figure>
          <t>Note that if the PATH_ABANDON frame is instead sent on the to-be-abandoned path,
the last acknowledgment still needs to be send on a different path
as no further packets can be sent on the abandoned path after the
PATH_ABANDON frame.</t>
        </section>
        <section anchor="spurious-stateless-reset">
          <name>Avoiding Spurious Stateless Resets</name>
          <t>Due to network delays, packets sent on an abandoned path can
arrive well after the connection IDs have been retired.
If not recognized as bound to the local
connection, such packet triggers the peer to send a Stateless Reset
packet. The rule to "retain knowledge of connection ID for 3 PTO
after receiving a PATH_ABANDON"
is intended to reduce the risk of sending such spurious stateless
packets, but it cannot completely avoid that risk.</t>
          <t><xref section="10.3" sectionFormat="of" target="QUIC-TRANSPORT"/> specified that the Stateless Reset Tokens
associated with retired connection IDs cannot be used to identify Stateless Reset packets.
The immediate retirement of connection IDs received from the peer for an abandoned
path guarantees that spurious Stateless Reset packets
sent by the peer will not cause the closure of the QUIC connection.</t>
        </section>
        <section anchor="ack-after-abandon">
          <name>Handling PATH_ACK for Abandoned Paths</name>
          <t>When an endpoint sends a PATH_ABANDON frame, there may
still be some packets in transit from the peer.
Further, if an endpoint receives a PATH_ABANDON frame, it may still receive
reordered packets on the abandoned path. Endpoints SHOULD
promptly send PATH_ACK frames for all unacknowledged packets received on
an abandoned path if path state is still retained to do so.</t>
          <t>PATH_ACK frames have to be sent on a different path than the path being abandoned
after sending the PATH_ABANDON frame as connection IDs are immediately retired.</t>
          <t>When an endpoint finally deletes all state associated with the path,
the packets sent over the path and not yet acknowledged MUST be considered lost.
PATH_ACK frames received with an abandoned path ID are silently ignored,
as specified in <xref target="frames"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="frames">
      <name>New Frames</name>
      <t>All frames defined in this document MUST only be sent in 1-RTT packets.
If an endpoint receives a multipath-specific frame in a different packet type,
it MUST close the connection with an error of type PROTOCOL_VIOLATION.</t>
      <t>Receipt of multipath-specific frames
that use a path ID that is greater than the announced Maximum Paths value
in the MAX_PATH_ID frame or in the initial_max_path_id transport parameter,
if no MAX_PATH_ID frame was received yet,
MUST be treated as a connection error of type PROTOCOL_VIOLATION.</t>
      <t>If an endpoint receives a multipath-specific frame
with a path ID that it cannot process
anymore (e.g., because the path might have been abandoned), it
MUST silently ignore the frame.</t>
      <section anchor="mp-ack-frame">
        <name>PATH_ACK Frame</name>
        <t>The PATH_ACK frame (types TBD-00 and TBD-01)
is an extension of the ACK frame specified in <xref section="19.3" sectionFormat="of" target="QUIC-TRANSPORT"/>. It is
used to acknowledge packets that were sent on different paths, as
each path has its own packet number space. If the frame type is TBD-01, PATH_ACK frames
also contain the sum of QUIC packets with associated ECN marks received
on the acknowledged packet number space up to this point.</t>
        <t>PATH_ACK frame is formatted as shown in <xref target="fig-mp-ack-format"/>.</t>
        <figure anchor="fig-mp-ack-format">
          <name>PATH_ACK Frame Format</name>
          <artwork><![CDATA[
  PATH_ACK Frame {
    Type (i) = TBD-00..TBD-01
         (experiments use  0x15228c00-0x15228c01),
    Path Identifier (i),
    Largest Acknowledged (i),
    ACK Delay (i),
    ACK Range Count (i),
    First ACK Range (i),
    ACK Range (..) ...,
    [ECN Counts (..)],
  }
]]></artwork>
        </figure>
        <t>Compared to the ACK frame specified in <xref target="QUIC-TRANSPORT"/>, the following
field is added:</t>
        <dl>
          <dt>Path Identifier:</dt>
          <dd>
            <t>The path ID associated with the packet number space of the 0-RTT and 1-RTT packets
which are acknowledged by the PATH_ACK frame.</t>
          </dd>
        </dl>
      </section>
      <section anchor="path-abandon-frame">
        <name>PATH_ABANDON Frame</name>
        <t>The PATH_ABANDON frame informs the peer to abandon a path.
After the PATH_ABANDON frame is sent on a path, the path can no longer be used for sending.</t>
        <t>PATH_ABANDON frames are formatted as shown in <xref target="fig-path-abandon-format"/>.</t>
        <figure anchor="fig-path-abandon-format">
          <name>PATH_ABANDON Frame Format</name>
          <artwork><![CDATA[
  PATH_ABANDON Frame {
    Type (i) = TBD-02 (experiments use 0x15228c05),
    Path Identifier (i),
    Error Code (i),
  }
]]></artwork>
        </figure>
        <t>PATH_ABANDON frames contain the following fields:</t>
        <dl>
          <dt>Path Identifier:</dt>
          <dd>
            <t>The path ID associated to the to-be-abandoned path.</t>
          </dd>
          <dt>Error Code:</dt>
          <dd>
            <t>A variable-length integer that indicates the reason for abandoning
this path. NO_ERROR(0x0) indicates that the path is being abandoned
without any error being encountered. Other error codes can be found in <xref target="error-codes"/>.</t>
          </dd>
        </dl>
        <t>PATH_ABANDON frames are ack-eliciting. If a packet containing
a PATH_ABANDON frame is considered lost, the peer SHOULD repeat it.</t>
        <t>Use of the PATH_ABANDON frame is specified in section <xref target="path-close"/>.</t>
        <section anchor="error-codes">
          <name>Error Codes</name>
          <t>QUIC transport error codes are 62-bit unsigned integers
(see <xref section="20.1" sectionFormat="of" target="QUIC-TRANSPORT"/>. In addition to
NO_ERROR(0x0), the following QUIC error codes are defined
for use in the PATH_ABANDON frame:</t>
          <dl>
            <dt>APPLICATION_ABANDON (TBD-10):</dt>
            <dd>
              <t>The endpoint is abandoning the path at the
request of the application.</t>
            </dd>
            <dt>RESOURCE_LIMIT_REACHED (TBD-11):</dt>
            <dd>
              <t>The endpoint is abandoning the path because
it cannot allocate sufficient resources to maintain it.</t>
            </dd>
            <dt>UNSTABLE_INTERFACE (TBD-12):</dt>
            <dd>
              <t>The endpoint is abandoning the path because
the used interface is considered to be unstable. This condition can occur, e.g.,
due to a weak wireless signal or frequent handover events during high-speed mobility.</t>
            </dd>
            <dt>NO_CID_AVAILABLE (TBD-13):</dt>
            <dd>
              <t>The endpoint is abandoning the path due to
the lack of a connection ID for this path.
This may occur when the peer initiates a new path
but has not provided a corresponding connection ID for the path ID
(or the packet containing the connection IDs has not arrived yet).</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="path-backup-available-frame">
        <name>PATH_AVAILABLE and PATH_BACKUP frames</name>
        <t>PATH_AVAILABLE frames are used by endpoints to inform the peer
that the indicated path is available for sending.</t>
        <t>PATH_AVAILABLE frames are formatted as shown in <xref target="fig-path-available-format"/>.</t>
        <figure anchor="fig-path-available-format">
          <name>PATH_AVAILABLE Frame Format</name>
          <artwork><![CDATA[
  PATH_AVAILABLE Frame {
    Type (i) = TBD-04 (experiments use 0x15228c08),
    Path Identifier (i),
    Path Status Sequence Number (i),
  }
]]></artwork>
        </figure>
        <t>PATH_BACKUP frames are used by endpoints to inform the peer
about its preference to not use the indicated path for sending.</t>
        <t>PATH_BACKUP frames are formatted as shown in <xref target="fig-path-backup-format"/>.</t>
        <figure anchor="fig-path-backup-format">
          <name>PATH_BACKUP Frame Format</name>
          <artwork><![CDATA[
  PATH_BACKUP Frame {
    Type (i) = TBD-03 (experiments use 0x15228c07)
    Path Identifier (i),
    Path Status Sequence Number (i),
  }
]]></artwork>
        </figure>
        <t>Both PATH_AVAILABLE and PATH_BACKUP frames contain the following fields:</t>
        <dl>
          <dt>Path Identifier:</dt>
          <dd>
            <t>The path ID that the status update corresponds to.
All path IDs below the maximum path ID limit can be indicated,
even if the path is not in active use yet.</t>
          </dd>
          <dt>Path Status Sequence Number:</dt>
          <dd>
            <t>A variable-length integer specifying the per-path sequence number assigned for
this frame.</t>
          </dd>
        </dl>
        <t>The sequence number space is common to the two frame types,
and monotonically increasing values MUST be used when sending PATH_AVAILABLE or
PATH_BACKUP frames for a given path ID.</t>
        <t>Frames may be received out of order. A peer MUST ignore an incoming
PATH_AVAILABLE or
PATH_BACKUP frame if it previously received another PATH_BACKUP frame
or PATH_AVAILABLE frame for the same path ID with a Path Status sequence number
equal to or higher than the Path Status sequence number of the incoming frame.</t>
        <t>The requirement of monotonically increasing sequence numbers
is per path. Receivers could very well receive the
same sequence number for PATH_AVAILABLE or PATH_BACKUP Frames
on different paths. As such, the receiver of
the PATH_AVAILABLE or PATH_BACKUP frame needs to use and compare the sequence numbers
separately for each path ID.</t>
        <t>PATH_BACKUP and PATH_AVAILABLE frames are ack-eliciting. If a packet containing a
PATH_BACKUP or PATH_AVAILABLE frame is considered lost, the peer SHOULD resend the frame
only if it contains the last status sent for that path -- as indicated
by the sequence number.</t>
        <t>A PATH_BACKUP or a PATH_AVAILABLE frame MAY be bundled with a PATH_NEW_CONNECTION_ID frame or
a PATH_RESPONSE frame in order to indicate the preferred path usage
before or during path initiation.</t>
      </section>
      <section anchor="mp-new-conn-id-frame">
        <name>PATH_NEW_CONNECTION_ID frame</name>
        <t>The PATH_NEW_CONNECTION_ID frame (type=TBD-05)
is an extension of the NEW_CONNECTION_ID frame specified in
<xref section="19.15" sectionFormat="of" target="QUIC-TRANSPORT"/>.
It is used to provide its peer with alternative connection IDs for 1-RTT packets
for a specific path. The peer can then use a different connection ID on the same path
to break linkability when migrating on that path; see also <xref section="9.5" sectionFormat="of" target="QUIC-TRANSPORT"/>.</t>
        <t>PATH_NEW_CONNECTION_ID frames are formatted as shown in <xref target="fig-mp-connection-id-frame-format"/>.</t>
        <figure anchor="fig-mp-connection-id-frame-format">
          <name>PATH_NEW_CONNECTION_ID Frame Format</name>
          <artwork><![CDATA[
PATH_NEW_CONNECTION_ID Frame {
  Type (i) = TBD-05 (experiments use 0x15228c09),
  Path Identifier (i),
  Sequence Number (i),
  Retire Prior To (i),
  Length (8),
  Connection ID (8..160),
  Stateless Reset Token (128),
}
]]></artwork>
        </figure>
        <t>Compared to the NEW_CONNECTION_ID frame specified in
<xref section="19.15" sectionFormat="of" target="QUIC-TRANSPORT"/>, the following
field is added:</t>
        <dl>
          <dt>Path Identifier:</dt>
          <dd>
            <t>The path ID associated with the connection ID. This
means the provided connection ID can only be used on the corresponding path.</t>
          </dd>
        </dl>
        <t>Note that, other than for the NEW_CONNECTION_ID frame of <xref section="19.15" sectionFormat="of" target="QUIC-TRANSPORT"/>,
the sequence number applies on a per-path context.
This means different connection IDs on different paths may have the same
sequence number value.</t>
        <t>The Retire Prior To field indicates which connection IDs
should be retired among those that share the path ID in the Path Identifier field.
Connection IDs associated with different path IDs are not affected.</t>
        <t>Note that the NEW_CONNECTION_ID frame can only be used to issue or retire
connection IDs for the initial path with path ID 0.</t>
        <t>The last paragraph of <xref section="5.1.2" sectionFormat="of" target="QUIC-TRANSPORT"/> specifies how to
verify the Retire Prior To field of an incoming NEW_CONNECTION_ID frame.
The same rule
applies for PATH_NEW_CONNECTION_ID frames, but it applies per path. If the
multipath extension is used, the rule
for NEW_CONNECTION_ID frame is only applied for path ID 0.</t>
      </section>
      <section anchor="mp-retire-conn-id-frame">
        <name>PATH_RETIRE_CONNECTION_ID frame</name>
        <t>The PATH_RETIRE_CONNECTION_ID frame (TBD-06)
is an extension of the RETIRE_CONNECTION_ID frame specified in
<xref section="19.16" sectionFormat="of" target="QUIC-TRANSPORT"/>. It is used
to indicate that an endpoint will no longer use a connection ID for a specific path ID
that was issued by its peer. To retire the connection ID used
during the handshake on the initial path, path ID 0 is used.
Sending a PATH_RETIRE_CONNECTION_ID frame also serves as a request to the peer
to send additional connection IDs for this path (see also <xref section="5.1" sectionFormat="of" target="QUIC-TRANSPORT"/>),
unless the path specified by the path ID has been abandoned. New path-specific connection IDs can be
delivered to a peer using the PATH_NEW_CONNECTION_ID frame (see <xref target="mp-new-conn-id-frame"/>).</t>
        <t>PATH_RETIRE_CONNECTION_ID frames are formatted as shown in <xref target="fig-mp-retire-connection-id-frame-format"/>.</t>
        <figure anchor="fig-mp-retire-connection-id-frame-format">
          <name>PATH_RETIRE_CONNECTION_ID Frame Format</name>
          <artwork><![CDATA[
PATH_RETIRE_CONNECTION_ID Frame {
  Type (i) = TBD-06 (experiments use 0x15228c0a),
  Path Identifier (i),
  Sequence Number (i),
}
]]></artwork>
        </figure>
        <t>Compared to the RETIRE_CONNECTION_ID frame specified in
<xref section="19.16" sectionFormat="of" target="QUIC-TRANSPORT"/>, the following
field is added:</t>
        <dl>
          <dt>Path Identifier:</dt>
          <dd>
            <t>The path ID associated with the connection ID to retire.</t>
          </dd>
        </dl>
        <t>Note that the RETIRE_CONNECTION_ID frame can only be used to retire
connection IDs for the initial path with path ID 0.</t>
        <t>As the PATH_NEW_CONNECTION_ID frames applies the sequence number per path,
the sequence number in the PATH_RETIRE_CONNECTION_ID frame is also per
path. The PATH_RETIRE_CONNECTION_ID frame retires the Connection ID with
the specified path ID and sequence number.</t>
        <t>The processing of an incoming RETIRE_CONNECTION_ID frame
is described in <xref section="19.16" sectionFormat="of" target="QUIC-TRANSPORT"/>. The same processing
applies for PATH_RETIRE_CONNECTION_ID frames per path, while with use of
the multipath extension the
processing of a RETIRE_CONNECTION_ID frame is only applied for path ID 0.</t>
      </section>
      <section anchor="max-paths-frame">
        <name>MAX_PATH_ID frame</name>
        <t>A MAX_PATH_ID frame (type=0x15228c0c) informs the peer of the maximum path ID
it is permitted to use.</t>
        <t>MAX_PATH_ID frames are formatted as shown in <xref target="fig-max-paths-frame-format"/>.</t>
        <figure anchor="fig-max-paths-frame-format">
          <name>MAX_PATH_ID Frame Format</name>
          <artwork><![CDATA[
MAX_PATH_ID Frame {
  Type (i) = TBD-07 (experiments use 0x15228c0c),
  Maximum Path Identifier (i),
}
]]></artwork>
        </figure>
        <t>MAX_PATH_ID frames contain the following field:</t>
        <dl>
          <dt>Maximum Path Identifier:</dt>
          <dd>
            <t>The maximum path ID that the sending endpoint is willing to accept.
This value MUST NOT exceed 2^32-1, which is the maximum allowed value for the path ID due to
restrictions on the nonce calculation (see <xref target="nonce"/>).
The Maximum Path Identifier value MUST NOT be lower than the value
advertised in the initial_max_path_id transport parameter.</t>
          </dd>
        </dl>
        <t>Receipt of an invalid Maximum Path Identifier value MUST be treated as a
connection error of type PROTOCOL_VIOLATION.</t>
        <t>Loss or reordering can cause an endpoint to receive a MAX_PATH_ID frame with
a smaller Maximum Path Identifier value than was previously received.
MAX_PATH_ID frames that do not increase the path limit MUST be ignored.</t>
        <t>MAX_PATH_ID frames are ack-eliciting and SHOULD be retransmitted when lost
and no more recent MAX_PATH_ID frame has been sent in the meantime.</t>
      </section>
      <section anchor="paths-and-cids-blocked-frame">
        <name>PATHS_BLOCKED and PATH_CIDS_BLOCKED frames</name>
        <t>A sender can send a PATHS_BLOCKED frame (type=0x15228c0d) when
it wishes to open a path but is unable to do so due to the maximum path ID
limit set by its peer.</t>
        <t>A sender can send a PATH_CIDS_BLOCKED frame (type=0x15228c0e) when
it wishes to open a path with a valid path ID or change the CID on an established path
but is unable to do so because there are no unused connection IDs available
for the corresponding path ID.</t>
        <t>Note that PATHS_BLOCKED and PATH_CIDS_BLOCKED frames are informational.
Sending a PATHS_BLOCKED or a PATH_CIDS_BLOCKED frame does not imply a particular action from the peer
like sending a MAX_PATH_ID farme with a new Maximum Path Identifier value,
but informs the peer that the maximum path ID limit
or the absence of unused connection IDs prevented the creation or the usage of paths.
If the successful reception of a PATHS_BLOCKED/PATH_CIDS_BLOCKED frame was acknowledged but
no action is taken by the peer, this is likely a deliberate decision by the peer and
repeating the PATHS_BLOCKED/PATH_CIDS_BLOCKED frame will not change that.</t>
        <t>PATHS_BLOCKED frames are formatted as shown in <xref target="fig-paths-blocked-frame-format"/>.</t>
        <figure anchor="fig-paths-blocked-frame-format">
          <name>MAX_PATH_ID_BLOCKED Frame Format</name>
          <artwork><![CDATA[
PATHS_BLOCKED Frame {
  Type (i) = TBD-08 (experiments use 0x15228c0d),
  Maximum Path Identifier (i),
}
]]></artwork>
        </figure>
        <t>PATHS_BLOCKED frames contain the following field:</t>
        <dl>
          <dt>Maximum Path Identifier:</dt>
          <dd>
            <t>A variable-length integer indicating the maximum path ID that was
allowed at the time the frame was sent. If the received value is lower than
the currently allowed maximum value, this frame can be ignored.</t>
          </dd>
        </dl>
        <t>PATH_CIDS_BLOCKED frames are formatted as shown in <xref target="fig-path-cid-blocked-frame-format"/>.</t>
        <figure anchor="fig-path-cid-blocked-frame-format">
          <name>PATH_CIDS_BLOCKED Frame Format</name>
          <artwork><![CDATA[
PATH_CIDS_BLOCKED Frame {
  Type (i) = TBD-09 (experiments use 0x15228c0e),
  Path Identifier (i),
  Next Sequence Number (i),
}
]]></artwork>
        </figure>
        <t>PATH_CIDS_BLOCKED frames contain the following fields:</t>
        <dl>
          <dt>Path Identifier:</dt>
          <dd>
            <t>Identifier of the path for which unused connection IDs are not available.</t>
          </dd>
          <dt>Next Sequence Number:</dt>
          <dd>
            <t>The next sequence number that is expected to be issued for a connection ID for this path by the peer.</t>
          </dd>
        </dl>
        <t>Receipt of a value of Maximum Path Identifier or Path Identifier that is higher than
the local maximum value MUST be treated as a connection error of type PROTOCOL_VIOLATION.</t>
        <t>Receipt of a value of Next Sequence Number that is higher than
the sequence number of the next expected to be issued connection ID for this path
MUST be treated as a connection error of type PROTOCOL_VIOLATION.</t>
        <t>PATHS_BLOCKED and PATH_CIDS_BLOCKED frames are ack-eliciting and MAY be retransmitted
if the path is still blocked when the lost is detected.</t>
      </section>
    </section>
    <section anchor="impl-consideration">
      <name>Implementation Considerations</name>
      <t>This section provides informational guidance for implementors.</t>
      <section anchor="migration">
        <name>CID Changes, Migration, and NAT Rebindings</name>
        <t>With the multipath extension, each
path uses a separate packet number space.
This is a major difference from
<xref target="QUIC-TRANSPORT"/>, which only defines three number spaces (Initial,
Handshake and Application packets).</t>
        <t>For any given path, connection ID rotation, NAT rebinding, or client initiated migration
as specified in <xref target="QUIC-TRANSPORT"/> might occur, like on a single path.
These events do not change the path ID,  and do not affect the packet number
space associated with the path.</t>
        <t>It is generally preferable to use multipath mechanisms such as
creating a new path and later abandoning the old path,
rather than doing migration of a single path as specified in <xref target="QUIC-TRANSPORT"/>.
This enables a smoother handover and allows a more controlled migration handling
at the server side. However, migration of a single path cannot be
avoided in case of NAT rebinding, or if the server requests migration
to a "preferred address" during the handshake.</t>
        <t><xref section="9.3" sectionFormat="of" target="QUIC-TRANSPORT"/> allows an endpoint to skip validation of
a peer address if that address has been seen recently. However, when the
multipath extension is used and an endpoint has multiple addresses that
could lead to switching between different paths, it should rather maintain
multiple open paths instead.</t>
        <t>Servers observing a 4-tuple change will
perform path validation (see <xref section="9" sectionFormat="of" target="QUIC-TRANSPORT"/>).
If path validation process succeeds, the endpoints set
the path's congestion controller and round-trip time
estimator according to <xref section="9.4" sectionFormat="of" target="QUIC-TRANSPORT"/>.</t>
      </section>
      <section anchor="using-multiple-paths-on-the-same-4-tuple">
        <name>Using Multiple Paths on the Same 4-tuple</name>
        <t>It is possible to create paths that
refer to the same 4-tuple. For example, the endpoints may want
to create paths that use different Differentiated Service <xref target="RFC2475"/> markings.
This could be done in conjunction with scheduling algorithms
that match streams to paths, so that for example data frames for
low priority streams are sent over low priority paths.
Since these paths use different path IDs, they can be managed
independently to suit the needs of the application.</t>
        <t>There may be cases in which paths are created with different 4-tuples,
but end up using the same 4-tuples as a consequence of path
migrations. Consider the following example where all paths use the same
source and destination ports:</t>
        <ul spacing="normal">
          <li>
            <t>Client starts path 1 from address 192.0.2.1 to server address 198.51.100.1</t>
          </li>
          <li>
            <t>Client starts path 2 from address 192.0.2.2 to server address 198.51.100.1</t>
          </li>
          <li>
            <t>Both paths are used for a while.</t>
          </li>
          <li>
            <t>Server sends packet from address 198.51.100.1 to client address 192.0.2.1, with CID indicating path ID 2.</t>
          </li>
          <li>
            <t>Client receives the packet, recognizes a path migration, updates the source address of path 2 to 192.0.2.1.</t>
          </li>
        </ul>
        <t>Such unintentional use of the same 4-tuple on different paths ought to
be rare. When they happen, the two paths would be redundant, and the
endpoint could want to close one of them.
Uncoordinated abandon of both endpoints may result in deleting
both paths instead of just one. To avoid this pitfall, endpoints could
adopt a simple coordination rule, such as only letting the client
initiate closure of duplicate paths, or perhaps relying on
the application protocol to decide which paths should be closed.</t>
      </section>
      <section anchor="congestion-control">
        <name>Congestion Control</name>
        <t>When the QUIC multipath extension is used, senders manage per-path
congestion status as required in <xref section="9.4" sectionFormat="of" target="QUIC-TRANSPORT"/>.
However, in <xref target="QUIC-TRANSPORT"/> only one active path is assumed and as such
the requirement is to reset the congestion control status on path migration.
With the multipath extension, multiple paths can be used simultaneously,
therefore separate congestion control state is maintained for each path.
This means a sender is not allowed to send more data on a given path
than congestion control for that path indicates.</t>
        <t>When a Multipath QUIC connection uses two or more paths, there is no
guarantee that these paths are fully disjoint. When two (or more paths)
share the same bottleneck, using a standard congestion control scheme
could result in an unfair distribution of the bandwidth with
the multipath connection getting more bandwidth than competing single
paths connections. Multipath TCP uses the linked increased algorithm (LIA)
congestion control scheme
specified in <xref target="RFC6356"/> to solve this problem.  This scheme can
immediately be adapted to Multipath QUIC. Other coupled congestion
control schemes have been proposed for Multipath TCP such as <xref target="OLIA"/>.
Designers of congestion control algorithms specialized for Multipath QUIC
are advised to follow BCP 133; see <xref section="7.10" sectionFormat="of" target="RFC9743"/>.</t>
        <t><xref section="5.1.2" sectionFormat="of" target="QUIC-TRANSPORT"/> indicates that an endpoint
can change the connection ID it uses to another available one
at any time during the connection. As such, a sole change of the Connection
ID without any change in the address does not indicate a path change and
the endpoint can keep the same congestion control and RTT measurement state.</t>
      </section>
      <section anchor="compute-rtt">
        <name>Computing Path RTT</name>
        <t>PATH_ACK frames indicate which path the acknowledged packets were sent on,
but they may be received through any open path. If successive acknowledgments are received
on different paths, the measured RTT samples can fluctuate widely,
which could result in poor performance depending e.g. on the used connection control.</t>
        <t>Congestion control state as defined in <xref target="QUIC-RECOVERY"/> is kept
per path ID. However, depending on which path acknowledgements are
sent, the actual RTT of a path cannot be calculated or may not be
the right value to be used.</t>
        <t>Instead of using RTT, we define the acknowledgment delays as
the sum of two one-way delays: the delay
on the packet sending path and the delay on the return path chosen
for the acknowledgments.  When different paths have different
characteristics, acknowledgment delays can vary
widely. Consider for example a multipath transmission using both a
terrestrial path, with a latency of 50ms in each direction, and a
geostationary satellite path, with a latency of 300ms in each
direction.  The acknowledgment delay will depend on the combination
of paths used for the packet transmission and the acknowledgement transmission,
as shown in <xref target="fig-example-ack-delay"/>.</t>
        <table anchor="fig-example-ack-delay">
          <name>Example of ACK delays using multiple paths</name>
          <thead>
            <tr>
              <th align="left">ACK Path \ Data path</th>
              <th align="left">Terrestrial</th>
              <th align="left">Satellite</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Terrestrial</td>
              <td align="left">100ms</td>
              <td align="left">350ms</td>
            </tr>
            <tr>
              <td align="left">Satellite</td>
              <td align="left">350ms</td>
              <td align="left">600ms</td>
            </tr>
          </tbody>
        </table>
        <t>The computed values reflect both the state of the network path and the
scheduling decisions of the acknowledgement sender. If we
assume that the PATH_ACK will be sent over the terrestrial
link, because this decision provides the best response time, the
computed RTT value for the satellite path will be about 350ms. This is
lower than the 600ms that would be measured if the PATH_ACK came over
the satellite channel, but it is still the right value for computing
for example the PTO timeout: if a PATH_ACK is not received after more
than 350ms, either the data packet or its PATH_ACK were probably lost.</t>
        <t>The simplest implementation is to use the acknowledgment delay
to compute smoothed_rtt and rttvar per
<xref section="5.3" sectionFormat="of" target="QUIC-RECOVERY"/> regardless of the path through which PATH_ACK frames are
received. This approach will provide good results
as long as acknowledgements are sent consistently over the same paths.
If at any time the sender revisits its sending preferences,
this can also change the paths that are used to send acknowledgements.
However, this is not very
different from route changes on a single path.
The RTT, RTT variance and PTO estimates will rapidly converge to
reflect the new conditions.
There is one exception: the minimum RTT, which is also
a known challenge when route changes occurs on a single path.
An acknowledgement receiver
can, however, remember the path over which the PATH_ACK that produced
the minimum RTT was received, and restart the minimum RTT computation
if that acknowledgement path changes or is abandoned.</t>
        <t>Further, congestion control functions that rely on delay estimates needs
to consider cases where acknowledgements are sent over multiple paths
with different delays explicitly.</t>
      </section>
      <section anchor="packet-scheduling">
        <name>Packet Scheduling</name>
        <t>The transmission of data packets is limited
by the arrival of data from the application and by congestion control.
Generally, QUIC packets that increase the number of bytes in flight can only be sent
when the congestion window for the selected path allows it.</t>
        <t>Most frames, including control frames (PATH_CHALLENGE and PATH_RESPONSE being the notable
exceptions), can be sent and received on any open path.
As such, a packet scheduler is needed to decide which path to use
for sending the next packet, among those paths with an open congestion window.
If multiple paths are used to send data frames belonging to the same stream,
data delivery will experience the maximum delay of all used paths due to in-order delivery.
The scheduling is a local decision, based on the preferences of the application and the
implementation.</t>
        <t>This implies that an endpoint may send and receive PATH_ACK
frames on a path different from the one that carried the acknowledged
packets. As noted in <xref target="compute-rtt"/>, RTT estimates computed using
the standard algorithm reflect both the characteristics of the
path and the scheduling algorithm of PATH_ACK frames. The estimates will converge
faster if the scheduling strategy of PATH_ACK frames is stable.
Implementations can choose different strategies such as, for instance, sending
PATH_ACK frames either simply on the path where the acknowledged packets was received,
or alternatively the shortest path, which results in shorter control loops
and potentially better performance.</t>
        <t>Since packets that only carry PATH_ACK frames
are not congestion controlled (see <xref section="7" sectionFormat="of" target="QUIC-RECOVERY"/>),
senders should carefully consider the load induced
by these packets, especially if the capacity is unknown on that path,
e.g., when that path is not used for sending data frames.</t>
      </section>
      <section anchor="retransmissions">
        <name>Retransmissions</name>
        <t>Simultaneous use of multiple paths enables different
retransmission strategies to cope with losses such as:
a) retransmitting lost frames over the
same path, b) retransmitting lost frames on a different or
dedicated path, and c) duplicate lost frames on several paths (not
recommended for general purpose use due to the network
overhead). While this document does not preclude a specific
strategy, more detailed specification is out of scope.</t>
        <t>As noted in <xref section="2.2" sectionFormat="of" target="QUIC-TRANSPORT"/>, STREAM frame boundaries are not
expected to be preserved when data is retransmitted. Especially when STREAM
frames have to be retransmitted over a different path with a smaller MTU limit,
new smaller STREAM frames might need to be sent instead.</t>
      </section>
      <section anchor="pto-expiration">
        <name>PTO Expiration</name>
        <t>An implementation should follow the mechanism specified in <xref target="QUIC-RECOVERY"/>
for detecting packet loss on each individual path. A special case happens when
the PTO timer expires. According to <xref target="QUIC-RECOVERY"/>, no packet will be declared
lost until either the packet sender receives a new acknowledgement for this path,
or the path itself is finally declared broken. This cautious process minimizes
the risk of spurious retransmissions, but it may cause significant delivery delay
for the frames contained in these "lost packets".</t>
        <t>Endpoints could take advantage of the multipath extension, and retransmit the content
of the delayed packets on other available paths if the congestion control window on these
paths allows.</t>
      </section>
      <section anchor="paths-having-different-pmtu-sizes">
        <name>Paths Having Different PMTU Sizes</name>
        <t>An implementation should take care to handle different PMTU sizes across
multiple paths. As specified in <xref section="14.3" sectionFormat="of" target="QUIC-TRANSPORT"/> the
DPLPMTUD Maximum Packet Size (MPS) is maintained for each combination of local and remote IP addresses.
One simple option, if the PMTUs are relatively similar, is to apply the minimum PMTU of all paths to
each path. The benefit of such an approach is to simplify retransmission
processing as the content of lost packets initially sent on one path can be sent
on another path without further frame scheduling adaptations.</t>
      </section>
      <section anchor="idle-time-close">
        <name>Idle Timeout and Keep-Alives</name>
        <t><xref target="QUIC-TRANSPORT"/> defines an idle timeout for closing the connection
which applies in case of multipath usage
if no packet is received on any path for the duration of the idle timeout.</t>
        <t>This document does not specify per-path idle timeouts. An endpoint
can decide to close a path at any time, whether the path is in active
use or not. For example, an endpoint may wait to send
the initial PATH_ABANDON frame until it anyway sends another frame.
Note that the receiver of an initial PATH_ABANDON frame is, however,
required to immediately reply (see <xref target="path-close"/>).</t>
        <t>If a path is not actively used for a while, it might not be usable anymore,
e.g. due to middlebox timeouts. To avoid such path breakage, endpoints
can send ack-eliciting packets such as packets containing PING frames
(<xref section="19.2" sectionFormat="of" target="QUIC-TRANSPORT"/>) on that path to keep it alive.
<xref section="5.3" sectionFormat="of" target="QUIC-TRANSPORT"/> defines an optional keep alive process.
This process can be applied to each path separately depending on application needs.
Some applications may decide to not keep any not-actively used path alive,
keep only one additonal path alive, or multiple paths, e.g. for more redunancy.
As discussed in <xref section="10.1.2" sectionFormat="of" target="QUIC-TRANSPORT"/>, the keep-alive interval
needs to incorperate timeouts in middleboxes on the path.</t>
        <t>If a path was not actively used for a while and no keep alives have been sent,
an endpoint can probe it before switching to active use if there are still other paths
that are currently usable.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document defines a new transport parameter to
enable simultaneous use of multiple paths within one QUIC connection.
Further, it specifies new frame types for path management and new error codes
when a path is abandoned.</t>
      <t>The current draft defines provisional values for experiments,
but, if the draft is approved, IANA is requested to allocate short values
as permanent with "IETF" as change controller and
the QUIC WG as contact to the respective registries under
<eref target="https://www.iana.org/assignments/quic/quic.xhtml">https://www.iana.org/assignments/quic/quic.xhtml</eref>.</t>
      <t>The following entry in <xref target="transport-parameters"/> should be added to
the "QUIC Transport Parameters" registry under the "QUIC Protocol" heading.</t>
      <table anchor="transport-parameters">
        <name>Addition to QUIC Transport Parameters Entries</name>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Parameter Name.</th>
            <th align="left">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD (current version uses 0x0f739bbc1b666d0d)</td>
            <td align="left">initial_max_path_id</td>
            <td align="left">
              <xref target="nego"/></td>
          </tr>
        </tbody>
      </table>
      <t>The following frame types defined in <xref target="frame-types"/> should be added to
the "QUIC Frame Types" registry under the "QUIC Protocol" heading.</t>
      <table anchor="frame-types">
        <name>Addition to QUIC Frame Types Entries</name>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Frame Name</th>
            <th align="left">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD-00 - TBD-01 (experiments use 0x15228c00-0x15228c01)</td>
            <td align="left">PATH_ACK</td>
            <td align="left">
              <xref target="mp-ack-frame"/></td>
          </tr>
          <tr>
            <td align="left">TBD-02 (experiments use 0x15228c05)</td>
            <td align="left">PATH_ABANDON</td>
            <td align="left">
              <xref target="path-abandon-frame"/></td>
          </tr>
          <tr>
            <td align="left">TBD-03 (experiments use 0x15228c07)</td>
            <td align="left">PATH_BACKUP</td>
            <td align="left">
              <xref target="path-backup-available-frame"/></td>
          </tr>
          <tr>
            <td align="left">TBD-04 (experiments use 0x15228c08)</td>
            <td align="left">PATH_AVAILABLE</td>
            <td align="left">
              <xref target="path-backup-available-frame"/></td>
          </tr>
          <tr>
            <td align="left">TBD-05 (experiments use 0x15228c09)</td>
            <td align="left">PATH_NEW_CONNECTION_ID</td>
            <td align="left">
              <xref target="mp-new-conn-id-frame"/></td>
          </tr>
          <tr>
            <td align="left">TBD-06 (experiments use 0x15228c0a)</td>
            <td align="left">PATH_RETIRE_CONNECTION_ID</td>
            <td align="left">
              <xref target="mp-retire-conn-id-frame"/></td>
          </tr>
          <tr>
            <td align="left">TBD-07 (experiments use 0x15228c0c)</td>
            <td align="left">MAX_PATH_ID</td>
            <td align="left">
              <xref target="max-paths-frame"/></td>
          </tr>
          <tr>
            <td align="left">TBD-08 (experiments use 0x15228c0d)</td>
            <td align="left">PATHS_BLOCKED</td>
            <td align="left">
              <xref target="paths-and-cids-blocked-frame"/></td>
          </tr>
          <tr>
            <td align="left">TBD-09 (experiments use 0x15228c0e)</td>
            <td align="left">PATH_CIDS_BLOCKED</td>
            <td align="left">
              <xref target="paths-and-cids-blocked-frame"/></td>
          </tr>
        </tbody>
      </table>
      <t>The following transport error code defined in <xref target="tab-error-code"/> are to
be added to the "QUIC Transport Error Codes" registry under
the "QUIC Protocol" heading.</t>
      <table anchor="tab-error-code">
        <name>Error Codes for Multipath QUIC</name>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Code</th>
            <th align="left">Description</th>
            <th align="left">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD-10 (experiments use 0x004150504142414e)</td>
            <td align="left">APPLICATION_ABANDON</td>
            <td align="left">Path abandoned at the application's request</td>
            <td align="left">
              <xref target="error-codes"/></td>
          </tr>
          <tr>
            <td align="left">TBD-11 (experiments use 0x0052534c494d4954)</td>
            <td align="left">RESOURCE_LIMIT_REACHED</td>
            <td align="left">Path abandoned due to resource limitations in the transport</td>
            <td align="left">
              <xref target="error-codes"/></td>
          </tr>
          <tr>
            <td align="left">TBD-12 (experiments use 0x00554e5f494e5446)</td>
            <td align="left">UNSTABLE_INTERFACE</td>
            <td align="left">Path abandoned due to unstable interfaces</td>
            <td align="left">
              <xref target="error-codes"/></td>
          </tr>
          <tr>
            <td align="left">TBD-13 (experiments use 0x004e4f5f4349445f)</td>
            <td align="left">NO_CID_AVAILABLE</td>
            <td align="left">Path abandoned due to no available connection IDs for the path</td>
            <td align="left">
              <xref target="error-codes"/></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The multipath extension retains all security properties of <xref target="QUIC-TRANSPORT"/> and <xref target="QUIC-TLS"/>
but requires some additional consideration regarding:</t>
      <ul spacing="normal">
        <li>
          <t>potential additional resource usage for per-path connection IDs and multiple concurrent path contexts;</t>
        </li>
        <li>
          <t>a potentially increased amplification risk for request forgery attacks if multiple paths are used simultaneously;</t>
        </li>
        <li>
          <t>changes to the nonce calculation due to the use of multiple packet number spaces.</t>
        </li>
      </ul>
      <section anchor="memory-allocation-for-per-path-resources">
        <name>Memory Allocation for Per-Path Resources</name>
        <t>The maximum path ID limit in initial_max_path_id or MAX_PATH_ID frame
limits the number of paths an endpoint is willing
to maintain and thereby also limits the associated path resources.
Furthermore, as connection IDs have to be issued by both endpoints for the
same path ID before an endpoint can open a path, each endpoint could also
control the per-path resource usage by only
issuing connection IDs for a limited number of paths. However, using
the maximum path ID limit in initial_max_path_id or the MAX_PATH_ID frame is preferred.</t>
        <t>To avoid unnecessary resource usage that could be exploited
in a resource exhaustion attack, endpoints SHOULD allocate additional path resources,
such as e.g. for packet number handling, only after path validation has successfully completed.</t>
      </section>
      <section anchor="request-forgery-with-spoofed-address">
        <name>Request Forgery with Spoofed Address</name>
        <t>Path validation as specified in <xref section="8.2." sectionFormat="of" target="QUIC-TRANSPORT"/>
for migration is used
unchanged for path initiation in this extension. Therefore, the security considerations
on source address spoofing as outlined in <xref section="21.5.4" sectionFormat="of" target="QUIC-TRANSPORT"/> equally apply.
Similarly, the anti-amplification limits as specified in <xref section="8" sectionFormat="of" target="QUIC-TRANSPORT"/> need to be
followed to limit the amplification risk.</t>
        <t><xref target="QUIC-TRANSPORT"/> only allows the use of one path
and the number of concurrent path validation attempts is
limited by number of issued connection IDs.
This extension, however, allows for multiple open paths that could in theory be migrated
all at the same time. Further multiple paths could be initialized
simultaneously. Each open path could be used to further amplify an attack.
Therefore, endpoints need to limit the maximum number of paths and might consider
additional measures to limit the number of concurrent path validation processes
e.g. by pacing them out or limiting the number of path initiation attempts
over a certain time period.</t>
      </section>
      <section anchor="cryptographic-handshake-and-aead-nonce">
        <name>Cryptographic handshake and AEAD Nonce</name>
        <t>The multipath extension as specified in this document is only enabled after a
successful handshake when both endpoints indicate support for this extension.
Respectively, all new frames defined in this extension are only used in 1-RTT packets.
As the handshake is not changed by this extension, the transport security mechanisms
as specified in <xref target="QUIC-TLS"/>, such as encryption key exchange and peer authentication,
remain unchanged. As such, the respective security considerations in <xref target="QUIC-TLS"/> apply unaltered. However, note that the limits as discussed on Appendix B of <xref target="QUIC-TLS"/>
apply to the total number of packets sent on all paths.</t>
        <t>This specification changes the AEAD calculation by using the path ID as part of
AEAD nonce (see <xref target="nonce"/>). To ensure unique nonces, path IDs
are limited to 32 bits and cannot be reused for another path of the same connection.</t>
      </section>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <t>This document is a collaboration of authors that combines work from
three proposals. Further contributors that were also involved
one of the original proposals are:</t>
      <ul spacing="normal">
        <li>
          <t>Qing An</t>
        </li>
        <li>
          <t>Zhenyu Li</t>
        </li>
      </ul>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Marten Seemann, Kazuho Oku, Martin Thomson, Magnus Westerlund, Mike Bishop,
Lucas Pardue, Michael Eriksson, Yu Zhu, and Gorry Fairhurst
for their thorough reviews and valuable contributions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="QUIC-TRANSPORT">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <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 communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="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="Thomson"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
        <reference anchor="QUIC-RECOVERY">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9002"/>
          <seriesInfo name="DOI" value="10.17487/RFC9002"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6356">
          <front>
            <title>Coupled Congestion Control for Multipath Transport Protocols</title>
            <author fullname="C. Raiciu" initials="C." surname="Raiciu"/>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <author fullname="D. Wischik" initials="D." surname="Wischik"/>
            <date month="October" year="2011"/>
            <abstract>
              <t>Often endpoints are connected by multiple paths, but communications are usually restricted to a single path per connection. Resource usage within the network would be more efficient were it possible for these multiple paths to be used concurrently. Multipath TCP is a proposal to achieve multipath transport in TCP.</t>
              <t>New congestion control algorithms are needed for multipath transport protocols such as Multipath TCP, as single path algorithms have a series of issues in the multipath context. One of the prominent problems is that running existing algorithms such as standard TCP independently on each path would give the multipath flow more than its fair share at a bottleneck link traversed by more than one of its subflows. Further, it is desirable that a source with multiple paths available will transfer more traffic using the least congested of the paths, achieving a property called "resource pooling" where a bundle of links effectively behaves like one shared link with bigger capacity. This would increase the overall efficiency of the network and also its robustness to failure.</t>
              <t>This document presents a congestion control algorithm that couples the congestion control algorithms running on different subflows by linking their increase functions, and dynamically controls the overall aggressiveness of the multipath flow. The result is a practical algorithm that is fair to TCP at bottlenecks while moving traffic away from congested links. This document defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6356"/>
          <seriesInfo name="DOI" value="10.17487/RFC6356"/>
        </reference>
        <reference anchor="OLIA">
          <front>
            <title>MPTCP is not pareto-optimal: performance issues and a possible solution</title>
            <author initials="R." surname="Khalili">
              <organization/>
            </author>
            <author initials="N." surname="Gast">
              <organization/>
            </author>
            <author initials="M." surname="Popovic">
              <organization/>
            </author>
            <author initials="U." surname="Upadhyay">
              <organization/>
            </author>
            <author initials="J." surname="Le Boudec">
              <organization/>
            </author>
            <date year="2012"/>
          </front>
          <seriesInfo name="Proceedings of the 8th international conference on Emerging networking experiments and technologies, ACM" value=""/>
        </reference>
        <reference anchor="RFC2475">
          <front>
            <title>An Architecture for Differentiated Services</title>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <author fullname="M. Carlson" initials="M." surname="Carlson"/>
            <author fullname="E. Davies" initials="E." surname="Davies"/>
            <author fullname="Z. Wang" initials="Z." surname="Wang"/>
            <author fullname="W. Weiss" initials="W." surname="Weiss"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines an architecture for implementing scalable service differentiation in the Internet. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2475"/>
          <seriesInfo name="DOI" value="10.17487/RFC2475"/>
        </reference>
        <reference anchor="RFC9743">
          <front>
            <title>Specifying New Congestion Control Algorithms</title>
            <author fullname="M. Duke" initials="M." role="editor" surname="Duke"/>
            <author fullname="G. Fairhurst" initials="G." role="editor" surname="Fairhurst"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>RFC 5033 discusses the principles and guidelines for standardizing new congestion control algorithms. This document obsoletes RFC 5033 to reflect changes in the congestion control landscape by providing a framework for the development and assessment of congestion control mechanisms, promoting stability across diverse network paths. This document seeks to ensure that proposed congestion control algorithms operate efficiently and without harm when used in the global Internet. It emphasizes the need for comprehensive testing and validation to prevent adverse interactions with existing flows.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="133"/>
          <seriesInfo name="RFC" value="9743"/>
          <seriesInfo name="DOI" value="10.17487/RFC9743"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA819S28cWZbe/v6KMLVo0sjMJqlHlTTT42ZRVBXdEskhqeou
19SoIzMjyWhlRmTHQ1S2qgazMeCtd/bGCxswbMC/wID/zMBjYP6Fz/O+IiJJ
dfcAU8BMi5kZcV/nnud3zhmPx6bJm2X2InnTLpt8nTa3ycnHJivqvCySRVkl
f/329Nik02mVffB/RB/Py1mRruDheZUumnGeNYvx79t8Nl7p78YHT8w8beAn
n14eXZ/8ZGbwx01ZbV4kdTM3Jl9XL5KmauvmcH//+f6hSassfZFcV2lRr8uq
MXdl9f6mKtv1Cxoy+TX8nRc3ydf4mXmfbeAH8xfJadFkVZE145c4E2PqJi3m
79JlWcDQm6w26/xF8n1TzkZJDa+tskUN/9qs8B8/GJO2zW1ZvTBjkySLdrmk
VcG/8b8XL5Kdf/wP/+kf/89//3//9d/vyIdpPcvhjTvfpcUqy5PXeYvfVCXu
ZDbPm7KCP8vq5kVytMyn6TSFGc4m8Fm2SvPli2SVp+Xv8slys/plyj8Y5/CD
WbmiOcSTwDn80//8X//3f//Hf/pv/0XmYKfQFguYwpuUPqcx306zKrnOZrdF
uSxv8qzW0XX4DT0zWaW/bOGnbti8qGGfJ8nLLDkuC5jRe/yUz/iv26xo8iL6
LlqyjF/kH7KqzptNUi6SN2VRJ7tv35yfXe15c/g9v28yz2b8ul+2K/jlJJ1N
ppk3nfNJ8lVZpB/g122VufmcL/MPOawz+pIncPy6bD+kMFsgA9iJuga6qr3B
S354MnUP/7KdLfmhcPzjSfJNmzfwoBv7+LbK6yZPC/8rGvmiyj8AiSfns6Zc
t52Nv+Wf/1L+dwIk6w31ZpL8qs1ul9ldXszdaG/y6ndp9E3vvp9U+ayuy8Ib
cIXPTt7bZ3+ZyW/o0I0pymqVNnBcSGl4w8bXl0dnVxfnl9cvkmoxe76/v2+/
eX2lnx3oZ5cnx+ffnlx+p18cwp0uFv5LL18dP3v89Bn+8/z16RFTtDCdnTcX
18cXSV4nRdkkazikphyX6yZfpTD3dVbRm4pZBj+pW6BjOE6TJuuyrvPpMoO7
vGwb4FR8JZjR7BzuHxzyBzUsNqtxPvDxRVXOMtiw4qZGqmxus+RLYGQ5cY4U
35IuEyDFRVZlOCJs48kqq26Q28Ax3QnjyT7CtPIV0AzNJmm8azZKjo7f8NDK
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

-->

</rfc>
