Researchers propose solution to ‘bufferbloat’
New fix for age-old problem
Your network is fast, but your download isn’t: it might not be your provider or the server, because in the middle there are too many buffers in the way. The problem is ancient, even though the term that labels it (“bufferbloat”) was only coined in 2010.
In a paper posted at the Association for Computing Machinery, two researchers have proposed a new queue management mechanism to try and address the problem. The “Controlled Delay” (CoDel) mechanism proposed by Kathleen Nichols of Pollere and Van Jacobson at Parc, is designed to provide a “no-knobs” approach to queue management to overcome bufferbloat.
The problem is summed up by the Bufferbloat Website as this: “buffering of packets causes high latency and jitter, as well as reducing the overall network throughput”.
With memory cheap, Nichols and Jacobson explain, every manufacturer assumes that the best thing to do is make buffers as large as possible to ensure that no packet ever gets lost. This, however, defeats the original purpose of buffering, which was to handle short-term fluctuations in the arrival rate of packets.
In particular, Bufferbloat proponents believe, the problem is at the edge: since it’s hard to predict the ideal buffer size for (say) a DSL router, manufacturers tend to make the buffer as large as possible. This, however, can defeat the built-in TCP congestion avoidance mechanism, which relies on dropped packets to find the ideal send rate for a given end-to-end link.
Instead of dropping packets, excessively-buffered edge devices first increase the latency the user experiences: packets only drop when the buffers are full, and TCP’s mechanisms by then have overestimated the size of the link.
What’s needed, according to Jacobsen and Nichol, is to dynamically resize the buffer at the edge, so that the buffer behaves as it should (keeping enough packets to deal with jitter), without tricking the sender into picking the wrong TCP window size.
Jacobson’s and Nichol’s CoDel proposes the use of a “local minimum queue” to estimate the end-to-end ideal queue size. They then propose watching traffic to see how long it is above or below that minimum queue estimate; and instead of estimating queue size in terms of bytes or packets, they base the measurement on “packet-sojourn time” (ie latency).
By making it a self-contained algorithm that requires no configuration, they say it’s suitable for modern packet buffers – and could be added to edge devices with a minimum of cost: “we believe CoDel can be efficiently implemented in silicon,” they write.
The researchers are now planning a CoDel release that would allow others to test the solution on real-world data. ®