[tcpm] Re: using SACK info for RTTM?
rs.ietf@gmx.at Wed, 10 July 2024 06:54 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 F01E4C14CF18 for <tcpm@ietfa.amsl.com>; Tue, 9 Jul 2024 23:54:16 -0700 (PDT)
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, 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 012PHKIOGfzF for <tcpm@ietfa.amsl.com>; Tue, 9 Jul 2024 23:54:13 -0700 (PDT)
Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (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 D3C94C14F5F9 for <tcpm@ietf.org>; Tue, 9 Jul 2024 23:54:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1720594451; x=1721199251; i=rs.ietf@gmx.at; bh=P7bEbqGF+PD3YoOEtZYIDy6W3CRFMEtD4kWArhJlaMY=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:From:Reply-To: Subject:To:References:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=ljJ2g+xHXR8CPjd53/eLMab4SOywmrpEZCNXSd6o73J+gP2RzUc6z6jbh1XbCA9u vCuANFndhAbDMVVmpT2z7dyobdATwGpzmrKLSLJS3MNyLnIBK8u/y6D9DW8ywifZd HeyiYNLkWCig1rEA14xozQBNZdKo+Lzp/FCQZxDDeDGNfw8cNOg1AkoaOPULIFw+F 0x2g8JfMpePnHCUtdwDlPAn/35mUU/ViSlm/eB1dwpfamnQfq5Ig2zLOiPH12qKaJ 6yWaAgIhNmiMqTmGWFg+WzF3SmS+qafJe4MUl+S78e4PrTzlphHjGxgAx0mXxEtM2 Cx/AP34HBXDvyErkXQ==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [172.20.10.13] ([46.125.249.64]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N5VD8-1sKSFs3PqM-00ydPe for <tcpm@ietf.org>; Wed, 10 Jul 2024 08:54:10 +0200
Message-ID: <fe1abaf5-afed-45d1-a3d1-1647c93b3c45@gmx.at>
Date: Wed, 10 Jul 2024 08:54:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: rs.ietf@gmx.at
To: tcpm@ietf.org
References: <CAAK044QOLRucPZBzeTRBj=m83aXVsFq83zJQgmvYuVVwKTHzFA@mail.gmail.com> <CADVnQy=4Lqsbx_cMgK05ydrYNUbg-tiX8r3ZDmTkZVPTyCZJRg@mail.gmail.com> <CAAK044R5eA622EMPFu2p1hmA_tDHrYdCa5S+r6OSWzCKcsQmSw@mail.gmail.com> <CAK6E8=dcDfawq7z9mDTDQS3PjKyjZibUxvEygqZYvgR6_AHCUA@mail.gmail.com> <CAAK044Rj=BQz__SAqjPUqyFP_Q3Td35LKfxzNRMgNsJX0ES-=Q@mail.gmail.com> <CADVnQykv3JNBWX3xkxdyDVpD+ru9i+aGFygtaL9rtdee0H6_8Q@mail.gmail.com> <CAK6E8=e40CBEj2fcTtYR-aLBxNL5+b2a0D4uDUzJX=-qYwBe=Q@mail.gmail.com> <CAAK044Rgu32KVsq4FzqS4dFjL-ZdCt=aeAy3oF9zbLfmPVG28g@mail.gmail.com> <CADVnQymnGAiBeOTu0O_Bm-H0MpTJTcmWyJb_qRi8Lx8srBXNGA@mail.gmail.com>
In-Reply-To: <CADVnQymnGAiBeOTu0O_Bm-H0MpTJTcmWyJb_qRi8Lx8srBXNGA@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:ZiAqAe5/rYNP3DrE1bzfdyf32PKSmyRZGNcN7cLdWmyK/bwtddZ 1b78Bmi19cD1NGURItkhSlxHJ+YNHPH3LeKQezEyQjufNFcc4FAK6751tUfBhPVpac9BGUI N4SgtG7c3Xi+FOANhJgJC1xUwruYQiGtaFstmYybw2nsmM/HlTRINH65LiEaxEzQlIcrgDz MJRP8+/l+x4/JWi+Hq1fw==
UI-OutboundReport: notjunk:1;M01:P0:W0e2gKNBRrc=;DuwWhMSFIanG9J/XzjSfHKgjYBy 0XXFNsTGEvuUib05do00OO9PVU3Aebq5C6SZSxOFb60Wp8LVoFcF58WNcElhfAHLzJ8okrGOp VxSM6DEBy7HNaqwa7CAiV0TMhF7xKeHn2J1vrdjJSOSeEGaDnH2dYrhtEWYbLheRoRyMTRaeH KuaFABRKCcpY+yW/5dfsOM5Ycw4ctcrYkLMpAbbNTCfzjZAT+zizy04r6PIZsDjg/iPsWTyR4 B28I8M9fqaPWOdiw68N0Fex63WeX4BL2v6idEACVQorhwfRpv/0Y9fLWAGyKap3zPfNVnS0Uj nA5uQh9OgIRwwUF907FQxZeJHmQd6KCwzHFlLYJKbg4MC27JE44UN1oWk4oP5j/0+9hCLZ4sG uqCSOrqPRPmjR13rn91aj+3xQ450zlhS1NuensQEEY90hQsPEy7aNqk0mkwF0a6TUn3HeM9q6 OdLYzaiyhcMRaNSeJr+qhaphUnKVwQIwVesgSicSjQHdyajGD8jh7wGAyetLgf2gG22g0RIuo t0RTvjwwsv77HKui3nl/ZB1YU5fVSJkB3CHyP8kiF4eieLkRl1AFTHD7Kq7nfqnZz0k/xgU+p Q3plEMR1Dm4IGmLYbAdUlNHZ6r2ECz79WXkLsLnNrGLywZglVVEYOuFwC9x+C4ae2dKg/K3y7 L64VI3zHmtU8miwh6V5bUfyIMlE3pSRm+TDZ7xh1PaipTaq0Yy4+2XSwvGvc/Sz1ifEzlEZ6d y7esxKGDFOf3oJhPhYTtpiqHHdFimikiqzOa0yEFBRr1fwRO15LtpcMTcefNSV7c24gEv6v6X YajMHuqJas2JUPkMxe4+CTzX3EhmdxVnvnlJtIT5ioGUrXd+yN6k2AXsBB4tBVi4og
Message-ID-Hash: Z6A2IBUPNEYN7WHWBRY4CZ6LIMEKMCVL
X-Message-ID-Hash: Z6A2IBUPNEYN7WHWBRY4CZ6LIMEKMCVL
X-MailFrom: rs.ietf@gmx.at
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tcpm.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc4
Precedence: list
Reply-To: rs.ietf@gmx.at
Subject: [tcpm] Re: using SACK info for RTTM?
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/qQ8v2MiyapE9JZ5FxbEPQRWMr5A>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Owner: <mailto:tcpm-owner@ietf.org>
List-Post: <mailto:tcpm@ietf.org>
List-Subscribe: <mailto:tcpm-join@ietf.org>
List-Unsubscribe: <mailto:tcpm-leave@ietf.org>
Just wanted to point out, that a very long time ago, I was also working on a scheme to have the timestamp option negotiated between the two end points in such a way to convey additional information. Just wondering if a separate option, during SYN when option space is already scarce, is needed, when some of this information could be encoded in the TSecr/TSval fields of the existing TSopt.. https://datatracker.ietf.org/doc/draft-scheffenegger-tcpm-timestamp-negotiation/ After all, TCP EDO does not work during the initial 3WHS unfortunately, so saving as much space as possible appears to be a secondary design goal... Best regards, Richard Am 05.06.2024 um 20:56 schrieb Neal Cardwell: > On Wed, Jun 5, 2024 at 2:21 PM Yoshifumi Nishida <nsd.ietf@gmail.com > <mailto:nsd.ietf@gmail.com>> wrote: > > Hi Yuchung, Neal, thank you so much. It’s interesting. > > So, it might be a good time to revive > https://datatracker.ietf.org/doc/draft-yang-tcpm-ets/ > <https://datatracker.ietf.org/doc/draft-yang-tcpm-ets/> ? > > > Yes, reviving the work for some kind of standardization of more precise > TCP timestamps is something we would like to do when time permits. > > OTOH, I’m thinking why DSACK is not sufficient here. > > > DSACK can work sometimes, however it is not as good as timestamp undo, > for at least a few reasons: > > (1) DSACK undo is slower: DSACK undo takes about two round trips longer > than timestamp undo. With DSACK undo the data sender has one extra round > trip to make a full set of spurious retransmissions for apparent holes > in the sequence space, and then a second round trip to receive all the > DSACKs for the spurious retransmissions. Only then can the data sender > undo the congestion control response. With timestamp-based undo, usually > a data sender will receive an ACK very shortly (say, O(1ms)) after its > spurious retransmit that covers the spuriously retransmitted sequence > and has a TS ECR from before the retransmit, allowing the undo to happen > immediately. > > (2) DSACK undo is unreliable: if even a single ACK packet containing a > DSACK is lost, then the data sender cannot undo the congestion control > response. For example, if a flow is fully utilizing a 10Gbps * 100ms > path, and thus (1500B MTU) its cwnd is at least 82,562, then the loss > rate in the direction of returning ACKs needs to be zero in that round > trip, or on average less than 1/82,562, or < 0.0012%. Not impossible, > but a stringent requirement. With timestamp-based undo every incoming > ACK has a TS ECR value that allows undo, so ACK loss is not a problem. > > neal > > Thanks, > — > Yoshi > > On Wed, Jun 5, 2024 at 10:06 AM Yuchung Cheng <ycheng@google.com > <mailto:ycheng@google.com>> wrote: > > Also TCP timestamp needs to really move to usec level for > today's data-center networks, which Eric Dumazet finally > upstreamed that feature (to opt-in). anything beyond 10us can't > be used in Eifel > > On Wed, Jun 5, 2024 at 6:41 AM Neal Cardwell > <ncardwell@google.com <mailto:ncardwell@google.com>> wrote: > > IMHO by far the biggest benefit of TCP timestamps is not in > RTT measurement or PAWS, but in using them for "Eifel" undo > (a la RFC 3522, RFC 4015): quickly detecting spurious loss > detection events due to reordering, and quickly undoing the > spurious congestion control slow-down response. This is > important since reordering is increasingly common due to > many increasingly common network mechanisms: link-layer > retransmissions for wifi/cellular links, traffic > engineering, multipathing and ECMP/WCMP load-balancing, > protective load balancing (SIGCOMM 2022), protective reroute > (SIGCOMM 2023), multi-queue NICs, etc. Those factors make > the 12 bytes of TCP option space overwhelmingly worth it. > > best regards, > neal > > > On Wed, Jun 5, 2024 at 3:03 AM Yoshifumi Nishida > <nsd.ietf@gmail.com <mailto:nsd.ietf@gmail.com>> wrote: > > Hi Yuchung, > > Thanks for the explanation. > I thought a bit about the trade-off between using 12 > bytes options space and giving up measuring RTTs for > retransmitted packets. > But, I am included to prefer measuring RTTs for now. > > -- > Yoshi > > On Mon, Jun 3, 2024 at 1:57 PM Yuchung Cheng > <ycheng@google.com <mailto:ycheng@google.com>> wrote: > > hi Yoshifumi, > > Linux only uses TS-opts if needed to disambiguate on > RTT samples covering sequences that have been > retransmitted. This applies to SACK or non-SACK. In > order words, if an S/ACK covers a sequence range > that has never been retransmitted, Linux does not > use timestamp options. > > On Mon, Jun 3, 2024 at 1:29 PM Yoshifumi Nishida > <nsd.ietf@gmail.com <mailto:nsd.ietf@gmail.com>> wrote: > > Hi Neal, thank you so much for the comments. > > The linux algorithm you've described makes sense > to me and it seems the scheme doesn't require > timestamp options. > However, as far as I've read linux code, it > seems that linux still uses timestamp options > for RTT measurement to some extent. > I'm curious why linux is mixing two schemes for > RTTM. > -- > Yoshi > > On Mon, Jun 3, 2024 at 8:57 AM Neal Cardwell > <ncardwell@google.com > <mailto:ncardwell@google.com>> wrote: > > > > On Mon, Jun 3, 2024 at 11:02 AM Yoshifumi > Nishida <nsd.ietf@gmail.com > <mailto:nsd.ietf@gmail.com>> wrote: > > Hi folks, > > While I was checking RFC7323, I > found the following sentence. > > RTTM update processing explicitly excludes segments not updating > SND.UNA. The original text could be interpreted to allow taking > RTT samples when SACK acknowledges some new, non-continuous > data. > > I am a bit curious about the rationale > of this sentence. > It seems to me that we cannot measure > RTT when we have a gap in packet > sequence with this rule. > > > Yes, that rule forbids using RFC7323 > timestamps for calculating RTT samples for > SACKed sequence ranges. > > The rationale: AFAIK this rule is a > necessary consequence of the conditions > under which TS.Recent is updated. > > The rules for updating TS.Recent are in sec > 4.3, "Which Timestamp to Echo": > https://datatracker.ietf.org/doc/html/rfc7323#section-4.3 <https://datatracker.ietf.org/doc/html/rfc7323#section-4.3> > Rule (2) in sec 4.3 says: > If: > SEG.TSval >= TS.Recent and SEG.SEQ <= > Last.ACK.sent > then SEG.TSval is copied to TS.Recent; > otherwise, it is ignored. > > Since out-of-order sequence ranges that are > SACKed will fail the SEG.SEQ <= > Last.ACK.sent check, SACKed sequence ranges > will not update TS.Recent. So using > TS.Recent to calculate an RTT sample for a > SACKed sequence range could, in general, > give a vastly overestimated RTT sample. So > that's why it's forbidden by the RFC. > > However, in practice usually this does not > need to be a big deal. For example, Linux > TCP still obtains an RTT sample for every > non-retransmitted SACKed sequence range, by: > > (a) recording the transmit time of every > sequence range > (b) recording whether that sequence range > was retransmitted, and then > (c) using those two pieces of information > when that sequence range is cumulatively or > selectively ACKed, to calculate an RTT > sample (rtt_sample = now - > transmit_timestamp) if the sequence range > was never retransmitted. > > So, in Linux TCP, SACKed sequence ranges > fail to generate an RTT sample only when > they were previously retransmitted. > > best regards, > neal > > Thanks, > -- > Yoshi > > _______________________________________________ > tcpm mailing list -- tcpm@ietf.org > <mailto:tcpm@ietf.org> > To unsubscribe send an email to > tcpm-leave@ietf.org > <mailto:tcpm-leave@ietf.org> > > _______________________________________________ > tcpm mailing list -- tcpm@ietf.org > <mailto:tcpm@ietf.org> > To unsubscribe send an email to > tcpm-leave@ietf.org <mailto:tcpm-leave@ietf.org> > > > _______________________________________________ > tcpm mailing list -- tcpm@ietf.org > To unsubscribe send an email to tcpm-leave@ietf.org
- [tcpm] using SACK info for RTTM? Yoshifumi Nishida
- [tcpm] Re: using SACK info for RTTM? Neal Cardwell
- [tcpm] Re: using SACK info for RTTM? Yoshifumi Nishida
- [tcpm] Re: using SACK info for RTTM? Yuchung Cheng
- [tcpm] Re: using SACK info for RTTM? Yoshifumi Nishida
- [tcpm] Re: using SACK info for RTTM? Neal Cardwell
- [tcpm] Re: using SACK info for RTTM? Yuchung Cheng
- [tcpm] Re: using SACK info for RTTM? Yoshifumi Nishida
- [tcpm] Re: using SACK info for RTTM? Neal Cardwell
- [tcpm] Re: using SACK info for RTTM? Yuchung Cheng
- [tcpm] Re: using SACK info for RTTM? rs.ietf