What is Bufferbloat, Anyway?

Good question.

Bufferbloat is the cause of much of the poor performance and human pain experienced using today’s Internet. It can be the cause of a form of congestion collapse of networks, though with slightly different symptoms than that of the 1986 NSFnet collapse. Since discussion of the best terminology for the problem reached no consensus, I invented a term that might best convey the sense of the problem.

I’ll take a stab at a formal definition:

Bufferbloat is existence of excessively large (bloated) buffers in systems, particularly network communication systems.

Transport protocols such as TCP by design run “as fast as possible”, and will fill any size buffer. Buffers then cease to be useful to absorb bursts of packets, and then just introduce delay. Systems suffering from bufferbloat will have bad latency under load under some or all circumstances, depending on if and where the bottleneck in the communication’s path exists. Bufferbloat encourages congestion of networks; bufferbloat destroys congestion avoidance in transport protocols such as HTTP, TCP, Bittorrent, etc. Network congestion avoidance algorithms depend upon timely packet drops or ECN; bloated buffers invalidate this design presumption. Without active queue management, these bloated buffers will fill, and stay full, causing delay and frustration.

More subtlety, poor latency, besides being painful to users, can cause complete failure of applications and/or networks, and extremely aggravated people suffering with them.

Worse, in today’s Internet of CDN’s and highly variable bandwidth links, even estimating the “correct” buffer size has become impossible.

Bufferbloat is seldom detected during the design and implementations of systems as engineers are methodical people, seldom if ever systematically test latency under load, and today’s memory is so cheap buffers are often added without thought of the consequences, thereby becoming hidden in many different parts of network systems.

You see manifestations of bufferbloat today in your operating systems, your home network, your broadband connections, possibly your ISP’s and corporate networks, at busy conference wireless networks, and on 3G networks.

Bufferbloat is an endemic disease of today’s Internet.

Bufferbloat is a mistake we’ve all made together.

For more information, see the CACM article on bufferbloat, and the conversation with Vint Cerf, Van Jacobson, Nick Weaver and Jim Gettys and YouTube videos and demonstrations of Bufferbloat.

We’re all Bozos on This Bus.

8 Responses to “What is Bufferbloat, Anyway?”

  1. Foster Says:

    Nice Firesign Theater reference!

    Nice set of posts about the issue. It’s a shame that RED (semi-published in 1999) got flushed due to a really good analogy.

    • gettys Says:

      RED is actually in most core network gear today; it’s just not enabled by some network operators. It should be turned on everywhere it can be; the reasons why people have been reluctant to do so only became clear after talking to Van Jacobson. See the “RED in a different Light” posting.

      What didn’t happen ten years ago was publication of explanations of RED’s problems, and a possible solution (and improved algorithm).

  2. Bufferbloat with Jim Gettys | VoIP Users Conference Says:

    […] is Bufferbloat? From Jim Gettys’ explanation: Bufferbloat is existence of excessively large (bloated) buffers into systems, particularly […]

  3. The fight against Bufferbloat for high speed Internet | Dissociated Press Says:

    […] has been writing about bufferbloat recently, something that “wrecks latency” and saps network performance no matter how […]

  4. Проект по избавлению Linux-ядра от излишней сетевой буферизации | AllUNIX.ru – Всероссийский портал о UNIX-системах Says:

    […] термин Bufferbloat несколько месяцев назад предложил Джим Гетиc (Jim Gettys), член комитета W3C и разработчик […]

  5. Bufferbloat « Lucid Electric Dreams Says:

    […] Google tech talk by Jim Gettys about Bufferbloat: […]

  6. Lessons NASA Can Learn From The Internet | Alkaon Network Says:

    […] defines Bufferbloat as “existence of excessively large (bloated) buffers into systems, particularly network […]

  7. Sortie du noyau Linux 3.3 | PSOTUX Says:

    […] un problème d’engorgement réseau d’un nouveau type qu’il a nommé « bufferbloat ». Selon ses tests, le fait d’avoir des tampons mémoires (buffer) de taille excessive […]

Leave a comment