Re: Options for QUIC Multipath

Mirja Kuehlewind <mirja.kuehlewind@ericsson.com> Tue, 13 April 2021 15:21 UTC

Return-Path: <mirja.kuehlewind@ericsson.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 D30053A1B06 for <quic@ietfa.amsl.com>; Tue, 13 Apr 2021 08:21:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.101
X-Spam-Level:
X-Spam-Status: No, score=-2.101 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_BLOCKED=0.001, 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=ericsson.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 7FKZLM5VRQ29 for <quic@ietfa.amsl.com>; Tue, 13 Apr 2021 08:21:22 -0700 (PDT)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2065.outbound.protection.outlook.com [40.107.21.65]) (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 8C4433A1AED for <quic@ietf.org>; Tue, 13 Apr 2021 08:21:17 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fkP+gtJMaB/nnA8nQyoCpJsa034nJ0i5RjPDyDeNrBcaACsKWTJjDums3H25ThoVIFVXZnt3JUzxswgLpsOMFALKZccH9rkdn5mrTnr+fSEtx+QXba5yOJtB9Wq3Z4MjVtvZF5kiwW8s0/dEuCUGOCidvpCTPQVVpYK/dQ9puoYjE1OzyUlbsebes0vIgSe+z1u2x6aQUpBRCDJb6O0ziFNeGYzgXV3zUMEMFlG1uE3NU6/InwXkIYJgK7yEXJP0Rtt1k6pgfhVCEU/Zgo0nMXCpSLjpXs9jN2hjQM5NHXi7XzLvPzjjlKkvgal30XpPiOSUhuuV9VeZtrh2k9Kxbg==
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=SAF+Ksxj7g3yMUt1UQJW9E7aTmtPac5iHwsjeN7kGCo=; b=OCaBnM3fR7nO19kzqJOfplLwclSWfTlO0LmdjWammMIp7l4jHOtu9DNpQecIEy4kHJRpap1KSN/O0F1tiEfI2BNQcItvdA2eK1omg3IaxP4EOEzOI5t9XDsKSFYWJ+arhSG5N9kfoDKnDlzkR+u6AkdGFEEWtjIq68OJZ0mevvWliW2ZQ1CXEU8dvi2ey0ydZgL7Ip5iKQN9HoIxYvXOP7h1Ydd+SvIby3UFfALNR24UndKr/fS0gXOzPSfYcZMLlQuCv+431PXQm736RuqdjTrJgHtKqrADKZ1/vi5NBotCnwHPUIfxiVp18CoPmSHMuth362v2IoBFedT/xfP6Tw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SAF+Ksxj7g3yMUt1UQJW9E7aTmtPac5iHwsjeN7kGCo=; b=kIxqlr6d1/JUSbvFATpLQSIAV62kI5gZhUduX1FmG7q3HCrMsNnJhV66kcRI7/L4ty7JGoHlGepxHgo4GeD+qU+EImqa114TTPSeMfOcIyn+cyv6oJLWwSkvFi1QmhTOMLltp9mbHw4CZBWVcR28zYx6BXXkO+Qew73TIFoQ2cY=
Received: from AM0PR07MB3939.eurprd07.prod.outlook.com (2603:10a6:208:40::14) by AM0PR07MB6292.eurprd07.prod.outlook.com (2603:10a6:20b:152::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.6; Tue, 13 Apr 2021 15:21:15 +0000
Received: from AM0PR07MB3939.eurprd07.prod.outlook.com ([fe80::f5b3:5946:19c5:d8b8]) by AM0PR07MB3939.eurprd07.prod.outlook.com ([fe80::f5b3:5946:19c5:d8b8%6]) with mapi id 15.20.4042.014; Tue, 13 Apr 2021 15:21:15 +0000
From: Mirja Kuehlewind <mirja.kuehlewind@ericsson.com>
To: Christian Huitema <huitema@huitema.net>, IETF QUIC WG <quic@ietf.org>
Subject: Re: Options for QUIC Multipath
Thread-Topic: Options for QUIC Multipath
Thread-Index: AQHXAyABdAk2wQFXxUGPo118Bqko/6qspeSAgAEmOwCABUBwAA==
Date: Tue, 13 Apr 2021 15:21:14 +0000
Message-ID: <BD610701-0228-4872-971A-9D793F771F44@ericsson.com>
References: <cbd1acfa-bfdd-0ce7-f381-ad87cacd85aa@huitema.net> <9BBE9A2F-8203-4467-BCAB-2C97B89F4371@ericsson.com> <641bc79f-7839-77df-2f5f-01048d220840@huitema.net>
In-Reply-To: <641bc79f-7839-77df-2f5f-01048d220840@huitema.net>
Accept-Language: en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.45.21011103
authentication-results: huitema.net; dkim=none (message not signed) header.d=none;huitema.net; dmarc=none action=none header.from=ericsson.com;
x-originating-ip: [2003:de:e717:4200:1527:33f7:a60c:e054]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f6b7a0a1-d3b4-4e91-829d-08d8fe8fc74e
x-ms-traffictypediagnostic: AM0PR07MB6292:
x-microsoft-antispam-prvs: <AM0PR07MB6292E1ABB8ACC40AF9FEEA5BF44F9@AM0PR07MB6292.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:5797;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: VSBrt75vvtNFBLu315vLYisE1v64bUncU3EUCaE5tHXZ68jA26xZ7Z16/6Pips2ZO15ZGnB82/jMRpxGgv9JdXYhHY7KDkkxTNEdeS9yZRmJMCv6UPylK22f3rwPIRMAGLut9eopd5mC3Bmu01Yo8MICmyxUofNpMFSZvb5mJOmnX9wAdDhlrvwqzhzWHMxv1HiLDCcjun9z+NXb/AzMU+EPmRQgYz+ZF+7dGbBeu4XIgwZO/VvStoy0bnYXczq5pig7SVd0qXIdLf1pk5dRS+iG9aqNHZ4kvDverHDVCrSn7bdQ+f0OTZXHDCq7VK7cvnWmRX/5jmS3RlhlpbA657YbIe1EXwMwDVwwSJ7Y2pYjYIdZhMMA/oxZoUS5NdWRX8oHQtR9IfQJbwIg6M2etHYZSvuD4uXd8KsTnGsd18iGgnzloFS1Y68z5quBIcyM9gawkwgMmmS5MGuz3m8kqLKjs7NC+YvlVVAdju9exFjXD4vN8wtndJWwJhfH24ghpGT6EVLcNOHFMyIMLLWlQBHNHdR6doVsUoEr+I6D2NAW+jRhJqLqVNe+WRfjHPQziDDPnMz9BMUK4x7XfXGkBbBRL6LMZjPMGM87YiL06+kbChSnfUMeElzdnRQ/lq6U450QbWkt9qRPH26ov8hzTNJIC0tgZXSVuHgYxW26Z0y0dQgvOC0ngEu0ED8vw0e8FZpS4LH6x3ZuDm2lXGoJA3nbqMwpdSECpRILwq8jrHA=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR07MB3939.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(366004)(346002)(136003)(396003)(39860400002)(91956017)(2616005)(76116006)(66946007)(6506007)(66476007)(33656002)(36756003)(8676002)(122000001)(64756008)(186003)(6486002)(966005)(53546011)(478600001)(86362001)(66556008)(6512007)(316002)(66446008)(38100700002)(2906002)(8936002)(44832011)(110136005)(83380400001)(71200400001)(5660300002)(3480700007)(45980500001); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata: vptOanb+nh8RJ/15kS8Y9ZCTp5Nkv704zFfd7QpzxCtv5dBfBFPb2pBQgm6IauA91YeRxkrX7xjK8WFZXtR9/5pRIki17TOxZeCxp+bTPjEqQYu23njstItDnyi7rfH7pX53ZQrAK+VOMRIyCFc28xRNKtwgnfZYxc1Uw3zblGFb2pmCXNSOPbvEWjU2f+r4ZOwj5atar9RETNp2FVqFwve6HbdlvL6/6RXtykkneE2reBvYQ9mueuXaYBC/54osAfMaftM/A+cOaeSxkb8YYu1scnd9A4PyWavCTcQHOrrq17mvO0wZ8gWNcVt8OPES/zdSbZjrFOKu5KOVJs+zZkOSUpPzJcomO84yPS4vUw3MibUns71S0amsxnyU1gnF2CAR1fxKIiERDaTR16jPZvjl2bePPRFgaTZyllPuHUaMTYam3TiyOiJdirGRspfwOmRin4l4LcoIRgxy6CS+rSz9M+ANK7lfAtXjtJxJHctEFLB3O+MtRfjI8FhkUNKqEj6eAkLyop6ByF0A42ZxLx6pcKTc8/3pNxUs7D6fOfHEYq7kjbyfXgDPG/wDT/60l4ChEuwUFYCKF00nBdijQmBUbK49+78FHwAnQdFHhrIvBN9xbAholMB7AZiUlq8IPxnKO+VmOSGficz5693mQSz/mBHh5rixB2nhkUjr/UXfSrtqsW67yM7WHfJe6c/K6KZ8Ml5nzvpVBtJYryGxdsexsHIQyp0gMVftL84uxT54howRdDUoq6svXDOjVzFfwRCK/bWjwKuhVVNmB1m3Bk+7ouWi9Q4gc0nTskJ1GIiyY9WkpcsiRMFInTfnDe1eVi24IdPCezpxTl3Ts0jXYTjSHtWf4UH20Z4AZtjZ7rEagJSe5xNhixGK/To5IFLL2Ybuteg3RXYRUgSl39HSuGBGjQiCuGhwL00ZDHkRJZAjNuXtRekxhT7Td3xYBH3uC6/e7Ept5+I+ELFLIQoW8m1If6UQKFq9K4ET4m4vNR7a6JsDBMUyn6+mBcJq4rnhVf2575k7T+QpTpsh+yjwihVvofmOnUv6DlO9FughhQFtKsj8QwOri5XwIMFeoVYDn/6J7ZrsF48Xyfby78/73vdOfiI/+bu/h0kVD74eFkudUvstZh0hzGhbhG5xwOowGpWPy2Q5OKjHYI4dYkx936GYVCufcV3BgisH1Ck5uzJ/+lLI5IxrDwGrXp44IYM+CDk8lOhNN6pyo1elCrW/wY/OLPpc9W6pUIENpPWMOhokUxeEkv9r+jUENkZWKPXp0QIf6D9ko43Zg9pHOTZvLKEhCZxVO/HBRJ6WTqqCF0ZfDhZtvgC3lpUwJYCzKuI3u4ck2NxoLWYIVMyKF2VyRqIgCB/9u71kSxK5A6y3YRisnNg8WqDdeLc7wAR+nV9e
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-ID: <432CF436BE869F4FAF11D56360A6F4AE@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR07MB3939.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f6b7a0a1-d3b4-4e91-829d-08d8fe8fc74e
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2021 15:21:14.9495 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: leMAuowlYtUB7g0iZxPJvstmV6Cvwb+whmBIwq8TwQXEk8VPXzn8hXdrejHpauouRpx979ubZveF82sQPA/YdM10oqe59AiONgLqGAnM/ww=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR07MB6292
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/b1yjWr_aabr1PGDYI_R1kNqI264>
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, 13 Apr 2021 15:21:28 -0000

Hi Christian,

see inline.

On 10.04.21, 11:11, "Christian Huitema" <huitema@huitema.net> wrote:

    On 4/9/2021 6:36 AM, Mirja Kuehlewind wrote:

    > Hi Christian, hi all,
    >
    > reviving this thread. First of all thanks for implementing both options 
    and writing the blog post!
    >
    > After re-reading you post and reviewing the drafts, however, I have to say that I’m more convinced now that multiple packet number spaces might be the better approach forward. I actually always thought of the packet number as a per-path property where the wire image for each path should be as much independent as possible. So that seem architecturally more clean to me.
    There are pros and cons with the "path property" approach. The main 
    issue is that the definition of a path is not as obvious as it appears 
    at first sight. We may think of a path as defined by the pair of sender 
    and receiver addresses and ports, but this gets unclear if NATs are 
    present. We end up with either a narrower definition using connection 
    identifiers as in draft-liu, 

[MK] I don't see that as a problem. Each endpoint needs a notion of path and if the IP addresses looks different to both ends thhat doesn't really matter

   or avoiding the problem altogether by 
    making packet numbers global. There are issues with both approaches, 
    notably:

    * Support for 0-length connection identifiers in draft-liu

[MK] yes this is a good point. However if you use conn IDs anyway, it is nice to reuse them. I guess if you don't expose a conn ID, you could still add one as identifier to the encrypted part of your packet but that of course again additional logic. Is it a real problem to always have conn IDs with multipath?

    * Need to maintain a path object with wider scope than the connection 
    identifier in draft-liu, e.g. remembering congestion control, PMTU and 
    RTT through a connection-ID renewal

[MK] I think that's true in both cases. The congestion control always needs to work on a per path level.
And here is also where I think the two separate packet number spaces are most powerful because it avoids any ambiguity which path a feedback signal belongs to. Fortunately QUIC doesn't reuse packet numbers but it can well happened that you only get delay feedback for packets on path but never for the other packets. This can be avoided if done carefully but I just see a higher risk to get these things eventually wrong with only one packet number space.

    * Size of acknowledgement frames if using a global number approach

[MK] I guess that this in itself is probably not a huge problem, but it's ugly...

    The good news is that we are making progress on these issues, using a 
    bit more sophistication. Ideas include:

    * Identifying paths through using the corresponding source ID if the 
    DCID is zero length. This enables control per path such as "don't use 
    this path anymore" even if the peer uses zero-length DCID.

[MK] yes this sounds useful

    * If a peer uses zero length CID, use global path numbers when sending 
    to that peer -- essentially a fusion of draft-liu and global numbers 
    approach

[MK] Hm I guess that actually means you kind of need to implement both cases. Not sure if that is so useful.

    * Manage the size of ACK frames by limiting the number of times a given 
    ACK range is repeated in ACKs. This is a very simple implementation 
    recommendation that mitigates the growth of ACK frames when global 
    numbers are used, including in the zero-length CID case.

    >
    > However, I’m really not convinced by your argument about implementation complexity below. First of all when we talk about implementation 
    complexity, we should not only consider lines of code or number of tests or something like that but I think it is more important to assess the potential for implementation error. That is harder to assess but I think having a clean design and reduce the number of interdependencies is a factor.
    >
    > Further, implementation complexity should never be considered as a the sole metric. You actually convinced me in your blog post that what you call efficiency might be even more important because there are two aspects here: number of bits on the wire (for ACK frames that might have a lot of 
    wholes) and amount of bits in local memory.

    My personal concern is the impact on code quality. If we end up with 
    code branches that are rarely used, these branches will not be as well 
    tested as the "main path", and  bugs in these branches may surface 
    later. The inverse correlation between complexity and security is well 
    known.

[MK] This is a really valid concern but my understanding is that basically singlepath QUIC would simply be multipath QUIC with only one path. I think that is the assumption for both approaches and I don't see a real big difference here.

    > With this conclusion I see draft-liu-multipath-quic as a really good starting point for future work (however, that so far my personal assessment). In both cases I support the approach to design a multipath extension that minimizes the changes needed from the base protocol. So reusing the connection ID and connection ID update mechanism is I think definitely the 
    right approach to take.

    I am certainly willing to use draft-liu as a starting point. I would not 
    be a co-author of that draft if I did not believe that.

    > I also think that any mechanism for address/path negotiation do not need to be part of the initial extension. In the most common scenario the client might just open a second path without further negotiation or coordination with the server when the interface/IP address of that new path come 
    available. However, even if any negotiation is needed, this can be done on the application layer or added by another extension later on.

    We agree.

    > For draft-liu-multipath-quic I would even recommend to even move the part about scheduling and QoS support into the separate draft. I think QoS signal can definitely be a separate extension because that might even be useful without multiple paths (e.g. as input for congestion control). And 
    for scheduling, I recommend to just specify some per-stream scheduling as 
    the default behavior for now, but leave more complex schemes for future work (or research; scheduling doesn’t need standardization as it can be changed sender-side only).

    My co-authors have been doing an excellent work investigating scheduling 
    issues in a multipath environment. The question that we want to answer 
    is essentially, when is a multipath setup worse than a single path 
    configuration, and how can we mitigate that? The main answer is that 
    multipath does degrade performance if packets are scheduled on a lossy 
    path and later need to be repeated on another path, creating additional 
    delays. I would rather wait the next draft release for explaining 
    mitigations, because it is a bit long for email. But describing such 
    mitigations absolutely belongs in the multipath draft.

[MK] Definitely looking forward to that next version.

[MK] For me the straight-forward use case is a better handover, where you can use two paths for a limited time simultaneously instead of have to find the right point for a hard switch over. It's maybe not a huge performance impact overall but in a handover scenario it can have a noticeable user impact (e.g. when you leave or enter your house). If we can make this use case work with some maybe rather simplicist approaches to scheduling, I think that would already be a good achievement. Other use cases can have more gains but are also more complex and I'd be fine to leave them to future research, or, put it differently, I think having a basic multipath functionality in QUIC provides the right tools to make good progress in this research space.

Mirja

    >
    > So as soon as we could converge on the packet number question, I think we have a good starting to move on!
    >
    > Again thanks for your work and for the drafts!
    >
    > Mirja

    You are welcome.

    -- Christian Huitema

    >
    >
    > From: QUIC <quic-bounces@ietf.org> on behalf of Christian Huitema <huitema@huitema.net>
    > Date: Sunday, 14. February 2021 at 23:23
    > To: IETF QUIC WG <quic@ietf.org>
    > Subject: Options for QUIC Multipath
    >
    >
    > I authored two drafts proposing two different solutions for Multipath QUIC: QUIC Multipath Negotiation Option (https://datatracker.ietf.org/doc/draft-huitema-quic-mpath-option/); and, in collaboration with colleagues at Ali Baba, Multipath Extension for QUIC (https://datatracker.ietf.org/doc/draft-liu-multipath-quic/). Apart from some details that could easily be aligned, the main difference is that the “negotiation option” maintains the property of QUIC Transport<https://datatracker.ietf.org/doc/draft-ietf-quic-transport/> to have a single packet number space for all application packets while the “multipath extension for QUIC” specifies that there will be a specific packet number space for each path. I have now implemented both options in Picoquic. This blog describes what I learned: https://huitema.wordpress.com/2021/02/14/how-many-packet-number-spaces-for-quic-multipath/.
    >
    > To summarize, I believe now that both options work. The simple option requires some additional work for managing acknowledgement, but the multiple number space option adds a lot more complexity (41 new code branches compared to only 6), and will require a lot more testing because it also change the processing of the "single path" scenarios. The multiple number space option also prevents the use of zero-length connection IDs, and thus causes additional overhead in some important deployment scenarios. So, yes, both options work, but the simpler option provides simpler code and also less overhead.
    >
    > In any case, I hope that this exercise will inform our efforts to standardize multipath support in QUIC.
    >
    > -- Christian Huitema
    >
    >