What is Bufferbloat?
Bufferbloat is a phenomenon where network devices maintain oversized buffers that accumulate packets during periods of congestion, resulting in dramatically increased latency and jitter. Unlike traditional bandwidth congestion, bufferbloat can occur even when ample bandwidth is available, making it a particularly insidious problem for modern networks.
The term was coined by Jim Gettys in 2010 when he discovered that his home internet connection experienced multi-second delays while downloading files, despite having sufficient bandwidth. This sparked investigation into why network quality degraded so severely, leading to the identification of buffering as the root cause.
How Bufferbloat Works
Network devices use buffers to temporarily store packets when network interfaces cannot immediately transmit data. These buffers serve as intermediate storage, allowing devices to manage temporary traffic bursts. However, modern networking equipment often includes excessively large buffers—sometimes measured in megabytes—to maximize throughput.
When congestion occurs, these oversized buffers fill with packets waiting for transmission. Each packet must wait in queue behind all previous packets, adding significant delay. Unlike bandwidth limitations that are well understood, users don't receive immediate feedback about buffering delays because the packets eventually arrive; they simply arrive much later than necessary.
The problem is compounded because buffer management algorithms often operate on a "tail drop" principle: they accept packets until the buffer is completely full, then abruptly discard new arrivals. This creates a feast-or-famine scenario where packets experience either minimal delay or massive delay depending on buffer state.
Technical Implications
Latency Impact: Bufferbloat transforms what should be millisecond-scale latencies into second-scale or multi-second latencies. A router with a 50 MB buffer at 10 Mbps capacity can introduce approximately 40 seconds of delay in the worst case.
Jitter Effects: Beyond increased latency, bufferbloat creates highly variable latency (jitter). Real-time applications like VoIP, online gaming, and video conferencing require predictable, low-latency transmission. Variable delays cause audio discontinuities, game lag spikes, and video stream degradation.
TCP Behavior: TCP's congestion control algorithms rely on packet loss as a signal that networks are saturated. Bufferbloat delays this signal because buffers absorb packets that would otherwise be lost, allowing TCP to continue sending at full rate long after network capacity is exceeded. This paradoxically makes congestion worse by encouraging aggressive sending behavior.
Key Components of the Problem
- Oversized Buffers: Manufacturers optimize for throughput rather than latency, creating buffers measured in MB rather than KB
- Queue Management: Tail drop algorithms that permit buffers to fill completely before dropping packets
- Layer Accumulation: Buffering occurs at multiple network layers—ISP equipment, home routers, operating system network stacks, and application buffers—creating cumulative delay
- Lack of Active Queue Management: Most deployed equipment lacks Active Queue Management (AQM) algorithms that proactively drop packets before buffers overflow
- Asymmetric Links: Upload/download speed asymmetry in residential broadband creates disproportionate buffering on slower paths
Real-World Impact
Voice Applications: VoIP calls experience audio delay and artifacts. The ITU-T G.114 standard defines that one-way latency above 150 ms is unacceptable for conversation; bufferbloat regularly introduces latencies exceeding 1 second.
Gaming: Online gaming requires predictable, low latency for competitive play. Bufferbloat-induced jitter causes inconsistent hit registration, delayed movement response, and unfair gameplay conditions.
Video Conferencing: Excessive latency disrupts conversational flow and causes awkward pauses or talking-over situations.
Web Browsing: Even web browsing becomes noticeably sluggish under bufferbloat conditions, with page interactive elements responding slowly to user input.
Solutions and Mitigation
Active Queue Management (AQM): AQM algorithms like Random Early Detection (RED), Controlled Delay (CoDel), and Proportional Integral Controller Enhanced (PIE) proactively signal congestion by dropping packets strategically rather than waiting for buffers to overflow. Modern algorithms drop packets when queues begin filling, rather than when they're full.
CoDel Algorithm: The Controlled Delay algorithm specifically targets bufferbloat by measuring packet sojourn time (time in queue) and dropping packets when sojourn time exceeds acceptable thresholds, typically 5-10 ms. CoDel has been widely adopted in Linux, OpenWrt, and other systems.
Hardware Updates: Newer routers and modems increasingly implement better buffer management. Equipment supporting AQM algorithms significantly reduces bufferbloat impact.
Traffic Shaping: Quality of Service (QoS) implementations can prioritize latency-sensitive traffic and apply rate limiting to prevent buffer saturation.
Network Architecture Improvements: Reducing buffer sizes at the hardware level and implementing better congestion notification mechanisms at all network layers.
Detection and Measurement
The Bufferbloat.net initiative provides testing tools to measure bufferbloat impact on home networks. The test simultaneously uploads and downloads data while measuring latency to a reference host. Significant latency increases during data transfer indicate bufferbloat.
Tools like flent (FLExible Network Tester) provide detailed measurement of latency under various load conditions, graphically showing bufferbloat effects.
Current Status
While bufferbloat awareness has increased significantly since 2010, it remains a problem in many networks. Older routers, modems, and ISP equipment still use simplistic buffer management. However, newer devices increasingly implement CoDel or similar AQM algorithms. Linux kernel versions 3.3+ include CoDel, and many modern router platforms support it.
Important Note: Bufferbloat is particularly problematic on low-bandwidth connections (satellite, cellular, rural broadband) where buffer-to-bandwidth ratio is most extreme, but it can occur on any network when buffers are oversized relative to available bandwidth.