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

Martin Duke <martin.h.duke@gmail.com> Thu, 08 September 2022 16:54 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 49F20C1526E7; Thu, 8 Sep 2022 09:54:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.107
X-Spam-Level:
X-Spam-Status: No, score=-7.107 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] 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 FkRXXjqyxALT; Thu, 8 Sep 2022 09:54:07 -0700 (PDT)
Received: from mail-qk1-x729.google.com (mail-qk1-x729.google.com [IPv6:2607:f8b0:4864:20::729]) (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 632FEC14F718; Thu, 8 Sep 2022 09:54:07 -0700 (PDT)
Received: by mail-qk1-x729.google.com with SMTP id g16so13360437qkl.11; Thu, 08 Sep 2022 09:54: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=TmMELqT9a4RRtwLPae5zFmONv9gfF8OUFG/vyHsud38=; b=IngJ23TLEbaadiY2z0m57Rclk9lzdzHwZNKrjQ3RhJR05Htcj8e1t9lxJFWRC/r8Jx MTah5esmGxVM5NnNQ26RJoBOB7oIuAZqI3dqJt1MSbvDMXkEpmee0GsIMASEx00xC7fM nnXOtT2axFilL0zsQusXAEhaO2zAX8Z/2B9wbrKAKcjO5akMexppFdmGRFh3EgHa8XU0 pPsYoAKD11jMAa6PgtS5flWfTMoHP7tUiArI7CB+d7oWPiVEUcKkZLbAL0f1sGB2jP4o Cgv8ZghHVKAX7DkoPko8EaJBtcO373/CGAjHk2J0FIx9J/2/WdnYYXk9hsVsOaWmBwVQ lWuA==
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=TmMELqT9a4RRtwLPae5zFmONv9gfF8OUFG/vyHsud38=; b=yIIWor7emca/UfwdvkQCdtxUE6bCkpZ+VbUTsToC9r7HxvL+nrfW+9ymk8dRvFPaLg 0GHA7foR0DbLGDPFzZXJpbM+43a8Zs3OTOYHulKHjS5i7Q0kGo2/wzzgUG6IHtzCrCLP eOW4QcsAhcfgsEaO/1xPpN28Sm36c+l/rst++/E/X/FCu0sK1pkangoyIyebzQwM797B y6VPpWn3h/LUw4XQhbPiT04/xa8ZKuBiCeI8TSxfWaUl1ZHep696q9dxUG18Rn/nxith 18hj7ShMUJMWs4MoJiFtVcINXT6spPXxOIcGoMVHWVbXjw2ADKVwaM+/YbIfF7fsj3S+ nqbw==
X-Gm-Message-State: ACgBeo28oX8w1TpcKqf6JMqZKJQCegPI298leWm8ht9gwPStxq0P9emV A6+jjL8btO8F6aQIendRyq3j7AKscumCcQqS3DM=
X-Google-Smtp-Source: AA6agR6NJPhfSwe6N2hjVSvsGpaw+8aW23pcCTu1irLYL8jmZtND1IUiaGqymIZsNqMB/ujYaZ+Hk/K7aN7PD2RbRIM=
X-Received: by 2002:a05:620a:4409:b0:6bb:beeb:215e with SMTP id v9-20020a05620a440900b006bbbeeb215emr7402300qkp.414.1662656046245; Thu, 08 Sep 2022 09:54:06 -0700 (PDT)
MIME-Version: 1.0
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>
In-Reply-To: <CADVnQym61GQ5zqE8+VpkB9=D03UYwWyVodbJECY319vkP9qDjQ@mail.gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Thu, 08 Sep 2022 09:53:54 -0700
Message-ID: <CAM4esxSobvx4yiYkGe0xgPEO7=s_tCo4-ieWHNedai+xmeZiOA@mail.gmail.com>
To: Neal Cardwell <ncardwell@google.com>
Cc: Michael Tuexen <tuexen@fh-muenster.de>, draft-ietf-tcpm-hystartplusplus.all@ietf.org, "tcpm@ietf.org Extensions" <tcpm@ietf.org>, Yuchung Cheng <ycheng@google.com>
Content-Type: multipart/alternative; boundary="000000000000052cae05e82d47b9"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/d098nHOast7lS3jL6CG5K0yWp-Y>
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 16:54:08 -0000

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.

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