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

rs.ietf@gmx.at Tue, 06 February 2024 20:10 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 6A8B3C14F614 for <tcpm@ietfa.amsl.com>; Tue, 6 Feb 2024 12:10:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.804
X-Spam-Level:
X-Spam-Status: No, score=-1.804 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_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_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 DydLB6DX5eTk for <tcpm@ietfa.amsl.com>; Tue, 6 Feb 2024 12:10:23 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (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 47E90C14F5E5 for <tcpm@ietf.org>; Tue, 6 Feb 2024 12:10:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.at; s=s31663417; t=1707250219; x=1707855019; i=rs.ietf@gmx.at; bh=SnYf5fqKx3pN4fM3A22pSOKyQEgYlYvH9R4/TBI5xTc=; h=X-UI-Sender-Class:Date:From:Reply-To:Subject:To:Cc:References: In-Reply-To; b=hOwUD/LaC3UE9Yxst3BxynsuLn5HnywcV8W9LjurwqdMbJvtT6KDhdtA835wf3NF +LFQM5AQBkhsiGrOpx997fkWrd35rdXV3ZCeOPTVM0OQt4G0XHI/RFpB/JJX4MgJm a9enxAZxKMC4JgRzPgjTbpu3J2WiwsBDOhlXS39Af4OSQ7ZrsgmD32g1J9q5lXq+A dfSFrtc32JMnzf4Vxrz1pHZ1pW0zFVbHFpI81ZORMIU2twkVMvfF/hnX94afEoJuN kqvH9rR+sd4VZJcw7/WD4vWUTOha/HmyRMuc/yPyxPqeBJkYEodNXS7d7yM5BRyUc d7PM65HpfEhjAdCknA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.233.122] ([185.236.167.136]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M42nS-1rXRlr200G-0001ti; Tue, 06 Feb 2024 21:10:19 +0100
Message-ID: <4d413ad4-6ae9-48f5-be91-2a350a2129a8@gmx.at>
Date: Tue, 06 Feb 2024 21:10:18 +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>, Neal Cardwell <ncardwell@google.com>
Cc: tcpm@ietf.org, Matt Mathis <mattmathis@measurementlab.net>, Yuchung Cheng <ycheng@google.com>, Nandita Dukkipati <nanditad@google.com>
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> <CAAK044Rz9Ad78xGs+kOSnMC8ybKf=+m7Ymhqi8siBTRxGb9Rnw@mail.gmail.com> <CADVnQy=c=3RX5WCZOSFi70ZgGrDhJ6bNgo7q6yZu=_eWmdK=ow@mail.gmail.com> <CAAK044SZjsZdeJxsyW3tQ5KVqJZuZnJ=0Jg74y0dHW9kk5C==g@mail.gmail.com>
In-Reply-To: <CAAK044SZjsZdeJxsyW3tQ5KVqJZuZnJ=0Jg74y0dHW9kk5C==g@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:kxTArYC4rKHUM8lfWa6kpyKm3bsdgXYTVHv4/X5JHW9Tye++qQN UBCkfTxGw5QEUuDdayJAAbW8Fef6cWTZE3I7iy8I7i3HZYd2lW3DOxslWPPL/3BufxIsgKb v9cwNLIHAXMPjCtc0f0zB6wGcDAtJrKOthi5gARzEU6qJa2a3fm0jUmracySZQITFeL6cdN rRj6sDTQuHXsIjDTZehYg==
UI-OutboundReport: notjunk:1;M01:P0:jYzH5ptKjHI=;1RZ27xbh9pt2h4NFyJ88jCLvhlj t3a+JE4gB0N7XvF2NwYnvuJUpZbE+106j0NKrVPPMQXnnYs0YG7ijrFyvqX8oTWCTH7BgQE6U u/2BBK+sVmKZS+Eo/IzkoaCZhESqji6iDKkwc0UPdH2i1wnNBZFLJ0VizcnY4aFUALUbg4rWC EkIAy2DVIPu/vVWVx6k/SG8eS9PkrrsKJQELzxzAbg4BhSTKpUFZk+ilTp0nu0t1yWTg3F3iN X2NmIP5IjxkuJWbCbxgQA1hgb2cVvyHFtNx7Hii3ESHMe5209onvxlwpv4ANRmc7SzHUdcqLk 6kl4oEKPSHNV/P6L1/oMnruoGrYFkGnbC9pDl3qcQs55icjYJgiAV0UrSPJLmIvUh/heMTG0N 0GKYtUuZ0I+CbTV+/Y6OASOAp/BlKnIpTjnzMtN9YpGf0EJ3FOhZdgy/DOl+M7s0OZadz5yc0 TjRLSS9eCOTiggNHE7GisbOoC5kC3Ssox6usqqZcgfWz0wZCuquZ8po7MQWlsqeMGDroSsRvn HfT7znG9QEcOFRxJP0t/BNrBvSFeJmbtYBRcxo6YaARdqI/8wOrtM+Bgx20cAKVaApjdSHxlr d47GqR7LwBx2Ua1t3iIKGcg6YhV0lPfeYc7c9Heii+1TRpb0TtZ9UYw55asq6IqmFQHQUgmmu dyMp38VfXTPmtLpsYmQ6wVOZRsADTzOmPtvTmzVeqUbG9hlASPUdQeEvff2WsutNMHyKCb2Jp 5rO+x6Tzvzu3uZUkPIMXPQPHFEg8s01Cil0f+mn7Vz6rfv059cmv3crD69MI5mgQ8y3nikvoS xaDMXkaDe107wlvKqBunMBBocPEzyvHBp0qza8ni4B+2U=
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/wUh9SaC2G9iUldsB0nbm6CDmmzE>
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:10:27 -0000

As just mentioned:

I found that using RFC6675 pipe() in both SACK and non-SACK cases, and
even additionally in the standard FastRecovery, as well as the special
RTO, followed by FastRecovery in quick succession (before snd.una has
acked snd.recover (RecoveryPoint), works quite ok.

In short: I don't think the document needs any special text around the
non-SACK, or the FR-after-RTO case.

Best regards,
   Richard


Am 06.02.2024 um 20:00 schrieb Yoshifumi Nishida:
> Hi Neal,
>
> Sounds good to me. I just would like to check if some folks have any
> opinions.
> If this is fine, we will think about submitting it to IESG.
> Thanks,
> --
> Yoshi
>
> On Mon, Feb 5, 2024 at 2:29 PM Neal Cardwell <ncardwell@google.com
> <mailto:ncardwell@google.com>> wrote:
>
>
>
>     On Mon, Feb 5, 2024 at 11:51 AM Yoshifumi Nishida
>     <nsd.ietf@gmail.com <mailto:nsd.ietf@gmail.com>> wrote:
>
>
>
>         On Mon, Feb 5, 2024 at 8:25 AM Neal Cardwell
>         <ncardwell@google.com <mailto:ncardwell@google.com>> wrote:
>
>
>
>             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 .
>
>
>         OK. I see your point. Thanks for the clarification.
>         Do we want to specify the better value for non-sack case than
>         the current one or leave it to implementations?
>
>
>     Good question. Matt and I chatted about this just now. We have
>     updated the proposed draft text describing RecoverFS so that it now
>     reads as:
>     ---
>     RecoverFS is the "recovery flight size", the number of bytes the
>     sender estimates are in flight in the network upon entering fast
>     recovery. PRR uses RecoverFS to compute a smooth sending rate. Upon
>     entering fast recovery, PRR initializes RecoverFS to the sender's
>     best estimate of the number of bytes outstanding in the network; for
>     connections with SACK this is typically "pipe" as specified in RFC
>     6675. RecoverFS remains constant during a given fast recovery episode.
>     ---
>
>     The initialization proposed pseudocode still reads as:
>     ---
>
>         pipe = (RFC 6675 pipe algorithm)
>         RecoverFS = pipe              // RFC 6675 pipe before recovery
>
>     ---
>
>     Our sense was that this approach is general enough to encompass both
>     SACK and non-SACK cases.
>
>     We could indeed spell out the pseudocode for the non-SACK case, but
>     we wanted to avoid specifying something that might accidentally
>     conflict with other standards, now or in the future.
>
>     How does that sound?
>
>     best regards,
>     neal
>