Re: [tcpm] alpha_cubic

Bob Briscoe <ietf@bobbriscoe.net> Tue, 28 September 2021 12:10 UTC

Return-Path: <ietf@bobbriscoe.net>
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 166113A2B28 for <tcpm@ietfa.amsl.com>; Tue, 28 Sep 2021 05:10:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 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, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=bobbriscoe.net
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 RCWyJHQPfwJL for <tcpm@ietfa.amsl.com>; Tue, 28 Sep 2021 05:10:52 -0700 (PDT)
Received: from mail-ssdrsserver2.hostinginterface.eu (mail-ssdrsserver2.hostinginterface.eu [185.185.85.90]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5FA803A2B26 for <tcpm@ietf.org>; Tue, 28 Sep 2021 05:10:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bobbriscoe.net; s=default; h=Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:References:Cc:To:Subject:From:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=m9MTiBWRHBUfFfcJKbWpRn5ajs9Wfx/063vdQwkR6B0=; b=DPXbDLmJztonqm5mlQPTDBVsQI lE19KI4MsjputdnpTpQ4dty4/7j/ku4qaTThD9FdnUPYhi2HWURSxFNmjuIMqGhzGe1qCBDPztpb+ GWGNLZ3NbLUCnwJWn8+PbIvrRpHOcyOThPmicReN4ov05GwEKxfBqTH23eQwAV+FcnsNM8SU7NRO5 xG9FlsMdUEa/JWUi3cAXMejp4CGtTobxAcS1bL/hPxUMMyTRobFx3UxE3Jb58Ses/xcBCB/m9avfN wPIIkNMzvxxXvdWScA59JQbe4CDq25tCj1dL/nJbwM3VEGkzg8xEcDPoF3/jelUI60zXG4BWpfhRQ cpCbZ/YA==;
Received: from 67.153.238.178.in-addr.arpa ([178.238.153.67]:46046 helo=[192.168.1.13]) by ssdrsserver2.hostinginterface.eu with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from <ietf@bobbriscoe.net>) id 1mVBwi-002VHF-92; Tue, 28 Sep 2021 13:10:48 +0100
From: Bob Briscoe <ietf@bobbriscoe.net>
To: Neal Cardwell <ncardwell@google.com>
Cc: Yoshifumi Nishida <nsd.ietf@gmail.com>, "tcpm@ietf.org Extensions" <tcpm@ietf.org>, Markku Kojo <kojo=40cs.helsinki.fi@dmarc.ietf.org>
References: <CAAK044SjMmBnO8xdn2ogWMZTcecXoET1dmZqd6Dt3WzOUi359A@mail.gmail.com> <alpine.DEB.2.21.2108300740560.5845@hp8x-60.cs.helsinki.fi> <ccfc4dc2-0570-1ba2-66a5-b5e199f11359@bobbriscoe.net> <CAAK044T-ZtZUuq4xBSuB1E9aqHOn96orXe=8ZMJHao_j4xpK3Q@mail.gmail.com> <2a3f7032-6548-061f-c6b1-a39442699228@bobbriscoe.net> <CAAK044Rcw2iryxQ7g-1nFGjnwxNkTX8NhnuGaOeDD=sQFH0sKw@mail.gmail.com> <8b67d4a4-798d-474d-aa9c-edb500f53b27@bobbriscoe.net> <CADVnQynHa6vLNdKCZ95gM6Rz+-+bz7A-D+W4VxrZ0EuAVAZG8w@mail.gmail.com>
Message-ID: <38410eee-67f5-6d31-ef00-b690fc876f6d@bobbriscoe.net>
Date: Tue, 28 Sep 2021 13:10:47 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0
MIME-Version: 1.0
In-Reply-To: <CADVnQynHa6vLNdKCZ95gM6Rz+-+bz7A-D+W4VxrZ0EuAVAZG8w@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------8BD69A9B2B3CA0F854614913"
Content-Language: en-GB
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - ssdrsserver2.hostinginterface.eu
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - bobbriscoe.net
X-Get-Message-Sender-Via: ssdrsserver2.hostinginterface.eu: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: ssdrsserver2.hostinginterface.eu: in@bobbriscoe.net
X-Source:
X-Source-Args:
X-Source-Dir:
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/wu6EjjIG-0Jywk9Q-onifajy0Xs>
Subject: Re: [tcpm] alpha_cubic
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: Tue, 28 Sep 2021 12:10:58 -0000

Neal, [re-sending with trimmed message body - too big for ML]

On 23/09/2021 22:46, Neal Cardwell wrote:
>
>
> On Thu, Sep 23, 2021 at 1:16 PM Bob Briscoe <ietf@bobbriscoe.net 
> <mailto:ietf@bobbriscoe.net>> wrote:
>
>     Yoshi,
>
>     To summarize the main concern I already wrote in my first email
>     (but perhaps didn't summarize well): the formula assumes
>     deterministic marking (i.e. some but not all AQMs, and definitely
>     not drop-tail). I believe a large majority of the bottleneck
>     buffers on the Internet are still drop tail, despite the efforts
>     of many to recommend AQM deployment. So it's not particularly
>     applicable to the real Internet.
>
>     It also assumes the sawteeth of flows with different RTTs all
>     centre on an operating point around the middle of the sawteeth,
>     which is perhaps true of RED, but not most other AQMs.
>
>     I will still try to develop a better formula - I've thought how to
>     do it in principle, but haven't developed the maths for it - it's
>     hard. But pls don't wait for me. The Cubic RFC's good enough, and
>     the precise value of the Reno-Friendly alpha parameter is fairly
>     irrelevant given the most prevalent deployment (Linux) ignores the
>     RFC and sets it much more aggressively to 1 instead of 0.53 anyway.
>
>
> Hi Bob,
>
> Can you please elaborate on the characterization of Linux TCP CUBIC as 
> using an alpha of 1 instead of 0.53?
>
> My experience in reading the Linux TCP CUBIC code and testing it and 
> examining its packet-by-packet behavior in congestion avoidance is 
> that it uses the 0.53 value.
>
> This is implemented in the code here:
> https://elixir.bootlin.com/linux/v5.14/source/net/ipv4/tcp_cubic.c#L297 
> <https://elixir.bootlin.com/linux/v5.14/source/net/ipv4/tcp_cubic.c#L297>
>
> Note that we have:
>   beta_scale = 15
> So the computation of:
>   delta = (cwnd * scale) >> 3;
> means:
>   delta = (cwnd * 15) >> 3;
> That means basically delta is:
>     cwnd * 15/8
>
> That means, for example, for a cwnd of 100, the number of packets that 
> need to be ACKed before increasing cwnd is:
>   100 * 15/8 = 187.5
>
> Since 187.5 is 1.875x the cwnd, the rate of cwnd increase is  1 packet 
> / 1.875 rounds, or  .533 packets per 1 round .
>
> So AFAICT this is implementing the correct 0.53 value you mention.

[BB] OMG. I've been labouring under this misapprehension for years. I 
just believed what someone told me about the Linux code because I 
trusted them, without ever checking it.

>
> Where Linux TCP CUBIC Reno-emulation additive increase is not ideal is 
> that once cwnd reaches W_max, it does not return the additive increase 
> to 1, in order to match Reno for long-term cwnd growth. I have a patch 
> series with that and a few related fixes that I am trying to find time 
> to polish up and send upstream.

[BB] Yes, that would be useful to fix.

>
> Apologies if I'm missing something or off in the weeds. :-)

[BB] No, mea culpa. I'm the one in the weeds.

So it matters even more whether 0.53 is really the correct value.


Thank you.


Bob

> best regards,
> neal
>
>
>
>     Bob
>

-- 
________________________________________________________________
Bob Briscoehttp://bobbriscoe.net/