Re: Preparing for discussion on what to do about the multipath extension milestone

Olivier Bonaventure <Olivier.Bonaventure@uclouvain.be> Mon, 05 October 2020 13:23 UTC

Return-Path: <olivier.bonaventure@uclouvain.be>
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 81BC13A0A62 for <quic@ietfa.amsl.com>; Mon, 5 Oct 2020 06:23:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.313
X-Spam-Level:
X-Spam-Status: No, score=-2.313 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, NICE_REPLY_A=-0.213, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=uclouvain.be
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 6C6mkFwctQuB for <quic@ietfa.amsl.com>; Mon, 5 Oct 2020 06:23:45 -0700 (PDT)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04hn0233.outbound.protection.outlook.com [52.100.17.233]) (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 46EC03A0A5F for <quic@ietf.org>; Mon, 5 Oct 2020 06:23:44 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hg2k67WCwyjhJwzUwlUy2+vV4+MP/jWJDYYUbMoYlsrN5vOWaktfInZVE9n3iWry1/dguxG/hhl+3wGQjmXfqSZkt6hLfd2yv7oP9p95lqgKkfMyzm7Rf6N/LIzfuidFQn9reXjntoQh0uGzIVZfXBd6SLDYsfJWPsmCMK4ojBkM8QSafdy1S8aZLVm4KGlSUCdGsINe8csiMaD7+t8MI+7azbGf3x4jTH18l7ZcazLkdgmIYg6VLRrsQ5AHYM2Llzu2lPld63v8WYSSFZRS7xpREyAg/GcWDrGXYRAOVOaoM3TL4n80pCATPxvPRj+a/y5gWtkbXKaVjS532HN39Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VGk0e9+xMHo+na8BaDljMGAL7wkVnX0zGSNMnq8dj9Y=; b=F5lOSlyhGhHunA9GKu7ytjJsQvwC/s/j2BAiOefhIBExBnILPzPUN5ZVGt4iwrzdMe4Wkx76jQX2zhIQ4+Vq7Hjibu0ci3ymUiicnMZBSwkiTiuATAyh3bvT2nu3EyQjbWrQNWVZE7ZC5NPMyOVZsmpDQyOMgk1By43WC21crSevBgyQLV32dPexEyKLF8ADCojBt0Xr3GhkjQLTl/ykIVvyUEjqCUJjLFKobj9+SaVFU6g4IzWtTRgudxFJoVKISSBc2ncJ9kHBO9UHDVscoVGQdKdaKuTkiKAfAOChDYtcvo3ne5sV/TJ28cO5MclSPaHDBWsZ7bnbYuJXJekU/g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=uclouvain.be; dmarc=pass action=none header.from=uclouvain.be; dkim=pass header.d=uclouvain.be; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uclouvain.be; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VGk0e9+xMHo+na8BaDljMGAL7wkVnX0zGSNMnq8dj9Y=; b=HPUCo5wFX86MKCLOU+RHHi4xUwwhItzpx/mFe/d4YKx0DliAbh7J9nBcg3+yjZgD9ZYtLS23vu6aoO0G2LB9DEGXI/ef0nxfQfRxZpgJmonWxSifr8E90Y5oX55/iGiufclBlOve7xH+crj9HafItjkYespY461YP3kc7Aon8FA=
Authentication-Results: dmarc.ietf.org; dkim=none (message not signed) header.d=none;dmarc.ietf.org; dmarc=none action=none header.from=uclouvain.be;
Received: from AM7PR03MB6642.eurprd03.prod.outlook.com (2603:10a6:20b:1bf::6) by AM6PR03MB5234.eurprd03.prod.outlook.com (2603:10a6:20b:c3::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.38; Mon, 5 Oct 2020 13:23:42 +0000
Received: from AM7PR03MB6642.eurprd03.prod.outlook.com ([fe80::1cd6:a808:56a3:e868]) by AM7PR03MB6642.eurprd03.prod.outlook.com ([fe80::1cd6:a808:56a3:e868%6]) with mapi id 15.20.3433.044; Mon, 5 Oct 2020 13:23:42 +0000
Reply-To: Olivier.Bonaventure@uclouvain.be
Subject: Re: Preparing for discussion on what to do about the multipath extension milestone
To: Matt Joras <matt.joras@gmail.com>
Cc: Lucas Pardue <lucaspardue.24.7@gmail.com>, Christoph Paasch <cpaasch@apple.com>, QUIC WG <quic@ietf.org>, Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>, Ian Swett <ianswett=40google.com@dmarc.ietf.org>
References: <F0A5E38D-4117-4729-BFF8-72D97CAA9908@eggert.org> <CAKKJt-e=+XLZhNWqaG9YSLTRqyQRvDc-dagUSkFwHOByFwZ++Q@mail.gmail.com> <78651438-2fce-ba67-4f44-4228bbc79a75@uclouvain.be> <CADdTf+hOACZ1x=d8SV-aX0f3vc+_fyqTziRqi5gi+nJgppaz8A@mail.gmail.com> <CAKcm_gNF=0gwrPt=Mr1P=dF_-wmXfz-OJkavFSDe1qrXFeMa4A@mail.gmail.com> <20201002164854.GA2124@MacBook-Pro.local> <CADdTf+heu4DGT8PsF0yL1cknTCB0CiHJ_jBwXZ86ccxL6740qA@mail.gmail.com> <CALGR9ob39AhBQq5kt1tsBp6b3EHy8Aq-PkT_tSX3_hM-u9kYnQ@mail.gmail.com> <00553337-3e40-8630-9d94-04deb03dfc3e@uclouvain.be> <CADdTf+iJJYeAhqSSaiB1HKXNZVa6_xLxHmQPc=rx7=pfKgzm1A@mail.gmail.com>
From: Olivier Bonaventure <Olivier.Bonaventure@uclouvain.be>
Message-ID: <562bd909-c0c4-1b7f-5b5b-1d2067a3448d@uclouvain.be>
Date: Mon, 05 Oct 2020 15:23:41 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Thunderbird/68.12.0
In-Reply-To: <CADdTf+iJJYeAhqSSaiB1HKXNZVa6_xLxHmQPc=rx7=pfKgzm1A@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: fr-classic
Content-Transfer-Encoding: 7bit
X-Originating-IP: [2001:6a8:308f:2:5d17:e6aa:b657:7259]
X-ClientProxiedBy: AM4PR07CA0007.eurprd07.prod.outlook.com (2603:10a6:205:1::20) To AM7PR03MB6642.eurprd03.prod.outlook.com (2603:10a6:20b:1bf::6)
MIME-Version: 1.0
X-MS-Exchange-MessageSentRepresentingType: 1
Received: from mbpobo.dhcp.info.ucl.ac.be (2001:6a8:308f:2:5d17:e6aa:b657:7259) by AM4PR07CA0007.eurprd07.prod.outlook.com (2603:10a6:205:1::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.13 via Frontend Transport; Mon, 5 Oct 2020 13:23:42 +0000
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 3175d776-970b-489d-78fd-08d86931e11f
X-MS-TrafficTypeDiagnostic: AM6PR03MB5234:
X-Microsoft-Antispam-PRVS: <AM6PR03MB523486CAF12123F5A21A5A63860C0@AM6PR03MB5234.eurprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 93lfsn9p5Uro+0ZpoidZZqOBNextWlxFTkcQ2iH2s+cLyfb89t5Wq1nfYWS2204yPN+D+SHIuNYYE41Tc4ch+VyIsABkd/ArNLtsELVmZzYChV/cz8RZLGHM7jslDTv0/uwj/qMrxT2Xkqu+re1m57jN5bBQ4lnQngwVW+ALg7srjPy7NXW39IHTzOCndpTOGXl25Ext9tGLM2TTddzsGiOh7xvZH6ru2yt0JgFWnqMkm99DDgk0pYI0b/T4aN0g8Lnx8gqQzCwBxpZzcXHQS7am5dbzohsWqM8iXHhVBnVF5QsZRRgb3jhtXwP/jCrzi19xRz+TIMn2cT2Rdz+Mx6rD7brjvVoxArT2QpW3Gcd6tdb5fvmXRN1E+JqtE9H8lMzggtMhEgUAX5+MZJNPoQ3PC5RSiQyJgIvvj1LbG4b2Z7BAC46katr8IVafSuWiJEDN7S/lAQdm2lQ87w1kKmguFyuTrnnErWzjNUTwcu3BM0Uj4DA05201VvoXGKQ2Vq7JoE2khU9QwHwAn18Y5lv8jDPMrswSb/YxW9gZg0iyaFLq6vjHfN0zIwZ8iakV/bUu6hLZXdjE+xGaZ0fi9V1+AJ9iapuDOJ+ypwGt+o8RG4BMAgRAQ/pcFEpHD6Rg6NYUJZPjCNglkhZfop3+OfZDJDOvwH72thupZ1XhvGzFZpazt9CO004450o16OWSnD1wEvBno0ipv5A4ycWJUdsv+4K34MFEhdlGbRyEl/MdNmv1NalYUGJVMDd3mnO0XxgNZ6eySNjCZydJQUIJTLOthQm4kaChWr7EThJqRmDrwecqNWhSoZVhIGg1HnUh06bG2jidskOns20pj008OAZJY4qa9gQCbkt2d8FuIu6nQMUmlwsrTINiBkXWhyi8qseW8GbEop9Z/kfK81UT+ydJNqO4kcGcEWi1UeCdT98=
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:5; SRV:; IPV:NLI; SFV:SPM; H:AM7PR03MB6642.eurprd03.prod.outlook.com; PTR:; CAT:OSPM; SFS:(4636009)(346002)(376002)(39860400002)(396003)(136003)(366004)(66946007)(66476007)(66556008)(966005)(31696002)(8936002)(52116002)(186003)(16526019)(66574015)(4326008)(83080400001)(2906002)(83380400001)(6506007)(86362001)(31686004)(316002)(786003)(6916009)(2616005)(3450700001)(6486002)(8676002)(5660300002)(478600001)(36756003)(6512007)(54906003)(53500400003); DIR:OUT; SFP:1501;
X-MS-Exchange-AntiSpam-MessageData: xHIGIaQG7k1jUQ0cy+V9g5XkpybBQDMAT3SH1igpQEvpzBMujYVArdd6mZDIVzIJcbYIDscQ4nLqFqswu84dfgl8DhHti4KG2v1YrYt1qxUKhRGF4/ZfB7JjeZ48JjdBhtolwihRg6yG0gSI3IJx1bbtE+K5QY/aS7L2bFCv3taVH+a6/zU8zNIMTiSCmff/aR0Zeu6inPaavbE2hDWBbmghV30ZoyUU7VYU5jf230ey/pSxLyTtn1JtYXhC6uTtb1141ETP9uFHqI0p5WoZhk4WWVdIQciJb1ZBJopAUwZ8S80eXmkwALJoZwXcTSydCY7MZ4YgX0mZ2DY+pA5DA4KGh0Z1GBBv+ww20W97Y9PAA6bd1ScFOFH4W1juIVq+iystyLjOjnt4i3cpECe4XQPHxpX2x2V9gJmB5Z8NCWKHvwnHAVHxqveetqZtVDZxdSO+A2InEWcUpSdTIZTDJ6x7aJsh/lhPelOQH9uAQjbJKmC7Tv7SPImBDgo761vNvpcnYizX1rPo76G3D4UGH2xum+DVg1LUqQnhJ5XtJizUyKBV0oZMhwJdqbDQ8cJuSEZOG8+o53/FN2jEqeXeS2HTMM/mqp44YQFSS8i5TMaxhIpufPV6ywsapsfq099vtJMDfxh8GQpfpb+nx2cyPmJtIISZXsbQMbFISIrCPiTHZ3XlvRzYJgVioELmW/rAI6SPk0RZAvNzguqsZMHysQ==
X-OriginatorOrg: uclouvain.be
X-MS-Exchange-CrossTenant-Network-Message-Id: 3175d776-970b-489d-78fd-08d86931e11f
X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6642.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Oct 2020 13:23:42.5310 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7ab090d4-fa2e-4ecf-bc7c-4127b4d582ec
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Hd3Qyk4Tk4nBlVYJ5nqrFN+L7Ec4FUW28AEbggukp0P0vE7EV0qU88H3TNNB/aTHq/A9TaXtZvXuLlakBz5DoADUxMLZo656zdou0sBxO+xmQXYtpfhavmPxpMtxQStc
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB5234
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/oS02niREkH_C2sDztdV6GEQBiHQ>
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: Mon, 05 Oct 2020 13:23:48 -0000

Matt,


> 
>     Let me try with a simple example on a moving smartphone. The
>     application
>     will send small amounts of data and receive variable amounts of data
>     (depending on the type of requests).
> 
> I want to start by saying this is a real usecase, and a problem we see 
> very obviously through quality of experience outliers for people using 
> our products.
> 
> 
>     We create a sending and a receiving uniflow on both the Wi-Fi and the
>     cellular interface. The smartphone has two sending uniflows and the
>     server as well.
> 
>     To send a short request, the client duplicates it over its two sending
>     uniflows since it does not know which of the two uniflows will be
>     the best.
> 
>     To return the response, the server could use the same scheduler if the
>     response is short. However, if the response is long, this is not very
>     efficient since data is sent over two paths. It could then use both
>     paths to send the data and get the lowest delay to deliver the response.
>     This could be modulated by policies if the user pays on a per volume
>     basis over one path and not over the other.
> 
> This somewhat hand-waves away the scheduling problem. Most Internet 
> traffic flows in the direction of server -> client, where typical mobile 
> clients are obviously the ones with potentially multiple interfaces to 
> the Internet. The client also has the most information about the likely 
> quality of the first radio hop into the access network (e.g. signal 
> quality). The client also _may_ know about things like data pricing. 

Agreed

> However, the server is the one which is responsible for scheduling most 
> data across these paths. To make good, proactive (rather than reactive) 
> scheduling decisions the server needs to be fed this information as 
> input to its scheduler. This seems a difficult thing to achieve in 
> practice, and without it I wonder whether the complexity of "full" 
> multipath will be worth it until we solve the signalling problem. 

There are several techniques that allow the server to learn about the 
different performance of the paths with MPTCP. Those can be applied to 
MPQUIC as well.

If the application uses short requests and short responses, then a 
simple heuristic for the server is to send the response on the path 
where the last packet (data or ack) has been received. The reception of 
a packet is a good indication that a link works.

If the application uses longer responses, then the congestion control 
used by the server over the two paths will enable it to easily find the 
best way to spread the load. If one path has a longer rtt or losses, 
then its congestion window will be slower than the other one and packets 
will naturally flow on the best path, but not only on this path. This 
does not require a specific scheduler and would work better than a 
strict weighted-round-robin scheduler where the client would indicate 
that it wants to receive 2/5 of the bytes over WiFi and 3/5 over cellular.

> What 
> Ian is suggesting above, I think, is essentially an Active/Passive 
> extension to the existing connection migration mechanisms we have today. 
> What are your thoughts on this as an initial direction? It would allow 
> operators a way to solve this particular problem with only mild 
> modifications to the core protocol. Said another way, I think in theory 
> an omniscient packet scheduler can make very intelligent decisions which 
> would definitely benefit application quality. In practice though I have 
> concerns about how effective these schedulers will be versus the naive 
> approach which could be thought of as "Active/Passive" or "Failover", 
> eschewing bandwidth aggregation entirely. I'd also like to echo what 
> Kazuho said, which is that "Multipath" can mean many things, and I'd 
> prefer we narrow down the problem we want to solve in the WG, which will 
> drive our design direction.

When coupled with congestion control, a simple packet scheduler such as 
lowest-rtt first (if paths have the same cost) or priority (for the 
lowest cost path) works well with MPTCP. The same would apply for MPQUIC

> 
>     Another example is the hybrid access network scenario with a DSL and an
>     LTE path. There, the objective is to send data over the LTE path only
>     when the DSL is full.
> 
>     In this case, the solution would differ. The client would first create
>     sending and receiving uniflows over the DSL path. It then monitors the
>     usage of this path. As long as the DSL is not fully used for some
>     period
>     of time (e.g. one or a few seconds), all data flows over the DSL path.
>     Once the DSL path is saturated, the client creates a receiving uniflow
>     (and possibly a sending one if the DSL upstream is saturated) over the
>     LTE path. The second path can be used to offload traffic. In practice,
>     the client and the server use a priority scheduler to always prefer the
>     DSL over the LTE path, see
> 
>     https://inl.info.ucl.ac.be/publications/increasing-broadband-reach-hybrid-access-networks.html
> 
> For these usecases, are you imagining that they would largely be used 
> internally for Internet operators? I always struggle with the hybrid 
> access examples, as they seem to assume a lot of knowledge about the 
> underlying networks that typical endpoints can't simply intuit from the 
> ether. The linked paper seems to suggest MPTCP as a proxy solution, 

Yes, that's deployed with MPTCP proxies running on home routers.

> which I gather is largely the usecase things like ATSSS have for MPQUIC. 
> However, as a mobile application how do I know the DSL link is "full" 
> and thus that I should create a uniflow over the LTE path? The same 
> question applies to the server. It would be awesome if clients and 
> servers had more active information about the underlying network's state 
> rather than being reactive, but beyond things like ECN this seems 
> difficult to achieve in practice. If the Hybrid Access Network usecase 
> of multipath presupposes a deployment in an operator's network then I 
> would argue it is somewhat antithetical to the goals of QUIC, which 
> deliberately puts more control at the endpoints.

On endpoints, you can get the same result by having a target bandwidth 
on the Wi-Fi interface. For example, a smartphone application could 
assume that if the current Wi-Fi bandwidth is below x Mbps then it 
should enable the LTE interface to boost a long download. Similarly, a 
videostreaming application could have a target that corresponds to the 
default quality chosen by the user and enable the LTE when it cannot 
receive video at the expected quality. The same applies for a radio 
streaming application.


Olivier