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

Yuchung Cheng <ycheng@google.com> Thu, 04 August 2022 14:01 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 5F0BCC14F740 for <tcpm@ietfa.amsl.com>; Thu, 4 Aug 2022 07:01:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.608
X-Spam-Level:
X-Spam-Status: No, score=-17.608 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, 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 eVbsghYjWXd2 for <tcpm@ietfa.amsl.com>; Thu, 4 Aug 2022 07:01:49 -0700 (PDT)
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) (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 07758C14CF0F for <tcpm@ietf.org>; Thu, 4 Aug 2022 07:00:51 -0700 (PDT)
Received: by mail-wm1-x32a.google.com with SMTP id l19so3606442wms.1 for <tcpm@ietf.org>; Thu, 04 Aug 2022 07:00:51 -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; bh=BSr8kDRgN5nVjT/j7ttQUaPhkD4C5CLegFOlBar/+sk=; b=kISOMn+2wRwxVLmhznvKMJWmbnXvyyGVFD5nTJIo9xFZ7YIo5rW1EQj7vu4zIletjI HmaOlH4AkqAKBQInCpKEZKhVqnjAZx3GNQfbmDTIS4oh7l35UWLX1W3htzJ9nt/AXkSu 70N+fzEnbQKjFGuQoAK1Q2eeNDnZvBnpfw/g7H1joY9pzCErzzkORP/9tL9hiRsI/l/f BvN9Z/Dw2tgl+5ZcQtllYzLO9dr45wHlZUnrCXXXEYCp38iAj8gyuoZ5+1UyiGnTOMK5 7vUYpQSU+bnEaw9dqL4lzHr35EInCWS1nCeFYipSUrrVtORkLlx7zb9hWNEpxcrtQROU +9WQ==
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; bh=BSr8kDRgN5nVjT/j7ttQUaPhkD4C5CLegFOlBar/+sk=; b=kzNFITAWYXLm+/ZP/AVUj5EU5+P4+XvpbxmUSSqdSFsbRJGpf6grtGkSTNIQERXzOp 6OZd89PZCtxqjMJD8Oc16I/50sRyJHn43yoZBEz35IGq4MWMMN5wY7mTjXrne8tu5240 Zw+jhKr5DLN07cwbnOw8jiz+fI7F6Wi9bx5/Cp2lxtLnZIkTV8TI5QsSEXwEvGy/MZ4J v3HF0qCYC2cdPo84LWgdp1CTYphzIWxZN3kPHlKmsylRcybYBbLj37yqLmV/g6iliEF2 BeqfUCVNmyYrpQFdqk4/jY+BhKFqCFfzaxlPTzmxMsBTO+ZEVmJ/RmvqFqVBZGPZ7q7c CIEQ==
X-Gm-Message-State: ACgBeo1Di4tPHavvqUjPBMfHM6Xb92x9soiy6ta2l7CTUlbsdTKmEI6y Jh2KJ2EbTV4FcY5rU+XyvdjNoNJWDQ59UteBHIhf44bOyKk=
X-Google-Smtp-Source: AA6agR7I9F7du8pZyIRM/ouLs4+7Rt3AxcCHHXw40Wd7gDrfmTTbuZ7+pdJoE2S92UrmYVrqCcnxu+r7NsRzX7YMtKA=
X-Received: by 2002:a05:600c:154c:b0:3a3:4383:e13f with SMTP id f12-20020a05600c154c00b003a34383e13fmr1549232wmg.16.1659621649684; Thu, 04 Aug 2022 07:00:49 -0700 (PDT)
MIME-Version: 1.0
References: <CAAK044TS==yvSf+ve22XVQGU2s2os2P8cqckLykmMb9XEa9MTw@mail.gmail.com>
In-Reply-To: <CAAK044TS==yvSf+ve22XVQGU2s2os2P8cqckLykmMb9XEa9MTw@mail.gmail.com>
From: Yuchung Cheng <ycheng@google.com>
Date: Thu, 04 Aug 2022 10:00:13 -0400
Message-ID: <CAK6E8=fc9KsUHD1Bd7GjdLSu=6USYnsxtB+nnEJr0vZ1TDRQ9g@mail.gmail.com>
To: Yoshifumi Nishida <nsd.ietf@gmail.com>
Cc: "tcpm@ietf.org Extensions" <tcpm@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/2Y_tck6KdqD-YUrNAoxnuG9FgQE>
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: Thu, 04 Aug 2022 14:01:50 -0000

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