Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc6937bis-06.txt
Yoshifumi Nishida <nsd.ietf@gmail.com> Mon, 25 March 2024 09:39 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 219B3C14F6A2 for <tcpm@ietfa.amsl.com>; Mon, 25 Mar 2024 02:39:51 -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_DNSWL_NONE=-0.0001, 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 gD9ymANH7rNV for <tcpm@ietfa.amsl.com>; Mon, 25 Mar 2024 02:39:46 -0700 (PDT)
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) (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 821ADC14F682 for <tcpm@ietf.org>; Mon, 25 Mar 2024 02:39:46 -0700 (PDT)
Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-34100f4f9a2so2444132f8f.2 for <tcpm@ietf.org>; Mon, 25 Mar 2024 02:39:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711359584; x=1711964384; 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=q4RipwCxYxHn182/xCOGv1qgiIrEnOeFybZOpYDAruE=; b=LHljhm2yEY5dAXLAl+XZvAkXpheAlRQuI3ZfSR4/uXG5wAvGbt7JfKCog+H1wYO/W6 Q6WG+NfRER9sDCcx2ZAU6uA2PWgd6QJKqjLPcvgaiVuAXLskWYjvUAumZBGOnF48S9Vn 0hnwCLRcE+rwVX/lgYtGXRE+vK+i0yZhZlWB6B501Y2N4duwCEGKC3asCXLmsrQJRNA4 HMKXCqYY3O7DH9eHRCq6vN4tJXCRAVhuyctdC0pw/UHAFhfkZUnLPKyPJhYbNTNglg1p /IjBRd93zhjXg8Joc7wuIaq+Co5cCTj1O5TunXr4qiHKZ6kBs1jj8QfCE92fUNSd6aBn QaPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711359584; x=1711964384; 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=q4RipwCxYxHn182/xCOGv1qgiIrEnOeFybZOpYDAruE=; b=jbjlBxnhHfSzmMyC97MlY/+/rShDG87daVH3RPrBZbsVWv42F8sD+zuqbsIjnzTynM HUUqgCwOF/W53VikPvhUi7VFBdY5+cKhYriSKfrkEBwd4qNNwQJg6qJfnGMgGJaljP/V uCeMFgJIvocuBKTSTmqt1OxUvIYSmYWrNdXH7PXIqSoCYGWOsrDTXrwXdjOYR26pUJmH OtNO/mXkPZomiKxvCkc25UcXkt7CV54Eva0MnGzx1WT+wyOYqTXrJhHqJrob8TdLAaAS igHjAOb0XnekcVaMeIFCbTfxhFLyMUvbwONExkvpxWUdqnTXG4LPtUOHG5ubz7Y5ArGe TB1Q==
X-Forwarded-Encrypted: i=1; AJvYcCXPWwmF/+LisdS97svoZt23lAfeCgSxTVLtY9WcpIetwfVIppUquorFy/h+pMupaAigCg5mI7sc7tlnRIv1
X-Gm-Message-State: AOJu0YwzaZuMcbZdFea/RtcDGHm1A+UOPnnH8wP/n2Z3r20vxNYikaur CvHfHqDV5hDY/R07yFZgDj/1eIeFM5QikSxdvYiMbFioBW2L7i1UAQ8kG6tSksLkzkfDmANWdrz Qn62l4dU7E82C0YPBSlCxvmrwkko7cupJLtM=
X-Google-Smtp-Source: AGHT+IEyuWEBELA8nm0wA2963Z/l1jmOXVg9iq3INrpmlmY8YOmykwENDVeIVct26t+mGh/OR4O7kFBODjVcuT2mmIs=
X-Received: by 2002:a05:6000:1105:b0:33e:d605:b8a3 with SMTP id z5-20020a056000110500b0033ed605b8a3mr3968624wrw.39.1711359584439; Mon, 25 Mar 2024 02:39:44 -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> <CAAK044QWL2xBvg4S_cvHFE_iTddSmnEOkhu33pftvUiUCCGZ_g@mail.gmail.com> <CADVnQy=Z-Q=nYp1tYEi4wA5nRO6g+RwP+FvPpj+cwb50ptLehQ@mail.gmail.com>
In-Reply-To: <CADVnQy=Z-Q=nYp1tYEi4wA5nRO6g+RwP+FvPpj+cwb50ptLehQ@mail.gmail.com>
From: Yoshifumi Nishida <nsd.ietf@gmail.com>
Date: Mon, 25 Mar 2024 02:39:33 -0700
Message-ID: <CAAK044R09H8nfVzQGAUOK1+vOBmZWhHpjnC0pM_wQxU1w=1Y5w@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="0000000000001d1c26061478f446"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/CXyWyXIFLATkR9Qlm7lSPEE5aEs>
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: Mon, 25 Mar 2024 09:39:51 -0000
Hi Neal, On Fri, Mar 22, 2024 at 2:36 PM Neal Cardwell <ncardwell@google.com> wrote: > > > On Thu, Mar 21, 2024 at 6:30 PM Yoshifumi Nishida <nsd.ietf@gmail.com> > wrote: > >> 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. >> > > The addition of (bytes newly cumulatively acknowledged) is unrelated to > reordering. It just seems necessary AFAICT to avoid another way for the > target number of packets to send to be greater than ssthresh. > > As I noted above, I'm proposing here to add in (bytes newly cumulatively > acknowledged) because in a (probably rare) corner case where the ACK that > initiates fast recovery advances snd.una, then the (bytes newly > cumulatively acknowledged) on that first ACK will be non-zero, and will be > added into prr_delivered. So if RecoverFS does not include (bytes newly > cumulatively acknowledged) in such cases, then we could again trigger the > kind of scenario Markku raised where prr_delivered > RecoverFS. In such a > case that could trigger the connection to send more than ssthresh bytes in > flight. > Got it. Thanks for the explanation. I am personally fine with it although I would like to see opinions from other folks. BTW, I might prefer to say "(bytes newly cumulatively acknowledged if there's any)" as this looks rare to me. Also, I think we'll need to update the definition of RecoverFS in Section 5 if we update this. -- Yoshi
- [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc6937bis… internet-drafts
- Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc693… Neal Cardwell
- Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc693… Markku Kojo
- Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc693… Neal Cardwell
- Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc693… Yoshifumi Nishida
- Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc693… Neal Cardwell
- Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc693… Yoshifumi Nishida
- Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc693… Neal Cardwell
- Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc693… Yoshifumi Nishida
- Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc693… Neal Cardwell
- Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc693… Yoshifumi Nishida
- Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc693… Markku Kojo
- Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc693… Yoshifumi Nishida
- [tcpm] Re: I-D Action: draft-ietf-tcpm-prr-rfc693… Markku Kojo
- [tcpm] Re: I-D Action: draft-ietf-tcpm-prr-rfc693… Yoshifumi Nishida
- [tcpm] Re: PRR behaviour on detecting loss of a r… Neal Cardwell
- [tcpm] Re: I-D Action: draft-ietf-tcpm-prr-rfc693… Neal Cardwell
- [tcpm] Re: I-D Action: draft-ietf-tcpm-prr-rfc693… Neal Cardwell
- [tcpm] Re: I-D Action: draft-ietf-tcpm-prr-rfc693… Neal Cardwell
- [tcpm] Re: I-D Action: draft-ietf-tcpm-prr-rfc693… Yoshifumi Nishida
- [tcpm] Re: I-D Action: draft-ietf-tcpm-prr-rfc693… Matt Mathis
- [tcpm] Re: I-D Action: draft-ietf-tcpm-prr-rfc693… Neal Cardwell
- [tcpm] Re: I-D Action: draft-ietf-tcpm-prr-rfc693… Matt Mathis
- [tcpm] About growing cwnd when the sender is rate… Michael Welzl
- Re: [tcpm] I-D Action: draft-ietf-tcpm-prr-rfc693… Markku Kojo
- [tcpm] Re: PRR behaviour on detecting loss of a r… Markku Kojo
- [tcpm] Re: About growing cwnd when the sender is … Neal Cardwell
- [tcpm] Re: About growing cwnd when the sender is … Michael Welzl
- [tcpm] Re: About growing cwnd when the sender is … Neal Cardwell
- [tcpm] Re: About growing cwnd when the sender is … Michael Welzl
- [tcpm] Re: About growing cwnd when the sender is … Michael Welzl
- [tcpm] Re: About growing cwnd when the sender is … Christian Huitema
- [tcpm] Re: About growing cwnd when the sender is … Michael Welzl
- [tcpm] Re: I-D Action: draft-ietf-tcpm-prr-rfc693… Neal Cardwell
- [tcpm] Re: PRR behaviour on detecting loss of a r… Markku Kojo
- [tcpm] Re: PRR behaviour on detecting loss of a r… Neal Cardwell
- [tcpm] Re: PRR behaviour on detecting loss of a r… Neal Cardwell
- [tcpm] Re: PRR behaviour on detecting loss of a r… Markku Kojo
- [tcpm] Re: PRR behaviour on detecting loss of a r… Yoshifumi Nishida
- [tcpm] Re: PRR behaviour on detecting loss of a r… Markku Kojo
- [tcpm] Re: PRR behaviour on detecting loss of a r… Matt Mathis
- [tcpm] Re: PRR behaviour on detecting loss of a r… Neal Cardwell