> On 25 Jul 2022, at 10:41, Toerless Eckert <[email protected]> wrote:
> 
> On Mon, Jul 25, 2022 at 10:20:48AM +0200, Michael Welzl wrote:
>>> Think of it as that the transport layer controls/avoids the congestion for 
>>> the application. The symptoms of the congestion are packet loss and/or long 
>>> queuing delay which *may not* be desirable for the application. If the 
>>> application works fine with the presence of the congestion, then they do 
>>> not need the congestion control.
>> 
>> That’s wrong. Such an application can harm everyone else. Even CBR 
>> applications should at least have a circuit breaker.
> 
> And if i remember correctly, our circuit breaker work doesn't even include
> the level of complexity to isolate non-congestion loss first. With more
> and more radio network links coming up without hop-by-hop FEC to maximize
> performance  and interest to do FEC at end-to-end layer, this is becoming
> more and more an issue.
> 
> Thats also a more fundamental question against the scope of this congestion
> work: Is it going to include the problem of dealing with non-congestion loss.

This, too, is completely orthogonal to this thread  (on changing the name from 
“congestion control” to something better).

Cheers,
Michael


> 
> Cheers
>    Toerless
> 
>>> Otherwise they need to do something to "control the congestion" because if 
>>> they don't and send as fast as network interface speed, they will 
>>> experience congestion in the bottleneck somewhere along the path. And the 
>>> congestion may also be caused by other bottleneck-sharing flows which sends 
>>> too fast. The means to control the congestion is adjusting the sending rate 
>>> in the form of send window or pacing rate. The name congestion control 
>>> talks about the goal of the algorithm and sending rate control talks about 
>>> the means to achieve the goal.
>> 
>> But it’s not just “congestion” that this is about - an application which 
>> never uses feedback about the path will also never learn how fast it *could* 
>> have sent. Sending as fast as allowed, thereby cutting transfer completion 
>> time (thereby reducing latency and energy wastage!) is what good CC can give 
>> to an application, and this is completely hidden by the current name of this 
>> functionality.
>> 
>> Indeed, CC on the Internet (as opposed to datacenters, e.g. with mechanisms 
>> such as HPCC!) today doesn’t do very much to give feedback to applications 
>> before they start exceeding the maximum capacity, but if we want to fix this 
>> some day, then changing the name might be a good start too. Having a name 
>> that refers to a mostly non-existent problem makes the whole topic stale.
>> 
>> Cheers,
>> Michael
>> 
>> 
>> 
>>> 
>>> Best,
>>> Hang Shi
>>> 
>>> -----Original Message-----
>>> From: tsv-area <[email protected]> On Behalf Of Michael Welzl
>>> Sent: Monday, July 25, 2022 5:30 AM
>>> To: Bless, Roland (TM) <[email protected]>
>>> Cc: Toerless Eckert <[email protected]>; Stuart Cheshire 
>>> <[email protected]>; [email protected]
>>> Subject: Re: At TSVAREA in Philadelphia: The Future of Congestion Control 
>>> at IETF (and a new name for it?)
>>> 
>>> 
>>> 
>>>> On Jul 24, 2022, at 2:50 PM, Bless, Roland (TM) <[email protected]> 
>>>> wrote:
>>>> 
>>>> Hi Michael,
>>>> 
>>>> see below.
>>>> 
>>>> On 24.07.22 at 12:12 Michael Welzl wrote:
>>>>>> On Jul 24, 2022, at 3:03 AM, Toerless Eckert <[email protected]> wrote:
>>>>>> 
>>>>>> Inline
>>>>>> 
>>>>>> On Sat, Jul 23, 2022 at 08:10:43PM -0400, Stuart Cheshire wrote:
>>>>>>> I feel that in retrospect the name “congestion control” was a poor 
>>>>>>> choice. Too often when I talk to people building their own home-grown 
>>>>>>> transport protocol on top of UDP, and I ask them what congestion 
>>>>>>> control algorithm they use, they smile smugly and say, “We don’t need 
>>>>>>> congestion control.” They explain that their protocol won’t be used on 
>>>>>>> congested networks.
>>>>> I agree SO strongly !!!!!
>>>>> The main problem of congestion control these days appears to be that 
>>>>> networks are mostly underutilized (see the thread on ICCRG I started by 
>>>>> pointing at our ComMag paper) - the issue is to increase the rate as 
>>>>> quickly as possible, without producing congestion.
>>>> 
>>>> Now, what is congestion in this context? Packet loss or too high queuing 
>>>> delay?
>>> 
>>> I’d say both, but -
>>> 
>>> 
>>>>> It should really be called “rate control”.
>>>>> It’s about a sending rate - whether that is indirectly achieved by 
>>>>> controlling a window or explicitly by changing a rate in bits per second 
>>>>> doesn’t really matter.
>>>> 
>>>> Yes, one would assume that, but technically it does matter.
>>> 
>>> - you seem to misunderstand. I wasn’t suggesting that “rate control is the 
>>> only way, window control is just the same thing”. Not at all !
>>> I’m saying that if you do it using a window, or an explicit send rate in 
>>> bits/second or packets per whatever time unit …  either way, you’re always 
>>> in fact controlling a rate, and hence “rate control” is a good term for it. 
>>> Window based control is just tighter, because:
>>> 
>>> 
>>>> Typically, you want to control the sending rate _and_ the amount of 
>>>> inflight data. Window-based approaches have the advantage that they 
>>>> are kind of self-stabilizing due to the implicit rate feedback by the 
>>>> growing effective RTT (queueing delay induced).
>>>> Moreover, if your congestion window is estimated too large, you just 
>>>> get a constant amount of excess data in the bottleneck queue, whereas 
>>>> if your sending rate is too large, you get a growing amount of 
>>>> inflight data over time and thus increasing excess data in the bottleneck 
>>>> queue.
>>>> Even if a rate-based algorithm would know and pick the perfect rate it 
>>>> may result in instability at the bottleneck (c.f. queueing theory at 
>>>> \rho=1). Controlling the sending rate is thus harder and more fragile.
>>>> Therefore, I'm a strong proponent of having a window-based approach 
>>>> that uses pacing in addition to avoid micro-bursts and cope with 
>>>> unsteady/distorted ACK feedback. The other way around would also work 
>>>> and that's how BBRv2 currently tries to approach the
>>>> problem: using a rate-based sender that also controls the amount of 
>>>> inflight data.
>>> 
>>> ….yes, yes, of course, all that!  But it’s not really what I meant though  
>>> :)
>>> 
>>> Cheers,
>>> Michael
>>> 
> 
> -- 
> ---
> [email protected]

Reply via email to