Re: [tsvwg] "Pacing" requirement is lost in L4S

Vasilenko Eduard <vasilenko.eduard@huawei.com> Fri, 19 April 2024 10:01 UTC

Return-Path: <vasilenko.eduard@huawei.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 59C85C14F60F for <tsvwg@ietfa.amsl.com>; Fri, 19 Apr 2024 03:01:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.895
X-Spam-Level:
X-Spam-Status: No, score=-6.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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 8w64r-jKrozc for <tsvwg@ietfa.amsl.com>; Fri, 19 Apr 2024 03:01:48 -0700 (PDT)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E9EE9C14F71A for <tsvwg@ietf.org>; Fri, 19 Apr 2024 03:01:44 -0700 (PDT)
Received: from mail.maildlp.com (unknown [172.18.186.216]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4VLVY06vqDz6DB3M; Fri, 19 Apr 2024 18:01:40 +0800 (CST)
Received: from mscpeml500003.china.huawei.com (unknown [7.188.49.51]) by mail.maildlp.com (Postfix) with ESMTPS id E80441400CF; Fri, 19 Apr 2024 18:01:41 +0800 (CST)
Received: from mscpeml500004.china.huawei.com (7.188.26.250) by mscpeml500003.china.huawei.com (7.188.49.51) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.28; Fri, 19 Apr 2024 13:01:41 +0300
Received: from mscpeml500004.china.huawei.com ([7.188.26.250]) by mscpeml500004.china.huawei.com ([7.188.26.250]) with mapi id 15.02.1258.028; Fri, 19 Apr 2024 13:01:41 +0300
From: Vasilenko Eduard <vasilenko.eduard@huawei.com>
To: "Bless, Roland (TM)" <roland.bless@kit.edu>, "tsvwg@ietf.org" <tsvwg@ietf.org>
Thread-Topic: [tsvwg] "Pacing" requirement is lost in L4S
Thread-Index: AdqSNQebXSBBdSUyTsuxQQxBxCIgz///2D0A///D+oA=
Date: Fri, 19 Apr 2024 10:01:41 +0000
Message-ID: <12c7c1300b004691a59ac950e66c3e2b@huawei.com>
References: <a19c38376c7541b89a3d52841141fa0c@huawei.com> <cff2147d-e203-4106-b7d6-65a8573e2c22@kit.edu>
In-Reply-To: <cff2147d-e203-4106-b7d6-65a8573e2c22@kit.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.199.56.41]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/J9pm0IHB3ea2J6iFC11BkHaSM10>
Subject: Re: [tsvwg] "Pacing" requirement is lost in L4S
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Apr 2024 10:01:52 -0000

Hi Roland,
Thanks for your reply.

1.
CC may measure RTT, understand buffer growth, and increase the interval between packets.
Reaction by W and T looks the same effective against loaded buffer.
Actially W is easy to re-calculate to T. I do not see a problem.

2.
It looks like I use the wrong terminology because "pacing" for me is exactly the situation when information is sent on some timer (that may change slowly).
But you use "pacing" in combination with "BBR rate-based sending" which looks to me like "pacing for pacing".
It looks like "pacing" is something different for you.
Probably it is my fault. But I have not understood.

Eduard
-----Original Message-----
From: Bless, Roland (TM) <roland.bless@kit.edu> 
Sent: Friday, April 19, 2024 12:17
To: Vasilenko Eduard <vasilenko.eduard@huawei.com>; tsvwg@ietf.org
Subject: Re: [tsvwg] "Pacing" requirement is lost in L4S

Hi Vasilenko,

[not answering w.r.t. the Scalable requirement, but like to discuss a different point]

I strongly disagree with your conclusion that we should forget about Window-based CC. Window-based CC has the big advantage of being self-stabilizing and thus limiting the amount of queuing delay.
Rate-based CCs are harder to control in this respect: the amount of queued data at the bottleneck buffer may grow over time in case you overestimated the available bandwidth.

However, you are right that window-based CC may cause micro-bursts due to various causes (application rate limits or distorted ACK clocking). While I agree that the ACK clock isn't that reliable anymore these days (see also
https://dl.acm.org/doi/10.1145/3371934.3371956 "Deprecating the TCP macroscopic model"), I disagree with abandoning window-based CCs due to that.
The counter-measure against micro-bursts and underutilization that may be caused by distorted ACK clocks is *pacing*!
This avoids micro-bursts and lets the sender keep sending for a limited time period even if ACKs are not on time.

So my conclusion is that you should actually combine both:
*window-based CC + pacing* or similar to BBR rate-based sending+pacing + control of the inflight data amount (which is similar to window-based CC).

Regards,
  Roland

On 19.04.24 at 10:39 Vasilenko Eduard wrote:
> I see L4S as the "Congestion Control Next Generation from IETF" (that is actually in competition with "Congestion Control Next Generation from Google").
> Then I see the important requirement that is missing in L4S.
> 
> The primary requirement for CC is that it "should not grow the buffer on the bottleneck link".
> It is very disputable: is "the Scalable" requirement about it or not? Let's pretend that it is about it.
> 
> Then the next critical requirement is "pacing" which is missed in L4S completely.
> Kudos to Google because I understood its importance after one local (but big) company tested and investigated BBRv1 (then implemented it).
> After tests, they concluded that pacing is even more important than 
> low latency. (I doubt, probably latency is more important) Imagine that the server would increase the window sharply. The Server may have a 100GE interface. It could generate 10us of traffic as a burst (or even more).
> Intermediate links could be 100GE or even bigger (highly probable), and the burst would travel as it is (without any spreading).
> Then this burst could arrive at 10Mbps subscriber (good performance for shared public WiFi). 0.01ms burst would become 100ms burst.
> It would create many negative consequences for the bottleneck link:
> - tail drop if buffers are not enough
> - guaranteed huge latency
> Hence, we should completely forget about W (window) while discussing CC, we have to use T (time between packets).
> CC next generation "should avoid bursts regulating inter-packet time, not the information permitted in transit".