Congestion control in linux TCP (2002) [21 citations — 0 self]
Abstract:
The TCP protocol is used by the majority of the network applications on the Internet. TCP performance is strongly influenced by its congestion control algorithms that limit the amount of transmitted traffic based on the estimated network capacity and utilization. Because the freely available Linux operating system has gained popularity especially in the network servers, its TCP implementation affects many of the network interactions carried out today. We describe the fundamentals of the Linux TCP design, concentrating on the congestion control algorithms. The Linux TCP implementation supports SACK, TCP timestamps, Explicit Congestion Notification, and techniques to undo congestion window adjustments after incorrect congestion notifications. In addition to features specified by IETF, Linux has implementation details beyond the specifications aimed to further improve its performance. We discuss these, and finally show the performance effects of Quick acknowledgements, Rate-halving, and the algorithms for correcting incorrect congestion window adjustments by comparing the performance of Linux TCP implementing these features to the performance achieved with an implementation that does not use the algorithms in question.
Citations
| 414 | Simulation-based Comparisons of Tahoe – Fall, Floyd - 1996 |
| 275 | The NewReno Modification to TCP’s Fast Recovery Algorithm – Floyd, Henderson - 1999 |
| 77 | Enhancing TCP’s Loss Recovery Using Limited Transmit,” RFC 3042 – Allman, Balakrishnan, et al. - 2001 |
| 31 | TCP Selective – Mathis, Mahdavi, et al. |
| 28 | Window and acknowledgment strategy – Clark - 1982 |
| 8 | A conservative SACK-based loss recovery algorithm for TCP – Blanton, Allman, et al. - 2002 |

