Glossary

These terms are defined in the context of the overall topic, Bufferbloat, and their relevance to the recognition, detection, description, mitigation of this problem. As such, references to others’ definitions may be given for completeness but should be prefaced or augmented by subjective and/or objective definition of the relationship to the Bufferbloat problem.

Bufferbloat

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 , Jim Gettys invented a term that might best convey the sense of the problem.

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

See Bufferbloat for extended definition - Also now defined on Wikipedia

please leave this term at the top of the list

Active Queue Management (AQM)

Wikipedia : “In Internet routers, active queue management (AQM) is a technique that consists in dropping or ECN-marking packets before a router’s queue is full.” This is important because the dropped/marked packets are critical to the proper operation of network protocols such as TCP. AQM techniques help to reduce symptoms of bufferbloat, where networks work fine when there’s not much traffic/load on the network but degrade dramatically when there is load.

Random Early Detection (RED, RED 93, nRED)

definition needed (should this be moved to AQM?)

Stochastic Fair Blue (SFB)

definition needed - should other queuing protocols be put here too, or in Alphabetical order?

Congestion Control (TCP)

definition needed - references to TCP Vegas, TCP cubic and others? or separate definitions?

Dark buffers

Large network buffers can be thought of as ‘dark buffers’, analogous to ‘dark matter’ in the universe. They are undetectable under most circumstances, and you can detect them only by indirect means. Buffers do not cause problems when they are empty. But when they fill they introduce additional latency (and create other problems, possibly very severe) to other traffic sharing the link.

Explicit Congestion Notification (ECN)

Defined in RFC3168 defines a method (negotiated using ECN bits in packets) whereby a router sets a bit on the transited packet if congestion is impending - and the receiving program in turn sets the bit on the ACK packet back to the sending program, which then is to act as if a packet had been dropped (as far as shutting the congestion window size). ECN cannot eliminate packet loss but can, if used with reasonable AQM, pre-warn and possibly prevent much packet loss.

Fairness

definition needed

Goodput

The actual payload throughput of a link, stripped of all the traffic that is retries and other overhead. Application sender to Application receiver. More detail at Wikipedia

Latency

The delay between transmission of information and its arrival. Network latency is more important than throughput in user perception of how smooth and responsive an interface is. You can read a more technical definition at Wikipedia

Jim Gettys adds: As a UI guy, my metrics have always been (since I learned this stuff first hand in the 1980s), that:

* No perceptible delay to all human interactions requires less than 20ms (rubber banding is hardest)
* semi-tolerable rubber banding needs less than 50ms
* typing needs to be less than 50ms to be literally imperceptible
* typing echo needs to be less than 100ms to to be usually not objectionable
* echo cancellation gets harder as well (the best echo cancellation needs to be done as close to all participants as possible, even the latency over a broadband link is undesirable).
* then there are serious gamers for whom even a millisecond may be an advantage and the difference between life and death

Latency under Load

definition needed (generic - basic loading paradigm, specific - how it is measured/reported - updated as we define this measurement)

Packet Loss

definition needed

Queuing discipline

A quueing discipline (Qdisc fir short) is an algorithm for controlling when packets are shipped out of a buffer to a downstream link. Well-tuned queuing disciplines increase network performance while decreasing peak load. Poorly-tuned ones wreak havoc. A list of well-known Qdiscs used on TCP/IP networks follows:

  • RED
  • nRED
  • SFB
  • ESFQ
  • SFQ
  • HTB
  • HSFC
  • MQ
  • Choke

Throughput (network throughput)

Aggregate total of packet traffic on the link which may include TCP retries and other overhead not directly contributing to the “Goodput” (application sender to application receiver) traffic.

Utilization (network utilization)

definition needed

Window (Congestion Window)

definition needed

Windows XP Problem

(the ongoing retirement of and its potential effect on the overall internet)

definition needed

To edit this page, submit a pull request to the Github repository.
RSS feed

Recent Updates

Oct 20, 2023 Wiki page
What Can I Do About Bufferbloat?
Dec 3, 2022 Wiki page
Codel Wiki
Jun 11, 2022 Wiki page
More about Bufferbloat
Jun 11, 2022 Wiki page
Tests for Bufferbloat
Dec 7, 2021 Wiki page
Getting SQM Running Right

Find us elsewhere

Bufferbloat Mailing Lists
#bufferbloat on Twitter
Google+ group
Archived Bufferbloat pages from the Wayback Machine

Sponsors

Comcast Research Innovation Fund
Nlnet Foundation
Shuttleworth Foundation
GoFundMe

Bufferbloat Related Projects

OpenWrt Project
Congestion Control Blog
Flent Network Test Suite
Sqm-Scripts
The Cake shaper
AQMs in BSD
IETF AQM WG
CeroWrt (where it all started)

Network Performance Related Resources


Jim Gettys' Blog - The chairman of the Fjord
Toke's Blog - Karlstad University's work on bloat
Voip Users Conference - Weekly Videoconference mostly about voip
Candelatech - A wifi testing company that "gets it".