> On 3 Jun, 2023, at 4:56 pm, John D via Bloat <bloat@lists.bufferbloat.net> 
> wrote:
> 
> On the website it says the following:
> 
> CoDel is a novel “no knobs”, “just works”, “handles variable bandwidth and 
> RTT”, and simple AQM algorithm.
> 
>       • It is parameterless — no knobs are required for operators, users, or 
> implementers to adjust.
>       • It treats good queue and bad queue differently - that is, it keeps 
> the delays low while permitting bursts of traffic.
>       • It controls delay, while insensitive to round-trip delays, link 
> rates, and traffic loads.
>       • It adapts to dynamically changing link rates with no negative impact 
> on utilization.
> 
> But everywhere I have read about about hardware which implements SQM 
> (including the bufferbloat website) it describes the need to tune based on 
> actual internet connection speed.
> These seem to conflict especially that "handles variable bandwidth" bit. Have 
> I misunderstood or do the algorithms used in modern hardware just not provide 
> this part typically? My connection performance is quite variable and I'm 
> worried about crippling SQM to the lowest speed seen.

SQM in practice requires three components:

1: Flow isolation, so that different flows don't affect each others' latency 
and are delivered fairly;

2: Active Queue Management (AQM) to signal flows to slow down transmissions 
when link capacity is exceeded;

3: Bandwidth shaping to match the queue to the available capacity.

CoDel is, in itself, only the AQM component.  It does indeed work pretty well 
with no additional tuning - but only in combination with the other two 
components, or when applied directly to the actual bottleneck.  Unfortunately 
in most consumer internet links, the actual bottleneck is inaccessible for this 
purpose.  Thus an artificial bottleneck must be introduced, at which SQM is 
applied.

The most convenient tool for applying all three SQM components at once is Cake. 
 This includes implementations of advanced flow isolation, CoDel AQM, and a 
deficit-mode bandwidth shaper.  All you really need to do is to tell it how 
much bandwidth you have in each direction, minus a small margin to ensure it 
becomes the actual bottleneck and can exert the necessary control.

When your available bandwidth varies over time, that can be inconvenient.  
There are methods, however, of observing how available capacity tends to change 
over time (typically on diurnal and weekly patterns, if the variations are due 
to congestion in the ISP backhaul or peering) and scheduling adjustments on 
that basis.  If you have more information on your situation, we might be able 
to give more detailed advice.

 - Jonathan Morton
_______________________________________________
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat

Reply via email to