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

Yoshifumi Nishida <nsd.ietf@gmail.com> Tue, 20 September 2022 09:04 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 33593C1522BD for <tcpm@ietfa.amsl.com>; Tue, 20 Sep 2022 02:04:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.105
X-Spam-Level:
X-Spam-Status: No, score=-7.105 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_HI=-5, 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=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 0NeYK4Dv7tVG for <tcpm@ietfa.amsl.com>; Tue, 20 Sep 2022 02:04:07 -0700 (PDT)
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) (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 30798C1522BB for <tcpm@ietf.org>; Tue, 20 Sep 2022 02:04:07 -0700 (PDT)
Received: by mail-wr1-x433.google.com with SMTP id z6so3211662wrq.1 for <tcpm@ietf.org>; Tue, 20 Sep 2022 02:04:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=RCdvp83DnXAwimBTBBjfja0CdgkeAO8YHHxSfrbh5VU=; b=Y4kJGKOar8Lla2t2ACEZn6MCh3hth5otTB7dV+7jRP6YLKbIGz6JO09OcpG+upkVVz 3VAt9jm6Er12waKjS5jH1q0qNwboXumuqqNnnkmmWtacF/74DgzuWm+ktNkkF+L0JxJW ChBGzOi2zbu9jLpdGvUxxYxBcu2uwfiue6mRTTz+281/E2yJqkI/PouD3L5sqKHR2nQD lYsueEZQg6pojQesdifd07lg8KjU/ADy87MUbeCQHeZdWlzQ8oz8C5KrQUZMEqX7mFD5 vUPazkZNMC+zT0ySV+CO8vPqjl6A/0PiHqWtYZ7iA1xRyfQROWA57ubtmctb6h/4wkNK wVOg==
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=RCdvp83DnXAwimBTBBjfja0CdgkeAO8YHHxSfrbh5VU=; b=KijQjkPnn2q+zPJ6+Tc6raJjsuaxMIWz6BKcTxvgjcdI8Iezrb0wbNrKXXtmMVs+XD rltVnpaPQLK9QHhLayQg1GSh2Ydxd0LYiWSZ9a6wnPvA7CT+V0hZdhhAITchEsplue6e FbfFzEEMdRiq/jvNokGqnfbthUreTVkZcS2bEqD1zmpAV5RnTq5q7iSN2AiywMI9uCUQ L7QUhoB5AxQgE6z9QfsCXH5ELPU0LmMBN5o6Sgw4RMTFiSVY0LS6O0oLKoCaVcc4ja5k B2Wq+ojcrBIrzhFkcMWw5M+QfBiN/7u5AoaWge4Ran4OXGH1dlxoX/xpAyyBoBU3lm2p oNog==
X-Gm-Message-State: ACrzQf1LeV29xFNai7vfbrm8g4+e2uNNSeibXqCVDeWMdzOdIr3OY85a zR6ZWdxdpyrt2OO/ILIH8J09nPBdVrKk9GjH8m/Izp4x
X-Google-Smtp-Source: AMsMyM6bwXZrX+tGta+k9f/0jqpyrgK22xp53Pm1KROr19Fh1XhKtx3gCnMPRMDOPyj8CmH9J95P+0Fn1n9RvKsQ7KM=
X-Received: by 2002:adf:ed81:0:b0:226:a509:14b6 with SMTP id c1-20020adfed81000000b00226a50914b6mr13159101wro.150.1663664645495; Tue, 20 Sep 2022 02:04:05 -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> <CAK6E8=dnNNup8142puKPqcj_S9GcJ5OYpipyeOZmejVL8m9Etw@mail.gmail.com>
In-Reply-To: <CAK6E8=dnNNup8142puKPqcj_S9GcJ5OYpipyeOZmejVL8m9Etw@mail.gmail.com>
From: Yoshifumi Nishida <nsd.ietf@gmail.com>
Date: Tue, 20 Sep 2022 02:03:54 -0700
Message-ID: <CAAK044SW2xfq2cW4z5Ux9oobw-6Dn66hFbas-J4PFg2-3isk5A@mail.gmail.com>
To: Yuchung Cheng <ycheng@google.com>
Cc: "tcpm@ietf.org Extensions" <tcpm@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000385ee705e9181cd2"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/tJCI29W7BaWiCLcNO1xl6aCPurE>
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: Tue, 20 Sep 2022 09:04:08 -0000

Hi Yuchung,

Got it. Thanks for the clarification.
--
Yoshi

On Sat, Sep 17, 2022 at 4:32 PM Yuchung Cheng <ycheng@google.com> wrote:

> 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
>>>
>>