Internet DRAFT - draft-dawkins-quic-multipath-selection
draft-dawkins-quic-multipath-selection
QUIC Working Group S. Dawkins
Internet-Draft Tencent America LLC
Intended status: Informational June 02, 2021
Expires: December 4, 2021
Path Selection for Multiple Paths In QUIC
draft-dawkins-quic-multipath-selection-01
Abstract
In QUIC working group discussions about proposals to use multiple
paths, an obvious question came up - given multiple paths, how does
QUIC select paths to send packets over?
The answer to that question may inform decisions in the QUIC working
group about the scope of any multipath extensions considered for
experimentation and adoption.
This document is intended to summarize aspects of path selection from
those contributions and conversations.
It is recognized that path selection is not the only important open
question about QUIC Multipath, but other open questions are out of
scope for this document.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 4, 2021.
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
Dawkins Expires December 4, 2021 [Page 1]
Internet-Draft QUIC Multipath Path Selection June 2021
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Why We Should Look at Path Selection Strategies Now . . . 3
1.2. Notes for Readers . . . . . . . . . . . . . . . . . . . . 4
1.3. Minimal Terminology . . . . . . . . . . . . . . . . . . . 4
1.4. Contribution and Discussion Venues for this draft. . . . 5
2. Background for this document . . . . . . . . . . . . . . . . 5
3. Overview of Proposed Path Selection Strategies . . . . . . . 6
3.1. Active-Standby . . . . . . . . . . . . . . . . . . . . . 7
3.2. Latency Versus Bandwidth . . . . . . . . . . . . . . . . 7
3.3. Bandwidth Aggregation/Load Balancing . . . . . . . . . . 7
3.4. Minimum RTT Difference . . . . . . . . . . . . . . . . . 7
3.5. Round-Trip-Time Thresholds . . . . . . . . . . . . . . . 7
3.6. RTT Equivalence . . . . . . . . . . . . . . . . . . . . . 7
3.7. Priority-based . . . . . . . . . . . . . . . . . . . . . 7
3.8. Redundant . . . . . . . . . . . . . . . . . . . . . . . . 8
3.9. Control Plane Versus Data Plane . . . . . . . . . . . . . 8
3.10. Combinations of Strategies . . . . . . . . . . . . . . . 8
4. Implications for QUIC Multipath . . . . . . . . . . . . . . . 8
4.1. Selecting a Single Path Among Multiple Validated Paths
("Traffic Switching") . . . . . . . . . . . . . . . . . . 8
4.2. Selecting Multiple Active Paths ("Traffic Splitting") . . 9
4.3. Arbitrary Combinations . . . . . . . . . . . . . . . . . 9
5. Next Steps . . . . . . . . . . . . . . . . . . . . . . . . . 10
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
7. Security Considerations . . . . . . . . . . . . . . . . . . . 10
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10
9. Informative References . . . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction
In QUIC working group [QUIC-charter] discussions about proposals to
use multiple paths, an obvious question came up - given multiple
paths, how does QUIC select paths to send packets over?
Dawkins Expires December 4, 2021 [Page 2]
Internet-Draft QUIC Multipath Path Selection June 2021
The answer to that question may inform decisions in the QUIC working
group about the scope of any multipath extensions considered for
experimentation and adoption.
This document is intended to summarize aspects of path selection from
those contributions and conversations.
It is recognized that path selection is not the only important open
question about QUIC Multipath, but other open questions are out of
scope for this document.
1.1. Why We Should Look at Path Selection Strategies Now
One of the first questions that's come up in discussions about
multiple paths for QUIC has been about path selection. As soon as an
implementation has multiple paths available, it must decide how to
use these paths. The [RFC9000] answer, relying on connection
migration, is "if you have multiple paths available, you can validate
more than one connection at a time, but you only send on one
connection at a time, and you migrate to another connection when you
decide sending on the current connection is no longer appropriate.
How you decide to migrate to another connection is up to you".
That has been a fine answer for many of the implementers who have
worked on the first version of QUIC, and have deployed it in their
networks. For other implementers, targeting other use cases and
other networking environments, it may not be sufficient.
To take only one example, one of several presentations at
[QUIC-interim-20-10] described aspects of 3GPP Access Traffic
Steering, Switch and Splitting support (ATSSS), which contained four
"Steering Modes" as part of Rel-16 in 2019 [TS23501], each of which
corresponding roughly to a path selection strategy described in
Section 3 of this document. A study on "ATSSS Phase 2" [TR23700-93]
included four more Steering Modes for Rel-17, expected to be
finalized in mid-2021, and none of these eight (so far) Steering
Modes are based on QUIC - they are based on Multipath TCP ([RFC8684]
or simple IP packet forwarding. And if that were not enough, a
proposal for a study on "ATSSS Phase 3" [S2-2104599] was provided to
the SA2 145-e meeting in May 2021. Some of the ATSSS strategies rely
in 5G network internals and don't translate to the broader Internet,
but most do translate, and 3GPP participants certainly aren't the
only people thinking about path selection strategies.
Since the various proposals presented at [QUIC-interim-20-10] were
developed in isolation from each other, the path selection strategies
that they reflect may be similar between proposals, but not quite the
Dawkins Expires December 4, 2021 [Page 3]
Internet-Draft QUIC Multipath Path Selection June 2021
same, and none of the proposals presented had more than two
strategies in common with any other proposal.
Given the number of path selection strategies being considered,
implemented, and even deployed in any number of venues, and the
potential for combinatorial explosion as described in Section 3.10,
it seems that identifying common aspects of path selection
strategies, sooner rather than later, is important.
1.2. Notes for Readers
This document is an informational Internet-Draft, not adopted by any
IETF working group, and does not carry any special status within the
IETF.
Please note well that this document reflects the author's current
understanding of past working group discussions and proposals.
Contributions that add or improve considerations are welcomed, as
described in Section 1.4.
1.3. Minimal Terminology
In this document, "QUIC multipath" is only used as shorthand for
"QUIC using multiple paths". It does not refer to a specific
proposal.
In this document, "path selection strategy" means the policy that a
QUIC sender uses to guide its choice between multiple interfaces of a
QUIC connection for "the next packet".
This document adopts three terms, stolen from [TS23501], that seemed
helpful in previous discussions about multipath in the QUIC working
group.
o Traffic Steering - selecting an initial path (in [RFC9000], this
would be "validating a connection, and then using it". Although
an [RFC9000] client can validate multiple connections, the client
will only use one validated connection at a time.
o Traffic Switching - selecting a different validated path (in
[RFC9000], this is something like "migrating to a new validated
connection", although whether connection migration as defined in
[RFC9000]) would be sufficient is discussed in Section 4).
o Traffic Splitting - using multiple validated paths simultaneously
(this would almost certainly require an extension beyond
connection migration as defined in [RFC9000]).
Dawkins Expires December 4, 2021 [Page 4]
Internet-Draft QUIC Multipath Path Selection June 2021
"Traffic Steering" does not require any extension to [RFC9000], and
is not discussed further in this document. The focus will be on
"Traffic Switching" and "Traffic Splitting".
1.4. Contribution and Discussion Venues for this draft.
(Note to RFC Editor - if this document ever reaches you, please
remove this section)
This document is under development in the Github repository at
https://github.com/SpencerDawkins/quic-multipath-selection.
Readers are invited to open issues and send pull requests with
contributed text for this document, but since the document is
intended to guide discussion for the QUIC working group, substantial
discussion of this document should take place on the QUIC working
group mailing list (quic@ietf.org). Mailing list subscription and
archive details are at https://www.ietf.org/mailman/listinfo/quic.
2. Background for this document
A number of individual draft proposals for "QUIC over multiple paths"
have been submitted to the IETF QUIC and INTAREA working groups,
dating back as far as 2017. The author thinks that the complete list
is as follows (and reminders for proposals he missed are welcomed):
o [I-D.an-multipath-quic]
o [I-D.an-multipath-quic-application-policy]
o [I-D.an-multipath-quic-traffic-distribution]
o [I-D.chan-quic-owl]
o [I-D.deconinck-quic-multipath]
o [I-D.deconinck-quic-multipath],
o [I-D.huitema-quic-mpath-req]
o [I-D.huitema-quic-mpath-option])
o [I-D.liu-multipath-quic]
o [I-D.piraux-intarea-quic-tunnel-session]
[I-D.bonaventure-iccrg-schedulers] has also been submitted to the
Internet Congestion Control Research Group [ICCRG-charter] in the
Dawkins Expires December 4, 2021 [Page 5]
Internet-Draft QUIC Multipath Path Selection June 2021
Internet Research Task Force. It contains specific proposals for
implementing some multipath schedulers, and includes some discussion
of path selection relevant to this document.
One point of confusion in QUIC working group discussions was that the
various proposals (also using Multipath TCP [RFC8684], so not all
proposals were QUIC-specific) discussed in working group meetings and
on the QUIC mailing list were from various proponents who weren't
solving the same problem. This meant that no two of the use cases
presented at the QUIC working group virtual interim on QUIC Multipath
[QUIC-interim-20-10] were relying on the same strategies.
It seemed useful to collect the path selection strategies described
in those proposals, to look for common elements, and to write them
down in one place, to allow more focused discussion.
[I-D.dawkins-quic-what-to-do-with-multipath] was intended to
summarize, at a high level, various proposals for the use of
multipath capabilities in QUIC, both inside the IETF and outside the
IETF, in order to identify elements that were common across
proposals. This draft tries to describe the impact of these various
strategies on potential QUIC Multipath extensions.
One element that is certainly worth considering is whether the path
selection strategies that have been proposed can be satisfied using a
small number of "building block" strategies.
3. Overview of Proposed Path Selection Strategies
The following strategies were discussed at [QUIC-interim-20-10], and
afterwards on the QUIC mailing list. These are summarized in this
section, are described in more detail in
[I-D.dawkins-quic-what-to-do-with-multipath], and are attributed to
various proposals in that document.
o Active-Standby - described in Section 3.1
o Latency Versus Bandwidth - described in Section 3.2
o Bandwidth Aggregation/Load Balancing - described in Section 3.3
o Minimum RTT Difference - described in Section 3.4
o Round-Trip-Time Thresholds - described in Section 3.5
o RTT Equivalence - described in Section 3.6
o Priority-based - described in Section 3.7
Dawkins Expires December 4, 2021 [Page 6]
Internet-Draft QUIC Multipath Path Selection June 2021
o Redundant - described in Section 3.8
o Control Plane Versus Data Plane - described in Section 3.9
o Combinations of Strategies - described in Section 3.10
3.1. Active-Standby
The traffic associated with a specific flow will be sent via a
specific path (the 'active path') and switched to another path
(called 'standby path') when the active access is unavailable.
3.2. Latency Versus Bandwidth
Some traffic might be sent over a network path with lower latency and
other traffic might be sent over a different network path with higher
bandwidth.
3.3. Bandwidth Aggregation/Load Balancing
Traffic is sent using all available paths simultaneously, so that all
available bandwidth is utilized, likely based on something like
weighted round-robin path selection. This strategy is often used for
bulk transfers.
3.4. Minimum RTT Difference
Traffic is sent over the path with the lowest smoothed RTT among all
available paths, in order to minimize latency for latency-sensitive
flows.
3.5. Round-Trip-Time Thresholds
Traffic is sent over the first path with a smoothed RTT that meets a
certain threshold.
3.6. RTT Equivalence
When multiple paths each have sufficiently similar smoothed RTTs,
traffic is sent over all of these paths. This is similar to
"Bandwidth Aggregation/Load Balancing", with the additional
qualification that not all available paths are used for this traffic.
3.7. Priority-based
Priorities are assigned to each path (often by association with
network interfaces). Traffic is sent on a highest-priority path
Dawkins Expires December 4, 2021 [Page 7]
Internet-Draft QUIC Multipath Path Selection June 2021
until it becomes congested, and then "overflows" onto a lower-
priority path.
3.8. Redundant
Traffic is replicated over two or more paths. This strategy could be
used continuously, but is more commonly used when measured network
conditions indicate that redundant sending may be necessary to
increase the likelihood that at least one copy of each packet will
arrive at the receiver.
3.9. Control Plane Versus Data Plane
An application might stream media over one or more available paths
(based on one of the other strategies named in this section), but
might send ACK traffic or retransmission over a path specifically
chosen for that purpose. This is more likely to be beneficial if the
path characteristics differ significantly between available paths -
for example, satellite uplink/downlink stations connected by both
higher-bandwidth Low Earth Orbit satellite paths and lower-bandwidth
cellular or landline paths.
3.10. Combinations of Strategies
In addition to the strategies described above, it is also possible to
combine these strategies. For example, a scheduler might use load-
balancing over three paths, but when one of the paths becomes
unavailable, the scheduler might switch to the two paths that are
still available, in a way similar to Active-Standby. This is very
much an example chosen at random - potentially, there are many
combinations that could be useful.
4. Implications for QUIC Multipath
This section summarizes potential implications for "Multipath QUIC"
of path selection strategies described in Section 3, dividing them
between "Traffic Switching" (Section 4.1) and "Traffic Splitting"
(Section 4.2).
4.1. Selecting a Single Path Among Multiple Validated Paths ("Traffic
Switching")
If a sender using Active-Standby (described in Section 3.1) does not
perform frequent path switching, it can likely be supported using
connection migration as defined in [RFC9000] without change.
o The caveat here is that connection migration can include the also-
implicit assumption that an endpoint can free up resources
Dawkins Expires December 4, 2021 [Page 8]
Internet-Draft QUIC Multipath Path Selection June 2021
associated with the previously-active path. If connection
migration happens often enough, the endpoint may spend
considerable time "thrashing" between allocating resources and
quickly freeing them. Of course, if a sender is frequently
selecting a new path for connection migration, this probably
degenerates into one of the other path selection strategies.
Some path selection strategies could be supported by a mechanism as
simple as the one proposed in [I-D.huitema-quic-mpath-option], which
replaces "the implicit signaling of path migration through data
transmission, by means of a new PATH_OPTION frame" (this isn't
intended to imply the proposal is simple, only the explicit
signaling), if the receiver uses this option to notify the sender of
the preferred path. For example, Minimum RTT Difference (described
in Section 3.4) and Round-Trip-Time Thresholds (described in
Section 3.5) likely fall into this category.
Some path selection strategies are exploiting a relatively long-lived
difference between paths - for example, Latency Versus Bandwidth
(described in Section 3.2), Priority-based (described in
Section 3.7), and Control Plane Versus Data Plane (described in
Section 3.9) may fall into this category. One might wonder why these
senders would need to use a single "multipath connection", rather
than multiple [RFC9000] connections, for these cases, but if there is
a reason to use a single multipath connection, a mechanism similar to
the one proposed in [I-D.huitema-quic-mpath-option] could also be
used in these cases.
4.2. Selecting Multiple Active Paths ("Traffic Splitting")
Some path selection strategies are treating more than one path as a
set of active paths, whether the sender is performing "Traffic
Splitting" (as defined in Section 1.3)), as is the case for Bandwidth
Aggregation/Load Balancing (described in Section 3.3) and RTT
Equivalence (described in Section 3.6), or simply transmitting the
same packet across multiple paths, as is the case for Redundant
(described in Section 3.8).
For these cases, a more complex mechanism is likely required.
4.3. Arbitrary Combinations
Because it is simple enough to imagine various combinations of
strategies (as described in Section 3.10), it seems important to
understand what basic building blocks are required in order to
support the strategies that seem common across a variety of use
cases, because interactions between strategies may have significant
Dawkins Expires December 4, 2021 [Page 9]
Internet-Draft QUIC Multipath Path Selection June 2021
implications for QUIC Multipath that might not arise when considering
strategies in isolation.
This seems especially important because existing proposals for QUIC
Multipath don't use the same vocabulary to describe path selection
strategies, so implementations may not behave in the same way, even
if they are each using a strategy that seems to be common.
5. Next Steps
If this discussion is useful, it may also be useful to take the next
step, and identify potential building blocks that can be used to
construct the path selection strategies described in Section 4.1 and
Section 4.2.
6. IANA Considerations
This document does not make any request to IANA.
7. Security Considerations
QUIC-specific security considerations are discussed in Section 21 of
[RFC9000].
Section 6 of [I-D.ietf-quic-datagram] discusses security
considerations specific to the use of the Unreliable Datagram
Extension to QUIC.
Some "Multipath QUIC"-specific security considerations can be found
in the corresponding section of [I-D.deconinck-quic-multipath].
Having said that, it may be best to repeat the security
considerations section from [I-D.huitema-quic-mpath-option]: "TBD.
There are probably ways to abuse this.".
8. Acknowledgments
Your name could appear here. Please comment and contribute, as per
Section 1.4.
9. Informative References
[I-D.an-multipath-quic]
An, Q., Liu, Y., Ma, Y., and Z. Li, "Multipath Extension
for QUIC", draft-an-multipath-quic-00 (work in progress),
October 2020.
Dawkins Expires December 4, 2021 [Page 10]
Internet-Draft QUIC Multipath Path Selection June 2021
[I-D.an-multipath-quic-application-policy]
An, Q., Li, Z., and Y. Liu, "Enabling application policy-
awareness in Multipath QUIC", draft-an-multipath-quic-
application-policy-00 (work in progress), July 2020.
[I-D.an-multipath-quic-traffic-distribution]
An, Q., Liu, D., and Y. Liu, "Key Components for Multipath
QUIC Traffic Distribution", draft-an-multipath-quic-
traffic-distribution-00 (work in progress), March 2020.
[I-D.bonaventure-iccrg-schedulers]
Bonaventure, O., Piraux, M., Coninck, Q. D., Baerts, M.,
Paasch, C., and M. Amend, "Multipath schedulers", draft-
bonaventure-iccrg-schedulers-01 (work in progress),
September 2020.
[I-D.chan-quic-owl]
Chan, H. A., Wei, A., Song, F., and H. Zhang, "One Way
Latency Considerations for Multipath in QUIC", draft-chan-
quic-owl-01 (work in progress), March 2017.
[I-D.dawkins-quic-what-to-do-with-multipath]
Dawkins, S., "What To Do With Multiple Active Paths in
QUIC", draft-dawkins-quic-what-to-do-with-multipath-03
(work in progress), January 2021.
[I-D.deconinck-quic-multipath]
Coninck, Q. D. and O. Bonaventure, "Multipath Extensions
for QUIC (MP-QUIC)", draft-deconinck-quic-multipath-07
(work in progress), May 2021.
[I-D.huitema-quic-mpath-option]
Huitema, C., "QUIC Multipath Negotiation Option", draft-
huitema-quic-mpath-option-00 (work in progress), October
2020.
[I-D.huitema-quic-mpath-req]
Huitema, C., "QUIC Multipath Requirements", draft-huitema-
quic-mpath-req-01 (work in progress), January 2018.
[I-D.ietf-quic-datagram]
Pauly, T., Kinnear, E., and D. Schinazi, "An Unreliable
Datagram Extension to QUIC", draft-ietf-quic-datagram-02
(work in progress), February 2021.
Dawkins Expires December 4, 2021 [Page 11]
Internet-Draft QUIC Multipath Path Selection June 2021
[I-D.liu-multipath-quic]
Liu, Y., Ma, Y., Huitema, C., An, Q., and Z. Li,
"Multipath Extension for QUIC", draft-liu-multipath-
quic-03 (work in progress), March 2021.
[I-D.piraux-intarea-quic-tunnel-session]
Piraux, M., Bonaventure, O., and A. Masputra, "Session
mode for multiple QUIC Tunnels", draft-piraux-intarea-
quic-tunnel-session-00 (work in progress), November 2020.
[ICCRG-charter]
"IRTF Internet Congestion Control Research Group Charter",
n.d., <https://datatracker.ietf.org/rg/iccrg/about/>.
[QUIC-charter]
"IETF QUIC Working Group Charter", n.d.,
<https://datatracker.ietf.org/wg/quic/about/>.
[QUIC-interim-20-10]
"IETF QUIC Working Group Virtual Interim Meeting - October
2020", October 2020, <https://github.com/quicwg/wg-
materials/tree/master/interim-20-10>.
[RFC8684] Ford, A., Raiciu, C., Handley, M., Bonaventure, O., and C.
Paasch, "TCP Extensions for Multipath Operation with
Multiple Addresses", RFC 8684, DOI 10.17487/RFC8684, March
2020, <https://www.rfc-editor.org/info/rfc8684>.
[RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
Multiplexed and Secure Transport", RFC 9000,
DOI 10.17487/RFC9000, May 2021,
<https://www.rfc-editor.org/info/rfc9000>.
[S2-2104599]
Lenovo, Motorola Mobility, ., "Study on Access Traffic
Steering, Switching and Splitting support in the 5G system
architecture; Phase 3", 2021,
<https://www.3gpp.org/ftp/tsg_sa/WG2_Arch/
TSGS2_145E_Electronic_2021-05/Docs/S2-2104599.zip>.
[TR23700-93]
3GPP (3rd Generation Partnership Project), ., "Technical
Specification Group Services and System Aspects; Study on
access traffic steering, switch and splitting support in
the 5G System (5GS) architecture; Phase 2 (Release 17)",
2021, <https://www.3gpp.org/ftp/Specs/
archive/23_series/23.700-93/>.
Dawkins Expires December 4, 2021 [Page 12]
Internet-Draft QUIC Multipath Path Selection June 2021
[TS23501] 3GPP (3rd Generation Partnership Project), ., "Technical
Specification Group Services and System Aspects; System
Architecture for the 5G System; Stage 2 (Release 16)",
2019, <https://www.3gpp.org/ftp/Specs/
archive/23_series/23.501/>.
Author's Address
Spencer Dawkins
Tencent America LLC
Email: spencerdawkins.ietf@gmail.com
Dawkins Expires December 4, 2021 [Page 13]