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

Vasilenko Eduard <vasilenko.eduard@huawei.com> Fri, 19 April 2024 13:16 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 99F8DC14CE42 for <tsvwg@ietfa.amsl.com>; Fri, 19 Apr 2024 06:16:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.194
X-Spam-Level:
X-Spam-Status: No, score=-4.194 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, 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_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 RVlG_BcRYXHt for <tsvwg@ietfa.amsl.com>; Fri, 19 Apr 2024 06:16:20 -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 B107AC14F5F2 for <tsvwg@ietf.org>; Fri, 19 Apr 2024 06:16:06 -0700 (PDT)
Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4VLZpt3yFxz6F970; Fri, 19 Apr 2024 21:13:58 +0800 (CST)
Received: from mscpeml500003.china.huawei.com (unknown [7.188.49.51]) by mail.maildlp.com (Postfix) with ESMTPS id E55CE140B2A; Fri, 19 Apr 2024 21:16:04 +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 16:16:04 +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 16:16:04 +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+oCAAFfqgP//qnzg
Date: Fri, 19 Apr 2024 13:16:04 +0000
Message-ID: <f2df9ab26346406ea55a69bf02bc8388@huawei.com>
References: <a19c38376c7541b89a3d52841141fa0c@huawei.com> <cff2147d-e203-4106-b7d6-65a8573e2c22@kit.edu> <12c7c1300b004691a59ac950e66c3e2b@huawei.com> <e45b1d63-62e5-446c-abcf-3a22e911de1b@kit.edu>
In-Reply-To: <e45b1d63-62e5-446c-abcf-3a22e911de1b@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/-Lx43lNVKuRrboZiNUS8X2ph6OE>
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 13:16:24 -0000

Hi Roland,
Thanks. Looks like I have understood now.
Pacing or rate-limiting is about what is the averaging interval.

The example that I have presented initially (bump to the low-speed link) needs pacing (on the small interval).

I still do not understand why it is so mandatory to have the "window" concept.
Because if CC is capable of limiting the bottleneck queue in any way then "unlimited queue growth" is not possible.
I believe that the clear ECN signal is very good for this purpose, but observing the RTT looks not bad too (as BBR has proved).
If one has any of these then one does not need a "window".

"Congestion window" is a very good mechanism to get a bigger latency.

Anyway, the fact that L4S is not talking about how to mitigate burstiness is a big hole in the "Next Generation Congestion Control".
Eduard
-----Original Message-----
From: Bless, Roland (TM) <roland.bless@kit.edu> 
Sent: Friday, April 19, 2024 13:57
To: Vasilenko Eduard <vasilenko.eduard@huawei.com>; tsvwg@ietf.org
Subject: Re: [tsvwg] "Pacing" requirement is lost in L4S

Hi Vasilenko,

On 19.04.24 at 12:01 Vasilenko Eduard wrote:
> 1.
> CC may measure RTT, understand buffer growth, and increase the interval between packets.

Delay-based CC is a different aspect and orthogonal to pacing, but typically pacing is also beneficial for them.

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

As I said, the difference is that a sheer existence of a congestion window has a self-stabilizing effect on buffer occupation, whereas two senders that simply send with perfect average rate shares towards a bottleneck (but slightly bursty sending rate, e.g., packet sending times from an exponential distribution) may cause unlimited queue growth.

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

Personally, I actually like to distinguish between rate-based sending and pacing:
BBR calculates a target sending rate and uses paced sending to avoid burstiness even on smaller time scales. You could effectively use the same target sending rate over a larger interval, e.g., RTT_min and send it in a much more bursty manner.
That would still be rate-based, but without pacing.

Regards,
  Roland

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