<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-quic-multipath-03" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.1 -->
  <front>
    <title abbrev="Multipath QUIC">Multipath Extension for QUIC</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-quic-multipath-03"/>
    <author initials="Y." surname="Liu" fullname="Yanmei Liu" role="editor">
      <organization>Alibaba Inc.</organization>
      <address>
        <email>miaoji.lym@alibaba-inc.com</email>
      </address>
    </author>
    <author initials="Y." surname="Ma" fullname="Yunfei Ma">
      <organization>Alibaba Inc.</organization>
      <address>
        <email>yunfei.ma@alibaba-inc.com</email>
      </address>
    </author>
    <author initials="Q." surname="De Coninck" fullname="Quentin De Coninck" role="editor">
      <organization>UCLouvain</organization>
      <address>
        <email>quentin.deconinck@uclouvain.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>
      <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>
    <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>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.</li>
        <li>Use the same packet header formats as QUIC version 1 to avoid the
risk of packets being dropped by middleboxes (which may only support
QUIC version 1)</li>
        <li>Congestion Control must be per-path (following <xref target="QUIC-TRANSPORT"/>)
which usually also requires per-path RTT measurements</li>
        <li>PMTU discovery should be performed per-path</li>
        <li>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.</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>Allow simultaneous transmission of non-probing frames on multiple
paths.</li>
        <li>Continue using an existing path even if non-probing frames have
been received on another path.</li>
        <li>Manage the removal of paths that have been abandoned.</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>Some deployments of QUIC use zero-length connection IDs.
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. This extension also specifies a way to use
zero-length CID by using the same packet number space on all paths.
However, when using the same packet number space
on multiple paths, out of order delivery is likely. This causes inflation of the number of
acknowledgement ranges and therefore of the
the size of ACK frames. Senders that accept to use a single number
space on multiple paths when sending to a node using zero-length CID need
to take special care to minimize the impact of multipath
delivery on loss detection, congestion control, and ECN handling.
This proposal specifies algorithms for
controlling the size of acknowledgement packets and ECN handling in
Section <xref target="using-zero-length"/> and <xref target="ecn-handling"/>.</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. 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"/>. In addition, we define the following terms:</t>
        <ul spacing="normal">
          <li>Path: refers to the 4-tuple {source IP address, source port number,
destination IP address, destination port number}. A path refers to
"network path" used in <xref target="QUIC-TRANSPORT"/>.</li>
          <li>Path Identifier (Path ID): An identifier that is used to identify
a path in a QUIC connection at an endpoint. Path Identifier is used
in multipath control frames (etc. PATH_ABANDON frame) to identify
a path. By default, it is defined as the sequence number of
the destination Connection ID used for sending packets on that
particular path, but alternative definitions can be used if the length
of that connection ID is zero.</li>
          <li>Packet Number Space Identifier (PN Space ID): An identifier that is
used to distinguish packet number spaces for different paths. It is
used in 1-RTT packets and ACK_MP frames. Each node maintains a list of
"Received Packets" for each of the CID that it provided to the peer,
which is used for acknowledging packets received with that CID.</li>
        </ul>
        <t>The difference between Path Identifier and Packet Number Space
Identifier, is that the Path Identifier is used in multipath control
frames to identify a path, and the Packet Number Space Identifier is
used in 1-RTT packets and ACK_MP frames to distinguish packet number
spaces for different paths. Both identifiers have the same value, which
is the sequence number of the connection ID, if a non-zero connection ID
is used. If the connection ID is zero length, the Packet Number Space
Identifier is 0, while the Path Identifier is selected on path
establishment.</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 it has been validated. Each endpoint associates a
Path identifier to each path. This identifier is notably used when a peer sends a PATH_ABANDON frame
to indicate that it has closed the path whose identifier is 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>
    </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>name: enable_multipath (TBD - experiments use 0xbabf)</li>
        <li>value: 0 (default) for disabled.</li>
      </ul>
      <t>The valid options for the value field are listed in
<xref target="param_value_definition"/>:</t>
      <table anchor="param_value_definition">
        <name>Available value for enable_multipath</name>
        <thead>
          <tr>
            <th align="left">Option</th>
            <th align="left">Definition</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0x0</td>
            <td align="left">don't support multipath</td>
          </tr>
          <tr>
            <td align="left">0x1</td>
            <td align="left">supports multipath as defined in this document</td>
          </tr>
        </tbody>
      </table>
      <t>If for any one of the endpoints, the parameter is absent or set to 0,
the endpoints MUST fallback to
<xref target="QUIC-TRANSPORT"/> with single active path and MUST NOT use any frame or
mechanism defined in this document.</t>
      <t>If endpoint receives an unexpected value for the transport parameter
"enable_multipath", it MUST treat this as a connection error of type
TRANSPORT_PARAMETER_ERROR (specified in <xref section="20.1" sectionFormat="of" target="QUIC-TRANSPORT"/>)
and close the connection.</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>Inline with the definition in <xref target="QUIC-TRANSPORT"/> disable_active_migration
also disables multipath support, except "after a client has acted on a
preferred_address transport parameter" (<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. For the QUIC multipath extension
this limit even applies when no connection ID is exposed in the QUIC
header.</t>
    </section>
    <section anchor="setup">
      <name>Path Setup and Removal</name>
      <t>After completing the handshake, endpoints have agreed to enable
multipath feature and can start using multiple paths. 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
SHOULD NOT assume that the initial server address and the addresses
contained in this parameter can be simultaneously used for multipath.
Furthermore, this document
does not discuss when a client decides to initiate a new path. We
delegate such discussion in separate documents.</t>
      <t>This proposal adds one multipath control frame for path management:</t>
      <ul spacing="normal">
        <li>PATH_ABANDON frame for the receiver side to abandon the path
(see <xref target="path-abandon-frame"/>)</li>
      </ul>
      <t>All the new frames are sent in 1-RTT packets <xref target="QUIC-TRANSPORT"/>.</t>
      <section anchor="path-initiation">
        <name>Path Initiation</name>
        <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 succeed, the client can send non-probing, 1-RTT packets
on the new paths.  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 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.</t>
      </section>
      <section anchor="path-state-management">
        <name>Path State Management</name>
        <t>An endpoint uses PATH_STATUS frames to inform that the peer should
send packets in the preference expressed by these frames.
Notice that the endpoint might not follow the peer's advertisements,
but the PATH_STATUS frame is still a clear signal of suggestion
for the preference of path usage by the peer.</t>
        <t>PATH_STATUS frame describes 2 kinds of path states:</t>
        <ul spacing="normal">
          <li>Mark a path as "available", i.e., allow the peer to use its own logic
to split traffic among available paths.</li>
          <li>Mark a path as "standby", i.e., suggest that no traffic should be sent
on that path if another path is available.</li>
        </ul>
        <t>Endpoints use Path Identifier field in PATH_STATUS frame to identify
which path's state is going to be changed. Notice that PATH_STATUS frame
can be sent via a different path. An Endpoint MAY ignore the PATH_STATUS frame
if it would make all the paths unavailable in a single connection.</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.</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 close a path,
by sending PATH_ABANDON frame (see <xref target="path-abandon-frame"/>) which
abandons the path with a corresponding Path Identifier. Once a path is
marked as "abandoned", it means that the resources related to the path,
such as the used connection IDs, can be released.
However, information related to data delivered over that path SHOULD
not be released immediately as acknowledgments can still be received
or other frames that also may trigger retransmission of data on another
path.</t>
          <t>The endpoint sending the PATH_ABANDON frame SHOULD consider a path as
abandoned when the packet that contained the PATH_ABANDON frame is
acknowledged. When releasing resources of a path, the endpoint SHOULD
send a RETIRE_CONNECTION_ID frame for the connection IDs used on the path,
if any.</t>
          <t>The receiver of a PATH_ABANDON frame SHOULD NOT release its resources
immediately, but SHOULD wait for the reception of the RETIRE_CONNECTION_ID
frame for the used connection IDs or 3 RTOs.</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 indicates to the receiving peer
that the sender does not intend to send any packets on that path anymore
but also recommends to the receiver that no packets should be sent in
either direction. The receiver of an PATH_ABANDON frame MAY also send
an PATH_ABANDON frame to signal its own willingness to not send
any packet on this path anymore.</t>
          <t>If connection IDs are used, 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.
If no connection IDs are used and the PATH_ABANDON frame has to send
on the path that is intended to be closed, it is possible that the packet
containing the PATH_ABANDON frame or the packet containing the ACK
for the PATH_ABANDON frame cannot be received anymore and the endpoint
might need to rely on an idle time out to close the path, as described
in <xref target="idle-time-close"/>.</t>
          <t>Retransmittable frames, that have previously been sent on the abandoned
path and are considered lost, SHOULD be retransmitted on a different
path.</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 enters 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 RTO 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.
An endpoint that has negotiated the usage of the multipath extension MAY
use an explicit method by sending on another active path a PATH_ABANDON
frame containing the Path Identifier of the refused path, but only if the
PATH_CHALLENGE arrives in a packet using a non-zero length Connection ID.</t>
        </section>
        <section anchor="retire-cid-close">
          <name>Effect of RETIRE_CONNECTION_ID Frame</name>
          <t>Receiving a RETIRE_CONNECTION_ID frame causes the endpoint to discard
the resources associated with that connection ID. If the connection ID
was used by the peer to identify a path from the peer to this endpoint,
the resources include the list of received packets used to send
acknowledgements. The peer MAY decide to keep sending data using
the same IP addresses and UDP ports previously associated with
the connection ID, but MUST use a different connection ID when doing so.</t>
          <t>Note that 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_ABANDONED sent/received            |
       v                                         |
 +------------+                                  |
 |   Closing  |                                  |
 +------------+                                  |
       |                                         |
       | 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>Associated 4-tuple: The tuple (source IP, source port, destination IP,
destination port) used by the endhost to send packets over the path.</li>
          <li>Associated Destination Connection ID: The Connection ID used to send
packets over the path.</li>
        </ul>
        <t>If multiple packet number spaces are used over the connection, hosts
MUST also track the following information.</t>
        <ul spacing="normal">
          <li>Path Packet Number Space: The endpoint maintains a separate packet
number for sending and receiving packets over this path. Packet number
considerations described in <xref target="QUIC-TRANSPORT"/> apply within the given path.</li>
        </ul>
        <t>In the "Active" state, hosts MUST also track the following information.</t>
        <ul spacing="normal">
          <li>Associated Source Connection ID: The Connection ID used to receive
packets over the path.</li>
        </ul>
        <t>A path in the "Validating" state performs path validation as described
in <xref section="8.2" sectionFormat="of" target="QUIC-TRANSPORT"/>. An endhost should not send
non-probing frames on a path in "Validating" state, as it has no
guarantee that packets will actually reach the peer.</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_ABANDONED 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_ABANDONED 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="congestion-control">
      <name>Congestion Control</name>
      <t>Senders MUST manage per-path congestion status, and MUST NOT send more
data on a given path than congestion control on that path allows.
This is already a requirement of <xref target="QUIC-TRANSPORT"/>.</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>Using the default algorithm specified in <xref target="QUIC-RECOVERY"/> would result
in suboptimal performance, computing average RTT and standard
deviation from series of different delay measurements of different
combined paths.  At the same time, early tests showed that it is
desirable to send ACKs through the shortest path because a shorter
ACK delay results in a tighter control loop and better performances.
The tests also showed that it is desirable to send copies of the ACKs
on multiple paths, for robustness if a path experiences sudden losses.</t>
      <t>An early implementation mitigated the delay variation issue by using
time stamps, as specified in <xref target="QUIC-Timestamp"/>.  When the timestamps
are present, the implementation can estimate the transmission delay
on each one-way path, and can then use these one way delays for more
efficient implementations of recovery and congestion control
algorithms.</t>
      <t>If timestamps are not available, implementations could estimate one
way delays using statistical techniques.  For example, in the example
shown in Table 1, implementations can use "same path"
measurements to estimate the one way delay of the terrestrial path to
about 50ms in each direction, and that of the satellite path to about
300ms.  Further measurements can then be used to maintain estimates
of one way delay variations, using logical similar to Kalman filters.
But statistical processing is error-prone, and using time stamps
provides more robust measurements.</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 can only be sent when the congestion window of
at least one path is open.</t>
      <t>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. Many factors can influence
the definition of these algorithms and their precise definition is
outside the scope of this document. Various packet schedulers have been
proposed and implemented, notably for Multipath TCP. A companion draft
<xref target="I-D.bonaventure-iccrg-schedulers"/> provides several general-purpose
packet schedulers depending on the application goals.</t>
      <t>Note that the receiver could use a different scheduling strategy to send
ACK(_MP) frames. The recommended default behaviour consists in sending
ACK(_MP) frames on the path they acknowledge packets. Other scheduling
strategies, such as sending ACK(_MP) frames on the lowest latency
path, might be considered, but they could impact the sender with side
effects on, e.g., the RTT estimation or the congestion control scheme.
When adopting such asymetrical acknowledgment scheduling, the receiver
should at least ensure that the sender negotiated one-way delay
calculation mechanism (e.g., <xref target="QUIC-Timestamp"/>).</t>
    </section>
    <section anchor="recovery">
      <name>Recovery</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="packet-number-space-and-use-of-connection-id">
      <name>Packet Number Space and Use of Connection ID</name>
      <t>If the connection ID is present (non-zero length) in the packet header,
the connection ID is used to identify the path.
If no connection ID is present, the 4 tuple identifies the path.
The initial path that is used during the handshake (and multipath negotiation)
has the path ID 0 and therefore all 0-RTT packets are also tracked and
processed with the path ID 0.
For 1-RTT packets, the path ID is the sequence number of
the Destination Connection ID present in the packet header, as defined
in <xref section="5.1.1" sectionFormat="of" target="QUIC-TRANSPORT"/>, or also 0 if the Connection ID
is zero-length.</t>
      <t>If non-zero-length Connection IDs are used, an endpoint MUST 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>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 path identifiers. If for any reason
ACK frames are received in 1-RTT packets while the state of multipath
negotiation is ambiguous, they MUST be interpreted as acknowledging
packets sent on path 0.</t>
      <section anchor="using-zero-length">
        <name>Using Zero-Length connection ID</name>
        <t>If a zero-length connection ID is used, one packet number space
for all paths. That means the packet sequence numbers are allocated
from the common
number space, so that, for example, packet number N could be sent
on one path and packet number N+1 on another.</t>
        <t>In this case, ACK frames report the numbers of packets that have been
received so far,
regardless of the path on which they have been received. That means
the sender needs to maintain an association between sent packet numbers
and the path over which these packets were sent. This is necessary
to implement per path congestion control, as explained
in <xref target="zero-length-cid-loss-and-congestion"/>.</t>
        <t>Further, the receiver of packets with zero-length connection IDs should
implement handling of acknowledgements as defined in
<xref target="sending-acknowledgements-and-handling-ranges"/>.</t>
        <t>ECN handing is specified in <xref target="ecn-handling"/>, and
mitigation of the RTT measurement is further explained
in <xref target="ack-delay-and-zero-length-cid-considerations"/>.</t>
        <t>If a node
does not want to implement this logic, it MAY instead limit its use of multiple paths
as explained in <xref target="restricted-sending-to-zero-length-cid-peer"/>.</t>
        <section anchor="sending-acknowledgements-and-handling-ranges">
          <name>Sending Acknowledgements and Handling Ranges</name>
          <t>If zero-length CID and therefore also a single packet number space
is used by the sender, the receiver MAY send ACK frames instead
of ACK_MP frames to reduce overhead as the additional path ID field
will anyway always carry the same value.</t>
          <t>If senders decide to send packets on paths with different
transmission delays, some packets will very likely be received out
of order. This will cause the ACK frames to carry multiple ranges of
received packets. The large number of range increases the size of
ACK frames, causing transmission and processing overhead.</t>
          <t>The size and overhead of the ACK frames can
be controlled by the combination of one or several of the following:</t>
          <ul spacing="normal">
            <li>Not transmitting again ACK ranges that were present in an ACK
frame acknowledged by the peer.</li>
            <li>Delay acknowledgements to allow for arrival of "hole filling"
packets.</li>
            <li>Limit the total number of ranges sent in an ACK frame.</li>
            <li>Limiting the number of transmissions of a specific ACK range, on
the assumption that a sufficient number of transmissions almost
certainly ensures reception by the peer.</li>
            <li>Send multiple messages for a given path in a single socket
operation, so that a series of packets sent from a single path
uses a series of consecutive sequence numbers without creating
holes.</li>
          </ul>
        </section>
        <section anchor="zero-length-cid-loss-and-congestion">
          <name>Loss and Congestion Handling With Zero-Length CID</name>
          <t>When sending to a zero-length CID
receiver, senders may receive acknowledgements that combine packet
numbers received over multiple paths.
However, even if one packet number space is used on multiple path
the sender MUST maintain separate congestion control state for each
path. Therefore, senders MUST be able to infer the
sending path from the acknowledged packet numbers, for example by remembering
which packet was sent on what path. The senders MUST use that information to
perform congestion control on the relevant paths, and to correctly
estimate the transmission delays on each path. (See
<xref target="ack-delay-and-zero-length-cid-considerations"/> for specific considerations
about using the ACK Delay field of ACK frames, and
<xref target="ecn-handling"/> for issues on using ECN marks.)</t>
          <t>Loss detection as specified in <xref target="QUIC-RECOVERY"/> uses algorithms
based on timers and on sequence numbers. When packets are sent over
multiple paths, loss detection must be adapted to allow for different RTTs
on different paths. When sending to zero-length CID receivers, packets sent
on different paths may be received out of order. Therefore, senders cannot
directly use the packet sequence numbers to
compute the Packet Thresholds defined in <xref section="6.1.1" sectionFormat="of" target="QUIC-RECOVERY"/>.
Relying only on Time Thresholds produces correct results, but is somewhat
suboptimal. Some implementations have been getting good results by
not just remembering the path over which a packet was sent, but also
maintaining an order list of packets sent on each path. That ordered
list can then be used to compute acknowledgement gaps per path in
Packet Threshold tests.</t>
        </section>
        <section anchor="ack-delay-and-zero-length-cid-considerations">
          <name>RTT Estimation Considerations when SPNS is Used</name>
          <t>When SPNS is in use, accurate RTT estimation requires more careful
considerations. According to <xref target="QUIC-RECOVERY"/>, an endpoint generates an RTT
sample on receiving an ACK frame that meets the following two conditions: (1)
the largest acknowledged packet number is newly acknowledged, and (2) at least
one of the newly acknowledged packets was ack-eliciting. The RTT sample,
latest_rtt is calculated as the time elapsed since the largest acknowledged
packet was sent. However, when applying the above algorithm with SPNS, one may
encounter the following issues: (1) RTT of some paths are not updated timely if
ACKs are mostly returned from other paths, and (2) ACK frames depend on the
largest received packet of the connection, not the path, and the resulted RTT
sample may be the sum of the one-way delays of two different paths. One
solution for accurate RTT measurements is to employ time-stamps as described in
<xref target="QUIC-Timestamp"/>. If one chooses not to use time-stamps but wants to get
reasonable estimation of RTTs on multiple paths with single packet number
space, the following practices can be used:</t>
          <t>For packet receiver (ACK sender):</t>
          <ul spacing="normal">
            <li>Maintain an ACK threshold and an ACK timer for each path. A path should send
an ACK when it receives ack-eliciting-threshold number of ack-eliciting
packets (e.g., two) on this path, and an ack-eliciting packet must be acknowledged within
MAX_ACK_DELAY.</li>
            <li>Write ACK frame based on the largest received packet of the path. Start the ACK
ranges with the largest received packet number of that path, which means that
the "Largest Acknowledged" field is the path's largest packet number and the
"ACK Delay" field is the delay time of the path's largest received packet.</li>
          </ul>
          <t>For packet sender (ACK receiver):</t>
          <ul spacing="normal">
            <li>Maintain an unacked list for each path to retrieve the packets that has been
sent when an ACK is received. It can coexist with the unacked list of the
connection layer or packet number space layer.</li>
            <li>Generate RTT sample for a path when the following conditions are met: (1) the
largest acknowledged packet number is newly acknowledged by the ACK received
from this path, and (2) at least one of the newly acknowledged packets was ack-eliciting.</li>
          </ul>
        </section>
        <section anchor="ecn-handling">
          <name>ECN and Zero-Length CID Considerations</name>
          <t>ECN feedback in QUIC is provided based on counters in the ACK frame
(see <xref section="19.3.2." sectionFormat="of" target="QUIC-TRANSPORT"/>). That means if an ACK
frame acknowledges multiple packets, the ECN feedback cannot be accounted
to a specific packet.</t>
          <t>There are separate counters for each packet number space. However, sending
to zero-length CID receivers, the same number space is used for multiple paths.
Respectively, if an ACK frames acknowledges multiple packets from different paths,
the ECN feedback cannot unambiguously be assigned to a path.</t>
          <t>If the sender marks its packets with the ECN capable flags, the network
will expect standard reactions to ECN marks, such as slowing down
transmission on the sending path. If zero-length CID is used,
the sending path is however ambiguous. Therefore, the sender MUST
treat a CE marking as a congestion signal on all sending paths that
have been by a packet that was acknowledged in the ACK frame signaling
the CE counter increase.</t>
          <t>A host that is sending over multiple paths to a zero-length CID receiver
MAY disable ECN marking and
send all subsequent packets as Not-ECN capable.</t>
        </section>
        <section anchor="restricted-sending-to-zero-length-cid-peer">
          <name>Restricted Sending to Zero-Length CID Peer</name>
          <t>Hosts that are designed to support multipath using multiple number spaces
MAY adopt a conservative posture after negotiating multipath support with
a peer using zero-length CID. The simplest posture is to only send
data on one path at a time, while accepting packets on all acceptable
paths. In that case:</t>
          <ul spacing="normal">
            <li>the attribution of packets to path discussed in <xref target="zero-length-cid-loss-and-congestion"/>
are easy to solve because packets are sent on a single path,</li>
            <li>the ACK Delays are correct,</li>
            <li>the vast majority of ECN marks relate to the current sending path.</li>
          </ul>
          <t>Of course, the hosts will only take limited advantage from the multipath
capability in these scenarios. Support for "make before break" migrations
will improve, but load sharing between multiple paths will not work.</t>
        </section>
      </section>
      <section anchor="using-non-zero-length-cid-and-multiple-packet-number-spaces">
        <name>Using non-zero length CID and Multiple Packet Number Spaces</name>
        <t>If packets contain a non-zero CID, each path has
its own packet number space for transmitting 1-RTT packets and a new
ACK frame format is used as specified in <xref target="ack-mp-frame"/>.
Compared to the QUIC version 1 ACK frame, the ACK_MP frames additionally
contains a Packet Number Space Identifier (PN Space ID).
The PN Space ID used to distinguish packet number spaces for different
paths and is simply derived from the sequence number of
Destination Connection ID.
Therefore, the packet number space for 1-RTT packets can be identified
based on the Destination Connection ID in each packet.</t>
        <t>As soon as the negotiation of multipath support is completed,
endpoints SHOULD use ACK_MP frames instead of ACK frames for
acknowledgements of 1-RTT packets on path 0, as well as for 0-RTT packets
that are acknowledged after the handshake concluded.</t>
        <t>Following <xref target="QUIC-TRANSPORT"/>, each endpoint uses NEW_CONNECTION_ID frames
to issue usable connections IDs to reach it. Before an endpoint adds
a new path by initiating path validation, it MUST check whether at least
one unused Connection ID is available for each side.</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>ACK_MP frame (defined in <xref target="ack-mp-frame"/>) can be returned via either a
different path, or the same path identified by the Path Identifier, based on
different strategies of sending ACK_MP frames.</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 anchor="multipath-aead">
          <name>Packet Protection for QUIC Multipath</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. If 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 path identifier.</t>
          <t>The path ID for 1-RTT packets is the sequence number of <xref target="QUIC-TRANSPORT"/>, or
zero if the Connection ID is zero-length.  <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 32 bit Connection ID Sequence Number in 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>
        </section>
        <section anchor="multipath-key-update">
          <name>Key Update for QUIC Multipath</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.
Because of network delays, packets protected with the older key might
arrive later than the packets protected with the new key. Therefore,
the endpoint needs to retain old packet keys to allow these delayed
packets to be processed and it must distinguish between the new key
and the old key. In QUIC version 1, this is done using packet numbers
so that the rule is made simple: Use the older key if packet number is
lower than any packet number frame the current key phase.</t>
          <t>When using multiple packet number spaces on different paths,
some care is needed when initiating the Key Update process,
as different paths use different packet number spaces but share
a single key. When a key update is initiated on one path, packets sent to
another path needs to know when the transition is complete. Otherwise,
it is possible that the other paths send packets with the old keys,
but skip sending any packets in the current key phase and directly
jump to sending packet in the next key phase. When that happens,
as the endpoint can only retain two sets of packet protection keys
with the 1-bit Key Phase bit, the other paths cannot distinguish
which key should be used to decode received packets, which results in
a key rotation synchronization problem.</t>
          <t>To address such a synchronization issue, if key update is
initialized on one path, the sender SHOULD send at least one packet
with the new key on all active paths. Further, an endpoint MUST NOT
initiate a subsequent key update until a packet with the current key
has been acknowledged on each 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>
    <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[Seq=2,PN=0]
   Checks AEAD using nonce(CID sequence 1, PN 0)
   1-RTT[1]: DCID=S2, PATH_RESPONSE[Y],
             ACK_MP[Seq=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 when both
the client and the server use non-zero-length CIDs. 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 received packet's DCID over that path (path identifier type
0x00), hence using the path_id 1. Optionally, the server confirms the path closure
by sending an PATH_ABANDON frame using
the sequence number of the received packet's DCID over that path (path
identifier type 0x00) as path identifier, which corresponds to the path_id 2. 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 when both the client and the server choose to receive non-zero-length CIDs.</name>
          <artwork><![CDATA[
Client                                                      Server

(client tells server to abandon a path)
1-RTT[X]: DCID=S2 PATH_ABANDON[path_id_type=0, path_id=1]->
                           (server tells client to abandon a path)
      <-1-RTT[Y]: DCID=C1 PATH_ABANDON[path_id_type=0, path_id=2],
                                               ACK_MP[Seq=2, PN=X]
(client retires the corresponding CID)
1-RTT[U]: DCID=S3 RETIRE_CONNECTION_ID[2], ACK_MP[Seq=1, PN=Y] ->
                            (server retires the corresponding CID)
 <- 1-RTT[V]: DCID=C2 RETIRE_CONNECTION_ID[1], ACK_MP[Seq=3, PN=U]
]]></artwork>
        </figure>
        <t><xref target="fig-example-path-close2"/> illustrates an example of path closing when the
client chooses to receive zero-length CIDs while the server chooses to receive
non-zero-length CIDs.  Because there is a zero-length CID in one direction,
single packet number spaces are used. For the first path, the client's 1-RTT
packets use DCID S2, which has a sequence number of 2. For the second path, the
client's 1-RTT packets use DCID S3, which has a sequence number of 3. Again, in
this case, the client is going to close the first path. Because the client now
receives zero-length CID packets, it needs to use path identifier type 0x01,
which identifies a path by the DCID sequence number of the packets it sends
over that path, and hence, it uses a path_id 2 in its PATH_ABANDON frame. The
server SHOULD stop sending new data on the path indicated by the PATH_ABANDON
frame after receiving it. However, The client may want to repeat the
PATH_ABANDON frame if it sees the server continuing to send data. When the
client's PATH_ABANDON frame is acknowledged, it sends out a
RETIRE_CONNECTION_ID frame for the CID used on the first path. The server can
readily close the first path when it receives the RETIRE_CONNECTION_ID frame
from the client.  However, since the client will not receive a
RETIRE_CONNECTION_ID frame, after sending out the RETIRE_CONNECTION_ID frame, the
client waits for 3 RTO before closing the path.</t>
        <figure anchor="fig-example-path-close2">
          <name>Example of closing a path when the client chooses to receive zero-length CIDs while the server chooses to receive non-zero-length CIDs</name>
          <artwork><![CDATA[
  Client                                                      Server

  (client tells server to abandon a path)
  1-RTT[X]: DCID=S2 PATH_ABANDON[path_id_type=1, path_id=2]->
                             (server stops sending on that path after
                                              receiving PATH_ABANDON)
  (client retires the corresponding CID
      after PATH_ABANDON is acknowledged)
  1-RTT[X+1]: DCID=S3 RETIRE_CONNECTION_ID[2]->
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <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>
    <section anchor="frames">
      <name>New Frames</name>
      <t>All the new frames MUST only be sent in 1-RTT packet, and MUST NOT
use other encryption levels.</t>
      <t>If an endpoint receives multipath-specific frames from packets of
other encryption levels, it MUST return MP_PROTOCOL_VIOLATION
as a connection error and close the connection.</t>
      <section anchor="path-abandon-frame">
        <name>PATH_ABANDON Frame</name>
        <t>The PATH_ABANDON frame informs the peer to abandon a
path. More complex path management can
be made possible with additional extensions (e.g., PATH_STATUS frame in
<xref target="I-D.liu-multipath-quic"/> ).</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 0xbaba05),
    Path Identifier (..),
    Error Code (i),
    Reason Phrase Length (i),
    Reason Phrase (..),
  }
]]></artwork>
        </figure>
        <t>PATH_ABANDON frames contain the following fields:</t>
        <t>Path Identifier: An identifier of the path, which is formatted as shown
in <xref target="fig-path-identifier-format"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Identifier Type: Identifier Type field is set to indicate the type of
path identifier.
            </t>
            <ul spacing="normal">
              <li>Type 0: Refer to the connection identifier issued by the sender of
the control frame.
Note that this is the connection identifier used by the peer
when sending packets on the to-be-closed path.
This method SHOULD be used if this connection identifier is non-zero
length. This method MUST NOT be used if this connection identifier
is zero-length.</li>
              <li>Type 1: Refer to the connection identifier issued by the receiver of
the control frame.
Note that this is the connection identifier used by the sender
when sending packets on the to-be-closed path.
This method MUST NOT be used if this connection identifier is zero-length.</li>
              <li>Type 2: Refer to the path over which the control frame is sent or
received.</li>
            </ul>
          </li>
          <li>Path Identifier Content: A variable-length integer specifying the path
identifier. If Identifier Type is 2, the Path Identifier Content MUST
be empty.</li>
        </ul>
        <figure anchor="fig-path-identifier-format">
          <name>Path Identifier Format</name>
          <artwork><![CDATA[
  Path Identifier {
    Identifier Type (i) = 0x00..0x02,
    [Path Identifier Content (i)],
  }
]]></artwork>
        </figure>
        <t>Note: If the receiver of the PATH_ABANDON frame is using non-zero
length Connection ID on that path, endpoint SHOULD use type 0x00
for path identifier in the control frame. If the receiver of
the PATH_ABANDON frame is using zero-length Connection ID, but the peer
is using non-zero length Connection ID on that path, endpoints SHOULD
use type 0x01 for path identifier. If both endpoints are using 0-length
Connection IDs on that path, endpoints SHOULD only use type 0x02
for path identifier.</t>
        <dl>
          <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 SHOULD be acknowledged. If a packet containing
a PATH_ABANDON frame is considered lost, the peer SHOULD repeat it.</t>
        <t>If the Identifier Type is 0x00 or 0x01, PATH_ABANDON frames MAY be sent
on any path, not only the path identified by the Path Identifier Content
field. If the Identifier Type if 0x02, the PATH_ABANDON frame MUST only
be sent on the path that is intended to be abandoned.</t>
      </section>
      <section anchor="path-status-frame">
        <name>PATH_STATUS frame</name>
        <t>PATH_STATUS Frame are used by endpoints to inform the peer of the current
status of one path, and the peer should send packets according to
the preference expressed in these frames.
PATH_STATUS frames are formatted as shown in <xref target="fig-path-status-format"/>.</t>
        <figure anchor="fig-path-status-format">
          <name>PATH_STATUS Frame Format</name>
          <artwork><![CDATA[
  PATH_STATUS Frame {
    Type (i) = TBD-03 (experiments use 0xbaba06),
    Path Identifier (..),
    Path Status sequence number (i),
    Path Status (i),
  }
]]></artwork>
        </figure>
        <t>PATH_STATUS Frames contain the following fields:</t>
        <t>Path Identifier: An identifier of the path, which is formatted
  as shown in <xref target="fig-path-identifier-format"/>. Exactly the same as
  the definition of Path Identifier in {#path-abandon-frame}.</t>
        <t>Path Status sequence number: A variable-length integer specifying
  the sequence number assigned for this PATH_STATUS frame. The sequence
  number MUST be monotonically increasing generated by the sender of
  the Path Status frame in the same connection. The receiver of
  the Path Status frame needs to use and compare the sequence numbers
  separately for each Path Identifier.</t>
        <t>Available values of Path Status field are:</t>
        <ul spacing="normal">
          <li>1: Standby</li>
          <li>2: Available</li>
        </ul>
        <t>Endpoints use PATH_STATUS frame to inform the peer whether it prefer to
use this path or not. If an endpoint receives a PATH_STATUS frame
containing 1-Standby status, it SHOULD stop sending non-probing packets
on the corresponding path, until it receive a new PATH_STATUS frame
containing 2-Available status with a higher sequence number referring to
the same path.</t>
        <t>Frames may be received out of order. A peer MUST ignore an incoming
PATH_STATUS frame if it previously received another PATH_STATUS frame
for the same Path Identifier with a sequence number equal to or
higher than the sequence number of the incoming frame.</t>
        <t>PATH_STATUS frames SHOULD be acknowledged. If a packet containing
a PATH_STATUS frame is considered lost, the peer should only repeat it
if it was the last status sent for that path -- as indicated by
the sequence number.</t>
      </section>
      <section anchor="ack-mp-frame">
        <name>ACK_MP Frame</name>
        <t>The ACK_MP frame (types TBD-00 and TBD-01; experiments use 0xbaba00..0xbaba01)
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 when 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 connection 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 0xbaba00..0xbaba01),
    Packet Number Space 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>
        <t>Packet Number Space Identifier: An identifier of the path packet number
space, which is the sequence number of Destination Connection ID of
the 1-RTT packets which are acknowledged by the ACK_MP frame.
If the endpoint receives 1-RTT packets with zero-length Connection ID,
it SHOULD use Packet Number Space Identifier 0 in ACK_MP frames.
If an endpoint receives an ACK_MP frame with a packet number
space ID which was never issued by endpoints (i.e., with a sequence number
larger than the largest one advertised), it MUST treat this as a connection
error of type MP_PROTOCOL_VIOLATION and close the connection.
If an endpoint receives an ACK_MP frame with a packet number space ID
which is no more active (e.g., retired by a RETIRE_CONNECTION_ID
frame or belonging to closed paths), it MUST ignore the ACK_MP frame
without causing a connection error.</t>
        <t>When using a single packet number space, endhosts MUST NOT send ACK_MP frames.
If an endhost receives an ACK_MP frame while a single packet number space
was negotiated, it MUST treat this as a connection error of type
MP_PROTOCOL_VIOLATION and close the connection.</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 0xba01): 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 two 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 (experiments use 0xbabf)</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 0xbaba00-0xbaba01)</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 0xbaba05)</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 0xbaba06)</td>
            <td align="left">PATH_STATUS</td>
            <td align="left">
              <xref target="path-status-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 0xba01)</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>Qing An</li>
        <li>Zhenyu Li</li>
      </ul>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TBD</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol.  QUIC provides applications with flow-controlled streams for structured 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">
              <organization/>
            </author>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner">
              <organization/>
            </author>
            <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="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>
        <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">
              <organization/>
            </author>
            <author fullname="M. Handley" initials="M." surname="Handley">
              <organization/>
            </author>
            <author fullname="D. Wischik" initials="D." surname="Wischik">
              <organization/>
            </author>
            <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="I-D.bonaventure-iccrg-schedulers">
          <front>
            <title>Multipath schedulers</title>
            <author fullname="Olivier Bonaventure" initials="O." surname="Bonaventure">
              <organization>UCLouvain</organization>
            </author>
            <author fullname="Maxime Piraux" initials="M." surname="Piraux">
              <organization>UCLouvain</organization>
            </author>
            <author fullname="Quentin De Coninck" initials="Q." surname="De Coninck">
              <organization>UCLouvain</organization>
            </author>
            <author fullname="Matthieu Baerts" initials="M." surname="Baerts">
              <organization>Tessares</organization>
            </author>
            <author fullname="Christoph Paasch" initials="C." surname="Paasch">
              <organization>Apple</organization>
            </author>
            <author fullname="Markus Amend" initials="M." surname="Amend">
              <organization>Deutsche Telekom</organization>
            </author>
            <date day="25" month="October" year="2021"/>
            <abstract>
              <t>   This document proposes a series of abstract packet schedulers for
   multipath transport protocols equipped with a congestion controller.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bonaventure-iccrg-schedulers-02"/>
        </reference>
        <reference anchor="QUIC-RECOVERY">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
              <organization/>
            </author>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett">
              <organization/>
            </author>
            <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="QUIC-Invariants">
          <front>
            <title>Version-Independent Properties of QUIC</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the properties of the QUIC transport protocol that are common to all versions of the protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8999"/>
          <seriesInfo name="DOI" value="10.17487/RFC8999"/>
        </reference>
        <reference anchor="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>
        <reference anchor="I-D.liu-multipath-quic">
          <front>
            <title>Multipath Extension for QUIC</title>
            <author fullname="Yanmei Liu" initials="Y." surname="Liu">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Yunfei Ma" initials="Y." surname="Ma">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Christian Huitema" initials="C." surname="Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <author fullname="Qing An" initials="Q." surname="An">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Zhenyu Li" initials="Z." surname="Li">
              <organization>ICT-CAS</organization>
            </author>
            <date day="5" month="September" year="2021"/>
            <abstract>
              <t>   This document specifies multipath extension for the QUIC protocol to
   enable the simultaneous usage of multiple paths for a single
   connection.  The extension is compliant with the single-path QUIC
   design.  The design principle is to support multipath by adding
   limited extension to [QUIC-TRANSPORT].

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-liu-multipath-quic-04"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
AA==

-->

</rfc>
