Re: What to do about multipath in QUIC

Yanmei Liu <miaoji.lym@alibaba-inc.com> Thu, 12 November 2020 10:48 UTC

Return-Path: <miaoji.lym@alibaba-inc.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 4BE153A15A1 for <quic@ietfa.amsl.com>; Thu, 12 Nov 2020 02:48:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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=alibaba-inc.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 M6A2dbProLbK for <quic@ietfa.amsl.com>; Thu, 12 Nov 2020 02:48:28 -0800 (PST)
Received: from out0-146.mail.aliyun.com (out0-146.mail.aliyun.com [140.205.0.146]) (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 C26823A15AA for <quic@ietf.org>; Thu, 12 Nov 2020 02:48:10 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alibaba-inc.com; s=default; t=1605178087; h=Date:From:To:Message-ID:Subject:MIME-Version:Content-Type; bh=+paOOhFanOIL90djT/1oB7KEp2C6t4G0e9/PXY0Vupc=; b=SN1aoN6T+PUeyJRznJV9JFU3KlON9yCEDBcgEfS8NIgc3CZseAT053440SFIrQktT7IX+cik3PFDLzn4QHJtQqo4wvxix5zmk10Aa3nNz+kJnGgWZVNcZi4GGE9/xdFPzhqBH6+nwMkGc/bgN4gs0Sy97bDEDy5/uvuIarIeOII=
X-Alimail-AntiSpam: AC=PASS; BC=-1|-1; BR=01201311R101e4; CH=green; DM=||false|; DS=||; FP=0|-1|-1|-1|0|-1|-1|-1; HT=ay29a033018047198; MF=miaoji.lym@alibaba-inc.com; NM=1; PH=DW; RN=5; SR=0; TI=W4_6037783_v5ForWebDing_0A930F79_1605177305834_o7001c125q;
Received: from WS-web (miaoji.lym@alibaba-inc.com[W4_6037783_v5ForWebDing_0A930F79_1605177305834_o7001c125q]) by ay29a011140100204.et135 at Thu, 12 Nov 2020 18:48:06 +0800
Date: Thu, 12 Nov 2020 18:48:06 +0800
From: Yanmei Liu <miaoji.lym@alibaba-inc.com>
To: quic <quic@ietf.org>
Cc: "Ma, Yunfei" <yunfei.ma@alibaba-inc.com>, "安勍(莳逸)" <anqing.aq@alibaba-inc.com>, "Liu, Hongqiang(洪强)" <hongqiang.liu@alibaba-inc.com>, healing4d <healing4d@gmail.com>
Reply-To: Yanmei Liu <miaoji.lym@alibaba-inc.com>
Message-ID: <538215d1-3b9e-4784-920d-03be4c3a503a.miaoji.lym@alibaba-inc.com>
Subject: Re: What to do about multipath in QUIC
X-Mailer: [Alimail-Mailagent][W4_6037783][v5ForWebDing][Chrome]
MIME-Version: 1.0
x-aliyun-mail-creator: W4_6037783_v5ForWebDing_M3LTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTRfNikgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzg2LjAuNDI0MC4xMTEgU2FmYXJpLzUzNy4zNg==vN
Content-Type: multipart/alternative; boundary="----=ALIBOUNDARY_67052_7f80be44f700_5fad12e6_d10903"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/u4jkLdiE7PhZYqViDeN9FVpqPos>
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: Thu, 12 Nov 2020 10:48:30 -0000

Hi Lucas,

> >
> > 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.

I strongly agree that we need to establish some common ground on terms and capabilities, so I’d like to explain some design considerations in [draft-an-multipath-quic](https://tools.ietf.org/html/draft-an-multipath-quic-00), and we hope to get more feedbacks.

> >
> >     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.

  1. We think QUICv1 has already laid down the foundation to build a general-purpose multi-path since migration can be viewed as a special type of multi-path. Therefore, we think one should reuse the design of migration in QUIC-v1 as much as possible, along with the features such as PATH_CHALLENGE/PATH_RESPONSE for path challenge and address validation, and NEW_CONNECTION_ID/RETIRE_CONNECTION_ID for CID renegotiation of new path(which is called Sub-connection in our draft). Reusing these features of QUIC-v1 with small extensions has enabled us to get general-purpose multi-path features with very little efforts in Alibaba’s XQUIC(an implementation of QUIC-v1).
  2. We find that the simplest way to add a second path is to use a sub-connection. The concept of sub-connection is directly inherited from connection in QUIC-transport, defined as the logic session of each physical path. Similar to a connection, each sub-connection has its own packet number space for the purpose of loss detection and recovery. 
  3. To merge the gap between migration and the general-purpose multi-path, several new features need to be supported: 
  - (1) how to manage the lifecycles of individual sub-connections. 
  - (2) how to distinguish packets coming from different sub-connections.  
  - (3) how to co-operate with a multi-path scheduler.

We would appreciate hearing any thoughts, comments and suggestions.


Thanks,
Yanmei