Wikipedia describes bufferbloat as
“a phenomenon in a packet-switched computer network whereby excess buffering of packets inside the network causes high latency and jitter, as well as reducing the overall network throughput. The phenomenon was detailed at least as far back as 1985, but gained more widespread attention starting in 2009.”
As documented in the workshop report two solution directions were investigated, namely:
- Define a congestion control mechanism that prevents problems with self-inflicting traffic. Following the workshop a new working group was created in the IETF, called “RTP Media Congestion Avoidance Techniques (rmcat)”.
- Change network infrastructure equipment to prevent excessive buffering.
This write-up focuses on the he write-up mostly focused on #2. A certain amount of buffering is helpful to improve the efficiency of data transmissions to smoothen bursts in data transmissions. However, not dropping packets early enough in the event of congestion leads to increasing delays for interactive real-time communication since widely deployed congestion control algorithms rely on packet loss as a signal for congestion. Not dropping packets (or not in a timely fashion) prevents applications from reacting properly to overload. Real-time communication not only includes voice communication but also gaming, video conferencing, and Web browsing.
Since the congestion control workshop took place a number of activities had happened and there is an enormous amount of interest in detecting bufferbloat related problems as well as developing and deploying active queue management (AQM) techniques. In this short write-up I will provide some pointers to ongoing activities.
In the second part of 2012 the following events are worth pointing out:
- Linux 3.6 received some updates to reduce the buffer sizes in the networking stack, including the TCP small queues and Byte queue limits.
- As many researchers and engineers are trying to reproduce the tests various scripts have been made available to simulate the real-time response under load. One such script worth pointing out is the netperf-wrapper.
- Van Jacobson and Kathleen M. Nichols continued their work on the Controlled Delay (CoDel) Active Queue Management algorithm (slides from IETF#84, a recording, and a presentation to the BITAG are available).
- In addition to the CoDel AQM algorithm Cisco released their own AQM algorithm: it is called PIE.
- Various papers are available that provide different data points, including measurements of cellular providers. For example, Keith Weinstein submitted a position paper to the IAB/IRTF congestion control workshop and published a paper about their Alfalfa video conference system, which contains further information about the data collection in cellular networks. Even the raw data is available.
- A new European research project, called RITE – [Reducing Internet Transport Latency], started last autumn to investigate network buffering issues.
- Finally, it is worth pointing out that the stochastic fair queuing mechanism has gotten a lot of attention. Stochastic fair queuing puts flows into independent queues and therefore allows some degree of flow segregation without introducing the penalty of QoS signaling.
With the IETF#86 meeting in Orlando/Florida a number of sessions covered bufferbloat:
- Participants in the transport area discussed whether an AQM working group should be created. In response to the discussion a new mailing list was setup.
- The IRTF ICCRG met and the discussions focused on updating RFC 3819 to provide more up-to-date advice on buffer management, on the state of the art buffer management in Linux, performance of the PIE AQM algorithm, and results from AQM performance in DOCSIS 3.0.
- Comcast showed a live demo of the impact of CoDel on gaming at the Bits&Bytes session.
In a nutshell, there is a lot of activity around the bufferbloat topic and with the increased awareness I expect further academic publications and also work continuing at the IETF.