How internet congestion control actually works in the bufferbloat age


You start a big upoad or download, and your ssh connection goes to heck, web pages get delayed, your videoconference glitches, or you start missing your opponents in your game. Bufferbloat is one cause. While the bufferbloat problem is largely fixed in Linux, it's rarely configured properly on the gateways, and thus remains at epidemic proportions across the Internet - and this talk touches upon how to configure that stuff properly - but... why does the network get slow? *How* is the network supposed to deal with overload? This talk is a deep dive into how TCP is supposed to work, and goes into concepts like Slow Start, Congestion Avoidance, windowing, fair queuing and active queue management, the roles of packet drop and ECN, and alternate tcp's and transports such as BBR and QUIC, in the hope that deeper knowledge of how our most basic network transports work will lead to the design and implementation of better systems on top of them.

The talk can be view at this link.