Re: Robustness to packet reordering

Christian Huitema <huitema@huitema.net> Thu, 06 February 2025 01:00 UTC

Return-Path: <huitema@huitema.net>
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 330A8C1C637B; Wed, 5 Feb 2025 17:00:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.706
X-Spam-Level:
X-Spam-Status: No, score=-1.706 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_BLOCKED=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] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=neutral reason="invalid (public key: not available)" header.d=mfg.outbound
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 rGvinn7TtD9Y; Wed, 5 Feb 2025 17:00:39 -0800 (PST)
Received: from semf12.mfg.siteprotect.com (semf12.mfg.siteprotect.com [64.26.60.175]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1855AC1840E7; Wed, 5 Feb 2025 17:00:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mfg.outbound; s=default; h=Content-Transfer-Encoding:Content-Type: In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date:Message-ID: reply-to:sender:bcc; bh=gAhWIcQ/8WdUnhfTwx2oIr+Sd7DqJ5QLkoFf0HBem+8=; b=FHHKl PZD3zDpDfUj+ZoBwIuLO6Pdz2qs4ZL8Hm4mv+w1B53i7D5g0d7BtC7KSuGSFsPeo4CkEOkeI8dSO5 DLx6bzdg5pGT21/HdiwMgPxHCOw8bbPWF/Id6jwzg6RB75iCEeDOKmvdiccXlBmUpR/n7yLVjNTt5 kCFdwxBcpGys3a+g+owncHrK27r5qk+R/2uuaom+GpAEMa/6gOZU+wYsSNJ4O0Jn9HvQcGa5pYgOm G7SV9OvR13WQoLfzBvYsY/BNe7dkMvndfbrFzSTDMF3pWuv307KVGsUEVnPNpU5qS0TPhBLZiKuTl e+c7jvmxU6U5qyijuX4JsYu4kQ43A==;
Received: from smtpauth02.mfg.siteprotect.com ([64.26.60.151]) by se03.mfg.siteprotect.com with esmtp (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1tfqFj-00GQ3q-Os; Wed, 05 Feb 2025 20:00:24 -0500
Received: from [192.168.1.112] (unknown [172.56.15.10]) (Authenticated sender: huitema@huitema.net) by smtpauth02.mfg.siteprotect.com (Postfix) with ESMTPSA id 4YpJg85sswz2YQR6b; Wed, 5 Feb 2025 20:00:20 -0500 (EST)
Message-ID: <38891fa7-b188-4767-8364-ae0a10c318b2@huitema.net>
Date: Wed, 05 Feb 2025 17:00:17 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Robustness to packet reordering
To: Ingemar Johansson S <ingemar.s.johansson=40ericsson.com@dmarc.ietf.org>, "quic@ietf.org" <quic@ietf.org>
References: <AM8PR07MB81375E2D3CA840AEDA0F7E63C2F72@AM8PR07MB8137.eurprd07.prod.outlook.com>
Content-Language: en-US
From: Christian Huitema <huitema@huitema.net>
In-Reply-To: <AM8PR07MB81375E2D3CA840AEDA0F7E63C2F72@AM8PR07MB8137.eurprd07.prod.outlook.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Authentication-Results: mfg.siteprotect.com; auth=pass smtp.auth=huitema@huitema.net
X-Originating-IP: 64.26.60.151
X-SpamExperts-Domain: mfg.outbound
X-SpamExperts-Username: 64.26.60.150/31
Authentication-Results: mfg.siteprotect.com; auth=pass smtp.auth=64.26.60.150/31@mfg.outbound
X-SpamExperts-Outgoing-Class: ham
X-SpamExperts-Outgoing-Evidence: Combined (0.11)
X-Recommended-Action: accept
X-Filter-ID: Pt3MvcO5N4iKaDQ5O6lkdGlMVN6RH8bjRMzItlySaT9ZM35I47WYBiGGR+6LqYGAPUtbdvnXkggZ 3YnVId/Y5jcf0yeVQAvfjHznO7+bT5y/DScqHYFMZLwmx6yLgYxTSN7JZ8x51pXe8980C10/EKVi 4+SrPobmzYgA8ug2rA1/v+5gw9IJ1n6pxipzJwwiWN7TzoaZQV7Ck4fKlO+XnEZQb1M3nP/aVkZP /RjRdQBvxT1UqsRkA9qFNyupWgN858fMnqZUTt7CyKlJUh+zhjGcRQUhjWglgrx9RqLzcv3loW5O 8nKi+aEgzCvYcGcNn17NKh9p/w7qzG8kYg5zcSBdmcsqSvM8aD2DlRGiCU8/wJVyGDMOl6Z2bJkW 2fbn3+uVPy4qJ4XNUiQOREK3xna5b1gnzWyileWS/MxhS9IY4L7u6QJ/jXXAPItovk04WCvmn1IS DvxBA68tSDRfJFvEkjU2IZs0qHcxreE84qWzFtXV8maz/1DxiEQsBT9b8p8NyvSkRHwTwTx9G1M5 EMvdGlnEQJMn5KuObFLxmLretxRp8RUXQ0zG3NTd7kg13WOGcz8xu9rZctX8sgTNonUlO58lzbID FnBI582KCIFDFxQeM5hKKDqHvwRqP46o31/E3ahF5MMcDI7KdpjQKQq00y8ef45tB3j6HRlrmdMi /N8uQ6NBdVvWgbLvK6Z3IO3fJ9DGWEJopzxygkVT7yk4xAm9D8KTeKJT7gNACPfxVynFIF3Xrs2K JHQMxL9PL44/hrSNUBLj7yl7ZdLauIw2HNAQHBPEUF9IEWosJVEYgBq1JiC7GrajhL0h632bmyxk a02DK+nam2ST09hvrzzThqzFcMy7pHH9jcXXfxEj2d/xmizmqI+HnJWmDMLdQKcof8wqZrg1Xj+B VtcbX6nwr91lZN8JVcydBRphcAJK0fY/3gADQdrr7U0COoeGQd0kE+MbxRJ6df8DL1v6U5TAxn/I EAJ09jmfipBUTCwN2p1B0g38taCWq1X5fgDNUV8ShebT8U8Xw9HTDfreWeBFm9pNPUFDsiQcrCGS 6D1M8jeeJSytG/Wf88r2kBubK6391sxAqxbtq1CC1/LZwU9EUDwTCfbSvjFHgHqV660RNHZCFIG/ 9wYQQJyxC1I28DgKIfeVhSVdRinC5q1VkADk5nWIiIcthdTaotkIarQOjBgXlf3YbVfG6+cIUAg4 nWJ8xr0PBByl/sG5xgFyG2Z8WHz3Dshc1OOGUXnRskw=
X-Report-Abuse-To: spam@se02.mfg.siteprotect.com
X-Complaints-To: abuse@se01.mfg.siteprotect.com
Message-ID-Hash: YA7DDWEVASV4D46WUXMTFWTNK33JCAYH
X-Message-ID-Hash: YA7DDWEVASV4D46WUXMTFWTNK33JCAYH
X-MailFrom: huitema@huitema.net
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: Ingemar Johansson S <ingemar.s.johansson@ericsson.com>
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/iw8FypNhwkCgkB_D0Bx3DfWXFVg>
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 2/5/2025 6:21 AM, Ingemar Johansson S wrote:
> Hi
>
> A very short question, with possibly many answers:
> Do current QUIC stacks support out of order delivery up to one RTT, as is the case with TCP Linux with RACK enabled.

Define support. Do you mean "at the API" or "in the stack"?

The programming APi for QUIC exposes a set of "streams", as well as 
possibly a "datagram" capability. Data sent on one stream is delivered 
in sequence on that stream. Multiple streams can be processed in 
parallel. There is no guarantee of ordering between stream. If a packet 
containing data for stream number N is lost, delivery on that stream 
will stop until the loss recovery -- but delivery will continue for 
other streams.

Data sent as datagram is delivered whenever the datagram arrives. There 
is no guarantee of ordering between datagrams, or between datagrams and 
streams. There is also no expectation of loss recovery: if a packet 
containing a datagram is lost, the datagram is lost.

In the stack, QUIC stacks are expected to check whether a packet was 
"already received", and not process duplicates. Note that if packets are 
lost, the frames contained in the packet may be processed differently -- 
some may not be resent, either because they are now obsolete, or because 
the frame has already been received -- for example, in case of spurious 
retransmission. The packets carrying the repeated data will have their 
own packet number, different from the initial packet.

In order to not process duplicate, implementations have to maintain 
knowledge of already received packets. That knowledge typically has some 
kind of horizon, such as "the last N packets". Packets that are older 
than that will be ignored, because there is no way to tell whether they 
are duplicate. The value of that "horizon" is implementation dependent. 
About 1 RTT worth of packet makes sense, but implementations could use 
something else, like for example 3*PTO.

-- Christian Huitema