Re: Multi-path QUIC Extension Experiments

Christian Huitema <huitema@huitema.net> Tue, 20 July 2021 17:52 UTC

Return-Path: <huitema@huitema.net>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1689E3A2C67 for <quic@ietfa.amsl.com>; Tue, 20 Jul 2021 10:52:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.889
X-Spam-Level:
X-Spam-Status: No, score=-1.889 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cupqq_cBuhVC for <quic@ietfa.amsl.com>; Tue, 20 Jul 2021 10:52:06 -0700 (PDT)
Received: from mx36-out20.antispamcloud.com (mx36-out20.antispamcloud.com [209.126.121.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0A0033A2C5F for <quic@ietf.org>; Tue, 20 Jul 2021 10:52:05 -0700 (PDT)
Received: from xse411.mail2web.com ([66.113.197.157] helo=xse.mail2web.com) by mx136.antispamcloud.com with esmtp (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1m5tuR-0006Bq-TH for quic@ietf.org; Tue, 20 Jul 2021 19:52:03 +0200
Received: from xsmtp21.mail2web.com (unknown [10.100.68.60]) by xse.mail2web.com (Postfix) with ESMTPS id 4GTmW30gs7zBvx for <quic@ietf.org>; Tue, 20 Jul 2021 10:51:59 -0700 (PDT)
Received: from [10.5.2.14] (helo=xmail04.myhosting.com) by xsmtp21.mail2web.com with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1m5tuQ-0004cw-V2 for quic@ietf.org; Tue, 20 Jul 2021 10:51:58 -0700
Received: (qmail 28003 invoked from network); 20 Jul 2021 17:51:57 -0000
Received: from unknown (HELO [192.168.1.101]) (Authenticated-user:_huitema@huitema.net@[172.58.46.246]) (envelope-sender <huitema@huitema.net>) by xmail04.myhosting.com (qmail-ldap-1.03) with ESMTPA for <miaoji.lym@alibaba-inc.com>; 20 Jul 2021 17:51:57 -0000
To: Lucas Pardue <lucaspardue.24.7@gmail.com>
Cc: quic <quic@ietf.org>, "matt.joras" <matt.joras@gmail.com>, Roberto Peon <fenix@fb.com>, Charles 'Buck' Krasic <charles.krasic@gmail.com>, 李振宇 <zyli@ict.ac.cn>, Yunfei Ma <yfmascgy@gmail.com>, Mirja Kuehlewind <mirja.kuehlewind@ericsson.com>, Yunfei Ma <yunfei.ma@alibaba-inc.com>, Qing An <anqing.aq@alibaba-inc.com>, Yanmei Liu <miaoji.lym@alibaba-inc.com>
References: <8C2E8EFB-756B-449B-84E0-11CD6B57E541@ericsson.com> <0334A48E-B6C6-464C-A48C-4512A453DA81@fb.com> <CAPhuoz0vz2k63_ZaWmUg_XgSHUopid7vf+JY=JVFm_VqQJY87w@mail.gmail.com> <CAHgerOGhX3G_aBMrwZ0zXjN8tu9dqtu-9tu4z7YU80qfqaZkzQ@mail.gmail.com> <CAPhuoz1cG_ZftSFtapg-cKR23Y5AzWLxzqYq3NUfeL-8r890-g@mail.gmail.com> <0B9EAA73-802A-49F9-AEA3-A4F6C574A3F9@fb.com> <CALGR9oYOzzk8qrcf3=kyYRAQ0xf1jy1-wChoJf2jBSoN=of06w@mail.gmail.com> <a13b47f6-9634-de49-36fd-aae82da34aef@huitema.net> <CALGR9oYVqzFCfAHkPVPjK5-9EQRBuseL2VCRGffaWoPkpVPr_g@mail.gmail.com>
From: Christian Huitema <huitema@huitema.net>
Subject: Re: Multi-path QUIC Extension Experiments
Message-ID: <f13c9f60-01b7-7cf5-9089-fae9cd6b85d7@huitema.net>
Date: Tue, 20 Jul 2021 10:51:56 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <CALGR9oYVqzFCfAHkPVPjK5-9EQRBuseL2VCRGffaWoPkpVPr_g@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
Content-Language: en-US
X-Originating-IP: 66.113.197.157
X-Spampanel-Domain: xsmtpout.mail2web.com
X-Spampanel-Username: 66.113.197.0/24
Authentication-Results: antispamcloud.com; auth=pass smtp.auth=66.113.197.0/24@xsmtpout.mail2web.com
X-Spampanel-Outgoing-Class: unsure
X-Spampanel-Outgoing-Evidence: Combined (0.15)
X-Recommended-Action: accept
X-Filter-ID: Pt3MvcO5N4iKaDQ5O6lkdGlMVN6RH8bjRMzItlySaT9WLQux0N3HQm8ltz8rnu+BPUtbdvnXkggZ 3YnVId/Y5jcf0yeVQAvfjHznO7+bT5x6h2yQpzTslcOqazQkKtAFKj/EwzSHE5FGYwwjsNRPCNsQ 8h3moC+RA+tZuZznA1bmD6wdmZPcItWbGe10hXJtXL4FsauCVkDjmcYJdU3yWp7KuHNaaKdg7iBE ZefdsNUFWKwa/wzJUjmazeC7Imcapebr0kNyYC289u5HlaNj1BQ6V51u76v35b1wNe/MvdLom48E g3of4Y9DlgiJ0nAJ2+J9PgaoF8SQHto3le4zsHTaeQtlKubP6iUTjj6yPARK6buALVaA782LKxg6 vRmng8N1aLhXqdc+jC1RcnVud53D5caUhbVtvqItBqoizkEt9O20UjkwI0v+LOlw05G4BS+iyyNq bT8dUMXMJ4tUCMj6G37ZfAMLceP5aNHPt26RBupu5v1nytoNnc138GfEJRQ2qC7jjynPIHPNqSn4 QTXUjLjYWQt1/5xnQymMoPsgr/U0flMcy2Vi/IcBgY4arPaiJ1W6hAyiRC61jekdwIcXNugoOEbH RyFULpSjm7jZ1h/HfDRQ5Ig8VhPsPE8NQ/T3Op6Um662jkOH4BxhazMJwy4tUvnpTqvBasOgvhni nWp8EzfNYVZgLnqR4vYwDRojSVizNl0ce/s7u0P9b7Oijoc3SCZfWp1RjkjWCw/vIUzTXkDAiiJi mGhLUFuS2lhaIetXfCg1JdAVrOwKfBPQkjAreevw9uzCSiCOmpNUoFIvD3sIcP1fhJPM6B/8GD+V YkafNCun1mxdhBofEPjEoQGnPmHNKdcYVd5qNuuJ+dym1L8cD17Js0v4cp1MkSvTbUPHtVbF7Rih uANlhTcKVNeVJ9BXyu9+ceCqThTYg2px1fSoqxQCCHnLMo/m9VKh99btUAanjnMCAH2co+fBoeG+ Hs0afhsY/5zhNYWRVYKU9W9tbmVXJBqdHHDmZEKhyNAv1N35kYWaEdgLurFV5oTvAcwA4rM3FkfW 8/1kE/e7sUnsVpINvARNxpFO
X-Report-Abuse-To: spam@quarantine11.antispamcloud.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/bAMLnlKR5NEReImnuN4V308cAwE>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 20 Jul 2021 17:52:11 -0000

On 7/19/2021 11:22 PM, Lucas Pardue wrote:
> Hi Christian,
>
>
>
> On Tue, 20 Jul 2021, 02:10 Christian Huitema, <huitema@huitema.net> wrote:
>
>> In first order, you can split the multipath issue in two. On one hand,
>> the mechanics of setting up paths, acknowledging path specific data,
>> etc. On the other hand, the fine art of setting path at the right time,
>> scheduling the right amount of packets on these paths, sensing the
>> properties of the paths, etc.
>>
>> I think that the mechanics of multipath are well covered in
>> https://datatracker.ietf.org/doc/draft-liu-multipath-quic/, and I think
>> we know enough about the problem to adopt that in the WG and drive it to
>> publication.
>>
> As an individual: could you qualify a bit more about what you mean by "know
> enough"? For instance, the draft contains things like path priority and QoE
> control signals. I'm unsure if those are the solution to put on a standards
> track document, it seems like we are still figuring things out. Placing
> those aside, the proposal in the I-D does seem like it would allow
> interoperable experimentation of multipath QUIC, which is a good way to
> flush out the things we don't know. In the past, we've seen other
> proposals, like draft-deconinck,  that seem like they allow similar
> experimentation too. Has there been any progress on aligning/combining
> proposals?

Good question. I much prefer draft-liu, because it is defines fewer new 
frames and concepts and is easier to implement -- I did implement it in 
picoquic. There is possibly an argument that some of the extensions in 
draft-deconinck should be integrated in draft-liu, or maybe that some of 
the content of draft-liu should be moved out. I think adopting draft-liu 
would be force these discussions.


>> I also think that we have ample opportunities to learn more about the
>> fine arts of multipath scheduling. I love the idea of sharing as much of
>> that experience as possible between implementers, and I appreciate that
>> the Ali Baba team has been doing just that. But we probably are still
>> going to learn more about all that for several years.
>>
> Agree. Thanks for sharing the results. As above, do the findings help
> towards defining what interoperable QoE signals might be needed?

The QoE signals carry preferences from one application end to the other, 
such as "my video buffer is nearly empty, please do something to prevent 
a stall." Such signals are largely application dependent, and there will 
always be a discussion between making that a common transport frame that 
may carry application specific data versus just make it part of the 
application. I like having the QoE frame, because it is a good place to 
hook a QoE API, as in "dear application, transport just received this 
QoE frame; should it change some of what it is doing?"

Draft-liu also includes a PATH-STATUS frame, which provides generic 
controls with two parameters, a "status" and a "priority". In my 
implementation, the status field is only used to distinguish between 
path that should be dropped (status=abandon) and other paths. The 
priority field is used in the scheduling algorithm. Packets are only 
sent over the paths with high priority, unless those paths are marked as 
"suspect", for example because high packet loss has been observed.

The priority field can be used in the common scenario in which a client 
has established both a Wi-Fi and a cellular path, but would rather not 
use the cellular path if that can be avoided.


>
>
>> If we really need to publish something, we might be able to publish some
>> kind of basic scheduling algorithm, with known limitations and known
>> applicability. A bit  like we published a Reno specification for QUIC
>> and pretended that was good enough.
>
> One important thing there was to provide a default congestion controller
> that was known to be safe on the Internet. That way, QUIC implementations
> could bootstrap everything else they needed. Are there such safety concerns
> with multipath scheduling?

Define "safety"? I think there is common agreement that each path should 
be subject to its own congestion control, as specified in the base 
transport spec. Using congestion control addresses the main network 
safety concern, i.e., not causing undue congestion to other network 
users. There have been discussions in MP-TCP of "overall fairness", in 
which multipath transports would be subject to stricter congestion 
control than single path transports. For example, transports that have 
access to a good path should try not compete for capacity with 
single-path users of the other paths. Something like using Cubic or BBR 
on the main path, LEDBAT on the other paths. That could be done, with 
some extra work when the status of paths changes. But then, in QUIC, 
such restrictions would be almost impossible to enforce.

The basic algorithm for multipath scheduling is simple: consider all the 
available paths; send the next packet on a given path if congestion 
control allows it on that path. After that, transport need to take into 
account path priority and also some "health" indicator, for example 
whether high losses or high delays were observed recently. Sending data 
on a path with dubious health is likely to cause losses and delays, so 
it should either not be done at all, or only for redundant 
transmissions. Then of course there is a need for probing traffic to 
assess when paths are healthy, which can be either redundant traffic, or 
just made up traffic (picoquic just uses ping+pad). I think the baseline 
specification should stop there. After that, there are per-application 
issues, for example dealing with applications in which some traffic is 
higher priority than other -- which is what the QoE discussion is about.

-- Christian Huitema