RE: Packet number spaces in multipath (was Re: What to do about multipath in QUIC)

Markus.Amend@telekom.de Thu, 26 November 2020 11:34 UTC

Return-Path: <Markus.Amend@telekom.de>
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 9DBAA3A1241 for <quic@ietfa.amsl.com>; Thu, 26 Nov 2020 03:34:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.117
X-Spam-Level:
X-Spam-Status: No, score=-2.117 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, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=telekom.de
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 rTZB5GHn4Uom for <quic@ietfa.amsl.com>; Thu, 26 Nov 2020 03:34:07 -0800 (PST)
Received: from mailout31.telekom.de (mailout31.telekom.de [194.25.225.143]) (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 6C92C3A123E for <quic@ietf.org>; Thu, 26 Nov 2020 03:34:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telekom.de; i=@telekom.de; q=dns/txt; s=dtag1; t=1606390446; x=1637926446; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=qRw7uwdqIr2klQWwknRxSbD0jOn5V0n5yDZzuup6fxM=; b=776JucHA2nbnhMMru4cThrIV4AsNUF0Z/tsp9sxHGMBYOUKqfFoi0hAC DhFsT7kSeUWD7Tm6/x5rV3v/TD8J4foGlPPMWThKoXj45qDdqemcMie0L H1aFts03saap4OUnibegqGoPpD3uwOv6KPGvjXKVSC28QQcW9dy0MS80y c0rroFWc1NYdIcNyn+h8MxG38oT2hugGaFvPwAzBER2kLC6MeDF6ax8CJ 1Bo8YOncemTrhzwiKTSpyidLku+6fMXagiVMxMJwxgFh2Kwu/wdPHZrit tiIwrYH8MqsdO1+dbLM/ean8JFzwMQd/VwdHLam20/IBupodOn//kvRS9 g==;
IronPort-SDR: jfiWrCVoAeANEw5j1sk53kgskXEUvS8VHAYGiWWYF1eBpCi8Icw5oKfK0iUwqjK+uSKYSSWrMJ /eJdSQ/Z827w==
Received: from qdefcs.de.t-internal.com ([10.171.254.41]) by MAILOUT31.dmznet.de.t-internal.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Nov 2020 12:34:03 +0100
IronPort-SDR: 1BvZGYS2T4FxZ5Iz1/3lB8mFqfX5aYEKL1Bb/pQgqNqSn8cLChkKVYJpwMD6vKUWD6AZy4jjdM VZ1Qp8BdPOyMIbPU9at+t/X07m5SKPE5c=
X-IronPort-AV: E=Sophos;i="5.78,371,1599516000"; d="scan'208,217";a="240583098"
X-MGA-submission: MDF9datjEVurkKej6ZK/ZJDITYI7DUdSdwOKfFwz5Byg+gkKxoTHDoxP29bxsfORIMSw/E+HQg/EZAjxayPHJcy9HtZ3DdGJhhnaBisVeDULmGuovoRX5BE0RYskygef5bDZqz2JseJvD4c99wrhTpZFwu6Rxlm46chkbVHhWZ5IfQ==
Received: from he199743.emea1.cds.t-internal.com ([10.169.119.51]) by QDEFCV.de.t-internal.com with ESMTP/TLS/ECDHE-RSA-AES128-SHA256; 26 Nov 2020 12:34:03 +0100
Received: from HE199743.EMEA1.cds.t-internal.com (10.169.119.51) by HE199743.emea1.cds.t-internal.com (10.169.119.51) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 26 Nov 2020 12:34:02 +0100
Received: from HE104163.emea1.cds.t-internal.com (10.171.40.38) by HE199743.EMEA1.cds.t-internal.com (10.169.119.51) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Thu, 26 Nov 2020 12:34:02 +0100
Received: from GER01-FRA-obe.outbound.protection.outlook.de (51.4.80.20) by O365mail05.telekom.de (172.30.0.230) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 26 Nov 2020 12:34:00 +0100
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cWMQD5E2E/+1hIWvuk13WkLKA21Q88GNQyHlVonpTvrviIcYxRnhoMFs2qU2lOiINPb412L9S8GvZk2xRJuXTys7/DZIXuHcCl4p26fxLBC7ELwg/H3RRJzFNrw032ieujN1nSotqRx0P4ntR8CpngvOGz4x7rQvGBegrOqHTuLjl+9pkBC9iDf4YZQBhGDjiGm5oxU6Efa2vsSPxmlAZ1bphWSZPWPZku3z/ZLfsbPGqd8XDH/G/Uwjy7FZ1L+KCt6jvv5TMqmL57sOQMa3/71FN9ceN5XvwZQZ/VUGmW13hHu22m+msm0yjrYtjpuKMDACvidJvXvEtyO+4cbOdw==
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=qRw7uwdqIr2klQWwknRxSbD0jOn5V0n5yDZzuup6fxM=; b=m3dbF0pnvzLUZWZ2dyn8gdUQLQMnOZ8f9JHwCUJDzPTniSEvRpF0/QcravpjTXRw3ZRwLC6z6uqPsznnnPW+tIevaOb1kxBY0HFnKkMxjpiGxOEHZEFWWUjuqpziOrfyZGmgH6XDbPER1MqHfJmBD0cSVy69Cfd78cQ28cIl4ki+M7afpDXjo/kytLx9jjiSC38qw43mSTA7MxSewHPGhILPK1ATQfFb5Oprcm/RxVx/Bo3YxYjjvs/jIZ2DhrB6Kk4mE1ATtU8233bnMBjmUComJaJt87ZLVY7uT1vHboPanfZ98bR/TrlXC+z09Wy05mglfRTpEJJSAfjL99m6KA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=telekom.de; dmarc=pass action=none header.from=telekom.de; dkim=pass header.d=telekom.de; arc=none
Received: from LEJPR01MB0635.DEUPRD01.PROD.OUTLOOK.DE (2a01:4180:c012:b::12) by LEJPR01MB0217.DEUPRD01.PROD.OUTLOOK.DE (2a01:4180:c012:d::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3611.14; Thu, 26 Nov 2020 11:34:00 +0000
Received: from LEJPR01MB0635.DEUPRD01.PROD.OUTLOOK.DE ([fe80::cd90:d2c4:eccf:600a]) by LEJPR01MB0635.DEUPRD01.PROD.OUTLOOK.DE ([fe80::cd90:d2c4:eccf:600a%5]) with mapi id 15.20.3611.024; Thu, 26 Nov 2020 11:34:00 +0000
From: Markus.Amend@telekom.de
To: jri.ietf@gmail.com, huitema@huitema.net
CC: quic@ietf.org, kazuhooku@gmail.com, Dirk.von-Hugo@telekom.de
Subject: RE: Packet number spaces in multipath (was Re: What to do about multipath in QUIC)
Thread-Topic: Packet number spaces in multipath (was Re: What to do about multipath in QUIC)
Thread-Index: AQHWwtwnQ4H66ua6O0G4It7kekk3ZKnaQ0eg
Date: Thu, 26 Nov 2020 11:34:00 +0000
Message-ID: <LEJPR01MB0635984DC5E548E2D7859A4EFAF90@LEJPR01MB0635.DEUPRD01.PROD.OUTLOOK.DE>
References: <538215d1-3b9e-4784-920d-03be4c3a503a.miaoji.lym@alibaba-inc.com> <54510017-fa91-555f-0219-0859d6686b74@huitema.net> <CAMDWRAaSeC9Yd1DqzM9o5_CS5Kct0aNS_LUzty5YPO_5fBf4qw@mail.gmail.com> <CANatvzyEfkRqgCArC8sXaS1-1DckxjspBLqLyLNdHx-RDKjT_Q@mail.gmail.com> <CAHgerOGGyAkE=TbCSuTO=T6HK9EM_+m+ASwPRm=o33HBrx7p3Q@mail.gmail.com> <CANatvzz_KSBws_upnx00P7JK=MbgyDRrR5n2VJcr1_=y=P6dfQ@mail.gmail.com> <062fe812-8afb-d946-8336-1f4dc5ebeaaf@uclouvain.be> <7540ef46-9948-c76c-3617-5755be3cdf37@huitema.net> <CANatvzymE+XRXUMBH2quGi=VEUNXDR_Eoer+o6p9+nkD-KFisQ@mail.gmail.com> <3bb7f359-ebe5-7a54-0224-bb1f5f1754af@huitema.net> <CANatvzxyj3nXP+GrnMkexWV-VN7Og4EGXysq1o0W2e2JGWzDrw@mail.gmail.com> <651e0ae1-0a5e-89e9-55c0-c33439599da6@huitema.net> <CANatvzw4Yg9aX2qyaGfc9sS=oEFOHxp-ZLSLF0EYNa8t6uN-iA@mail.gmail.com> <4b96dbb8-e72c-7f99-0bb3-9ee27b7bda78@huitema.net> <CANatvzz_H205MPP67Vnuqp0mwhM0TUbHvA5CfVGeoivCLcUdgw@mail.gmail.com> <850c5bdd-948e-269a-1488-77a77843d5e6@huitema.net> <CACpbDccY3f2wMd5vFzK=NC=Me=EhgmFWMDS7TTBZFtG2bm=JSg@mail.gmail.com>
In-Reply-To: <CACpbDccY3f2wMd5vFzK=NC=Me=EhgmFWMDS7TTBZFtG2bm=JSg@mail.gmail.com>
Accept-Language: de-DE, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=telekom.de;
x-originating-ip: [212.201.104.11]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 2ae03de4-9e43-4aa1-ba2b-08d891ff2b78
x-ms-traffictypediagnostic: LEJPR01MB0217:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <LEJPR01MB0217CEF788D6DD9FA61CB6C4FAF90@LEJPR01MB0217.DEUPRD01.PROD.OUTLOOK.DE>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: rR72MaU550dq8hnOLtNCS0eB8U4qAWsjcV2ioAB49Z+MU5KD3hLWup0keDvObuTriBLbgNUf+UlPV2tomwcuJ+Cm6Y05svQTyBwLGN+R42VWI8FoII2nB5HM982e08fZmBPixYEVCfByEOVfyXPUSxSU7ydo5lzrn81xauL00nv1pJFDqQ+r8wUXyAjYo9ihEj/PZT2IigugGNMEu6MiYp6YtcWI7ILvnJv0rqixO44Re8aGzvDN75k5FTK62iFfeWhajgeksMtFAdjVmAnBMGI73xaUaD/VWkqKL3d1AOwudMa5K+EZ2kPJqn90cmmdhSHP/d2Q3hT56jfqyEqo9W+FJodQmgeU3zpCAKnIrCY=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:LEJPR01MB0635.DEUPRD01.PROD.OUTLOOK.DE; PTR:; CAT:NONE; SFS:(39860400002)(346002)(366004)(376002)(396003)(136003)(8936002)(71200400001)(107886003)(33656002)(86362001)(4326008)(8676002)(64756008)(66476007)(9686003)(54906003)(316002)(110136005)(2906002)(83380400001)(66446008)(66946007)(55016002)(5660300002)(76116006)(66556008)(478600001)(966005)(53546011)(7696005)(166002)(26005)(186003); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata: Z6EYnN4vOvcyicConRKPCW/nwkdI5G7pPoLSezhbRmsz2NBckvLtp8wwvZgJSlx6xcDUVR+8P6JHeaCjJbSTE4jkjVB1Iuhd6kOvFS340W3sdf3tRYensZtsPo3t7HwogX9aCuS2iB1yxwtx2SruQrZjnfNKYyz5Uf7bqtOSSp+kCkp7W+fgsDEv6hu2mZcMi6WKAFourhKOvN7VtjRWsESjzLQICzq9ucXiHCAAouwDdgmzm0o5z2naiEU9l79CDPsw2jvEzIvJUcBqoioTnnaZ+8Ht0DHcPKsnd6B7Ovs9POoK+47EaO1pFVpq7JPGOIZ9L434Aw6PHcpOIpKjYtTsyra3ndIoqbcynsriXRFOcJFuYfw3hxxFhTraOC+pNxqCt6/T26nmPLCZgfjTZA7LlJIze/nTmw2pmxe+99/HtP7gcq9kbknJLiwJsLqhtrWSyWV+OOq/HYS1dls0NjhIqJY5dwzaBT06wglOy6mo+DS6smn6BcjxhTIAtqGJ1SkloVPknCZuyuUYdMLa1VJp/P5fvurSQnxBpHBd3msUiRhRkjo15oqF/GWAmHgUJOQnWcP4QCE9wY8+NHTyAui8zuOile4LEpC5hoxIdbTziPLiJm4IIj5HJOh4auTUB/4PscIDMd4zTfb/eeR5dJajlLrASbExgLkolt3/GppQ+9V5blPRmqQhZp9kJAq5W/88Dpjxvbmj0XXS7MPekh2karEvBRWoB9E/QkCkkydUm6O3y0gnfLNh5XdaaBVLYIveLMXyLjCQuS/DE/2bKI/B4gEIzCXoFGitQ3S5eW7Sl/cntuhLAjiEXIn2gL1jP39cTHtzR1fBhxk84aF5BMovFRMDKMMILGjqmq8RkwP5X0Ep22ujrH2SIrtXzTiB1DMbA1X/PmGlejF+ASGn1SDhHtefUuDvYWqdoUjdwgo+x3PVag7IA86iTb4/aR7X1N5RrAKFwzaAex2ack9BFd109Nowy9s9X5qmyiCOu0o=
Content-Type: multipart/alternative; boundary="_000_LEJPR01MB0635984DC5E548E2D7859A4EFAF90LEJPR01MB0635DEUP_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LEJPR01MB0635.DEUPRD01.PROD.OUTLOOK.DE
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ae03de4-9e43-4aa1-ba2b-08d891ff2b78
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Nov 2020 11:34:00.4145 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bde4dffc-4b60-4cf6-8b04-a5eeb25f5c4f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 663NSFjmyju7Gi43GwIDC3VrDO1uuczbWuHaXs9ldBoroQazxk/LMbidqyBUpZU/hmALXceGKzVJ6JUbUydcnA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LEJPR01MB0217
X-TM-SNTS-SMTP: C3DE0C84513A5ACB6B9ACA8BE26F978E9483D8CA4424A9AD87C70E6D1267A6282000:8
X-OriginatorOrg: telekom.de
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/vPYfzdf9BfkxDTAm-LxogWVfoZ4>
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, 26 Nov 2020 11:34:12 -0000

Dear all,

sry for hijacking this conversation. I’m not very familiar with the different multipath designs for QUIC, however I want to draw attention to multipath re-ordering which probably becomes important when multipath is combined with DATAGRAM.

As long as multipath QUIC is operated with strict reliability (similar to TCP), re-ordering on receiver side is a simple process known from MPTCP. Introducing unreliable DATAGRAM transmission makes it more challenging on receiver side to maintain the packet order, because it is not easy to differentiate between delayed and lost packets. To avoid HoL, a multipath re-ordering process may benefit from having connection and path sequencing. In https://tools.ietf.org/html/draft-amend-iccrg-multipath-reordering-01 we intend to describe this in section 5.6, how fast packet loss detection can be applied using these different packet sequence spaces. Still the description is meaningless und will be updated until next IETF, however we have successfully implemented this approach in a MP-DCCP prototype, which faces similar challenges in terms of re-ordering. That means, fast packet loss detection is very beneficial for the receiver re-ordering process to not lose time until an outstanding packet is assumed lost.


Br

Markus


From: QUIC <quic-bounces@ietf.org> On Behalf Of Jana Iyengar
Sent: Mittwoch, 25. November 2020 04:35
To: Christian Huitema <huitema@huitema.net>
Cc: IETF QUIC WG <quic@ietf.org>; Kazuho Oku <kazuhooku@gmail.com>
Subject: Packet number spaces in multipath (was Re: What to do about multipath in QUIC)

(I'm taking Spencer's suggestion to spin off a new thread.)

Christian, Kazuho,

Slowly catching up on this, and apologies if I'm missing anything that was previously discussed in the centi-thread earlier.

If I understand the design correctly, it makes sense to me, and is very close to what we had implemented in Chromium a while ago.

Having thought about this problem several times in the past, I'd like to share a few points that come to mind.

First though, a point on terminology: the receiver maintains a separate "ReceivedPackets" for each CID, probably for each CID sequence number (CSN). Let's please not call this a SACK Dashboard, to avoid confusion.

On the question of sending more than 2^32 packets, I think that resetting the packet number (PN) is ok on new CIDs. I don't see why a sender would need to maintain continuity across multiple paths anyways, since the CC and loss recovery contexts are going to be different across paths. A sender _could_ still maintain these packets in the same "SentPackets" structure if it wants to, it would need an internal representation of CSN+PN to key off.

ACK Frames:
------------------
Kazuho pointed out that when acknowledging, the ACK frame format should include CSN. I agree. I would argue for a design where a receiver uses an ACK frame per CSN (and encodes the CSN explicitly). There are multiple values for doing this, the primary being that you benefit from compression when PNs are contiguous within a CSN.

Return Path:
-----------------
There are other ways to decide which return path to send an ACK on this, but I would propose that a receiver respond on the most recently active forward path. That is, the path on which a packet was most recently received. This has the natural effect that a sender that wants to distribute traffic in a particular way also causes ACKs to be distributed similarly across the corresponding reverse paths.

RTT measurements:
---------------------------
The return path for ACK frames will impact RTT measurements. That is fine. It is more important that information reach the sender as soon as possible than that it should not affect RTT measurements; we can fix the sender to measure and compensate as necessary. The estimated RTT statistics reflect the distribution of samples, and if both paths are being used, then the SmoothedRTT will reflect the expected value based on the traffic distribution across paths.

That said, it might be useful to track some new stats, especially about how much later is a "late ack" -- an ACK frame that contains no useful information -- is received. I'd have to think a bit more about this, but I think we can devise a stat here. This gives us useful information on the longest return path, which we can then explicitly use as part of the PTO computations, to compensate for the fact that the RTT is based on the shortest return path. (I would _not_ use this stat in the time-based loss detection timer,  but PTO ought to be fine.)

- jana

On Tue, Nov 17, 2020 at 9:42 AM Christian Huitema <huitema@huitema.net<mailto:huitema@huitema.net>> wrote:

I have been thinking about variations of that. I think we are making progress here.

If we follow your design, we get two constraints:

1) That the receive maintains an acknowledgement list based on the CID through which the packets are received.

2) That the senders guarantee that the same sequence number will not be used more than once with a specific CID.

The main implementation cost is for receivers. They have to allocate and maintain a "SACK Dashboard" in the context of each CID that they issue.

Senders have lots of control. For example, the "only once" condition is also met if a simple sender uses a single number space, as long as it does not send more than 2^32 packets. That makes the design reasonably easy to implement for constrained implementations.

Zero length CID are still possible, but that means the receiver supports only one PN space per sender. Multipath is not impossible, but you end up managing a single RTT and a single recovery structure. Not very good, but similar to what happens if multipath is implemented at the IP level.

There is still an issue for coordinating the take down of a path. Suppose that a client was using both Wi-Fi and LTE, and moves out of Wi-Fi range. The server will find out eventually that the packets sent to the Wi-Fi path are never acknowledged, but that may take some time. It would be better if the client could send a message saying something like "Abandon this path". That's not the same semantic as "retire this CID". We need a new frame for that.

"Abandon this path" is an extreme case. There are half-way steps, like manage the relative priority of a path.