Re: What to do about multipath in QUIC

Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com> Tue, 10 November 2020 11:37 UTC

Return-Path: <mikkelfj@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 392BC3A0808 for <quic@ietfa.amsl.com>; Tue, 10 Nov 2020 03:37:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.096
X-Spam-Level:
X-Spam-Status: No, score=-1.096 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, FREEMAIL_REPLY=1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=no 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 L1W6smmZcKq1 for <quic@ietfa.amsl.com>; Tue, 10 Nov 2020 03:37:20 -0800 (PST)
Received: from mail-yb1-xb2a.google.com (mail-yb1-xb2a.google.com [IPv6:2607:f8b0:4864:20::b2a]) (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 8F0DF3A0858 for <quic@ietf.org>; Tue, 10 Nov 2020 03:37:08 -0800 (PST)
Received: by mail-yb1-xb2a.google.com with SMTP id 2so7258016ybc.12 for <quic@ietf.org>; Tue, 10 Nov 2020 03:37:08 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=YhzH4uPhpEN0//kqiwdI3s/N7UEdG+XwWm3gBa7cCRQ=; b=GkAje9XMmUoJFMGiI1/hENWqH916JDYoqxspeCmm7Qxz2YqkNae/JaYDOVD7rdWGxE Ktmx9FvVrvwJ+yPfzF4Dkz6Co98JZnBLA2TpQnjrGSLiFecPiW3mMxRDvz+BXhgw1cQT +EoUGFR1Zb8Lrk6pFeNKPK6PsGxvLSxkm7a/BTC75y6uYuWUtJjY3c6xGvADuEE0+WYO jSMeTWqGEPVzzDqtLDKVv1TSvqsrt39Z4eN+SnEuu3w1OuTv2rilfecEihs7xpq4KyIJ 2FZW4yy08iKGNeTyZJcrlwLmav6RR9Dp8OKQndOS+QRNM1+ebCCDCK5fJGEBx/brHkB0 F8rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=YhzH4uPhpEN0//kqiwdI3s/N7UEdG+XwWm3gBa7cCRQ=; b=juYK6+wDDQe/hmLbpCc0RZ7cMn719gZgq3nqz1sbEn3HTGjc5Ni9/nVZaic2drV9o0 D1ML9OoWrKt5DUo5C4SQodSoodax343thnt40u/scnFj+9V1f0GJ5eHRfR8ZgmdUCW0/ oZgoZWgrm4iPtvMpl4tG2Wy/mVbkAIMdeBQ29viXecDCfAPWbNL08RKeDaEtEi2Ybqe1 dh1oNtdyECzx3glfsKwel7mQLk7ijwW9g6J/nUqJa19TAfSf+9b3D2/QjCXxaBTFbD4H CoDzGNemL5USXWdtYGn3yUt/4ALo4wuvw6tTnBDe31/bBKUn5gt2vkANoEp34OWn/Ezt 9JnA==
X-Gm-Message-State: AOAM5332+kYeeOwriGw5egnF8KuL/ss7szEAmFCYcb43wOOdvtJpvwmE fwdjT521i/wTU7oDuoLVjAyVWdu3RKZcQ+WooTw=
X-Google-Smtp-Source: ABdhPJxh3rVUTln5MpkCp2EfekNkoTFIG1hHduEEi683m7pAYSy6D45CzmI/lwbAa7Hutiy8h3ie8+ow0yQO69k0JhY=
X-Received: by 2002:a25:d713:: with SMTP id o19mr8383443ybg.378.1605008227572; Tue, 10 Nov 2020 03:37:07 -0800 (PST)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Tue, 10 Nov 2020 03:37:07 -0800
From: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
In-Reply-To: <7931447A-E557-4B7E-8256-BD6004F29CBF@fb.com>
References: <CAKKJt-dOz4JE3_-AVn77H6oY-gjeOL+NNcSWqwpjwM7_LD_0NQ@mail.gmail.com> <CACpbDceKcHG4TwjsvHZsy4=yrb3BUxUBNHDCdYJaq1pBP9kV0w@mail.gmail.com> <CAC8QAcdqL0HaaFJwPF5Dp=wcHSdGuRgZEuM9ehA0BJVjm+3j8w@mail.gmail.com> <CALGR9oYdgHXvOOu7sh1qw+ZewjTapv1QR51fzjxVzke9E3W-+g@mail.gmail.com> <CAKKJt-egOSaakzfiR6Zb8owLRWbTJmxHHMRwBsTUF3p4jh1R5g@mail.gmail.com> <CALGR9oaS3mq5OsitAsCEv8gfAhjW59yKJWJx73vGEM_+tLyvrg@mail.gmail.com> <etPan.5fa58bad.3aecac40.166ff@gmail.com> <CAKKJt-fY8zOYLo62CdxkmDwa=9esiUJRrWyMy10qkhvcqGJ4fQ@mail.gmail.com> <CAN1APdfk6oFTcGzrpDJ6Nm4iOFOuMM-qq_Dk9JVdWwqWj5eWTA@mail.gmail.com> <CAKKJt-cSMp1+ZcF8Le_GqKa7Jm2UVw5G7Qj-7zY21y_gEhLbVA@mail.gmail.com> <8bf17aeb-2545-4b8a-24bd-a495a38bda9d@huitema.net> <CAN1APdfzYNr_=z8im8FH-1tsyzZ9XedXwkHKeU5=oNnP695Adw@mail.gmail.com> <CAC8QAccsf3rg6eDFHA7Mdzuv53fzZSWFKgrQ31Y40kz4kWPViQ@mail.gmail.com> <CALGR9oaruwFvtWLMSw71NXbo03jYpajfmXRcZB_RVm-M-i6a4g@mail.gmail.com> <c39ea2c0-dfaa-6790-b307-c654b918158b@uclouvain.be> <CALGR9oZ+OXGeJrLzHjaak01vX5W2Ty9Z=8Nut5ifMkYz1Xw4SA@mail.gmail.com> <CAC8QAcfZc0rhNzH8+0EfAsE2vj7ZTcc6eCeaGF00n5bk-aKvCA@mail.gmail.com> <7931447A-E557-4B7E-8256-BD6004F29CBF@fb.com>
MIME-Version: 1.0
Date: Tue, 10 Nov 2020 03:37:06 -0800
Message-ID: <CAN1APddbM0M7oEw_0f_8dZyWP_ns-J7SXxkk3ZNSL9PjEn+NUw@mail.gmail.com>
Subject: Re: What to do about multipath in QUIC
To: Lucas Pardue <lucaspardue.24.7@gmail.com>, Roberto Peon <fenix@fb.com>, "sarikaya@ieee.org" <sarikaya@ieee.org>
Cc: Olivier Bonaventure <olivier.bonaventure@uclouvain.be>, Christian Huitema <huitema@huitema.net>, QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000441f9e05b3bf1962"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/xdJprJz0kjht19zT5Yc88KhLcw8>
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, 10 Nov 2020 11:37:22 -0000

But this doesn’t solve the serialization of a single stream over multiple
paths.

Also, it doesn’t really make sense to mix a video stream on QUIC on one
path and TCP on another. That would cause all kinds of problems, not to
mention privacy.

I agree that there is a risk of a complex unnecesary feature being poorly
implemented in QUIC. But true multipath cannot really be solved outiside of
QUIC. I’m fine with making it optional or giving it dedicated version.

Someone suggested building multipath on top of multiple QUIC connections. I
think that is viable if it is a newer QUIC version that delagates work to
older QUIC versions. The key point is that externally this happens
transparently, and there are optionas for the QUIC stacks to coordinate
locally or remotely via a signalling path. Not sure which solution is
ultimately the best, but you build upon what you already have.


Kind Regards,
Mikkel Fahnøe Jørgensen


On 9 November 2020 at 18.32.06, Roberto Peon (fenix@fb.com) wrote:

I’m still concerned that we’re looking at solving this inside the
connection, instead of providing a way for this to be solved irrespective
of the connection.
There is a fundamental routing problem we have here that we could address
(addressing a session), but we’re not addressing with what I’m seeing
discussed (addressing a session within the same connection object).

If we consider this problem as making the session addressable, then
applications can do it the way that makes sense for them, without having to
put everything in every stack everywhere, plus new APIs to actually make
them work.

I’m afraid if we add multipath, it’ll be like what happened with server
push. The lack of appropriate APIs made using it with the browser fraught
with tradeoffs with no reasonable way for an application to fix.

Solve the addressing-of-a-session problem, however, and we make it easier
to solve the likely API problem that will accompany multipath.

Example:
I could have a virtual connection which is composed of a TCP connection on
path A, and a QUIC connection on path B.
.. or maybe I want to try out a new version/extension on QUIC, so I have a
virtual connection with QUIC and QUIC+extension.
I could declare that I’d like for data to flow down QUIC+extension path
unless that is too slow, then duplicate the data onto the QUIC path.

In my mind, the application should establishes the virtual connection, and
provide at least one path, and can optionally add (and remove) subsequent
paths.
This is something we do already in “storage-land”, where diversity and
separable failure domains are important, and where the use-cases are
extremely diverse in latency, data-amounts, and cost.
-=R



*From: *QUIC <quic-bounces@ietf.org> on behalf of Behcet Sarikaya <
sarikaya2012@gmail.com>
*Reply-To: *"sarikaya@ieee.org" <sarikaya@ieee.org>
*Date: *Monday, November 9, 2020 at 8:58 AM
*To: *Lucas Pardue <lucaspardue.24.7@gmail.com>
*Cc: *Christian Huitema <huitema@huitema.net>, Behcet Sarikaya <
sarikaya@ieee.org>, QUIC WG <quic@ietf.org>, Olivier Bonaventure <
Olivier.Bonaventure@uclouvain.be>, Mikkel Fahnøe Jørgensen <
mikkelfj@gmail.com>
*Subject: *Re: What to do about multipath in QUIC



Hi Lucas, Olivier,





On Mon, Nov 9, 2020 at 10:51 AM Lucas Pardue <lucaspardue.24.7@gmail.com>
wrote:

Hey Olivier,



On Mon, Nov 9, 2020 at 4:31 PM Olivier Bonaventure <
Olivier.Bonaventure@uclouvain.be> wrote:

Lucas,
>
> On Mon, Nov 9, 2020 at 3:55 PM Behcet Sarikaya <sarikaya2012@gmail.com
> <mailto:sarikaya2012@gmail.com>> wrote:
>
>     Hi Folks,
>     I agree with Mikkel's points.
>     To Lucas: I meant my short mail sometime ago I think it was before
>     the interim (?) where I explained that connection migration is
>     mobility support which should (from layering point of view) be in IP
>     layer. In fact if IP layer has this support then then no need for
>     connection migration in QUIC, so those procedures in the code do not
>     get executed.
>
>     Multipath is multiple interface support. It seems more and more like
>     multipath probably better belongs in transport layer. Traffic in
>     each interface may go over different networks (in my case on over T
>     Mobile and the other AT&T). I believe a different PN is well
>     justified in multipath as we have it in the base draft because of
>     these traffic conditions (no offense to Christian).
>
>
> I still don't see why the current features of connection migration are
> not in some way a form of multipath.

You are right, connection migration is the weakest form of multipath.



Thanks. We heard use cases that would like stronger forms. I think it will
help continue to move the discussion forward if we can establish some
common ground on terms and capabilities.



This paragraph of RFC6824 then continues as follows :

    However, to the network layer, each MPTCP subflow looks
    like a regular TCP flow whose segments carry a new TCP option type.
    Multipath TCP manages the creation, removal, and utilization of these
    subflows to send data.  The number of subflows that are managed
    within a Multipath TCP connection is not fixed and it can fluctuate
    during the lifetime of the Multipath TCP connection.

This is not really connection migration and MPTCP provides much more
multipath capabilities than connection migration.



Yeah I follow. As someone coming from QUIC, the first sentence is kind of
easily negated (which is a benefit IIUC). I think the remainder of the
paragraph is partially satisfied by QUIC v1 if we consider
PATH_CHALLENGE/PATH_RESPONSE and NEW_CONNECTION_ID/RETIRE_CONNECTION_ID.
But it starts to fall apart when you want to do more complicated things. I
think understanding the gaps in the transport signalling would be useful to
document in isolation to any specific solution.
draft-deconinck-quic-multipath has done some of that work already but it
gets a little too tied up with the solution IMO.







I don't think Olivier would wish to undermine the most important feature of
multipath: multiple paths going over concurrently possible over different
networks.

Then he can not justify many features in draft-deconinck-quic-multipath.



Behcet

Cheers

Lucas