[tcpm] Review: draft-balasubramanian-tcpm-hystartplusplus-01

Martin Duke <martin.h.duke@gmail.com> Wed, 08 January 2020 20:58 UTC

Return-Path: <martin.h.duke@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 A3F2A12021C for <tcpm@ietfa.amsl.com>; Wed, 8 Jan 2020 12:58:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Y6DLxeb1UTx9 for <tcpm@ietfa.amsl.com>; Wed, 8 Jan 2020 12:58:12 -0800 (PST)
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F0BD812012A for <tcpm@ietf.org>; Wed, 8 Jan 2020 12:58:11 -0800 (PST)
Received: by mail-wm1-x329.google.com with SMTP id b19so417273wmj.4 for <tcpm@ietf.org>; Wed, 08 Jan 2020 12:58:11 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=njDPFFOtMgWz2/R01MFqLqlfupMPEP1MQ73Ux2X6Opc=; b=HncYI3Vv4wFcT13h5QeorqchLBEI4s9nr1T73R6uJGKQOeAUzpSf8T1EJ2Jd24e5km 8JBO0pt0WiDQRvz5aob/1XquOcdfCR0Pwj47e/OVQlTHCKdXyLAI2COHiQgxKdV7Qmiq WQpNQPapEvirdFsDlG5m1J1FC3kRPzFS229/pMFJKo+bBhxFIiI+V/NQNBfWhvInpvlD Jdomlt89GahtK1LJFVYCx5hFpSIU6iBY+1t+qOguEspVRsMJyxMQjdMPoz8H/3rLVJ39 gqkKcXdpD0+cuFR9aud0mhXKhqULwSQgVIJzlMmOydCMCf+xRva+N+Io9ShtaxN2293D bfQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=njDPFFOtMgWz2/R01MFqLqlfupMPEP1MQ73Ux2X6Opc=; b=nMtl/eaCW+Qhv4XNilvVhNzf6Af0n3NVJoU0gxgR7vJed+lJMNw48F02A96UGT5FYE /ThO0OxMHTovodNyTj1/86yqM/fTf0gGHgZ//GSc262MViXVA9n9Ph4lzFZZazOc8l+C DMQsydeiQlcMwrQh0FKmu5C5wEuW/C0D5ql+06/qLMtaHJlPZbmdh8nwBuo+a3R3EfC4 iJ0gdT4x+IgR0JdT+iSYSJjVSeB/NHMzXGA7/+BdrvRyWQBzazeDAPZInQh5hNOi915W 1XCHIeltCH54OZ+ZAZtTpuun8XmIywhbB5lrK93OB3AhXCqFTGBUifs/+uBHLWRxVCg3 VjCQ==
X-Gm-Message-State: APjAAAVo/1tno3wS0fjfQSpNMnA5BUdcoClKuEC6Mw9zMCSIoE371xAQ /tph7ceWWlEcxQ+/ZF1PLve+8Zopa6ACI24ldDCcHBRe9b8=
X-Google-Smtp-Source: APXvYqyCVkHS7bfGW9OCpgMfuZJFHsja75YMP/vy58p3OO5fokn34KPefF6XpZ4rswLL1iO9qOKjuDwXFG3mTGK72z8=
X-Received: by 2002:a05:600c:2c13:: with SMTP id q19mr578801wmg.144.1578517090290; Wed, 08 Jan 2020 12:58:10 -0800 (PST)
MIME-Version: 1.0
From: Martin Duke <martin.h.duke@gmail.com>
Date: Wed, 08 Jan 2020 12:57:58 -0800
Message-ID: <CAM4esxT1_dCoRFvnrN3u7Wjxw9vj4WoQ5dQ4oo2qay8cef+ZaQ@mail.gmail.com>
To: "tcpm@ietf.org Extensions" <tcpm@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000705223059ba726ab"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/RH0fsDarhZJs5HfGh7AZSNOg2q0>
Subject: [tcpm] Review: draft-balasubramanian-tcpm-hystartplusplus-01
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
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: Wed, 08 Jan 2020 20:58:14 -0000

Hi Praveen,

Thanks for writing this up. It's great to hear what's actually happening
out there with major implementations.

1. I think this draft has a somewhat uncomfortable relationship with ABC
(RFC 3465), which for some reason is still Experimental. In each
description of Slow Start (Sec 1 and 3.2) you say one MSS per ack, which is
the non-ABC Reno behavior. But then the actual LSS algorithm uses bytes
counted.

Note that for a non-ABC implementation that also uses HyStart++, this means
an LSS_DIVISOR as low as 0.5 can cause LSS to be *more* aggressive than
regular slow start if the receiver acks every other packet. In the non-RFC
but common case where ACKs are aggregated even more aggressively, LSS can
be more aggressive than slow start for arbitrarily low divisor values. I'm
not sure the design has to change, but there ought to be some discussion of
these considerations.

2. in section 3.2, you set the ssthresh to cwnd upon entering LSS. But then
later you say "HyStart++ ends when cwnd exceeds ssthresh..." which by
definition is immediately. I think you mean the normal Reno/Cubic ssthresh;
perhaps it would be better to invent a new name for the value that is used
in computing K.

Similarly, I don't believe MIN_SSTHRESH has any relationship to the
conventional ssthresh (i.e. it is not a minimum) and therefore should also
be renamed.

3. Section 3.3 could use some further considerations for setting these
parameters. In particular, values of LSS_DIVISOR > 1 will be more
aggressive than slow start, at least for low values of cwnd/ssthresh.
Depending on the result of #1 above, the warning may need to be for a lower
value.

4. Though not necessary to make this draft worthwhile, some data from
Microsoft's deployment showing the value of this would be helpful. If I
were to try to sell this feature to our customers, they would probably want
to see that it was providing benefits to large traffic generators rather
than backing off for the good of the internet. In particular, I wonder
whether Reno/Cubic is fair to Hystart++ as regular slow start would seem to
cause LSS to cut the throttle.

Nits:
- Please spell out SMSS before using it.
- Title of 3.3: s/Constant/Constants
- 3.3. You are little sloppy with units. MIN_SSTHRESH is clearly measured
in bytes in Sec 3.2 but is reported in segments in this section.

Martin