"Proxying" multipath usecases and application scheduling

Matt Joras <matt.joras@gmail.com> Fri, 23 October 2020 20:10 UTC

Return-Path: <matt.joras@gmail.com>
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 A5C263A0B0D for <quic@ietfa.amsl.com>; Fri, 23 Oct 2020 13:10:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 JYza1Ygnwt7x for <quic@ietfa.amsl.com>; Fri, 23 Oct 2020 13:10:01 -0700 (PDT)
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 959513A0B10 for <quic@ietf.org>; Fri, 23 Oct 2020 13:10:00 -0700 (PDT)
Received: by mail-lf1-x130.google.com with SMTP id v6so3512577lfa.13 for <quic@ietf.org>; Fri, 23 Oct 2020 13:10:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=RwMqzUorPT4PLbDobY1gk/VYnAddc/KvA//+xwXV2tA=; b=cxBtfHHKTZnsFfM1+2p9Uzdaj/unHKRESuNw9wdjajuXQ/huAW4NM6n7knnjUK8zv1 n/sju+rFukYUjNCgE4dXvegMZTej+bh4T1pn2Ush6orNyaZyYks/zm/xxH8ddchJ+6SY pxXLngrYEozYU/vL6AseyqzvqNqEM8CkFLCgPpaKsVBCXEdmEd31e17ixpbzFq2oo8yp kBw6FJ4K3fNtrlmtfoikTUvG4U+XeJvRpEm0VITvN5Lshp4aJuvY9/Znipnltt1Sa5mc SNwgLuO6CUc+D1j4J5pt8h8R0aRarDW5khi9oT8YgRl9bjoXRLxXE4U+qTPAYnvyhv78 M+ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=RwMqzUorPT4PLbDobY1gk/VYnAddc/KvA//+xwXV2tA=; b=NXJDecEVqFilCb3Zwoz2Ub74m9cpJInq52OBZ5zwpG+Kfgw9i/R5BnfyxShSMN++qy OWt09YP8D8YH58NCoTpZxa+fxflA8M16LaUxvYoIkwjEFyLRbHNyjrc1/P1fqZRoeeS+ hIr+VAZPdFsCnNFAULibDRnzl+hgyAnk/RzlwWIDwsFWonmUNY+ge0SUc4NQDy68/JRP iNpmFapmMiLSjPlebDHOkQZopiCvzuUeDfhTwGqq/khkE0zq9tDKOuUqG8uksX3Kp/vv OaEAroeMxbsyqH/0ykR24OTviKJ8sc2xCk9dkw8slnRh+7biem/7Jn/sdG1k4oFW0MAD Kulg==
X-Gm-Message-State: AOAM533tFKgGj/ksDjNoT7u/2XAgD5rvplKH9nG7iio/Qaiux3Wloq+8 6Jv9wAereQ7TD+oeFDRYCSCVmAptKT2ZHbETv6ukbj55nOE=
X-Google-Smtp-Source: ABdhPJwgp1DkM0WTqeCDK0B8AwxMiHDQvSQkf6MeIUBUMZ0NGK0+Y02vNMDD+lmZQ3JsbL1bYHsJ8Qt4I+0LKQ+IQt0=
X-Received: by 2002:a05:6512:74:: with SMTP id i20mr1456084lfo.524.1603483798248; Fri, 23 Oct 2020 13:09:58 -0700 (PDT)
MIME-Version: 1.0
From: Matt Joras <matt.joras@gmail.com>
Date: Fri, 23 Oct 2020 13:09:47 -0700
Message-ID: <CADdTf+h-xN6umZAOknYYmzNWbtWet25SE4Zy2EMOh5J9u=qBXQ@mail.gmail.com>
Subject: "Proxying" multipath usecases and application scheduling
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000329f7805b25c2ae8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/ZfIgBiETTI7KXy83kt4CumFqpYE>
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: Fri, 23 Oct 2020 20:10:03 -0000

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