EN
返回档案库

案例库 · 工程与运营 · 技术决策 · 2012–2018

这条还没译成中文,下面是英文原文。

CoDel killed bufferbloat by measuring delay, not buffer fullness

CoDel watches how long a packet has waited rather than queue length, and self-tunes to hold delay near 5 ms with no configuration.

Pollere / Google

那一手

Bufferbloat happens when network buffers are too deep: queues absorb bursts, keep packets sitting for hundreds of milliseconds, and interactive traffic like calls and games degrades even though throughput looks fine. Queue length alone tells you little because it depends on link speed.

CoDel reverses the perspective. It does not care how full the queue is; it cares how long a packet has been waiting. When that sojourn time exceeds a target around 5 ms, it drops one packet and backs off the drop interval as the condition persists.

Because it is driven by a directly measured delay rather than a hardcoded threshold, the controller is self-tuning and needs no per-link parameters, which is what makes it deployable in normal networks without an engineer in the loop.

为什么管用

  • Queue depth is a proxy; perceived delay is the actual problem.
  • A target delay creates a self-tuning control loop.
  • No per-link configuration means it works across mixed speeds.
值了多少Control felt delay, not buffer occupancy聪明

可以搬走什么

When a metric is the real problem, measure that metric directly instead of a proxy; a self-tuning controller that tracks perceived delay avoids configuring every link by hand.

后来呢

CoDel and its per-flow variant FQ-CoDel became the reference mitigations for bufferbloat, were documented in RFC 8289 and 8290, and were widely implemented in routers and the Linux kernel.

资料来源

发现哪里写错了?告诉我们。

同一路聪明