<?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.1 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-quic-multipath-06" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="Multipath QUIC">Multipath Extension for QUIC</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-quic-multipath-06"/>
    <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 82?>

<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/mirjak/draft-lmbdhk-quic-multipath"/>.</t>
    </note>
  </front>
  <middle>
    <?line 87?>

<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.</t>
      <t>This proposal is based on several basic design points:</t>
      <ul spacing="normal">
        <li>
          <t>Re-use as much as possible mechanisms of QUIC version 1. In
particular, this proposal uses path validation as specified for QUIC
version 1 and aims to re-use as much as possible of QUIC's connection
migration.</t>
        </li>
        <li>
          <t>Use the same packet header formats as QUIC version 1 to minimize
the difference between multipath and non-multipath traffic being
exposed on wire.</t>
        </li>
        <li>
          <t>Congestion Control must be per-path (following <xref target="QUIC-TRANSPORT"/>)
which usually also requires per-path RTT measurements</t>
        </li>
        <li>
          <t>PMTU discovery should be performed per-path</t>
        </li>
        <li>
          <t>The use of this multipath extension requires the use of non-zero
Connection IDs in both directions.</t>
        </li>
        <li>
          <t>A path is determined by the 4-tuple of source and destination IP
address as well as source and destination port. Therefore, there can be
at most one active paths/connection ID per 4-tuple.</t>
        </li>
        <li>
          <t>If the 4-tuple changes without the use of a new connection ID (e.g.
due to a NAT rebinding), this is considered as a migration event.</t>
        </li>
      </ul>
      <t>The path management specified in <xref section="9" sectionFormat="of" target="QUIC-TRANSPORT"/>
fulfills multiple goals: it directs a peer to switch sending through
a new preferred path, and it allows the peer to release resources
associated with the old path. Multipath requires several changes to
that mechanism:</t>
      <ul spacing="normal">
        <li>
          <t>Allow simultaneous transmission of non-probing frames on multiple
paths.</t>
        </li>
        <li>
          <t>Continue using an existing path even if non-probing frames have
been received on another path.</t>
        </li>
        <li>
          <t>Manage the removal of paths that have been abandoned.</t>
        </li>
      </ul>
      <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 negotiation between the two endpoints using a new transport
parameter, as specified in <xref target="nego"/>.</t>
      <t>This extension uses multiple packet number spaces.
When multipath is negotiated,
each destination connection ID is linked to a separate packet number space.
Using multiple packet number spaces enables direct use of the
loss recovery and congestion control mechanisms defined in
<xref target="QUIC-RECOVERY"/>.</t>
      <t>This specification
requires the sender to use a non-zero connection ID when opening an
additional path.
Some deployments of QUIC use zero-length connection IDs.
However, when a node selects to use zero-length connection IDs, it is not
possible to use different connection IDs for distinguishing packets
sent to that node over different paths.</t>
      <t>Each endhost may use several IP addresses to serve the connection. In
particular, the multipath extension supports the following scenarios.</t>
      <ul spacing="normal">
        <li>
          <t>The client uses multiple IP addresses and the server listens on only
one.</t>
        </li>
        <li>
          <t>The client uses only one IP address and the server listens on
several ones.</t>
        </li>
        <li>
          <t>The client uses multiple IP addresses and the server listens on
several ones.</t>
        </li>
        <li>
          <t>The client uses only one IP address and the server
listens on only one.</t>
        </li>
      </ul>
      <t>Note that in the last scenario, it still remains possible to have
multiple paths over the connection, given that a path is not only
defined by the IP addresses being used, but also the port numbers.
In particular, the client can use one or several ports per IP
address and the server can listen on one or several ports per IP
address.</t>
      <t>This proposal does not cover address discovery and management. Addresses
and the actual decision process to setup or tear down paths are assumed
to be handled by the application that is using the QUIC multipath
extension. This is sufficient to address the first aforementioned
scenario. However, this document does not prevent future extensions from
defining mechanisms to address the remaining scenarios.
Further, this proposal only specifies a simple basic packet
scheduling algorithm, in order to provide some basic implementation
guidance. However, more advanced algorithms as well as potential
extensions to enhance signaling of the current path state are expected
as future work.</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="overview">
      <name>High-level overview</name>
      <t>The multipath extensions to QUIC proposed in this document enable the simultaneous utilization of
different paths to exchange non-probing QUIC frames for a single connection. This contrasts with
the base QUIC protocol <xref target="QUIC-TRANSPORT"/> that includes a connection migration mechanism that
selects only one path to exchange such frames.</t>
      <t>A multipath QUIC connection starts with a QUIC handshake as a regular QUIC connection.
See further <xref target="nego"/>.
The peers use the enable_multipath transport parameter during the handshake to
negotiate the utilization of the multipath capabilities.
The active_connection_id_limit transport parameter limits the maximum number of active paths
that can be used during a connection. A multipath QUIC connection is thus an established QUIC
connection where the enable_multipath transport parameter
has been successfully negotiated.</t>
      <t>To add a new path to an existing multipath QUIC connection, a client starts a path validation on
the chosen path, as further described in <xref target="setup"/>.
In this version of the document, a QUIC server does not initiate the creation
of a path, but it can validate a new path created by a client.
A new path can only be used once the associated 4-tuple has been validated
by ensuring that the peer is able to receive packets at that address
(see <xref section="8" sectionFormat="of" target="QUIC-TRANSPORT"/>). The Destination Connection ID is used
to associate a packet to a packet number space that is used on a valid path. Further, the
sequence number of Destination Connection ID is used as numerical identifier
in control frames. E.g. an endpoint sends a PATH_ABANDON frame to request its peer to
abandon the path on which the sender uses the Destination Connection ID
with the sequence number contained in the PATH_ABANDON frame.</t>
      <t>In addition to these core features, an application using Multipath QUIC will typically
need additional algorithms to handle the number of active paths and how they are used to
send packets. As these differ depending on the application's requirements, their
specification is out of scope of this document.</t>
      <t>Using multiple packet number spaces requires changes in the way AEAD is
applied for packet protection, as explained in <xref target="multipath-aead"/>,
and tighter constraints for key updates, as explained in <xref target="multipath-key-update"/>.</t>
    </section>
    <section anchor="nego">
      <name>Handshake Negotiation and Transport Parameter</name>
      <t>This extension defines a new transport parameter, used to negotiate
the use of the multipath extension during the connection handshake,
as specified in <xref target="QUIC-TRANSPORT"/>. The new transport parameter is
defined as follows:</t>
      <ul spacing="normal">
        <li>
          <t>enable_multipath (current version uses 0x0f739bbc1b666d06): the
enable_multipath transport parameter is included if the endpoint supports
the multipath extension as defined in this document. This parameter has
a zero-length value.</t>
        </li>
      </ul>
      <t>If any of the endpoints does not advertise the enable_multipath transport
parameter, then the endpoints MUST NOT use any frame or
mechanism defined in this document.</t>
      <t>When advertising the enable_multipath transport parameter, the endpoint
MUST use non-zero source and destination connection IDs.
If an enable_multipath 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
MP_PROTOCOL_VIOLATION and close the connection.</t>
      <t>The enable_multipath parameter MUST NOT be remembered
(<xref section="7.4.1" sectionFormat="of" target="QUIC-TRANSPORT"/>).
New paths can only be used after handshake completion.</t>
      <t>This extension does not change the definition of any transport parameter
defined in <xref section="18.2." sectionFormat="of" target="QUIC-TRANSPORT"/>.</t>
      <t>The transport parameter "active_connection_id_limit"
<xref target="QUIC-TRANSPORT"/> limits the number of usable Connection IDs, and also
limits the number of concurrent paths. However, endpoints might prefer to retain
spare Connection IDs so that they can respond to unintentional migration events
(<xref section="9.5" sectionFormat="of" target="QUIC-TRANSPORT"/>).</t>
      <t>Cipher suites with nonce shorter than 12 bytes cannot be used together with
the multipath extension. If such cipher suite is selected and the use of the
multipath extension is negotiated, endpoints MUST abort the handshake with a
TRANSPORT_PARAMETER error.</t>
    </section>
    <section anchor="setup">
      <name>Path Setup and Removal</name>
      <t>After completing the handshake, endpoints have agreed to enable
multipath feature. They can also start using multiple paths, unless both
server preferred addresses and a disable_active_migration transport parameter
were provided by the server, in which case a client is forbidden to establish
new paths until "after a client has acted on a preferred_address transport
parameter" (<xref section="18.2." sectionFormat="of" target="QUIC-TRANSPORT"/>).</t>
      <t>This document
does not specify how an endpoint that is reachable via several addresses
announces these addresses to the other endpoint. In particular, 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"/>).
Furthermore, this document
does not discuss when a client decides to initiate a new path. We
delegate such discussion in separate documents.</t>
      <t>To open a new path, an endpoint SHALL use different Connection IDs on different paths.
Still, the receiver may observe the same Connection ID used on different
4-tuples due to, e.g., NAT rebinding. In such case, the receiver reacts
as specified in <xref section="9.3" sectionFormat="of" target="QUIC-TRANSPORT"/>.</t>
      <t>This proposal adds two multipath control frames for path management:</t>
      <ul spacing="normal">
        <li>
          <t>PATH_ABANDON frame for the receiver side to abandon the path
(see <xref target="path-abandon-frame"/>)</t>
        </li>
        <li>
          <t>PATH_STANDBY and PATH_AVAILABLE frames to express a preference
in path usage (see <xref target="path-standby-frame"/> and <xref target="path-available-frame"/></t>
        </li>
      </ul>
      <t>All new frames are sent in 1-RTT packets <xref target="QUIC-TRANSPORT"/>.</t>
      <section anchor="path-initiation">
        <name>Path Initiation</name>
        <t>Connection IDs cannot be reused, thus opening a new path requires the
use of a new Connection ID (see <xref section="9.5" sectionFormat="of" target="QUIC-TRANSPORT"/>).
Following <xref target="QUIC-TRANSPORT"/>, each endpoint uses NEW_CONNECTION_ID frames
to issue usable connections IDs to reach it. As such to open
a new path by initiating path validation, both sides need at least
one unused Connection ID (see <xref section="5.1.1" sectionFormat="of" target="QUIC-TRANSPORT"/>).</t>
        <t>If the transport parameter "active_connection_id_limit" is negotiated as N,
the server provided N Connection IDs, and the client is already actively
using N paths, the limit is reached. If the client wants to start
a new path, it has to retire one of the established paths.</t>
        <t>When the multipath option is negotiated, clients that want to use an
additional path MUST first initiate the Address Validation procedure
with PATH_CHALLENGE and PATH_RESPONSE frames described in
<xref section="8.2" sectionFormat="of" target="QUIC-TRANSPORT"/>. After receiving packets from the
client on a new path, if the server decides to use the new path,
the server MUST perform path validation (<xref section="8.2" sectionFormat="of" target="QUIC-TRANSPORT"/>)
unless it has previously validated that address.</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 initation attempt.
<xref section="9.1" sectionFormat="of" target="QUIC-TRANSPORT"/> introduces the concept of
"probing" and "non-probing" frames. When the multipath extension
is negotiated, the reception of "non-probing"
packet on a new path needs to be considered as a path initiation
attempt that 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
(<xref section="21.1.1.1" sectionFormat="of" target="QUIC-TRANSPORT"/>) and the congestion control
limits for this path are respected.</t>
        <t>Further, in contrast with the specification in
<xref section="9" sectionFormat="of" target="QUIC-TRANSPORT"/>, the server MUST NOT assume that
receiving non-probing packets on a new path with a new Connection ID
indicates an attempt
to migrate to that path.  Instead, servers SHOULD consider new paths
over which non-probing packets have been received as available
for transmission. Reception of QUIC packets on a new
path containing a Connection ID that is already in use on another path
should be considered as a path migration as further discussed in <xref target="migration"/>.</t>
        <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. In situations where multiple paths are activated, the
client may be recipient of several tokens, each tied to a different address.
When considering using a token for subsequent connections, the client ought to
carefully select the token to use, due to the inherent ambiguity associated
with determining the exact address to which a token is bound. To alleviate such a
token ambiguity issue, a server may issue a token that is capable of validating
any of the previously validated addresses.</t>
      </section>
      <section anchor="path-state-management">
        <name>Path State Management</name>
        <t>An endpoint uses PATH_STANDBY and PATH_AVAILABLE frames to inform that the peer should
send packets in the preference expressed by these frames.
Note that the endpoint might not follow the peer’s advertisements,
but these frames are still a clear signal of suggestion
for the preference of path usage by the peer.
Each peer indicates its preference of path usage independently of the other peer.
It means that peers may have different usage preferences for the same path.
Depending on the sender's decisions, this may lead to usage of paths that have been
indicated as "standby" 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.
PATH_STANDBY marks a path as "standby", i.e., it suggests that no traffic
should be sent on that path if another path is available.
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>Endpoints use Destination Connection ID Sequence Number field
in these frames to identify which path state is going to be
changed. Notice that both frames can be sent via a different path
and therefore might arrive in different orders.
The PATH_AVAILABLE and PATH_STANDBY frames share a common sequence number space to detect and ignore outdated information.</t>
        <t>If all available path are marked as "standby", no guidance is provided about
which path should be used preferably.</t>
      </section>
      <section anchor="path-close">
        <name>Path Close</name>
        <t>Each endpoint manages the set of paths that are available for
transmission. At any time in the connection, each endpoint can decide to
abandon one of these paths, following for example changes in local
connectivity or changes in local preferences. After an endpoint abandons
a path, the peer will not receive any more non-probing packets on
that path. Non-probing packets are defined in <xref section="9.1" sectionFormat="of" target="QUIC-TRANSPORT"/>.</t>
        <t>An endpoint that wants to close a path SHOULD use explicit request to
terminate the path by sending the PATH_ABANDON frame (see
<xref target="path-abandon-close"/>). Note that while abandoning a path will cause
Connection ID retirement, only retiring the associated Connection ID
does not necessarily advertise path abandon (see <xref target="retire-cid-close"/>).
However, implicit signals such as idle time or packet losses might be
the only way for an endhost to detect path closure (see
<xref target="idle-time-close"/>).</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-abandon-close">
          <name>Use PATH_ABANDON Frame to Close a Path</name>
          <t>Both endpoints, namely the client and the server, can initiate path closure,
by sending a PATH_ABANDON frame (see <xref target="path-abandon-frame"/>) which
requests the peer to stop sending packets with the corresponding Destination Connection ID.</t>
          <t>When sending or receiving a PATH_ABANDON frame, endpoints SHOULD wait for at
least three times the current Probe Timeout (PTO) interval as defined in
<xref section="6.2" sectionFormat="of" target="QUIC-RECOVERY"/> after the last packet was sent on the path,
before sending the RETIRE_CONNECTION_ID frame for the corresponding Connection
ID. This is inline with the requirement of <xref section="10.2" sectionFormat="of" target="QUIC-TRANSPORT"/>
to ensure that paths close cleanly and that delayed or reordered packets
are properly discarded.
The effect of receiving a RETIRE_CONNECTION_ID frame is specified in the
next section.</t>
          <t>Usually, it is expected that the PATH_ABANDON frame is used by the client
to indicate to the server that path conditions have changed such that
the path is or will be not usable anymore, e.g. in case of a mobility
event. The PATH_ABANDON frame therefore recommends to the receiver
that no packets should be sent on that path anymore.
In addition, the RETIRE_CONNECTION_ID frame is used indicate to the receiving peer
that the sender will not send any packets associated to the
Connection ID used on that path anymore.
The receiver of a PATH_ABANDON frame MAY also send
a PATH_ABANDON frame to indicate its own unwillingness to receive
any packet on this path anymore.</t>
          <t>PATH_ABANDON frames can be sent on any path,
not only the path that is intended to be closed. Thus, a path can
be abandoned even if connectivity on that path is already broken.</t>
          <t>If a PATH_ABANDON frame is received for the only active path of a QUIC
connection, the receiving peer SHOULD send a CONNECTION_CLOSE frame
and enter the closing state. If the client received a PATH_ABANDON
frame for the last open path, it 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>
        </section>
        <section anchor="refusing-a-new-path">
          <name>Refusing a New Path</name>
          <t>An endpoint may deny the establishment of a new path initiated by its
peer during the address validation procedure. According to
<xref target="QUIC-TRANSPORT"/>, the standard way to deny the establishment of a path
is to not send a PATH_RESPONSE in response to the peer's PATH_CHALLENGE.</t>
        </section>
        <section anchor="retire-cid-close">
          <name>Effect of RETIRE_CONNECTION_ID Frame</name>
          <t>Receiving a RETIRE_CONNECTION_ID frame causes an endpoint to discard
the resources associated with that Connection ID. Specifically, the endpoint
should not use the sequence number of the retired Connection ID anymore in
any control frames, as the peer will not be able to associate those frames to
a path and will therefore ignore them. This means an endpoint is also not required
to acknowledge any late packets carrying that Connection ID and, hence,
it can remove the list of received packets used to send acknowledgements after
receiving the RETIRE_CONNECTION_ID frame.</t>
          <t>The peer, that sent RETIRE_CONNECTION_ID frame, can keep sending data using
the same IP addresses and UDP ports previously associated with
that Connection ID, but MUST use a different connection ID when doing so.
If no new connection ID is available anymore, the endpoint cannot send on
this path. This can happen if, e.g., the Connection ID issuer requests retirement of a
Connection ID using the Retire Prior To field in the NEW_CONNECTION_ID frame but does
provide sufficient new CIDs.</t>
          <t>Note that even if a peer cannot send on a path anymore because it does not have
a valid Connection ID to use, it can still acknowledge packets received on the path,
by sending ACK_MP frames on another path, if available. But also note that,
as there is no valid CID associated with the path, the other end cannot send
multipath control frames that contain the sequence number of a Connection ID, such
as PATH_ABANDON, PATH_STANDBY or PATH_AVAILABLE.</t>
          <t>If the peer cannot send on a path and no data is received on the path, the idle time-out will close
the path. If, before the idle timer expires, a new Connection ID gets issued
by its peer, the endpoint can re-activate the path by
sending a packet with a new Connection ID on that path.</t>
          <t>If the sender retires a Connection ID that is still used by
in-flight packets, it may receive ACK_MP frames referencing the retired
Connection ID. If the sender stops tracking sent packets with retired
Connection ID, these would be spuriously marked as lost. To avoid such
performance issue without keeping retired Connection ID state, an
endpoint should first stop sending packets with the to-be-retired
Connection ID, then wait for all in-flight packets to be either
acknowledged or marked as lost, and finally retire the Connection ID.</t>
        </section>
        <section anchor="idle-time-close">
          <name>Idle Timeout</name>
          <t><xref target="QUIC-TRANSPORT"/> allows for closing of connections if they stay idle
for too long. The connection idle timeout in multipath QUIC is defined
as "no packet received on any path for the duration of the idle timeout".
When only one path is available, servers MUST follow the specifications
in <xref target="QUIC-TRANSPORT"/>.</t>
          <t>When more than one path is available, hosts shall monitor the arrival of
non-probing packets and the acknowledgements for the packets sent over each
path. Hosts SHOULD stop sending traffic on a path if for at least the period of the
idle timeout as specified in <xref section="10.1." sectionFormat="of" target="QUIC-TRANSPORT"/>
(a) no non-probing packet was received or (b) no
non-probing packet sent over this path was acknowledged, but MAY ignore that
rule if it would disqualify all available paths. To avoid idle timeout of a path, 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.  Sending
periodic PING frames also helps prevent middlebox timeout, as discussed in
<xref section="10.1.2" sectionFormat="of" target="QUIC-TRANSPORT"/>.</t>
          <t>Server MAY release the resource associated with paths for
which no non-probing packet was received for a sufficiently long
path-idle delay, but SHOULD only release resource for the last
available path if no traffic is received for the duration of the idle
timeout, as specified in <xref section="10.1" sectionFormat="of" target="QUIC-TRANSPORT"/>.
This means if all paths remain idle for the idle timeout, the connection
is implicitly closed.</t>
          <t>Server implementations need to select the sub-path idle timeout as a trade-
off between keeping resources, such as connection IDs, in use
for an excessive time or having to promptly reestablish a path
after a spurious estimate of path abandonment by the client.</t>
        </section>
      </section>
      <section anchor="path-states">
        <name>Path States</name>
        <t><xref target="fig-path-states"/> shows the states that an endpoint's path can have.</t>
        <figure anchor="fig-path-states">
          <name>States of a path</name>
          <artwork><![CDATA[
       o
       | PATH_CHALLENGE sent/received on new path
       v
 +------------+    Path validation abandoned
 | Validating |----------------------------------+
 +------------+                                  |
       |                                         |
       | PATH_RESPONSE received                  |
       |                                         |
       v                                         |
 +------------+     Path blackhole detected      |
 |   Active   |----------------------------------+
 +------------+                                  |
       |                                         |
       | PATH_ABANDON sent/received              |
       v                                         |
 +------------+                                  |
 |   Closing  |                                  |
 +------------+                                  |
       |                                         |
       | RETIRE_CONNECTION_ID sent && received   |
       | or                                      |
       | Path's draining timeout                 |
       | (at least 3 PTO)                        |
       v                                         |
 +------------+                                  |
 |   Closed   |<---------------------------------+
 +------------+
]]></artwork>
        </figure>
        <t>In non-final states, hosts have to track the following information.</t>
        <ul spacing="normal">
          <li>
            <t>Associated 4-tuple: The tuple (source IP, source port, destination IP,
destination port) used by the endhost to send packets over the path.</t>
          </li>
          <li>
            <t>Associated Destination Connection ID: The Connection ID used to send
packets over the path.</t>
          </li>
        </ul>
        <t>In Active state, hosts MUST also track the following information:</t>
        <ul spacing="normal">
          <li>
            <t>Associated Source Connection ID: The Connection ID used to receive
packets over the path. The endpoint relies on its sequence number to
send path control information and specifically acknowledge packets belonging to that Connection ID-specific
packet number space.</t>
          </li>
        </ul>
        <t>A path in the "Validating" state performs path validation as described
in <xref section="8.2" sectionFormat="of" target="QUIC-TRANSPORT"/>.</t>
        <t>The endhost can use all the paths in the "Active" state, provided
that the congestion control and flow control currently allow sending
of new data on a path. Note that if a path became idle due to a timeout,
endpoints SHOULD send PATH_ABANDON frame before closing the path.</t>
        <t>In the "Closing" state, the endhost SHOULD NOT send packets on this
path anymore, as there is no guarantee that the peer can still map
the packets to the connection. The endhost SHOULD wait for
the acknowledgment of the PATH_ABANDON frame before moving the path
to the "Closed" state to ensure a graceful termination of the path.</t>
        <t>When a path reaches the "Closed" state, the endhost releases all the
path's associated resources, including the associated Connection IDs.
Endpoints SHOULD send RETIRE_CONNECTION_ID frames for releasing the
associated Connection IDs following <xref target="QUIC-TRANSPORT"/>. Considering
endpoints are not expected to send packets on the current path in the "Closed"
state, endpoints can send RETIRE_CONNECTION_ID frames on other
available paths. Consequently, the endhost is not able to send nor
receive packets on this path anymore.</t>
      </section>
    </section>
    <section anchor="multipath-operation-with-multiple-packet-number-spaces">
      <name>Multipath Operation with Multiple Packet Number Spaces</name>
      <t>The QUIC multipath extension uses different packet number spaces for each path.
This also means that the same packet number can occur on each path and the
packet number is not a unique identifier anymore. This requires changes to
the ACK frame as well as packet protection as described in the following subsections.</t>
      <t>When multipath is negotiated,
each Destination Connection ID is linked to a separate packet number space.
Each CID-specific packet number space starts at packet number 0. When following
the packet number encoding algorithm described in <xref section="A.2" sectionFormat="of" target="QUIC-TRANSPORT"/>,
the largest packet number (largest_acked) that has been acknowledged by the
peer in this new CID's packet number space is initially set to "None".</t>
      <section anchor="sending-acknowledgements">
        <name>Sending Acknowledgements</name>
        <t>The ACK_MP frame, as specified in <xref target="ack-mp-frame"/>, is used to
acknowledge 1-RTT packets.
Compared to the QUIC version 1 ACK frame, the ACK_MP frame additionally
contains the receiver's Destination Connection ID Sequence Number field
to distinguish the Connection ID-specific packet number space.</t>
        <t>Acknowledgements of Initial and Handshake packets MUST be carried using
ACK frames, as specified in <xref target="QUIC-TRANSPORT"/>. The ACK frames, as defined
in <xref target="QUIC-TRANSPORT"/>, do not carry the Destination Connection ID
Sequence Number field to identify the packet number space.
If the multipath extension has been successfully
negotiated, ACK frames in 1-RTT packets acknowledge packets sent with
the Connection ID having sequence number 0.</t>
        <t>As soon as the negotiation of multipath support is completed,
endpoints SHOULD use ACK_MP frames instead of ACK frames to acknowledge application
data packets, including 0-RTT packets, using the initial Connection ID with
sequence number 0 after the handshake concluded.</t>
        <t>ACK_MP frames (defined in <xref target="ack-mp-frame"/>) can be returned on any path.
If the ACK_MP 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 an ACK_MP frame with the PATH_RESPONSE frame during
path validation.</t>
      </section>
      <section anchor="multipath-aead">
        <name>Packet Protection</name>
        <t>Packet protection for QUIC version 1 is specified in <xref section="5" sectionFormat="of" target="QUIC-TLS"/>.
The general principles of packet protection are not changed for
QUIC Multipath. No changes are needed for setting packet protection keys,
initial secrets, header protection, use of 0-RTT keys, receiving
out-of-order protected packets, receiving protected packets,
or retry packet integrity. However, the use of multiple number spaces
for 1-RTT packets requires changes in AEAD usage.</t>
        <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.</t>
        <t>In order to guarantee the uniqueness of the nonce, the nonce N is
calculated by combining the packet protection IV with the packet number
and with the least significant 32 bits of the Destination Connection ID
sequence number.</t>
        <t><xref section="19" sectionFormat="of" target="QUIC-TRANSPORT"/> encodes the Connection ID Sequence
Number as a variable-length integer,
allowing values up to 2^62-1; in this specification, a range of less than 2^32-1
values MUST be used before updating the packet protection key.</t>
        <t>To calculate the nonce, a 96 bit path-and-packet-number is composed of the least
significant 32 bits of the Connection ID Sequence Number in network byte order,
two zero bits, and the 62 bits of the reconstructed QUIC packet number in
network byte order. 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.</t>
        <t>For example, assuming the IV value is <tt>6b26114b9cba2b63a9e8dd4f</tt>,
the Connection ID Sequence Number is <tt>3</tt>, and the packet number is <tt>aead</tt>,
the nonce will be set to <tt>6b2611489cba2b63a9e873e2</tt>.</t>
        <t>Due to the way the nonce is constructed, endpoints MUST NOT use more than 2^32
Connection IDs without a key update.</t>
      </section>
      <section anchor="multipath-key-update">
        <name>Key Update</name>
        <t>The Key Phase bit update process for QUIC version 1 is specified in
<xref section="6" sectionFormat="of" target="QUIC-TLS"/>.
The general principles of key update are not changed in this
specification. Following QUIC version 1, 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 acknowledgement that confirms receipt of the previous key
update. This interval is different from that of QUIC version 1 which used three times the PTO of the only one active path.</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 issue.</t>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <section anchor="path-establishment">
        <name>Path Establishment</name>
        <t><xref target="fig-example-new-path"/> illustrates an example of new path establishment
using multiple packet number spaces.</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[]: NEW_CONNECTION_ID[C1, Seq=1] -->
                       <-- 1-RTT[]: NEW_CONNECTION_ID[S1, Seq=1]
                       <-- 1-RTT[]: NEW_CONNECTION_ID[S2, Seq=2]
   ...
   (starts new path)
   1-RTT[0]: DCID=S2, PATH_CHALLENGE[X] -->
                   Checks AEAD using nonce(CID sequence 2, PN 0)
     <-- 1-RTT[0]: DCID=C1, PATH_RESPONSE[X], PATH_CHALLENGE[Y],
                                              ACK_MP[PID=2,PN=0]
   Checks AEAD using nonce(CID sequence 1, PN 0)
   1-RTT[1]: DCID=S2, PATH_RESPONSE[Y],
             ACK_MP[PID=1, PN=0], ... -->

]]></artwork>
        </figure>
        <t>In <xref target="fig-example-new-path"/>, the endpoints first exchange
new available Connection IDs with the NEW_CONNECTION_ID frame.
In this example, the client provides one Connection ID (C1 with
sequence number 1), and server provides two Connection IDs
(S1 with sequence number 1, and S2 with sequence number 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 available for each side.
In this example, the client chooses the Connection ID S2
as the Destination Connection ID in the new path.</t>
        <t>If the client has used all the allocated CID, it is supposed to retire
those that are not used anymore, and the server is supposed to provide
replacements, as specified in <xref target="QUIC-TRANSPORT"/>.
Usually, it is desired to provide one more Connection ID as currently
in use, to allow for new paths or migration.</t>
      </section>
      <section anchor="path-closure">
        <name>Path Closure</name>
        <t>In this example, the client detects the network environment change
(client's 4G/Wi-Fi is turned off, Wi-Fi signal is fading to a threshold,
or the quality of RTT or loss rate is becoming worse) and wants to close
the initial path.</t>
        <t><xref target="fig-example-path-close1"/> illustrates an example of path closing. For the first path, the
server's 1-RTT packets use DCID C1, which has a sequence number of 1; the
client's 1-RTT packets use DCID S2, which has a sequence number of 2. For the
second path, the server's 1-RTT packets use DCID C2, which has a sequence
number of 2; the client's 1-RTT packets use DCID S3, which has a sequence number
of 3. Note that the paths use different packet number spaces. In this case, the
client is going to close the first path. It identifies the path by the sequence
number of the DCID its peer uses for sending packets over that path,
hence using the DCID sequence number 1 (which relates to C1). Optionally, the
server confirms the path closure
by sending an PATH_ABANDON frame by indicating the sequence number of the DCID
the client uses to send over that path, which corresponds to the sequence number
2 (of S2). Both the client and
the server can close the path after receiving the RETIRE_CONNECTION_ID frame
for that path.</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)
1-RTT[X]: DCID=S2 PATH_ABANDON[dcid_seq_num=1]->
                           (server tells client to abandon a path)
               <-1-RTT[Y]: DCID=C1 PATH_ABANDON[dcid_seq_num=2],
                                               ACK_MP[PID=2, PN=X]
(client retires the corresponding CID)
1-RTT[U]: DCID=S3 RETIRE_CONNECTION_ID[2], ACK_MP[PID=1, PN=Y] ->
                            (server retires the corresponding CID)
 <- 1-RTT[V]: DCID=C2 RETIRE_CONNECTION_ID[1], ACK_MP[PID=3, PN=U]
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <section anchor="number-spaces">
        <name>Number Spaces</name>
        <t>As stated in <xref target="introduction"/>, when multipath is negotiated, each
Destination Connection ID is linked to a separate packet number space.
This a big difference between implementations of QUIC as specified in
<xref target="QUIC-TRANSPORT"/>, which only have to manage three number spaces for Initial,
Handshake and Application packets.</t>
        <t>Implementation of multipath capable QUIC will need to carefully
model the relations between paths and number spaces, as shown
in <xref target="fig-number-spaces"/>.</t>
        <figure anchor="fig-number-spaces">
          <name>Send and Receive number spaces</name>
          <artwork><![CDATA[
   +-------------------------+
   | CID received from peer: |
   | Previous Sender Number  |
   | Space                   |-- - - - - - +
   +-------------------------+
   +-------------------------+             |
   | CID received from peer: |
   | Sender Number Space     |             |
   +-------------------------+             v
                      ^             +----------------+
                      |             | Path (4 tuple) |
                      +-------------| - RTT          |
                +------------------>| - Congestion   |
                |                   |   state        |
                v                   +----------------+
   +-------------------------+             ^
   | CID provided to peer:   |             |
   | Receiver Number Space   |
   +-------------------------+             |
   +-------------------------+
   | CID previously used by  |-- - - - - - +
   | Peer: old Receiver      |
   | Number Space            |
   +-------------------------+
]]></artwork>
        </figure>
        <t>The path is defined by the 4-tuple through which packets are
received and sent. Packets sent on the path will include the
Destination Connection ID currently used for that path, selected
from the list of CID provided by the peer. Packets received
on the path carry a Destination CID selected by the peer from
the list provided to that peer.</t>
        <t>The relation between CIDs and paths is not fixed. A node may
decide to rotate the Destination CID it uses, a NAT may decide
to change the 4-tuple over which packets from that path will be
received.
Implementation will have to manage these evolving relations.</t>
        <t>Data associated with the transmission and reception on a given
path can be associated to either the "path state", or to the
state of either the sender or receiver number spaces. For example:</t>
        <ul spacing="normal">
          <li>
            <t>RTT measurements and congestion state are logically associated
with the 4-tuple. They will remain unchanged if data starts
being received or sent through the same 4-tuple using new CIDs.</t>
          </li>
          <li>
            <t>Implementations of loss recovery typically maintain lists of
packets sent and not yet acknowledged. Such information, along
with the value of the next PN to use for sending, is
logically associated with the "Sender Number Space", and
with the peer-provided CID used for sending on the path.</t>
          </li>
          <li>
            <t>Sending of acknowledgement requires keeping track of the PN of
received packets and of acknowledgements previously sent. Such
information is logically associated with the "Receiver Number Space",
and with the CID used by the peer for sending on the path.</t>
          </li>
        </ul>
        <t>When the link between paths and CID changes, the information tied
to the now unused CID remains useful for some time. For example,
the list of packet numbers to acknowledge maintained in the old
receiver number space could still be used to send ACK_MP frames
for that number space. Similarly, the list of packets sent but
not yet acknowledged with an old sender number space can be used
when processing incoming ACK_MP frames for that number space. Such
data should not be discarded immediately after a CID change, but
only later, for example when the CID is retired.</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 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"/>.</t>
      </section>
      <section anchor="compute-rtt">
        <name>Computing Path RTT</name>
        <t>Acknowledgement delays are the sum of two one-way delays, the delay
on the packet sending path and the delay on the return path chosen
for the acknowledgements.  When different paths have different
characteristics, this can cause acknowledgement delays to 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 both
directions.  The acknowledgement delay will depend on the combination
of paths used for the packet transmission and the ACK 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 ACK_MP frames describe packets that were sent on the specified path,
but they may be received through any available path. There is an
understandable concern that if successive acknowledgements are received
on different paths, the measured RTT samples will fluctuate widely,
and that might result in poor performance. While this may be a concern,
the actual behavior is complex.</t>
        <t>The computed values reflect both the state of the network path and the
scheduling decisions by the sender of the ACK_MP frames. In the example
above, we may assume that the ACK_MP will be sent over the terrestrial
link, because that provides the best response time. In that case, the
computed RTT value for the satellite path will be about 350ms. This
lower than the 600ms that would be measured if the ACK_MP came over
the satellite channel, but it is still the right value for computing
for example the PTO timeout: if an ACK_MP is not received after more
than 350ms, either the data packet or its ACK_MP were probably lost.</t>
        <t>The simplest implementation is to compute smoothedRTT and RTTvar per
<xref section="5.3" sectionFormat="of" target="QUIC-RECOVERY"/> regardless of the path through which MP_ACKs are
received. This algorithm will provide good results,
except if the set of paths changes and the ACK_MP sender
revisits its sending preferences. This is not very
different from what happens on a single path if the routing changes.
The RTT, RTT variance and PTO estimates will rapidly converge to
reflect the new conditions.
There is however an exception: some congestion
control functions rely on estimates of the minimum RTT. It might be prudent
for nodes to remember the path over which the ACK MP that produced
the minimum RTT was received, and to restart the minimum RTT computation
if that path is abandoned.</t>
      </section>
      <section anchor="packet-scheduling">
        <name>Packet Scheduling</name>
        <t>The transmission of QUIC packets on a regular QUIC connection is regulated
by the arrival of data from the application and the congestion control
scheme. QUIC packets that increase the number of bytes in flight can only be sent
when the congestion window allows it.
Multipath QUIC implementations also need to include a packet scheduler
that decides, among the paths whose congestion window is open, the path
over which the next QUIC packet will be sent. Most frames, including
control frames (PATH_CHALLENGE and PATH_RESPONSE being the notable
exceptions), can be sent and received on any active path. The scheduling
is a local decision, based on the preferences of the application and the
implementation.</t>
        <t>Note that this implies that an endpoint may send and receive ACK_MP
frames on a path different from the one that carried the acknowledged
packets. As noted in <xref target="compute-rtt"/> the values computed using
the standard algorithm reflect both the characteristics of the
path and the scheduling algorithm of ACK_MP frames. The estimates will converge
faster if the scheduling strategy is stable, but besides that
implementations can choose between multiple strategies such as sending
ACK_MP frames on the path they acknowledge packets, or sending
ACK_MP frames on the shortest path, which results in shorter control loops
and thus better performance.</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>
      </section>
      <section anchor="handling-different-pmtu-sizes">
        <name>Handling different PMTU sizes</name>
        <t>An implementation should take care to handle different PMTU sizes across
multiple paths. 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="keep-alive">
        <name>Keep Alive</name>
        <t>The QUIC specification defines an optional keep alive process, see <xref section="5.3" sectionFormat="of" target="QUIC-TRANSPORT"/>.
Implementations of the multipath extension should map this keep alive process to a number of paths.
Some applications may wish to ensure that one path remains active, while others could prefer to have
two or more active paths during the connection lifetime. Different applications will likely require different strategies.
Once the implementation has decided which paths to keep alive, it can do so by sending Ping frames
on each of these paths before the idle timeout expires.</t>
      </section>
      <section anchor="migration">
        <name>Connection ID Changes and NAT Rebindings</name>
        <t><xref section="5.1.2" sectionFormat="of" target="QUIC-TRANSPORT"/> indicates that an endpoint
can change the Connection ID it uses for 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>
        <t>While endpoints assign a Connection ID to a specific sending 4-tuple,
networks events such as NAT rebinding may make the packet's receiver
observe a different 4-tuple. 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>
        <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>If an endpoint uses a new Connection ID after an idle period
and a NAT rebinding leads to a 4-tuple changes on the same packet,
the receiving endpoint may not be able to associate the packet to
an existing path and will therefore consider this as a new path.
This leads to an inconsistent view of open paths at both peers,
however, as the "old" path will not work anymore, it will be silently
closed after the idle timeout expires.</t>
      </section>
    </section>
    <section anchor="frames">
      <name>New Frames</name>
      <t>All the new frames MUST only be sent in 1-RTT packet.</t>
      <t>If an endpoint receives a multipath-specific frame in a different packet type,
it MUST close the connection with an error of type FRAME_ENCODING_ERROR.</t>
      <t>All multipath-specific frames relate to a Destination Connection
ID sequence number. If an endpoint receives a Destination Connection ID
sequence number greater than any previously sent to the peer, it MUST
treat this as a connection error of type MP_PROTOCOL_VIOLATION. If an
endpoint receives a multipath-specific frame
with a Destination Connection ID sequence number that it cannot process
anymore (e.g., because the Connection ID might have been retired), it
MUST silently ignore the frame.</t>
      <section anchor="ack-mp-frame">
        <name>ACK_MP Frame</name>
        <t>The ACK_MP frame (types TBD-00 and TBD-01)
is an extension of the ACK frame defined by <xref target="QUIC-TRANSPORT"/>. It is
used to acknowledge packets that were sent on different paths using
multiple packet number spaces. If the frame type is TBD-01, ACK_MP 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>ACK_MP frame is formatted as shown in <xref target="fig-ack-mp-format"/>.</t>
        <figure anchor="fig-ack-mp-format">
          <name>ACK_MP Frame Format</name>
          <artwork><![CDATA[
  ACK_MP Frame {
    Type (i) = TBD-00..TBD-01
         (experiments use  0x15228c00-0x15228c01),
    Destination Connection ID Sequence Number (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>Destination Connection ID Sequence Number:</dt>
          <dd>
            <t>The sequence number of the Connection ID identifying the packet number
space of the 0-RTT and 1-RTT packets which are acknowledged by the ACK_MP
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.</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),
    Destination Connection ID Sequence Number (i),
    Error Code (i),
    Reason Phrase Length (i),
    Reason Phrase (..),
  }
]]></artwork>
        </figure>
        <t>PATH_ABANDON frames contain the following fields:</t>
        <dl>
          <dt>Destination Connection ID Sequence Number:</dt>
          <dd>
            <t>The sequence number of the Destination Connection ID used by the
receiver of the frame to send packets over the path to abandon.</t>
          </dd>
          <dt>Error Code:</dt>
          <dd>
            <t>A variable-length integer that indicates the reason for abandoning
this path.</t>
          </dd>
          <dt>Reason Phrase Length:</dt>
          <dd>
            <t>A variable-length integer specifying the length of the reason phrase
in bytes. Because an PATH_ABANDON frame cannot be split between packets,
any limits on packet size will also limit the space available for
a reason phrase.</t>
          </dd>
          <dt>Reason Phrase:</dt>
          <dd>
            <t>Additional diagnostic information for the closure. This can be
zero length if the sender chooses not to give details beyond
the Error Code value. This SHOULD be a UTF-8 encoded string <xref target="RFC3629"/>,
though the frame does not carry information, such as language tags,
that would aid comprehension by any entity other than the one
that created the text.</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>
      </section>
      <section anchor="path-standby-frame">
        <name>PATH_STANDBY frame</name>
        <t>PATH_STANDBY Frames are used by endpoints to inform the peer
about its preference to not use the path associated to
the Destination Connection IDs in the frame for sending.
PATH_STANDBY frames are formatted as shown in <xref target="fig-path-standby-format"/>.</t>
        <figure anchor="fig-path-standby-format">
          <name>PATH_STANDBY Frame Format</name>
          <artwork><![CDATA[
  PATH_STANDBY Frame {
    Type (i) = TBD-03 (experiments use 0x15228c07)
    Destination Connection ID Sequence Number (i),
    Path Status sequence number (i),
  }
]]></artwork>
        </figure>
        <t>PATH_STANDBY Frames contain the following fields:</t>
        <dl>
          <dt>Destination Connection ID Sequence Number:</dt>
          <dd>
            <t>The sequence number of the Destination Connection ID used by the
receiver of this frame to send packets over the path the status update
corresponds to. All Destination Connection IDs that have been issued
MAY be specified, even if they are not yet in use over a path.</t>
          </dd>
          <dt>Path Status sequence number:</dt>
          <dd>
            <t>A variable-length integer specifying
the sequence number assigned for this PATH_STANDBY frame. The sequence number space is shared with the PATH_AVAILABLE frame and
the sequence
number MUST be monotonically increasing generated by the sender of
the PATH_STANDBY frame in the same connection. The receiver of
the PATH_STANDBY frame needs to use and compare the sequence numbers
separately for each Destination Connection ID Sequence
Number.</t>
          </dd>
        </dl>
        <t>Frames may be received out of order. A peer MUST ignore an incoming
PATH_STANDBY frame if it previously received another PATH_STANDBY frame
or PATH_AVAILABLE
for the same Destination Connection ID Sequence Number with a
Path Status sequence number equal to or higher than the Path Status
sequence number of the incoming frame.</t>
        <t>PATH_STANDBY frames are ack-eliciting. If a packet containing a
PATH_STANDBY 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_STANDBY frame MAY be bundled with a 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="path-available-frame">
        <name>PATH_AVAILABLE frame</name>
        <t>PATH_AVAILABLE frames are used by endpoints to inform the peer
that the path associated to
the Destination Connection IDs in the frame is available for sending.
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-03 (experiments use 0x15228c08),
    Destination Connection ID Sequence Number (i),
    Path Status sequence number (i),
  }
]]></artwork>
        </figure>
        <t>PATH_AVAILABLE frames contain the following fields:</t>
        <dl>
          <dt>Destination Connection ID Sequence Number:</dt>
          <dd>
            <t>The sequence number of the Destination Connection ID used by the
receiver of this frame to send packets over the path the status update
corresponds to. All Destination Connection IDs that have been issued
MAY be specified, even if they are not yet in use over a path.</t>
          </dd>
          <dt>Path Status sequence number:</dt>
          <dd>
            <t>A variable-length integer specifying
the sequence number assigned for this PATH_AVAILABLE frame. The sequence number space is shared with the PATH_STANDBY frame and
the sequence
number MUST be monotonically increasing generated by the sender of
the PATH_AVAILABLE frame in the same connection. The receiver of
the PATH_AVAILABLE frame needs to use and compare the sequence numbers
separately for each Destination Connection ID Sequence
Number.</t>
          </dd>
        </dl>
        <t>Frames may be received out of order. A peer MUST ignore an incoming
PATH_AVAILABLE frame if it previously received another PATH_AVAILABLE frame
or PATH_STANDBY frame
for the same Destination Connection ID Sequence Number with a
Path Status sequence number equal to or higher than the Path Status
sequence number of the incoming frame.</t>
        <t>PATH_AVAILABLE frames are ack-eliciting. If a packet containing a
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_AVAILABLE frame MAY be bundled with a 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>
    <section anchor="error-codes">
      <name>Error Codes</name>
      <t>Multipath QUIC transport error codes are 62-bit unsigned integers
following <xref target="QUIC-TRANSPORT"/>.</t>
      <t>This section lists the defined multipath QUIC transport error codes
that can be used in a CONNECTION_CLOSE frame with a type of 0x1c.
These errors apply to the entire connection.</t>
      <t>MP_PROTOCOL_VIOLATION (experiments use 0x1001d76d3ded42f3): An endpoint detected
an error with protocol compliance that was not covered by
more specific error codes.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document defines a new transport parameter for the negotiation of
enable multiple paths for QUIC, and three new frame types. The draft defines
provisional values for experiments, but we expect IANA to allocate
short values if the draft is approved.</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 0x0f739bbc1b666d06)</td>
            <td align="left">enable_multipath</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">ACK_MP</td>
            <td align="left">
              <xref target="ack-mp-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_STANDBY</td>
            <td align="left">
              <xref target="path-standby-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-available-frame"/></td>
          </tr>
        </tbody>
      </table>
      <t>The following transport error code defined in <xref target="tab-error-code"/> should
be added to the "QUIC Transport Error Codes" registry under
the "QUIC Protocol" heading.</t>
      <table anchor="tab-error-code">
        <name>Error Code 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 (experiments use 0x1001d76d3ded42f3)</td>
            <td align="left">MP_PROTOCOL_VIOLATION</td>
            <td align="left">Multipath protocol violation</td>
            <td align="left">
              <xref target="error-codes"/></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD</t>
    </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 and Kazuho Oku for their thorough reviews and valuable contributions!</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="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="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>
        <reference anchor="RFC3629">
          <front>
            <title>UTF-8, a transformation format of ISO 10646</title>
            <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="63"/>
          <seriesInfo name="RFC" value="3629"/>
          <seriesInfo name="DOI" value="10.17487/RFC3629"/>
        </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="QUIC-Timestamp">
          <front>
            <title>Quic Timestamps For Measuring One-Way Delays</title>
            <author fullname="Christian Huitema" initials="C." surname="Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <date day="28" month="August" year="2022"/>
            <abstract>
              <t>   The TIMESTAMP frame can be added to Quic packets when one way delay
   measurements are useful.  The timestamp is set to the number of
   microseconds from the beginning of the node's epoch to the time at
   which the packet is sent.  The draft defines the "enable_timestamp"
   transport parameter for negotiating the use of this extension frame,
   and the TIMESTAMP frame.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-huitema-quic-ts-08"/>
        </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>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+19224cSZbYe3xFLgVskztVtSTVre7m7hjDpqgZeiSSS1Ld
227PaLKqkmSusjJrM7NIcdRa+MWAX/1mv/jBBgwY8BcY8M8YXgP7Fz7XiBOZ
WSWqZ23MGtYA08WqzLicOHHul/F47Nq8LbKD5NWqaPNl2t4mx+/arGzyqkyu
qzr5q9cnRy6dTuvszj5EX8+rWZku4OV5nV634zxrr8d/u8pn44U+N9595uZp
C4+8f354dfzBzeCPm6p+OEiadu5cvqwPkrZeNe3+7u7Xu/surbP0ILmq07JZ
VnXr7qv67U1drZYHNGXyHfydlzfJL/E79zZ7gAfmB8lJ2WZ1mbXj57gS55o2
Ledv0qIqYeqHrHHL/CD5oa1mo6SBYevsuoFPDwv88Bvn0lV7W9UHbuyS5HpV
FLQr+Iz/Dg6Srb//N//u7//7f/5f//Ffb8mXaTPLYcSt79NykeXJy3yFv9QV
QjKb521Vw59VfXOQHBb5NJ2msMLZBL7LFmleHCSLPK3+Jp8UD4tfpPzAOIcH
ZtWC1tBdBK7hH/7Lf/2f/+3f/sN/+g+yBr+EVXkNS3iV0vc05+tpVidX2ey2
rIrqJs8anV2nf6B3Jov0Fyt4NEyblw3AeZI8z5KjqoQVvcVv+Yz/apWVbV52
futsWeYv87usbvL2Iamuk1dV2STbr1+dnV7umDX8LY83mWczHu4XqwU8OUln
k2lmlnM2Sb6pyvQOnl7VWVjPWZHf5bDPzo+8gKOX1eouhdUCGgAkmgbwqjGT
V/zyZBpe/sVqVvBL8fxHk+RXq7yFF8PcR7d13rR5WtqfaObzOr8DFE/OZm21
XPUAf8uP/0L+OwGUNVO9miS/XmW3RXafl/Mw26u8/pu088sg3I/rfNY0VWkm
XOC7k7f+3V9k8gwdunNlVS/SFo4LMe3ixdH+3t7X+BEv2/jq4vD08vzs4uog
qa9nX+/u7vpfXl7qd3v63cXx0dm3xxff6w/7cL3L6874z55+8SyMny8yuKkL
uNwn4+cTAQqTkBaP6+zlySFfAaFSW6/Or47Ok7xJyqpNlnCqbTWulm2+SGGz
y6ym+cpZBo80K0B8OH+XJsuqafJpkcHlL1YtkDa+Q0yZtvZ39/b5iwagkzW4
avj6vK5mGUC4vGkQjdvbLPkKKF9OpCbFUdIiAdy9zuoMZwS4Hy+y+gbJE5zr
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
PnHzHgPrAAA=

-->

</rfc>
