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

Yoshifumi Nishida <nsd.ietf@gmail.com> Thu, 21 March 2024 22:30 UTC

Return-Path: <nsd.ietf@gmail.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 D9918C14F6BE for <tcpm@ietfa.amsl.com>; Thu, 21 Mar 2024 15:30:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.107
X-Spam-Level:
X-Spam-Status: No, score=-2.107 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, HTML_MESSAGE=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] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 ZcfM4KbTpQKA for <tcpm@ietfa.amsl.com>; Thu, 21 Mar 2024 15:30:35 -0700 (PDT)
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) (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 12998C14F69A for <tcpm@ietf.org>; Thu, 21 Mar 2024 15:30:19 -0700 (PDT)
Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-33fd8a2a407so803430f8f.2 for <tcpm@ietf.org>; Thu, 21 Mar 2024 15:30:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711060217; x=1711665017; 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=TjG41/0lLH4QQfZMIDGPCULicjGsEc/Goi9ZUGgK65A=; b=ONmkM9chI/uoLEhgtaU5cbAZ8flWISG9gChjiAS9OwrFajsvBdiqsw3IN49L5c7lyL AjTmU+7CI8yGvUj/q9MndAQYX7l+/YjBSZ+ao4CAq3aE6Z9XltGv9ZPpUcJcKT+SzN/G O6AQcDGeL4VFaPAqELexm+BeUr4BnlEAGYCULt6iTRuvRpjWm8uWbWbfU/qkrStK+M/r lkYlCgzrc9Y2TehFxW0pIH+JVh9w68gSjaLxXDbwx38AtlOro5L1K2R53Fh46oTxPZpz 88nFeeXqCpj45qCxYLV8ra/IYwcnJsAeOa913EMREuDxVr/+ziC3x4eaCv3D5kXeYD2e Hkzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711060217; x=1711665017; 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=TjG41/0lLH4QQfZMIDGPCULicjGsEc/Goi9ZUGgK65A=; b=DQ9L8X8LsLT/KhuGpoHmhNDTpyAJpRolPLB4kRSmomkVtD8z/sLvavsqnLNmbFZYov 3nmrcyLag4JVTPITvEATgc+KZst5ooqAW64+6OvomH3fwQYE6trP7NW6qrdRp0TZXjSu qOBmFLjPPx+oVWPX1rpTnV9tg146ghdUb6BLD7oMGwClYvqRkDOfeMmLQ5OZF4h70ZtZ D0/2U9+0kdIiDo8EzNlj3+a0N6OxmrhaB2N9unE/YEmyzHODwcPYIhiBLaQANtSqD4dm 5aMfnwjWf1QLdHbQHfGnoKVJMNL+EuNKwJbjjZWEdDK25gTwawpZR7Fs7YZhwpDKXTDK IRXg==
X-Forwarded-Encrypted: i=1; AJvYcCWW9THiu1NOvsEuJ6uNDKeZSEczoMwjGzBcoJNmBhJJUiiFpNQX1Km7iOual/Gi6Eb/rvwxKR26s9+oO31i
X-Gm-Message-State: AOJu0YwBDaEqpR4ZRYl7yAN/+MWguYTJuKx+69HinVPl4isJGXk3nhjr dFEJHsQVWtVcoj7WwlFlhlPLe4vpA6Mvgl/Uh3YllIZf8rIte32M3uUSAkK3mKZQgZ8kWDLDRUb pwi8E/JZw++Ke1bPBc30PRA+idlqU5zuyY5I=
X-Google-Smtp-Source: AGHT+IEIcRXeR9xHGgIZtNgUWDpuqYoKDNklFCzjilTx4v9Mk8vAxpCV9RSSl66EkGvhTi4F4TmJYEbuSEITu5LtHSE=
X-Received: by 2002:a05:6000:2cf:b0:33d:6301:91c5 with SMTP id o15-20020a05600002cf00b0033d630191c5mr339050wry.3.1711060217149; Thu, 21 Mar 2024 15:30:17 -0700 (PDT)
MIME-Version: 1.0
References: <170896098131.16189.4842811868600508870@ietfa.amsl.com> <CADVnQy=rvCoQC0RwVq=P2XWFGPrXvGKvj2cAooj94yx+WzXz3A@mail.gmail.com> <8e5f0a7-b39b-cfaa-5c38-edeb9916bef6@cs.helsinki.fi> <CADVnQynR99fQjWmYj-rYZ4nZxYS=-O7zbfWjJLMxd5Lqcpwgcg@mail.gmail.com> <CAAK044SJWsvqWf+Tt3wUeGpMRH6aVg175CFUBrsz_YyhDsKYwQ@mail.gmail.com> <CADVnQy=0yhx9U-ogVX_Dh66fZWGyMzqtWAgSfaYXX-6ppGx=Kg@mail.gmail.com> <CAAK044So4qO4zma-qdYbMrJcNVdRi1-o30wcP7QjKLuT2c_Zuw@mail.gmail.com> <CADVnQynvFY24cNfe4tfm6FMY47UaMPjxrtD5RwWhCPK6EH4=6w@mail.gmail.com>
In-Reply-To: <CADVnQynvFY24cNfe4tfm6FMY47UaMPjxrtD5RwWhCPK6EH4=6w@mail.gmail.com>
From: Yoshifumi Nishida <nsd.ietf@gmail.com>
Date: Thu, 21 Mar 2024 15:30:06 -0700
Message-ID: <CAAK044QWL2xBvg4S_cvHFE_iTddSmnEOkhu33pftvUiUCCGZ_g@mail.gmail.com>
To: Neal Cardwell <ncardwell@google.com>
Cc: Markku Kojo <kojo@cs.helsinki.fi>, Matt Mathis <ietf@mattmathis.net>, Matt Mathis <mattmathis@measurementlab.net>, tcpm@ietf.org
Content-Type: multipart/alternative; boundary="0000000000006ecd9e0614334065"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/4gqht68T5NwIGbAE_JuDwJXfM7U>
Subject: Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc6937bis-06.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: Thu, 21 Mar 2024 22:30:35 -0000

Hi Neal,
On Wed, Mar 20, 2024 at 1:32 PM Neal Cardwell <ncardwell@google.com> wrote:

>
>
> On Wed, Mar 20, 2024 at 3:29 PM Yoshifumi Nishida <nsd.ietf@gmail.com>
> wrote:
>
>> Hi Neal,
>>
>> On Wed, Mar 20, 2024 at 6:55 AM Neal Cardwell <ncardwell@google.com>
>> wrote:
>>
>>>
>>> On Wed, Mar 20, 2024 at 3:07 AM Yoshifumi Nishida <nsd.ietf@gmail.com>
>>> wrote:
>>>
>>>>
>>>> On Mon, Mar 18, 2024 at 8:13 PM Neal Cardwell <ncardwell=
>>>> 40google.com@dmarc.ietf.org> wrote:
>>>>
>>>>>
>>>>> But your point still stands, and you raise a great point: simply
>>>>> initializing RecoverFS to "pipe" is not safe, because packets that were
>>>>> marked lost and removed from pipe may actually have been merely reordered.
>>>>> So if those packets are delivered later, they will increase the numerator
>>>>> of prr_delivered / RecoverFS without increasing the denominator, thus
>>>>> leading to a result above 1.0, and thus potentially leading to a target for
>>>>> Sent_so_far that is above ssthresh, causing the algorithm to erroneously
>>>>> exceed ssthresh.
>>>>>
>>>>
>>>> Hmm. I have a native question here. If packets were merely reordered,
>>>> isn't it ok for cwnd to be bigger than ssthresh?
>>>>
>>>
>>> Yes, if packets were merely reordered and none were lost, then I agree
>>> it would be OK for cwnd to be bigger than ssthresh. And in fact I would
>>> argue that cwnd should be reverted back to its value before fast recovery.
>>> And this is in fact what Linux TCP would do, using loss recovery "undo"
>>> mechanisms based on TCP timestamps or DSACKs.
>>>
>>> However, in the kind of scenario Markku described, there was not merely
>>> reordering, but also real packet loss: "1 packet is lost (P1), and 24
>>> packets are delayed (packets P2..P25)". In the traditional loss-based
>>> Reno/CUBIC paradigm, any non-zero amount of real packet loss in fast
>>> recovery should result in the same multiplicative decrease in cwnd,
>>> regardless of the combination of reordering and loss. We could argue about
>>> whether that approach is the best approach (BBR, for example, takes a
>>> different approach), but that is a very different discussion. :-) For now
>>> AFAICT we are focused on PRR's faithful enactment of the congestion control
>>> algorithms decision to reduce cwnd toward ssthresh when there is any
>>> non-zero amount of real packet loss in fast recovery.
>>>
>>
>> Got it. But, I just would like to clarify whether we are discussing the
>> inflation of sndcnt during the recovery process or cwnd after the exit of
>> recovery.
>>
>
> Good point. We are talking about inflation of sndcnt during the recovery
> process.
>
>
>> Because I'm personally not very keen to address miscalculation of lost
>> packets due to reordering during the recovery process as it seems to be
>> tricky.
>>
>
> It is tricky, but I think it is feasible to address. What do folks think
> about my suggestion from above in this thread:
>
>   existing text:
>      pipe = (RFC 6675 pipe algorithm)
>      RecoverFS = pipe              // RFC 6675 pipe before recovery
>
>   proposed new text:
>      RecoverFS = snd.nxt - snd.una + (bytes newly cumulatively
> acknowledged)
>

Hmm. Sorry. I'm not very sure about the difference between snd.nxt -
snd.una and snd.nxt - snd.una + (bytes newly cumulatively acknowledged)
Could you elaborate a bit? I thought we don't have data which are
cumulatively acked in case of reordering.


> However, I think it won't be good if it's propagated to ater the
>> recovery.  But, don't we reset cwnd to ssthresh at the end of recovery?
>>
>
> Yes, Linux TCP does reset cwnd to ssthresh at the end of recovery. And we
> discussed putting that in the draft last year in the
> thread "draft-ietf-tcpm-prr-rfc6937bis-03: set cwnd to ssthresh exiting
> fast recovery?". But it looks to me from reviewing the draft that we never
> got around to inserting that in the draft. I will do that now, and post the
> proposal in that thread for discussion.
>

Thanks! I believe that reflects the consensus of the WG.
--
Yoshi

>