Re: [tcpm] comments on draft-ietf-tcpm-prr-rfc6937bis-01

Yuchung Cheng <ycheng@google.com> Sat, 17 September 2022 23:32 UTC

Return-Path: <ycheng@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 DA47CC1522A9 for <tcpm@ietfa.amsl.com>; Sat, 17 Sep 2022 16:32:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.607
X-Spam-Level:
X-Spam-Status: No, score=-17.607 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, T_SCC_BODY_TEXT_LINE=-0.01, 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 8NPuQGj6sqlT for <tcpm@ietfa.amsl.com>; Sat, 17 Sep 2022 16:32:28 -0700 (PDT)
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [IPv6:2a00:1450:4864:20::32c]) (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 EF6FAC14F6E7 for <tcpm@ietf.org>; Sat, 17 Sep 2022 16:32:27 -0700 (PDT)
Received: by mail-wm1-x32c.google.com with SMTP id n17-20020a05600c501100b003a84bf9b68bso2003702wmr.3 for <tcpm@ietf.org>; Sat, 17 Sep 2022 16:32:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=UdY0WmgTKaPewffNqdu6M8DNRNZ6l4NyqQL6KVH3ZEQ=; b=EVtoTGM0KQoftk5ab1jZE7j2l92h5MBE9y1sh1UcLfixYb+gyMUBnLPWkgv0com6qo PBIPa72MmonPIEMSyegdR3vy5pN/JpT5kVXIbrHzK3gXMeeZ7IEUp5rxKJ/O/RM0/BWx g0CUA54rKDk/2eVIm3q81maLvtOTHZgxfEBTCfSED08BVWL7GywypRJxLZU42pU9Kis/ AyoidegiR5G9RW66rYNJDGt5/lnGQracRJ8na7s5OC2F/wlo7V5RO6FWCeS93fY/3w5v pkv0jdgU+WuBIergojdFSr/xG+ejyMIPx0CrsGc8ni5X4THNeX/sb8hSdMpsIC4xfg/l SkkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=UdY0WmgTKaPewffNqdu6M8DNRNZ6l4NyqQL6KVH3ZEQ=; b=0BseUxrIXojenvMi2KJ85XWAQoNjvbwQJyDm41kFlN6ZVeFS4dlHsCl3GsSdBgIXsh 6mjne+urxE3be1pbfgn6/9083vXcnF4DMq+cscnYTum7vWluwbnwWxe9Ppa3hF7uUsj5 v6iBngetcnTqorvaZHQ9zAgRNVBbrnOBPsZ2IhGL0scNEVGShuVCHaHewc3KpKZPydfw QeEuFBer3eGwupXrQrZiApluRh8zUtEevt6/mVSqB1eXyXccug9isIacQPRo4rymL4k8 QbeuJMSRAml/pzvGfv+bhSvlnPVyvT/c5bQAIpA65QFohfd5LGHOBHQNI8KoQ4RPBI2V rmAw==
X-Gm-Message-State: ACrzQf0SciBjPH7BVfBuzsdcroMPzv0e3yryX6a77MVTJcLeVnOLT1Z2 Cd1Zu3w9ssGhJxb5Cfx64XsfUww8oa5/y94hM+CJ27P5vI2ERlJTtDw=
X-Google-Smtp-Source: AMsMyM5qtopNOu1I8Zh4t4RZ9OCXxSzhCtcXBWHYJPsaJpbfNhZ9Zc10+Stp1N4czwH2VJT+73R1ao6wU1YJbpLZhwE=
X-Received: by 2002:a05:600c:4841:b0:3b4:76f0:99f with SMTP id j1-20020a05600c484100b003b476f0099fmr8195971wmo.85.1663457545553; Sat, 17 Sep 2022 16:32:25 -0700 (PDT)
MIME-Version: 1.0
References: <CAAK044TS==yvSf+ve22XVQGU2s2os2P8cqckLykmMb9XEa9MTw@mail.gmail.com> <CAK6E8=fc9KsUHD1Bd7GjdLSu=6USYnsxtB+nnEJr0vZ1TDRQ9g@mail.gmail.com> <CAK6E8=ed7zt2-TjOa8y_6MOiNsFK+2ituR36=hV-fQ8+J9MiwQ@mail.gmail.com> <CAAK044TO2m-s8oB-MZ+av1daFMdfjVQ9neFQt+Es9NECn54EMg@mail.gmail.com>
In-Reply-To: <CAAK044TO2m-s8oB-MZ+av1daFMdfjVQ9neFQt+Es9NECn54EMg@mail.gmail.com>
From: Yuchung Cheng <ycheng@google.com>
Date: Sat, 17 Sep 2022 16:31:47 -0700
Message-ID: <CAK6E8=dnNNup8142puKPqcj_S9GcJ5OYpipyeOZmejVL8m9Etw@mail.gmail.com>
To: Yoshifumi Nishida <nsd.ietf@gmail.com>
Cc: "tcpm@ietf.org Extensions" <tcpm@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000001a9e8005e8e7e4a3"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/5Duk6_iCFzEEK9qcQn0k_HIXh6A>
Subject: Re: [tcpm] comments on draft-ietf-tcpm-prr-rfc6937bis-01
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: Sat, 17 Sep 2022 23:32:31 -0000

hi Yoshifumi,

yes we already explain the values are before any transmission because we
think it illustrates the "sent" behaviour better.  see the 2nd paragraph of
the examples section
"The top line indicates the transmitted segment
   number triggering the ACKs, with an X for the lost segment.  "cwnd"
   and "pipe" indicate the values of these algorithms after processing
   each returning ACK but before further (re)transmission."

On Wed, Sep 14, 2022 at 10:44 AM Yoshifumi Nishida <nsd.ietf@gmail.com>
wrote:

> Hi Yuchung,
>
> Sorry for my very slow response and thanks for addressing my comments.
> They look good to me.
> One remaining minor comment I have is the values in the examples in
> Section 7 such as the below.
>
> I think I understand the values there, but it seems that the values for
> cwnd and pipe are the values in the period between after a new ACK segment
> arrives and before sending something.
> I am wondering it might be good to use the value for after sending
> segments (when all steps has finished) or might need to add more
> explanations about it.
>
> >    RFC 6675
> >    ack#   X  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19
> >    cwnd:    20 20 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
> >    pipe:    19 19 18 18 17 16 15 14 13 12 11 10 10 10 10 10 10 10 10
> >    sent:     N  N  R                          N  N  N  N  N  N  N  N
> >
>
> Thanks,
> --
> Yoshi
>
> On Thu, Aug 4, 2022 at 8:07 AM Yuchung Cheng <ycheng@google.com> wrote:
>
>> To clarify, all these fixes are in
>> https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-prr-rfc6937bis-02
>>
>> My previous email was responding to Yoshifumi's question in the last
>> tcpm meeting: did -02 address my comments?
>>
>> On Thu, Aug 4, 2022 at 10:00 AM Yuchung Cheng <ycheng@google.com> wrote:
>> >
>> > Hi Yoshifumi
>> >
>> > On Wed, Feb 9, 2022 at 11:30 AM Yoshifumi Nishida <nsd.ietf@gmail.com>
>> wrote:
>> > >
>> > > Hi,
>> > >
>> > > I have the following comments on draft-ietf-tcpm-prr-rfc6937bis-01
>> > >
>> > > 1: Page 5
>> > >     "but recommended to use BBR-SSRB"
>> > >       -> PRR-SSRB?
>> > fixed
>> >
>> > >
>> > > 2: Page 7
>> > >     "and do what? @@@@"
>> > >       -> Please add more texts or remove this.
>> >
>> > New text to replace the "do what"
>> > "Without SACK,
>> >
>> >    DeliveredData is the change in snd.una for a partial ACK or 1 MSS
>> >    worth of bytes for a DUPACK.
>> >
>> >    Note that without SACK, a poorly-behaved receiver that returns
>> >    extraneous DUPACKs as depicted in [Savage99] can artificially inflate
>> >    DeliveredData.  As a mitigation, PRR disallows incrementing
>> >    DeliveredData when the total bytes delivered exceeds the outstanding
>> >    data upon recovery (i.e., RecoverFS).
>> > "
>> >
>> > >
>> > > 3: Page 8:
>> > >    """
>> > >       prr_delivered = 0         // Total bytes delivered during
>> recovery
>> > >
>> > >       prr_out = 0               // Total bytes sent during recovery
>> > >
>> > >    """
>> > >      -> I personally think "during recovery" might be a bit
>> ambiguous. I think it would be better to clarify
>> > >         whether this includes a packet sent by fast retransmit or not.
>> >
>> > The following subroutine should be clear on that it includes
>> retransmission
>> >
>> > On any data transmission or retransmission:
>> >       prr_out += (data sent)
>> >
>> >
>> > >
>> > > 4: Page 8:
>> > >   " pipe = (RFC 6675 pipe algorithm) "
>> > >
>> > >      -> The algorithm here seems to depend on SACK, but the draft
>> also states:
>> > >         "It is most accurate and more easily implemented with SACK
>> [RFC2018], but does not require SACK."
>> > >          I think It is not clear how this algorithm works without
>> SACK.
>> > Great catch -- we define the non-SACK algorithm now in the pseudo and
>> > clarify in section 5
>> >
>> >    On every ACK starting or during the recovery:
>> >       DeliveredData = bytes newly cumulatively acknowledged
>> >       if (SACK is used) {
>> >          DeliveredData += bytes newly selectively acknowledged
>> >       } else if (ACK is a DUPACK and prr_delivered < RecoverFS) {
>> >          DeliveredData += MSS
>> >       }
>> >
>> >
>> > >
>> > > 5: Section 7 Page 9
>> > >      Why all examples shown here use Limited Transmit even though PRR
>> doesn't require it?
>> > >      I think there should be some explanations for it even if there's
>> no strong reason.
>> >
>> > We did mention that we assume RFC3042 in our section 7: "We also
>> > assume standard Fast Retransmit and Limited Transmit [RFC3042], ... ".
>> > We use it because it's a standard track RFC and really helps ack
>> clocking
>> >
>> > >
>> > >
>> > > 6: Page 10:
>> > >      It seems that the pipe size in the figure is different from what
>> RFC6675 calculates because Section 5 (4.2) in RFC6675 mentions
>> > >     "
>> > >
>> > >       note that [RFC5681] requires that any
>> > >       segments sent as part of the Limited Transmit mechanism not
>> > >       be counted in FlightSize for the purpose of the above
>> > >       equation.
>> > >
>> > >
>> > >
>> > >     Hence, I think the pipe size would be something like this if it
>> follows RFC6675.
>> > >
>> > >     Please let me know if I miss something.
>> > >
>> > >
>> > > 6675
>> > >    ack#   X  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19
>> > >    cwnd:    20 20 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
>> > >    pipe:    19 19 19 18 17 16 15 14 13 12 11 10 09 09 09 09 09 09 09
>> > >    sent:     N  N  R                             N  N  N  N  N  N  N
>> > >
>> > >
>> > > PRR
>> > >
>> > >    ack#   X  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19
>> > >    pipe:    19 19 18 18 18 17 17 16 16 15 15 14 14 13 13 12 12 11 10
>> > >    sent:     N  N  R     N     N     N     N     N     N     N
>> > Thanks for catching this. Yes we've updated -bis 02 to correct the
>> > pipe size of PRR to match RFC6675 in the initial phase of recovery.
>> >
>> >    RFC 6675
>> >    ack#   X  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19
>> >    cwnd:    20 20 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
>> >    pipe:    19 19 18 18 17 16 15 14 13 12 11 10 10 10 10 10 10 10 10
>> >    sent:     N  N  R                          N  N  N  N  N  N  N  N
>> >
>> >
>> >    PRR
>> >    ack#   X  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19
>> >    cwnd:    20 20 19 18 18 17 17 16 16 15 15 14 14 13 13 12 12 11 10
>> >    pipe:    19 19 18 18 17 17 16 16 15 15 14 14 13 13 12 12 11 11 10
>> >    sent:     N  N  R     N     N     N     N     N     N     N     N
>> >
>> >
>> >
>> >
>> > >
>> > >
>> > >
>> > > 6675
>> > >
>> > >    ack#   X  X  X  X  X  X  X  X  X  X  X  X  X  X  X 15 16 17 18 19
>> > >    cwnd:                                              20 20 10 10 10
>> > >    pipe:                                              19 19  4 10 10
>> > >    sent:                                               N  N 6R  R  R
>> > >
>> > >
>> > > Thanks,
>> > > --
>> > > Yoshi
>> > >
>> > >
>> > >
>> > >
>> > > _______________________________________________
>> > > tcpm mailing list
>> > > tcpm@ietf.org
>> > > https://www.ietf.org/mailman/listinfo/tcpm
>>
>