Re: [tcpm] AD Review of draft-ietf-tcpm-hystartplusplus-09

tuexen@fh-muenster.de Thu, 08 September 2022 21:12 UTC

Return-Path: <tuexen@fh-muenster.de>
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 67D74C152597; Thu, 8 Sep 2022 14:12:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level:
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
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 uvBvZ-hXaLIW; Thu, 8 Sep 2022 14:12:25 -0700 (PDT)
Received: from drew.franken.de (drew.ipv6.franken.de [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C75ACC14F747; Thu, 8 Sep 2022 14:12:22 -0700 (PDT)
Received: from smtpclient.apple (unknown [IPv6:2a02:8109:1140:c3d:949a:a2ea:d6cc:4c5a]) (Authenticated sender: macmic) by mail-n.franken.de (Postfix) with ESMTPSA id 178EA721A5A6C; Thu, 8 Sep 2022 23:12:16 +0200 (CEST)
Content-Type: multipart/signed; boundary="Apple-Mail=_3F7F535B-7FEF-4B0E-85FD-F3BDB19FF755"; protocol="application/pkcs7-signature"; micalg="sha-256"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\))
From: tuexen@fh-muenster.de
In-Reply-To: <CAM4esxSobvx4yiYkGe0xgPEO7=s_tCo4-ieWHNedai+xmeZiOA@mail.gmail.com>
Date: Thu, 08 Sep 2022 23:12:15 +0200
Cc: Neal Cardwell <ncardwell@google.com>, "tcpm@ietf.org Extensions" <tcpm@ietf.org>, draft-ietf-tcpm-hystartplusplus.all@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <E4EE4022-9956-46B4-8118-456ED4800EF9@fh-muenster.de>
References: <CAM4esxTikRRRLOtmO4bezXvjjDiQ3cpRNqtT_2YaEUQrFUrECw@mail.gmail.com> <0E94A985-516C-4287-9789-50D3A682211B@fh-muenster.de> <CAM4esxS-3kZDLp-1n3JM3jOH=4ZLNaf0vsszMgqrJ7ss=jxcCg@mail.gmail.com> <D98D5BA8-B5B8-42F7-AF61-352235D8BC39@fh-muenster.de> <CAM4esxQNfuMKq+pj0v2+mO8Mxq8nbpgmVDai-WgLvgCfXrtibQ@mail.gmail.com> <741E2E66-0EC9-48E3-BF8E-4EFE000567D2@fh-muenster.de> <CADVnQym61GQ5zqE8+VpkB9=D03UYwWyVodbJECY319vkP9qDjQ@mail.gmail.com> <CAM4esxSobvx4yiYkGe0xgPEO7=s_tCo4-ieWHNedai+xmeZiOA@mail.gmail.com>
To: Martin Duke <martin.h.duke@gmail.com>
X-Mailer: Apple Mail (2.3696.120.41.1.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/MSB7aLUeMm0usrIHbrA00Dlufog>
Subject: Re: [tcpm] AD Review of draft-ietf-tcpm-hystartplusplus-09
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, 08 Sep 2022 21:12:27 -0000

> On 8. Sep 2022, at 18:53, Martin Duke <martin.h.duke@gmail.com> wrote:
> 
> Hi Neal, thanks for the data.
> 
> Given its wide deployment, I'm happy for the spec to allow L_max = infinity, assuming the community is fine with it.
So would you be happy with:

The positive integer L SHOULD be 1 and MAY be larger than 1. 

Best regards
Michael
> 
> I don't care that much, in theory, whether L limits are defined in this document or in another one. However, in practice adding about 2 paragraphs to this document would allow us to obsolete 3465. If we can rapidly reach consensus on this, it seems like the expeditious thing to do.
> 
> The alternative is to simply eliminate L from Hystart++, and we "really know" what people will do in production.
> 
> On Thu, Sep 8, 2022 at 9:42 AM Neal Cardwell <ncardwell@google.com> wrote:
> 
> 
> On Wed, Sep 7, 2022 at 5:46 PM <tuexen@fh-muenster.de> wrote:
> > On 7. Sep 2022, at 22:44, Martin Duke <martin.h.duke@gmail.com> wrote:
> > 
> > 
> > 
> > On Wed, Sep 7, 2022 at 1:15 PM <tuexen@fh-muenster.de> wrote:
> > > On 7. Sep 2022, at 21:40, Martin Duke <martin.h.duke@gmail.com> wrote:
> > > 
> > > I would be happier with some sort of limit on L. Maybe: the positive integer L SHOULD be 2 and MUST be no more than 8(?) But whatever numbers the community is comfortable with are fine with me.
> > Hi Martin,
> > 
> > the crucial point here is that we know that MS used L = 8. But we don't have any information,
> > whether other values of L are worse or better, what the tradeoffs are and in particular
> > what traffic patterns impact the choice of L. Wouldn't we need such an analysis / results
> > from an experiment for selecting an upper limit L_MAX? I would assume that it might
> > have an impact whether pacing is used or not.
> > 
> > Well the community has at least some data that L = 8 is safe on the internet. Maybe some other practitioners have data for 16 or 32 or whatever. It would be reasonable to set some sort of limit based on the limits of our empirical limit.
> Sure. My point was just that the results provided my MS show that L_MAX <= 8 seems to
> be safe in the scenario they looked at. But there is no statement that L_MAX > 8 is
> bad...
> > 
> > It would be fine to say "one SHOULD NOT exceed L = foo if you're not pacing"
> > 
> >  
> > > 
> > > I'd also be happier with a cut-and-paste of those considerations from 3465, which should not be a lot of work.
> > > 
> > > The lower-effort approach is just to strike L from the document and let people do what they've doing, which is use Ls well in excess of 2. But I'd prefer we'd actually write it down because
> > > (1) our standards are better if they reflect widespread behavior in the internet; and
> > I agree with the above.
> > > (2) it means we can finally make 3465 historic, as we have standards-track documents that cover virtually all of its material.
> > > 
> > > If the community really cannot converge on sensible limits for L, then I'd rather publish with no L than wait for a deadlock to resolve.
> > In my view, the selection of L is not part of the core of the document.
> > 
> > This document standardizes a new slow start algorithm, which includes L as a parameter, for which there is no standard.
> My point was that there is no L_MAX given here.
> >  
> > > 
> > > But as a way forward, I'd suggest:
> > > 1) the authors propose text that sets bounds on L (a SHOULD and a MUST) and cut-and-pastes the considerations.
> > Aren't the consideration in RFC 3465 coming to the conclusion: L SHOULD be 1, MAY be 2, MUST NOT be larger than 2?
> > How to use the same considerations to come to a different conclusion: L SHOULD be 2, MUST NOT be larger than L_MAX
> > for L_MAX > 2?
> > 
> > Re: SHOULD 1 or 2, I don't have a strong opinion but I feel like the 3465 experiment shows that 2 is safe, and somewhat beneficial given the prevalence of ack thinning? If there is no consensus for this, I'm happy to go with 1.
> > 
> > L_MAX: My preference is to set a value that is widely deployed with good data that it is safe to do so
> Let us see if people provide data which values are good and which values are bad...
> 
> FWIW, Linux TCP has been using L_MAX=infinity since 2013:
> 
>   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9f9843a751d0a2
> 
> IMHO trying to limit bursts with an L parameter is misguided:
> 
> + AN L limit is only a partial solution; TCP RFCs still allow massive line-rate bursts of cwnd when restarting from idle, which is super-common in some very common Internet workloads: web traffic, streaming video, RPC.
> 
> + To avoid such bursts, whether restarting from idle or not, TCP stacks should enable pacing.
> 
> + Once pacing is enabled, having an L limit purely shoots your flow in the foot, causing it to fail to double cwnd each round trip in slow start in the very common case of the many ubiquitous aggregation mechanisms that cause ACKs to arrive for dozens of packets at a time (e.g.. Linux GRO/LRO commonly aggregate 45 packets into a single unit that is processed and ACKed as a unit).
> 
> IMHO ideally burst control, pacing, and L limits should be separated from Hystart++, and should have their own RFC.
> 
> And whatever is done, at a minimum Hystart++ should not depend on RFC3465 (ABC) (though it could mention it in passing to provide context).
> 
> my two cents,
> neal
> 
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm