[tcpm] Re: using SACK info for RTTM?

Neal Cardwell <ncardwell@google.com> Mon, 03 June 2024 15:57 UTC

Return-Path: <ncardwell@google.com>
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 69CF3C19ECB8 for <tcpm@ietfa.amsl.com>; Mon, 3 Jun 2024 08:57:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.597
X-Spam-Level:
X-Spam-Status: No, score=-17.597 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 b-afl1NMwJ4H for <tcpm@ietfa.amsl.com>; Mon, 3 Jun 2024 08:57:17 -0700 (PDT)
Received: from mail-ua1-x933.google.com (mail-ua1-x933.google.com [IPv6:2607:f8b0:4864:20::933]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8F37CC180B6E for <tcpm@ietf.org>; Mon, 3 Jun 2024 08:57:17 -0700 (PDT)
Received: by mail-ua1-x933.google.com with SMTP id a1e0cc1a2514c-80ac7385672so1368223241.2 for <tcpm@ietf.org>; Mon, 03 Jun 2024 08:57:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1717430236; x=1718035036; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=xbG988dx7ywZh0XVDcm6owLhVfTb/OmLgM3liXsIyEE=; b=F0zKP/PZooOeqsnwozcjznSV+szl2TpLY0yD9mX4X4bUhd56nDl8AaYvTyrHy/pGSB A0B38fbdwq2Kv3Mh+S/93gUviX7w+jt0UsDZWgsjF7FPSzzTBXeyeCf7BJL9ICYynxAO 9dFcaSn3Jvvm+nWGo6htR4bvEonU8OUcysJtZS2/FZpdaRyVP+3Whsohzce6n7fKhtHj V+BAaywcd2ab47N48IRuVU8D9+R4etQ2B/Ee4KD+dq77jYsFPkec5ZTyKW2aBMe53UjL Lxs4vaeEocuYl+v//PawDcr+UHGO8+DVhXIvopHQbi1mkOEzohSTIgos8ggvziuwMWPF zYrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717430236; x=1718035036; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=xbG988dx7ywZh0XVDcm6owLhVfTb/OmLgM3liXsIyEE=; b=DZZCCOX/CPEqrEUYN6U8/yuWNtXoVtxa67QncQO4UrWuxwn7tZt2jkRsaRAh/B/Yw3 9ndWB/nD+2sxTr09CSYRoqyGGeKJdLnlDmjA8LR5eO/APpd3tEHRQzCrXjJ5BDkU0AQP MRXgFml1iPYZiXf+NFCknRYoWjbJiIN5ZgC/dEZvzIpNJiz78+JvfiRUXIZPbXVifib5 u5gfqFMVpeqLNArYANc4isQ7ewK/CvkIJUi2fLTNv+uzf3G+a9Ie9+5BsrwPgLIAlIoC C7RwHQFf/82+XG0rMAGjHrv/URHdJYK13tRpoCKkv+zUI9yYsWCGV5jPgRuLKYsTcCE3 ahIw==
X-Gm-Message-State: AOJu0YyU34/cR/NX80CHo06b2wurDvbylKBfG6BqF8SGM1YiUYcWclGj EEpu4vZc0YOWC0rJVDLhaN9YVBcSrLRS3JEonCmzZHn6tuOofObfurDysuemYrHcfC3gv/c4IrK S/eAjecUFzYPLfcHio3VdH6XCjHzpNUFPKA3sQWD6HNNH8ioyJopg
X-Google-Smtp-Source: AGHT+IEEhLq/rDwj43nlcET2s6tZzwjrCK+E0LY1A07/umSHzTihW8tSz8w4S3do/8jEeWHQwlBUZsZ410TaEgDM01w=
X-Received: by 2002:a67:f910:0:b0:48b:a8ef:5942 with SMTP id ada2fe7eead31-48bc2547a50mr8316967137.35.1717430235796; Mon, 03 Jun 2024 08:57:15 -0700 (PDT)
MIME-Version: 1.0
References: <CAAK044QOLRucPZBzeTRBj=m83aXVsFq83zJQgmvYuVVwKTHzFA@mail.gmail.com>
In-Reply-To: <CAAK044QOLRucPZBzeTRBj=m83aXVsFq83zJQgmvYuVVwKTHzFA@mail.gmail.com>
From: Neal Cardwell <ncardwell@google.com>
Date: Mon, 03 Jun 2024 11:56:56 -0400
Message-ID: <CADVnQy=4Lqsbx_cMgK05ydrYNUbg-tiX8r3ZDmTkZVPTyCZJRg@mail.gmail.com>
To: Yoshifumi Nishida <nsd.ietf@gmail.com>
Content-Type: multipart/alternative; boundary="000000000000220ad30619fe6322"
Message-ID-Hash: VVLVGLDHLXLDZJDTKHCNPP275ZNHOW3O
X-Message-ID-Hash: VVLVGLDHLXLDZJDTKHCNPP275ZNHOW3O
X-MailFrom: ncardwell@google.com
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
CC: "tcpm@ietf.org Extensions" <tcpm@ietf.org>
X-Mailman-Version: 3.3.9rc4
Precedence: list
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/Wran32gSaz_aebuWZBdP3V4b1s4>
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>

On Mon, Jun 3, 2024 at 11:02 AM Yoshifumi Nishida <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
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
> To unsubscribe send an email to tcpm-leave@ietf.org
>