[tsvwg] Re: Robustness to packet reordering

David Schinazi <dschinazi.ietf@gmail.com> Fri, 07 February 2025 19:28 UTC

Return-Path: <dschinazi.ietf@gmail.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 64D87C1ECA7E; Fri, 7 Feb 2025 11:28:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_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] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 Fc06qK4939We; Fri, 7 Feb 2025 11:28:28 -0800 (PST)
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9E387C1ED105; Fri, 7 Feb 2025 11:28:28 -0800 (PST)
Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-ab771575040so452369866b.1; Fri, 07 Feb 2025 11:28:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738956507; x=1739561307; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=OtdMGRjWp/i8PnvfqpfxKoPRXhnGUueWLIfJjSZ7gnw=; b=kSNJUYMbmuWUBCQU1DZGsKA/eAcmUyvvU0XlCKxQPxhvkhJxKfx31T/r1/sUY7cBT0 L0uROMa5Xc0e9xk/CxcThAwFQTSIH/naTjzn+QPyg4jnnnelfBwOtA4VCtsA/3309Bq0 GT43ATLx/BSPHeQo6bg3TrWBc6tISykjDuYAig7YYE6Q2qIu3E/F3EiChkVmaEa4nD9V oLHoVRa1/EmOvLHSGcnH+y9gsH/1fxLOP+eEU6XWk1ffV9Bxm2daXgKs8xiSWfF5kR9v ootoCYmEIQJkhlSSCTUNLGqxCFgg3JQB2S/I8uyxh0tpahkx+K6vaXw9J/eEE4mwWUna VwPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738956507; x=1739561307; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=OtdMGRjWp/i8PnvfqpfxKoPRXhnGUueWLIfJjSZ7gnw=; b=doxgHjtc2LxCNRY8nkjRNcidX5/skocH4KTrveSiYsBNYx4kEcHj2NUKJaR2JDVTFa FPal7ckU3pzVg1Rw6VGY/2yswyGPAD0RG9GLjFjEg1kvq8/vnijOG5jHR3mSWDQWoJR6 zM7Z02su3n1s5yLg7Ou+dGoNBN5cD7FU6BgvvW7WQsGa8uJ4ipmmgRvYHz4jMMrQkZzu 8NJGKRcyw650jVEhow3PC/SgWFbsRw06RwhR0jLiVFH0r2H4Mn159nWFQ9hBm7g3S2Eo 3rgBHSRfGwxqIhzmNNX+54hhuhVKrEkfbPprjvO3lM05kL3jRitxQN8j4tNIgEbM0jQT FF6Q==
X-Forwarded-Encrypted: i=1; AJvYcCW5JhOlqEN9DaEfvSLKdSDHV1OIA3dUVodXwmyMcCbwASRr8bS90MXso2h2xjufTGsc6fJjGsA=@ietf.org, AJvYcCXePz00SAW36PRK8QRAUC4Hc0swubw5cxz0t8ObtxPFGz/RwDtZ20RvGdFV8e/cWjoNRl6u@ietf.org
X-Gm-Message-State: AOJu0Yy267zCUv9bpHnb5cQ8GMP1GVYQN+ilWr0lk44NEWHLF4gi15Gz mFL+jy0juAQU1BoX5avOQmOvKVYqQ+KFx35Q2y9/x/JNhAEqNc2hf0/kqGMZE8zsp+9BqePcQGi kxhn3bHSjO2XP8gDI7nXEF/H/ZTg=
X-Gm-Gg: ASbGncuFwmf2WyhDX9SfST/O+VhNZtt9wRRed33DnCHKPgm1eYhkMCg4Egjj2adbOyb x/tacgZsqHcY2w6C+Cry+GdcboGoFr1m8hQCZfCHG9UPop7/LZutLCbmo9TkvqQ8sDlPaROMcH2 E=
X-Google-Smtp-Source: AGHT+IEaTEYrHMz+3ViwUgd1yK41swcn/1af4AnLdqheXi9l3MizhObnygz+VSAshcF1X2+aUCI2Xkk+ELz0yXxNZ9U=
X-Received: by 2002:a17:907:7e97:b0:ab7:63fa:e4ae with SMTP id a640c23a62f3a-ab789a9a583mr475499266b.4.1738956506868; Fri, 07 Feb 2025 11:28:26 -0800 (PST)
MIME-Version: 1.0
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> <CADVnQyn4GYJKxc_VHoJT4aJnkUj1nmc5fXYVZ2=sQ11PpzE+SA@mail.gmail.com>
In-Reply-To: <CADVnQyn4GYJKxc_VHoJT4aJnkUj1nmc5fXYVZ2=sQ11PpzE+SA@mail.gmail.com>
From: David Schinazi <dschinazi.ietf@gmail.com>
Date: Fri, 07 Feb 2025 11:28:15 -0800
X-Gm-Features: AWEUYZnrsFSTXOa2R-gmhW13G8pZEi9HjEK7isPX1E6XaNeNLDng_pcBNU8Y_y8
Message-ID: <CAPDSy+46mbr+2e6NuDhjtyrUzCZT7Qpdf_NBBevTSC8xyJMf+g@mail.gmail.com>
To: Neal Cardwell <ncardwell@google.com>
Content-Type: multipart/alternative; boundary="000000000000df354a062d925cc1"
Message-ID-Hash: DUHWNRHDEXH635BLQ5YH2GPTMVKTKUQE
X-Message-ID-Hash: DUHWNRHDEXH635BLQ5YH2GPTMVKTKUQE
X-MailFrom: dschinazi.ietf@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tsvwg.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Martin Thomson <mt@lowentropy.net>, Greg White <g.white=40CableLabs.com@dmarc.ietf.org>, Ingemar Johansson S <ingemar.s.johansson=40ericsson.com@dmarc.ietf.org>, "quic@ietf.org" <quic@ietf.org>, "tsvwg@ietf.org" <tsvwg@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [tsvwg] Re: Robustness to packet reordering
List-Id: Transport Area Working Group <tsvwg.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/1dQSje736upON_VAgxPfUQjF8yI>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Owner: <mailto:tsvwg-owner@ietf.org>
List-Post: <mailto:tsvwg@ietf.org>
List-Subscribe: <mailto:tsvwg-join@ietf.org>
List-Unsubscribe: <mailto:tsvwg-leave@ietf.org>

On Thu, Feb 6, 2025 at 6:53 PM Neal Cardwell <ncardwell@google.com> wrote:

> > Given how modern implementations work, reordering at the link-layer is
> almost always harmful.
>
> For modern implementations of the RACK style or newer, that sounds true.
> But I would have guessed there is a large installed base of TCP senders out
> there with pre-RACK TCP stacks. And for those, presumably, as Greg noted,
> "older TCP implementations that don't support RACK would have problems with
> reordering." So AFAICT there may be some tricky trade-offs.
>

You're absolutely right that there is a nontrivial base of TCP senders out
there that don't have RACK and could benefit from link-layer reordering.
That said, I don't think anyone cares about the performance of those
senders. Anyone who cares about performance is motivated to use a
recent-enough TCP implementation. I'm sure there's a small number of
counter-examples out there, but in general we should optimize for the main
case. I have embedded devices with minimal TCP stacks, but I really don't
care if my temperature reading is slightly slower than it could be. This
isn't a case of "you need to be a large tech company to have fast TCP",
this is just a "update your open source code to something from this
decade". To me the tradeoff is very easy: let's disable the link-layer
reordering. Anyone who cares enough to notice a performance regression will
be able to upgrade their TCP. And of course, this isn't a concern at all
for QUIC since there's no pre-RACK legacy device problem.

David

If most 5G link-layer retransmissions can be completed in X milliseconds (X
> less than, say, 10ms), then it may be worth the user's 5G cell phone modem
> buffering received packets for X milliseconds to try to deliver in-order
> data to the receiver if this can be done in a low-latency manner. AFAIK
> various layers of networking software (and humans using it) already need to
> tolerate ~10ms of jitter due to various link layer effects for the most
> common last mile link-layer technologies (wifi, cellular, DOCSIS) and CPU
> scheduling effects for networking stacks (especially in user space). But
> I'm sure there are other factors I'm not taking into account... :-)
>
> neal
>
>
> On Thu, Feb 6, 2025 at 5:15 PM David Schinazi <dschinazi.ietf@gmail.com>
> wrote:
>
>> 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
>>>
>>>