Subject: "Proxying" multipath usecases and application scheduling

From: Matt Joras <[email-masked]>
Date: Fri, 23 Oct 2020 13:09:47 -0700

Following up from Martin Thomson's excellent summary of the BoF-esque
multipath QUIC interim, I thought I'd start a discussion extracting a
couple things I saw as important takeaways from the presentation and
subsequent questions.

As David noted, there were essentially two categories of usecases
presented. The first, embodied by the Apple and Alibaba presentations, were
essentially existing applications that can benefit from a transport with
the capability to simultaneously utilize multiple paths. For these it
seemed everyone agreed that in order for multiple paths to be useful the
application has to have input into the scheduling decisions on these paths.
For example, the application knows how it wants to trade off latency of
delivery and overall throughput of delivery for application data.

The second set of usecases utilized multipath "in the network". ATSSS and
the two variants of Hybrid Access Networks presented fall into this
category. In this scheme application data is transparently proxied over
multiple paths. This would include things like TCP flows, which could be
intercepted in the traditional way TCP PEPs operate, as well as UDP
(including QUIC) datagrams. Both types of traffic would be scheduled along
the multiple paths towards the "other end" of the proxy, where it
presumably re-enters the general Internet towards the destination endpoint.

Prior to the meeting this latter set of usecases always felt concerning to
me, and the meeting did an excellent job of crystallizing my concerns. As
others have said, a great benefit of QUIC has been its ability to "cut
through" the meddling of things like TCP PEPs, which are often making
transport-level decisions that harm the goals of the endpoint application.
While the in-network multipath schemes cannot meddle with QUIC flows as
much as TCP PEPs, I am still very concerned about the consequences of
utilizing them.

We seem to have established that application input is necessary to achieve
the benefits from utilizing multiple paths, as there is not one "best" way
to schedule data. These proxyng solutions have no way to act on application
concerns, and rather have to devise scheduling policies solely from
network-level information, ignorant of signals from the application. Does
this not inevitably lead to pathological scheduling decisions and
applications which are helpless to do anything about it?

The obvious counterpoint is that these proxies, through advent of being
embedded "in the network", have access to information which the endpoint
does not, e.g. about the state of the paths. An argument can be made that
because of this they can make proactive decisions, rather than relying on
the endpoint to react to changes. This is of course true, but completely
ignores the fact that without the application context, it is impossible for
the proxy to make an optimal scheduling decision.

If the only benefit to running such proxies "in the network" is their
extended knowledge of network conditions, wouldn't a better path forward to
have endpoints engaging in "native" multipath? To solve the information
gap, i.e. the fact that the "network knows more", could we not develop
mechanisms for signalling this information proactively to endpoints?

Now these concerns may not sound QUIC-specific, but I think it is still
relevant to the working group for the following reason. Usecases are very
important towards driving design of something like a multipath protocol. It
seems to me that one of the two major categories of usecases for a
multipath QUIC is, by design, incompatible with some of the core tenets of
QUIC as an application-enhancing transport protocol. As Martin said, we
obviously can't stop anyone from utilizing multipath in this way, and it of
course does not serve as a reason to not design a multipath QUIC, but it
seems to me something we should all keep in mind as we consider such
designs. I am very curious to hear others' opinions in this direction and
thanks for sitting through this wall of text.

Matt Joras

---

From: Mirja Kuehlewind <[email-masked]>
Date: Sat, 24 Oct 2020 00:53:51 +0000

Hi Matt,

I think this discussion rather would belong on the MASQUE list and I guess we already had some of this before chartering MASQUE but let me reply to a couple of comments below.

From: QUIC <[email-masked]> on behalf of Matt Joras <[email-masked]>
Date: Friday, 23. October 2020 at 22:10
To: IETF QUIC WG <[email-masked]>
Subject: "Proxying" multipath usecases and application scheduling

Following up from Martin Thomson's excellent summary of the BoF-esque multipath QUIC interim, I thought I'd start a discussion extracting a couple things I saw as important takeaways from the presentation and subsequent questions.

As David noted, there were essentially two categories of usecases presented. The first, embodied by the Apple and Alibaba presentations, were essentially existing applications that can benefit from a transport with the capability to simultaneously utilize multiple paths. For these it seemed everyone agreed that in order for multiple paths to be useful the application has to have input into the scheduling decisions on these paths. For example, the application knows how it wants to trade off latency of delivery and overall throughput of delivery for application data.

Application input is needed if and only if there is actually a tradeoff to make. However, there are many scenarios where one can actually chose between a link that is better than the other, regarding both delay and latency, and then the decision is easy and the same for all applications.

The second set of usecases utilized multipath "in the network". ATSSS and the two variants of Hybrid Access Networks presented fall into this category. In this scheme application data is transparently proxied over multiple paths. This would include things like TCP flows, which could be intercepted in the traditional way TCP PEPs operate, as well as UDP (including QUIC) datagrams.

Intercepting TCP and tunneling is far not the same thing. There are many functions today that tunnel your traffic in some way in some network. Traffic is rerouted or EMCP is used to choose a path. These functions are needed for network management and network resilience and it’s explicitly the role of the end-to-end transport to adapt to changing network conditions and  handle these situations.

Both types of traffic would be scheduled along the multiple paths towards the "other end" of the proxy, where it presumably re-enters the general Internet towards the destination endpoint.

Prior to the meeting this latter set of usecases always felt concerning to me, and the meeting did an excellent job of crystallizing my concerns. As others have said, a great benefit of QUIC has been its ability to "cut through" the meddling of things like TCP PEPs, which are often making transport-level decisions that harm the goals of the endpoint application. While the in-network multipath schemes cannot meddle with QUIC flows as much as TCP PEPs, I am still very concerned about the consequences of utilizing them.

Again for me this is by far not the same and threating everything that is done with your flows in the network the same seems just oversimplifying it.

We seem to have established that application input is necessary to achieve the benefits from utilizing multiple paths, as there is not one "best" way to schedule data.

There are cases where there is actually a best way, whenever one path is better than the other without having to make tradeoff, and as I said in my other mail its usually not only application input that is needed to make a decision. E.g. Christoph brought this example that mobile data should be avoided and of course it also depends on the network condition, and that’s where congestion control comes into play.

These proxyng solutions have no way to act on application concerns, and rather have to devise scheduling policies solely from network-level information, ignorant of signals from the application. Does this not inevitably lead to pathological scheduling decisions and applications which are helpless to do anything about it?

The obvious counterpoint is that these proxies, through advent of being embedded "in the network", have access to information which the endpoint does not, e.g. about the state of the paths. An argument can be made that because of this they can make proactive decisions, rather than relying on the endpoint to react to changes. This is of course true, but completely ignores the fact that without the application context, it is impossible for the proxy to make an optimal scheduling decision.

Again there are scenarios where there is clearly a better path, or where there is a strong desire for the network to avoid usage of a certain. E.g. in the hybrid access case, some operators lease one of the links from another operator. I think it’s understandable that they only offer dual connectivity if they have a way to minimize usage of the more expensive line. There are many scenario where network management decision need to be made independent of application characteristics.

And regarding ATSSS is already exists (based on MPTCP for TCP and ATSSS-LL for other traffic) and will be used, similar as other techniques that impact routing. I think it’s understandable that operator try to utilize all available resources and usually that actually means that more capacity and a better is available for the user/the operator’s costumer. We can argue about the best technical way to make use of these resources but a) the final decision about ATSSS will be made in 3GPP and not the IETF and b) having an explicit proxy setup where the client can decide to use as it or not, as it is done also in other masque use case, seems to me actually a good approach (or at minimum better than what we have right now).

If the only benefit to running such proxies "in the network" is their extended knowledge of network conditions, wouldn't a better path forward to have endpoints engaging in "native" multipath? To solve the information gap, i.e. the fact that the "network knows more", could we not develop mechanisms for signalling this information proactively to endpoints?

I guess you can make the same proposal in the other direction: why cannot the endpoints tell the network what the application needs? I think this is a discussion to have in the APN BoF, however, we had this discussion many times and the short answer is trust. Might probably is a longer answer as well and there is a lot of disagreement.

Now these concerns may not sound QUIC-specific, but I think it is still relevant to the working group for the following reason. Usecases are very important towards driving design of something like a multipath protocol. It seems to me that one of the two major categories of usecases for a multipath QUIC is, by design, incompatible with some of the core tenets of QUIC as an application-enhancing transport protocol.

I think that is a way to broad statement and far too simplified. There have been so many discussions in the IETF including in the QUIC working and we clearly don’t have agreement about what the right level of cooperation is because there is just not a simple solution. I fully understand the pain we had with TCP. I’ve been working so long on ECN and am still sad how this good idea git killed in its infancy because of a buggy home router implementation that badly interfered. However, I personally also still believe that there is a way to further optimize and better utilize the resource we have if there is some cooperation between the network and endpoints. Anyway that’s my view on a different topic and not the point of this discussion.

As Martin said, we obviously can't stop anyone from utilizing multipath in this way, and it of course does not serve as a reason to not design a multipath QUIC, but it seems to me something we should all keep in mind as we consider such designs.

I think we should not consider this to make a decision on multipath support in QUIC because as you said you can’t stop it. The only thing you can achieve for ATSSS is that 3GPP may design some proprietary way to realize this function which will further increase complexity in an already complex system. However, that also an different discussion to have.

I’m been trying here to mainly explain what 3GPP is doing on ATSSS in order to get this group some understand of what the requirements are. However, I mainly just think we should simply have multipath support in QUIC because a modern protocol should be able to utilize the fact that more and more devices have connectivity to multiple network paths. I think using path migration for handovers is a bit a hack and not the real solution because it’s actually not easy for an endpoint without further network knowledge to detect when it is the right time to switch. Having a more complete multipath feature were you have two congestion controllers and can get measurements from both paths does help that problem and we do have good experience with that for MPTCP.

Mirja

I am very curious to hear others' opinions in this direction and thanks for sitting through this wall of text.

Matt Joras

---

From: David Schinazi <[email-masked]>
Date: Fri, 23 Oct 2020 18:19:31 -0700

On Fri, Oct 23, 2020 at 5:54 PM Mirja Kuehlewind <mirja.kuehlewind=
[email-masked]> wrote:

> Hi Matt,
>
>
>
> I think this discussion rather would belong on the MASQUE list and I guess
> we already had some of this before chartering MASQUE but let me reply to a
> couple of comments below.
>

As per the MASQUE charter, multipath is out of scope for MASQUE. I'd
personally suggest we keep all multipath QUIC conversations on the QUIC
list for now.

> *From: *QUIC <[email-masked]> on behalf of Matt Joras <
> [email-masked]>
> *Date: *Friday, 23. October 2020 at 22:10
> *To: *IETF QUIC WG <[email-masked]>
> *Subject: *"Proxying" multipath usecases and application scheduling
>
>
>
> Application input is needed if and only if there is actually a tradeoff to
> make. However, there are many scenarios where one can actually chose
> between a link that is better than the other, regarding both delay and
> latency, and then the decision is easy and the same for all applications.
>

Could you elaborate? Choosing between links applies to connection
migration, multipath is a much more complex beast.

> (including QUIC) datagrams.
>
>
>
> Intercepting TCP and tunneling is far not the same thing. There are many
> functions today that tunnel your traffic in some way in some network.
> Traffic is rerouted or EMCP is used to choose a path. These functions are
> needed for network management and network resilience and it’s explicitly
> the role of the end-to-end transport to adapt to changing network
> conditions and  handle these situations.
>
>
>
>
>
> Both types of traffic would be scheduled along the multiple paths towards
> the "other end" of the proxy, where it presumably re-enters the general
> Internet towards the destination endpoint.
>
>
>
> Again for me this is by far not the same and threating everything that is
> done with your flows in the network the same seems just oversimplifying it.
>
>
>
> to schedule data.
> There are cases where there is actually a best way, whenever one path is
> better than the other without having to make tradeoff, and as I said in my
> other mail its usually not only application input that is needed to make a
> decision. E.g. Christoph brought this example that mobile data should be
> avoided and of course it also depends on the network condition, and that’s
> where congestion control comes into play.
>
>
>
>
>
> These proxyng solutions have no way to act on application concerns, and
> rather have to devise scheduling policies solely from network-level
> information, ignorant of signals from the application. Does this not
> inevitably lead to pathological scheduling decisions and applications which
> are helpless to do anything about it?
>
>
>
> Again there are scenarios where there is clearly a better path, or where
> there is a strong desire for the network to avoid usage of a certain. E.g.
> in the hybrid access case, some operators lease one of the links from
> another operator. I think it’s understandable that they only offer dual
> connectivity if they have a way to minimize usage of the more expensive
> line. There are many scenario where network management decision need to be
> made independent of application characteristics.
>
>
>
> And regarding ATSSS is already exists (based on MPTCP for TCP and ATSSS-LL
> for other traffic) and will be used, similar as other techniques that
> impact routing. I think it’s understandable that operator try to utilize
> all available resources and usually that actually means that more capacity
> and a better is available for the user/the operator’s costumer. We can
> argue about the best technical way to make use of these resources but a)
> the final decision about ATSSS will be made in 3GPP and not the IETF and b)
> having an explicit proxy setup where the client can decide to use as it or
> not, as it is done also in other masque use case, seems to me actually a
> good approach (or at minimum better than what we have right now).
>

When you say "ATSSS will be used", do you have references? I'm not aware of
any smartphone provider planning to support ATSSS but I might have missed
it.

> I guess you can make the same proposal in the other direction: why cannot
> the endpoints tell the network what the application needs? I think this is
> a discussion to have in the APN BoF, however, we had this discussion many
> times and the short answer is trust. Might probably is a longer answer as
> well and there is a lot of disagreement.
>

End-user privacy?

> QUIC as an application-enhancing transport protocol.
>
>
>
> I think that is a way to broad statement and far too simplified. There
> have been so many discussions in the IETF including in the QUIC working and
> we clearly don’t have agreement about what the right level of cooperation
> is because there is just not a simple solution. I fully understand the pain
> we had with TCP. I’ve been working so long on ECN and am still sad how this
> good idea git killed in its infancy because of a buggy home router
> implementation that badly interfered. However, I personally also still
> believe that there is a way to further optimize and better utilize the
> resource we have if there is some cooperation between the network and
> endpoints. Anyway that’s my view on a different topic and not the point of
> this discussion.
>
>
>
> As Martin said, we obviously can't stop anyone from utilizing multipath in
> this way, and it of course does not serve as a reason to not design a
> multipath QUIC, but it seems to me something we should all keep in mind as
> we consider such designs.
>
>
>
> I think we should not consider this to make a decision on multipath
> support in QUIC because as you said you can’t stop it. The only thing you
> can achieve for ATSSS is that 3GPP may design some proprietary way to
> realize this function which will further increase complexity in an already
> complex system. However, that also an different discussion to have.
>
>
>
> I’m been trying here to mainly explain what 3GPP is doing on ATSSS in
> order to get this group some understand of what the requirements are.
> However, I mainly just think we should simply have multipath support in
> QUIC because a modern protocol should be able to utilize the fact that more
> and more devices have connectivity to multiple network paths. I think using
> path migration for handovers is a bit a hack and not the real solution
> because it’s actually not easy for an endpoint without further network
> knowledge to detect when it is the right time to switch. Having a more
> complete multipath feature were you have two congestion controllers and can
> get measurements from both paths does help that problem and we do have good
> experience with that for MPTCP.
>

I'll point out that "we should simply have multipath support in QUIC" is
very optimistic, I really do not expect this to be simple.

David

---

From: Mirja Kuehlewind <[email-masked]>
Date: Sat, 24 Oct 2020 08:02:58 +0000

Hi David,

see below.

From: QUIC <[email-masked]> on behalf of David Schinazi <[email-masked]>
Date: Saturday, 24. October 2020 at 03:20
To: Mirja Kuehlewind <mirja.kuehlewind=[email-masked]>
Cc: IETF QUIC WG <[email-masked]>, Matt Joras <[email-masked]>
Subject: Re: "Proxying" multipath usecases and application scheduling

On Fri, Oct 23, 2020 at 5:54 PM Mirja Kuehlewind <mirja.kuehlewind=[email-masked]<mailto:[email-masked]>> wrote:
Hi Matt,

As per the MASQUE charter, multipath is out of scope for MASQUE. I'd personally suggest we keep all multipath QUIC conversations on the QUIC list for now.

The point I was making is that most of the discussion below (so far) is not about multipath but about use of QUIC as a tunneling protocol with a proxy function sitting in the network which is what MASQUE is looking at.

From: QUIC <[email-masked]<mailto:[email-masked]>> on behalf of Matt Joras <[email-masked]<mailto:[email-masked]>>
Date: Friday, 23. October 2020 at 22:10
To: IETF QUIC WG <[email-masked]<mailto:[email-masked]>>
Subject: "Proxying" multipath usecases and application scheduling

Could you elaborate? Choosing between links applies to connection migration, multipath is a much more complex beast.

Yes, that is definitely also something to consider with connection migration and as I said below making the right choice when to switch to a new path is not easy (also with migration when used for handovers). Having the possibility to use paths simultaneous for a while and get measurement data for both paths can help a lot. However, just because you are able to use multiple paths simultaneously that does not mean that you have to do that all the time in all scenarios. There are many scenarios where you rather pick the best one (until you have reached threshold indicating performance degradation). Again sending some probing traffic on the other path is beneficial to make the handover decision.

When you say "ATSSS will be used", do you have references? I'm not aware of any smartphone provider planning to support ATSSS but I might have missed it.

ATSSS is 5G, however, the MPTCP/TCP converter based solution is deployed for hybrid access as also standardized by BBF.

End-user privacy?

I only meant to say I don’t think we should have this discussion here and now.

I'll point out that "we should simply have multipath support in QUIC" is very optimistic, I really do not expect this to be simple.

By “simple” I meant the decision to add multipath support to QUIC. Still, adding multipath support to QUIC is actually much simpler than is was for MPTCP as QUIC is already halve way there. When we talk about adding multipath support, that means the signaling to setup and use multiple paths simultaneous. As Olivier explained already many times, there is no desire to standardize path managers and schedulers. However, these are also parts when we can actually directly leverage the experience gained with MPTCP and what I see from actual deployments is that the path manager will be simply as most scenarios only have one interface at the server and a client with two interfaces which usually opens the second subpath as soon as the interface comes available; and there is a small set of schedulers that actually serve most use cases well, as shown in Christoph’s presentation.

We seems to disagree in this group also about the complexity multipath support would add. Yes very feature you add, adds new lines to your code (somethings even features your remove can add new code…), however, if people think this is an important argument for the decisions we should further discuss that and more objectively assess the proposed approaches to that respect, rather than exchanging options or guesses. So far the discussion has focusd on use cases and the question if someone would use the feature if it would be there (I believe the answer to that question is yes) and also if there  are enough people who would actively work on that (I also believe the answer to that question is also yes but there again seems to be some disagreement). I definitely would welcome more discussion about the proposed approaches at this point!

Mirja

David

Mirja

Matt Joras