Re: [tsvwg] Robustness to packet reordering

Sebastian Moeller <moeller0@gmx.de> Sat, 08 February 2025 12:03 UTC

Return-Path: <moeller0@gmx.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 B4A03C1D5C4E; Sat, 8 Feb 2025 04:03:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.552
X-Spam-Level:
X-Spam-Status: No, score=-2.552 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_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmx.de
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZzuU9IeVynkZ; Sat, 8 Feb 2025 04:03:39 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 74F88C1D4CD4; Sat, 8 Feb 2025 04:03:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1739016214; x=1739621014; i=moeller0@gmx.de; bh=OtKMj5XGn5OGI8FUKr6ch0GWY8ZpxfLhZ2L34cvlMno=; h=X-UI-Sender-Class:Content-Type:Mime-Version:Subject:From: In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id: References:To:cc:content-transfer-encoding:content-type:date:from: message-id:mime-version:reply-to:subject:to; b=SWlv7Ioj8JR3RZVz2VJ5kuHXIg1chqQJpn6m+/aaP3CA8o+VNDPZQshVBcKWrAuK u+aKSblB7BnSmmMj6R5gGEGePzVaSLRrhwQ1RLfDfVinYCHPViNFsk7A+KwMZCIeY 7K0VydK5Gc+5UFGVm3JVW6OgpsbtbueLU1FUxBBbC+Y8A6mKpEaqYBzZG9riljX8T kHY7qShjQ+YZowUeMDzLb18zRZLawy+Yj1MHSGyos9N7PmzkP2XYPJ1wD3OCOVW/W QhSKb5yf/0mPo6vYGTVVX0FT3osLH+R6AzTmys5LKC+s0qikqOAPTKhkj9yHVU+Bm i+9DsYDTestlL//CIQ==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from smtpclient.apple ([95.113.149.17]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MUowb-1tpE2B3EgL-00IniD; Sat, 08 Feb 2025 13:03:34 +0100
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51.11.1\))
Subject: Re: [tsvwg] Robustness to packet reordering
From: Sebastian Moeller <moeller0@gmx.de>
In-Reply-To: <2ed4cec3-8ed7-45d7-83cf-da4e2dfa16de@ericsson.com>
Date: Sat, 08 Feb 2025 13:03:23 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <321DA805-358C-473C-B43B-4AFE514A9A53@gmx.de>
References: <AM8PR07MB81375E2D3CA840AEDA0F7E63C2F72@AM8PR07MB8137.eurprd07.prod.outlook.com> <38891fa7-b188-4767-8364-ae0a10c318b2@huitema.net> <AM8PR07MB81370760A8293580DDDB386BC2F62@AM8PR07MB8137.eurprd07.prod.outlook.com> <537f0095-68a3-43d5-a2f0-f91b4499017d@huitema.net> <AM8PR07MB81377C0A967260302A687113C2F62@AM8PR07MB8137.eurprd07.prod.outlook.com> <5C5E0FCB-1725-4775-9421-F4F5F687D051@CableLabs.com> <df289f06-2e00-463c-b9f5-bb67a34d9b43@betaapp.fastmail.com> <23eae943-7744-45e9-9fbc-f1581eaecac2@huitema.net> <CAPDSy+4avaqjO1LH4beiiaS8ahd55KnEPj=m1uJXi_jDYYVTnA@mail.gmail.com> <2ed4cec3-8ed7-45d7-83cf-da4e2dfa16de@ericsson.com>
To: Michael Eriksson <michael.eriksson=40ericsson.com@dmarc.ietf.org>
X-Mailer: Apple Mail (2.3776.700.51.11.1)
X-Provags-ID: V03:K1:/O2xYFNkGxclipfg+XprSZRNC5oEEAG+Z/tj/POieTgUyCECqca TMD3v+skXYH0DPUJAxuEAiMQi+yDFhtNnj3oQRc8Qa5cOcXMB+EG9ymWxjn+10PzzzO7XFf w20BEJQ5d4Lse4grDOsPICefixaq4WmBhXc4jph5jH5p2DLUZaA0ORysFCyAmMymdHNSy0h H692udy/WjRawTO4HYhkQ==
UI-OutboundReport: notjunk:1;M01:P0:ewsVQgWwJQI=;XTK4yoYc49rucKkjOPB381rY5Sr GXs0M50xa6rlXrfLZIFK+LuKuggUXb3oJvLs18sVHx0Umsl2VxJO2Z1KqispFrIEREqbeop+q Ww3Mbz08pbgfgtUq7mYUKmsb8RwLSDlMI3fNS1HAgd4kMTEbpoQChrrfzyzqU87+GDxaYY1C0 ZPsH1NokgvpqIG+BfNPtRBftT6iMhRP4EeseDPbA6MwN9LU8m/2aLJAoGuCB+rjJzlMEVOJsY 6tnWIgbWyfkwf3xck55uwUSwBRF/vHfEOsnRSZv905UVl36V9siVTm5veZcC0nHn/1as5ZsDB 73bvrbzgCrXJVsvjNxxKJziSZS1j85IDSmeWxeQs6egfRTOrHSRDBNGFwKxpA/K1tw7N1MjVh 8JjSTN5hvAZENpamZQs0wny1OntBoFv5B6MGQI7k1vWPviql/83r2S3M0LVeFUasrWg11f/VW MvydfWCYEujsrj/pYStxWezwupsyKEPJaS9Jd7x9RIisA+xQ9SxktUOkTs6B3jx8jIdwf616q 3hZp/pbjk/MHTzME9vEhLFNhBXqtimIKjsX/wPjPqNqw1v9QGZ/ToEM8E45vP24Kov4U1bScR vGY6a2o8/gtWcgq5tGmmjKflUxq6v+jM8aIHKjHF6RzR6LxCXXGGDTC0eqymf0F2LtHlq2XDw w7CpOeLg8X7I2EMO05caSGP+4/1Jo8sbiAOb/mfk9KziegvuwAhrh3DTr4Az9vJ6WIlPhss6o v9ihGtSpkDhlvujbhlQ3bA1mgrfJ+SnZ79W5gv2bLFDgro6XL5cr/IHzj+WScz8usP42fQqeZ gvg5yweKLDoKI9/ZgI3MkBFYIhhiRI/7wE6UisI2Ac/CoSNJUpmDB7chHK8C1qtcPbUeJPqyc jx4G+LMfs0IccdGGvk0vIt97oDv/2ap0l/aQIqf1de21Dlj0dliFDNvDSEwaK2Q8LAU4ljRpL xmMn2vGwXUJvIWhAakL2WpgcXhUEzJqB1xBiq8YzkOGhrHyu2f7grZhZwjYfjtZme+UqnA0AJ IBP6FpA6RRTTnRTOseJWiF6BKIoU9EARK5wYSEt+1SZkI05iqNYFVrhw4Ts8i2AaY0U5ku/+7 G0JYLtP3XMjAv9fgfCbwd9RQQXK92rpwmXrdMQL+v6k3B8C0FtVsQMlXqCv6WNzsjyIc/OkpM 5IUuJNtkFq57BzGc4db2qjBPdY9uz9RBMQmU0NDoYNbHjIRx5kXNQC0oYhTHIF4qE2HIUTcaG 79/xoZut30tvQDmKSk8nD/iDxXGPji6k+5r/WJRpSJpWzp7Lxh8HsHHn4BOC/yFCzLtFEJ9ZM P1LBupmBF6ui5vlG8TNCDveudHr4m69ZGmSJhqC6JPZTs/7y30mN2zVFU96FT//HHT/FC6jgI r4u+7ltSkVi0x2uJeW3WgFR6thcgA+x4tCUNxhjXlOcyTTie6jmwgoqaAD
Message-ID-Hash: 2WIHGYW7JSWXKMIB2B3N2VO5OFFHD7BE
X-Message-ID-Hash: 2WIHGYW7JSWXKMIB2B3N2VO5OFFHD7BE
X-MailFrom: moeller0@gmx.de
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-quic.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: David Schinazi <dschinazi.ietf@gmail.com>, Martin Thomson <mt@lowentropy.net>, Greg White <g.white@CableLabs.com>, IETF QUIC WG <quic@ietf.org>, "tsvwg@ietf.org" <tsvwg@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/F_2fU361yCywbHu6sMkTgNM8-0M>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Owner: <mailto:quic-owner@ietf.org>
List-Post: <mailto:quic@ietf.org>
List-Subscribe: <mailto:quic-join@ietf.org>
List-Unsubscribe: <mailto:quic-leave@ietf.org>


> On 8. Feb 2025, at 11:38, Michael Eriksson <michael.eriksson=40ericsson.com@dmarc.ietf.org> wrote:
> 
> Well, QUIC receivers can easily handle an almost unlimited amount of reordering.

Quick note, if we are not talking about multiplexing within one 5 tuple*, then I believe there is quite some use cases where the data is only usable if all segments have been received. So out of order delivery might not actually give any big advantage in application latency. E.g. if we consider the case with a slow bottleneck (e.g. WiFi) in an otherwise fast path, there the resequencing will mostly result in creating line speed bursts from the receiver side of the bottleneck, if the ratio between bottleneck rate and rate on the reminder of the path the latency gained for doing out of order delivery instead of re-sequencing is rather mild.

*) I understand the rationale for adding multiplexing to (each) protocol layer, but occasionally maybe using multiplexing via the lower layer's mechanism is a viable option...


> The problem is the senders, and in particular the loss detection and congestion controller. As has already been mentioned in the thread, the default packet reordering threshold (kPacketThreshold) is only three packets.
> 
> It is of course possible to adapt the threshold dynamically as the RFC mentions, and with Ack Frequency you can also reduce the number of (spurious) acks.
> 
> Until it is verified that "all" production QUIC stacks implement dynamic packet reordering thresholds, it seems unwise to completely turn off L2 in-order delivery.

I note that endpoints (EP) and intermediate hops (IH) have different desires in regards to reordering... EPs really want as little reordering as possible even if they can deal with it (as resequencing will translate into latency), while IHs want as much freedom as possible and as little work*.
So IMHO if the IETF truly feels that more re-ordering is tolerable we should write an explicit RFC giving guidance how much reordering is deemed acceptable, "completely turn off L2 in-order delivery" seems not in the interest of end points... I guess giving guidance in units of time might be helpful unless tied to something an IH might not be privy to like path-RTT/OWD.

*) This is why IHs typically do not seem to restrict reordering to flows that actually are affected by a link layer packet loss but apply it unconditionally to all traffic. Getting information about which packet aggregates are fate-sharing and hence would gain something from re-seqiencing can be computationally costly to impossible.

Sebastian

> 
> /me
> 
> From: David Schinazi <dschinazi.ietf@gmail.com>
> Subject: [tsvwg] Re: Robustness to packet reordering
> Date: Fri, 7 Feb 2025 00:14:28 +0100 (Central European Standard Time)
> 
>> Having the link-layer delay packets to provide them in-order to the transport layer was helpful multiple decades ago when TCP implementations had more naive algorithms and were very resource-constrained. Given how modern implementations work, reordering at the link-layer is almost always harmful. TCP and QUIC stacks can handle reordering well, thanks to both protocol features and implementations having more memory to work with. The delay induced by this reordering will generally cause more harm than good. Furthermore, one of the biggest motivators for QUIC was to break head-of-line blocking and allow out-of-order delivery to the application layer. We have large bodies of data showing that this improves performance. Please disable reordering at the 5G layer. 
>> 
>> David
>> 
>> On Thu, Feb 6, 2025 at 2:15 PM Christian Huitema <huitema@huitema.net> wrote:
>> 
>> On 2/6/2025 12:55 PM, Martin Thomson wrote:
>> >
>> > On Fri, Feb 7, 2025, at 04:59, Greg White wrote:
>> >> This is an important topic relating to the expectations and
>> >> requirements that transport protocols place on layer 2 protocols.  In
>> >> layer 2 standards bodies that I've been involved in, it has been
>> >> understood that "the upper layers" expect in-order delivery,
>> > As far as QUIC goes, it is sensitive to reordering in the network.  Some reordering will be interpreted as damage (Christian cited the relevant parts) and performance suffers in a few minor way when things arrive out of order (ACKs are less efficient, data needs to be held, memory accesses are less likely to be contiguous, etc...).
>> >
>> > However, the idea that the network might seek to "fix" these problems, when doing so necessarily involves extra work and delays, is not a good trade.  Stuff that is delayed to "fix" a reordering that happened might delay signals that the QUIC stack could use, even if some data needs to be held at the endpoint.  QUIC packets contain many things, some of which don't need to be strictly ordered to be useful.
>> 
>> Applications that are sensitive to delays will break their traffic into 
>> multiple QUIC streams. In case of packet loss, only one of those streams 
>> will be blocked, the others will be delivered without "head of queue 
>> blocking". Implementing L2 correction will make the response worse, not 
>> better, because all the streams will be delayed for the duration of the 
>> L2 correction instead of just one.
>> 
>> -- Christian Huitema
>> 
> 
>