Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc6937bis-05.txt

rs.ietf@gmx.at Tue, 06 February 2024 20:07 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 65CC4C14CE4D; Tue, 6 Feb 2024 12:07:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.103
X-Spam-Level:
X-Spam-Status: No, score=-1.103 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, FREEMAIL_REPLYTO=1, RCVD_IN_MSPIKE_H3=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=no 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 bS2JN1WCAIO9; Tue, 6 Feb 2024 12:06:58 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (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 8C8AFC14F702; Tue, 6 Feb 2024 12:06:10 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.at; s=s31663417; t=1707249966; x=1707854766; i=rs.ietf@gmx.at; bh=cqeC5wyl19J79wtHf3uB6htp4ExyMz2rGE0HzhJxo+4=; h=X-UI-Sender-Class:Date:From:Reply-To:Subject:To:Cc:References: In-Reply-To; b=UV96q84oXDIU3//OOTbr/VkEK/jd19XRCVxXq9sPDqRDsjk1cwlrg2ukb1twvH3+ umiNt9LDD4o/A6jv8YNAa4bSGs7JXF21mrWn6mgFG3L91cxBzbhpVuRIJzLmeDxwO GE7oYIa33SxmPuwRA1DdR8vrCfITfO8WgK/Bkgzrzt1bt9fT3MIGKMffOLCXo/Vva 54vtazleuKNp8FvboT79l/0j6PKEuYBXERgGcU4eGE8j42puGk0n5zvvtu7F3uWD2 t8EjhnGAjUskVayqlZg/REii9Xp2ZaRad3Buxy5Nwu5smS1hdDE9Eux2B8eXPZ+hI s/jEN3mcVwEL+lmGaA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.233.122] ([185.236.167.136]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N95iH-1quczR2UMx-0164B6; Tue, 06 Feb 2024 21:06:06 +0100
Message-ID: <d8ce208f-20ed-4056-9aa6-d953f2a529b9@gmx.at>
Date: Tue, 06 Feb 2024 21:06:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: rs.ietf@gmx.at
Reply-To: rs.ietf@gmx.at
To: Neal Cardwell <ncardwell@google.com>, Yoshifumi Nishida <nsd.ietf@gmail.com>
Cc: tcpm@ietf.org, internet-drafts@ietf.org, i-d-announce@ietf.org, Matt Mathis <mattmathis@measurementlab.net>
References: <170657898135.64951.13444558093264676035@ietfa.amsl.com> <4cbabb73-10ff-44ef-a0ee-0d7bdbe124ff@gmx.at> <CADVnQy=nEQQiW=VNNfr=2z5RzuMj2Yu0FyXwjKvFvBbnMSxbDQ@mail.gmail.com> <CAAK044QXrJ4Wk9iAQqZjDKzGbi9oLQB3-5Um6ysGLir_T4FGew@mail.gmail.com> <CADVnQynL7CKNfmCCi3y3vZGaA8i4ZggsH_t_VFRL2QjecLR1gA@mail.gmail.com>
In-Reply-To: <CADVnQynL7CKNfmCCi3y3vZGaA8i4ZggsH_t_VFRL2QjecLR1gA@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:x63ng7tWYuT5kizIgK+wMOAXYhu7EzwMyBWzuEyjlCzb1oOsxau netmAYDCankumiOLhYTpkLMhyokK99aWSA5B6G2yUvBjndKfQnPlY86jhR/U6qQ/M3dNEmP MOuzDGWnvH34V3t3QLjOaeifgwegEq9eqtlOUx0r+5t42kQP08ys7skqEtX+EB37212Pmxg yage0r6DEXngGyUIaKKng==
UI-OutboundReport: notjunk:1;M01:P0:TomfyKQNigQ=;jgLy8bVzHCAvI3FuURvfEId2Fsu hznGwrMELZ1V7JfIL24rZkW//kHvPyx23Dw6+3UiqansdbbbymAuX2fddsUM6/AViPDDxkbGx S6UdDAwV8dubZNhmZX8HIXys98dk20qrmbYF9wfeyFKN/I++yY93ovpr2FzNON4Ql0Tyc42UJ brui/6uYTUk1m8vB/k51LW6F9Q4GSDDiqqkc8IpUM5S3Xlqu7peU5IPOgm/gL6umJdKKjnVD1 eB0CXPGrvpwNzyfyoSKT8PV3vHTkAcBPSOL30r2eDpjT/JW6UfLcec/FUFjFq7ysb1O0prXGw WvjoaTlvCW6ppOVvnXhx2g4l3pYOi4jadasqPN/qD/+4h9yU3re9x05OYaiF56rwWR2wllBG0 c7h3xNrhTRvhNKSp6W6lfAbBkMkszFW0dRWueO7FEHJE7IJj7X7OJES30tTK3vQ/UELFaKnmG PAZZe/h9vzPIjc+YqyMwPiriC4Bn+hzySryZtDpi29yrk19B54JJlVWFpQzDGVUOdW1DdzAm0 4MnfIBar3uLKKEnvpRdBc26XxX7XzSWQ2+WQvhDfa3QW7aBue/QvTQIOG4U1/gvAAo7UTo8QY HpJvdpsSHKr6ejiGxOmgzNiavoewlw0RLN//ruZcjSW/Uzrmi1joV6q09MbCqQv9LHvVO5Rf/ MKXRdppimy3nZP0ok9/BGdKaU2THlEztAinudrsjZm43aI778LqXuHAsU7cv6o4Gx6sKf7qon oLQ38O/PDNbU9DwkOPiTrLYChUvrjViWRF5ZqqKtxi6FNCDhyYQNcuTgYTLoXrdVq3koxEFBO x03lFckzp/+2C8t9gGkTHePYPt37PbYuPSXcpRnvhyLos=
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/Wqu4PLpIdkbYkyp-ywQ283NbR90>
Subject: Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc6937bis-05.txt
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: Tue, 06 Feb 2024 20:07:02 -0000

I concur; RFC6675 pipe() effectively returns snd.max (HighData) -
snd.una (HighACK), which may be proplematic right after an RTO has
happened (when snd.nxt != snd.max). But in the general case (non-RTO),
RFC6675 pipe returns the correct value.

But I found that for PRR, using snd.max after an RTO seems to be the
reasonable choice, as it will try to recover up to that point which was
previously transmitted, in the PRR "pacing" fashion...

Richard



Am 05.02.2024 um 17:25 schrieb Neal Cardwell:
>
>
> On Mon, Feb 5, 2024 at 12:04 AM Yoshifumi Nishida <nsd.ietf@gmail.com
> <mailto:nsd.ietf@gmail.com>> wrote:
>
>     Hi Neal,
>
>     On Wed, Jan 31, 2024 at 8:43 AM Neal Cardwell
>     <ncardwell=40google.com@dmarc.ietf.org
>     <mailto:40google.com@dmarc.ietf.org>> wrote:
>
>
>
>         On Wed, Jan 31, 2024 at 11:04 AM
>         <rs.ietf=40gmx.at@dmarc.ietf.org
>         <mailto:40gmx.at@dmarc.ietf.org>> wrote:
>
>
>             Hi,
>
>             I'm slightly surprised that PRR removes any specific
>             mentioned to the
>             SACK loss recovery (with already SACKed data) vs. non-SACK loss
>             recovery. The wording changed in section 5 makes it more
>             ambigious if
>             delivered data (SACKed) at the initialization of PRR loss
>             recovery
>             should be included or not...
>
>             This is the one technical change in this revision; excluding
>             SACKed data
>             on entering PRR loss recovery, doesn't that either add
>             complexity
>             (tracking what SACKed / retransmitted / lost data was at the
>             start of
>             PRR and excluding this subsequently), or inflate the
>             transmission
>             opportunities when SndCnd is calculated?
>
>
>         Good points. What do folks think of the following proposed edits:
>
>         proposed edit 1:
>         ---
>         Old version from version 05:
>            RecoverFS is the number of unacknowledged bytes upon entering
>         fast recovery, and as such it remains constant during a given
>         fast recovery episode..
>
>         Proposed:
>            Upon entering fast recovery, PRR initializes RecoverFS to the
>         value of "pipe", the sender's estimate of the number of bytes
>         outstanding in the network, where "pipe" is computed as
>         specified in RFC 6675. RecoverFS remains constant during a given
>         fast recovery episode.
>
>         proposed edit 2:
>         ---
>         Old version from version 05:
>            RecoverFS = snd.nxt - snd.una // FlightSize right before recovery
>
>         Proposed:
>
>             pipe = (RFC 6675 pipe algorithm)
>
>             RecoverFS = pipe              // RFC 6675 pipe before recovery
>
>
>     Hmm. but, if SACK is not used, can we use pipe?
>     Wouldn't it be something like this?
>
>     pipe = (SACK is used)?(RFC 6675 pipe algorithm):(snd_nxt - snd.usa)
>
>
> Why not use pipe for non-SACK connections? AFAICT the pipe definition
> can be used for non-SACK connections.
>
> If we take the RFC 6675 definition of pipe literally, then for non-SACK
> connections AFAICT IsLost (S1) returns false for every packet between
> SND.UNA and SND.NXT, so that pipe will be SND.NXT - SND.UNA? And that
> would match the answer from this proposed logic, AFAICT?
>
> If we take the notion of pipe semantically, then for non-SACK
> connections AFAICT this encourages TCP implementations to initialize
> RecoverFS to their estimate of the amount of data outstanding in the
> network. Implementations may have a non-SACK notion of pipe that is
> better than SND.NXT - SND.UNA. For example, Linux TCP has a non-SACK
> pipe estimate that, upon entry to fast recovery, would be esssentially
> SND.NXT - SND.UNA - (num_dupacks_received*SMSS). That's a better (more
> accurate) value to use than SND.NXT - SND.UNA .
>
> best regards,
> neal
>
>
>
>     --
>     Yoshi
>