Re: [tcpm] Errata RFC9438 (Cubic)

rs.ietf@gmx.at Sat, 10 February 2024 13:23 UTC

Return-Path: <rs.ietf@gmx.at>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BEF31C15153F for <tcpm@ietfa.amsl.com>; Sat, 10 Feb 2024 05:23:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.803
X-Spam-Level:
X-Spam-Status: No, score=-2.803 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, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=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_BLOCKED=0.001, 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.at
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 tzrNPxY-4Kim for <tcpm@ietfa.amsl.com>; Sat, 10 Feb 2024 05:23:45 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 46EE1C15153C for <tcpm@ietf.org>; Sat, 10 Feb 2024 05:23:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.at; s=s31663417; t=1707571422; x=1708176222; i=rs.ietf@gmx.at; bh=zIRgubhzbEk4PXvtNN62okQmNYGif+3d3rOuENyjGFY=; h=X-UI-Sender-Class:Date:From:Reply-To:Subject:To:Cc:References: In-Reply-To; b=tmMzVsbb4n7Fk9Dz4vfH5t9TZbW2vlqsGd/Rp0EGAsqnlynmF70e4aVMnR9L1S+O IX2xfk2Au9z3xsXNAkFd3yJ+/pa8c3+yPjRW/s13xtLxt7nNXoLsucL4J++nBV0n2 GfDt04aeiLynVq6Js5TOeKJEgYOoWGNYM+5SAGQtECEWm2a5oF9HRxLQiMyro2sFe GZlfD+PQ9FXbrNkalJE8X9dC5gIc3NgiglmVG+1claDOhOJQ+2ITjft+k6+zDwbZs B/IqXofav30/XzE4OxAF1jjV235zdgIu+yEx8PyxHfi6+LkdXd6KSBnx9DdMW7Gkk Db00zf+tc4wc67jpdQ==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.233.122] ([185.236.167.136]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N9dsb-1qtqOZ2sHF-015a1J; Sat, 10 Feb 2024 14:23:42 +0100
Message-ID: <be6ed0a4-feb9-4b5e-9559-98cdaf0ff94a@gmx.at>
Date: Sat, 10 Feb 2024 14:23:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: rs.ietf@gmx.at
Reply-To: rs.ietf@gmx.at
To: Yoshifumi Nishida <nsd.ietf@gmail.com>
Cc: "tcpm@ietf.org" <tcpm@ietf.org>, rfc9438@ietf.org
References: <60ba9be5-6738-409a-af34-2ff6e5ec5fd9@gmx.at> <CAAK044SgBF0H8x=hJfNAMvGszLdqsoQZQA0oVmTwhcz8kh=whg@mail.gmail.com>
In-Reply-To: <CAAK044SgBF0H8x=hJfNAMvGszLdqsoQZQA0oVmTwhcz8kh=whg@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:D+1Bftz245cET0Do85s6P74oyivGzk+yZ618GYXx9SwZ5/WGXWv fXoJKwobDtea5vGO+sIuBDjDcQ5iex3PFFF6U5GUOMog4RQs1fBPET43GVbRGsKMX8ddibC 0sxVcZFltuJCwsJvp1gvJju7/w7DMgvrHm5hrUCqBuPv61cacImZpyWa+UR+unZHBF0u/zv eFgIHjlFGzruVLcbnNhDQ==
UI-OutboundReport: notjunk:1;M01:P0:9MI1n9ye4nI=;KaCdFZfrhNTg8/JL5WPvBfKrVSz QjUxDzWT2jO5vj63T+/L9bbwd74DVWo/37zDqhNZDMFFb0/zUVXdTfughsoRPKs3GrfxFcGJc ap35Rab+rBhyNXvDF8O3bwroGXelhp5h2d0YEuBhStk3QQ27X/yniaAnE/gcGXZK8NpWSvb6B Ynml66o4S2jiIIoYJMder3rFpOxWiTw91N4VqkVLiZwwUyGdADe9ZbPPaB8a/fFBpHGgs1N1x 4i6LSRgTazkt4P7XP1CdSOfni/ac/Y4IgoV2b8Gsl5Ls2KVD1qrH+Xh/rWb2w4/zyDBM23/4c 28dR88sxsS2lmOGbISgydIANCpGovKIvYOYr6HtGd2zloHqukt/J/BlRwdxB93MH9qK6XSw2w mPs/WE9mAaxzjq1fHFp2dbTzVYAlWsX9kN0L3ix7QpjJ31VZa+6IesE2nCYgxRdaMMLuomBKG XVtvlmWZCYPw9AF++HNCCOF/gpMZsr34chmUDtvHI0cGckKHe7OxGfaUcr2cPPc23fYki/h8y Eszfvifx2L2XU2PEnR9pHqpXgzVtxUdL3yWIzBpckvUYj4f+8MfGqLu6Pjt/PM2S4Z1LE8yZx v7ao8VqfHEJdsULvapw8zJyRk1QNy0ncGpf+HR7jiGSjfYYVWQR6FIuNRQNTBmap1CSA8eQOL X84EPbtRkcmbNndijAxebzxpEdp0hM8+dVB6UVAxgyFYJVkeC2SMdQnUVxDwLTULRt55hQCDe PpKFZ9wtz6mmlO6ljwi0qd/8V16VchHxvT3IgZOcO/7OBGgmUHRHkRgMeoDoWXWnndoXYrtw0 b5XregF/wPleCvXF+0zLMY1U7HO2kexOmVv1XhApOq14o=
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/Igfeg96QyEnOUKohgT5XxPW7IZo>
Subject: Re: [tcpm] Errata RFC9438 (Cubic)
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 10 Feb 2024 13:23:49 -0000

Hi Yoshi,

Well, that probably comes down to the order in which snd_una is updated
vs. ssthresh being set - and at what stage Flight Size is calculated
during the processing of the incoming packet.

If th_ack is first updating snd_una, then the flight size calculation
would probably end up with the incorrect, deflated value.

The stack I'm familiar with does CC processing first (with the old value
for snd_una, not yet updated by th_ack, and flight size is the expected
value of 10 mss at that moment...

Capturing all that nuance would need more text; I believe the critical
aspect is to no blindly use cwnd, when adjusting ssthresh, since that
may not reflect the (expected) flight size under all circumstances, e.g.
RTO during the initial Fast Retransmission...

Hope that makes sense.

Best regards,
   Richard




Am 10.02.2024 um 12:53 schrieb Yoshifumi Nishida:
> Hi Richard,
>
> I am wondering about cases like this.
> Say a sender sends 10 packets (cwnd=10) during slow-start and the
> receiver sends back a single ack that acknowledges all packets.
> Then,  hystart or hystart++ at the sender decides to exit slow-starts
> from the RTT and set ssthresh.
> I think flighsize will be 0 in this situation, but would it be OK?
> --
> Yoshi
>
>
> On Fri, Feb 9, 2024 at 8:23 AM Scheffenegger, Richard
> <rs.ietf=40gmx.at@dmarc.ietf.org <mailto:40gmx.at@dmarc.ietf.org>> wrote:
>
>     Hi,
>
>     Lately I've been looking at the TCP behavior when multiple events
>     overlap (e.g. RTO while loss recovery is not complete; or duplicate ACKs
>     immediately after RTO before snd_nxt reaches snd_max again).
>
>     I believe there is an implicit assumption in the Cubic RFC around
>     cwnd_prior to track Flight Size - which does not always hold (but
>     depends also on the specific implementation).
>
>     RFC5681 is quite clear, that ssthresh is to be adjusted after an RTO,
>     not by taking cwnd, but rather the FlightSize.
>
>     The wording in RFC9438 appears to overrule this (as it updates RFC5681)
>     and reverts back to how ssthresh got set prior to RFC5681, using cwnd
>     directly again.
>
>
>     As mentioned, cwnd does not always reliably track Flight Size (in
>     particular, early on after initiating Loss Recovery, it may only be 1
>     MSS). If an RTO happens and the text in RFC9438 is followed verbatim,
>     ssthresh may end up being updated to cwnd * beta_cubic (0.7), instead of
>     the Flight Size at this stage of Loss Recovery...
>
>
>     I hope the errata, to clear up that the RFC5681 guidance as how to
>     adjust ssthresh on an RTO based on Flight Size, not cwnd, is found
>     useful - since it appears to me that this was clearly the intent.
>
>     Best regards,
>         Richard
>
>     _______________________________________________
>     tcpm mailing list
>     tcpm@ietf.org <mailto:tcpm@ietf.org>
>     https://www.ietf.org/mailman/listinfo/tcpm
>     <https://www.ietf.org/mailman/listinfo/tcpm>
>