Algorithms For TCP Congestion Control

Posted on in system_administration

cover image for article

Note: Although this is a continuation of the TCP Performance Tuning article series, it's also valuable as a standalone reference.

This list includes a mix of both well-established and newer algorithms, reflecting the ongoing advancements in TCP congestion control research and deployment. Algorithms like CUBIC and BBR are particularly notable for their widespread adoption and performance improvements in modern high-speed networks 【23†source】【24†source】.

  1. TCP Westwood+ - based on end-to-end bandwidth estimates, especially effective in wireless networks
  2. BIC TCP (Binary Increase Congestion Control): Formerly the default in Linux as of kernel version 2.6.7. Known for its rapid convergence properties.
  3. Compound TCP (CTCP): Integrates both loss-based and delay-based congestion detection mechanisms. Used in Windows Vista and later versions.
  4. FAST TCP: Utilizes queuing delay as a congestion indicator rather than packet loss, designed for high-speed and long-latency networks.
  5. Hamilton TCP (H-TCP): Employs AIMD for adjusting the congestion window, optimized for high-performance networks.
  6. HighSpeed TCP (HSTCP): Developed for high-bandwidth environments, increases the aggressiveness of congestion window growth.
  7. Scalable TCP: A modification of TCP Reno, designed to scale better with increasing bandwidth and delay.
  8. TCP Hybla: Targets satellite networks with long round-trip times to improve performance over such links.
  9. TCP Low Priority (TCP-LP): Uses lower priority for background data transfer, allowing it to use 'extra' bandwidth without impacting regular traffic.
  10. TCP NewReno: An enhancement over TCP Reno, improving the fast recovery algorithm.
  11. TCP Reno: Introduced the fast recovery mechanism to complement fast retransmit, improving upon TCP Tahoe.
  12. TCP Tahoe: One of the earliest algorithms, introduced the concepts of slow start and fast retransmit.
  13. TCP Vegas: Similar to FAST TCP, uses RTT variations to detect congestion early.
  14. TCP Veno: A hybrid approach combining aspects of TCP Reno and Vegas, optimized for wireless networks.
  15. TCP Westwood+: Utilizes end-to-end bandwidth estimation, particularly effective in wireless networks with variable conditions.
  16. CUBIC: The default in Linux since kernel 2.6.19, designed for high-bandwidth networks with a cubic growth function to optimize performance.
  17. BBR (Bottleneck Bandwidth and Round-trip propagation time): Developed by Google, it aims to maintain high throughput and low latency by modeling the network path.
  18. Illinois: Enhances TCP's performance on high-speed long-distance links by dynamically adjusting the increase/decrease parameters of the congestion window.
  19. DCTCP (Data Center TCP): Optimized for data center networks, reduces latency by reacting to Explicit Congestion Notification (ECN) marks.
  20. PCC (Performance-oriented Congestion Control): Utilizes online learning to adapt to network conditions in real-time, aiming for optimal performance.
  21. Aurora: A recent development leveraging machine learning to optimize congestion control dynamically based on real-time network conditions.

Part 6 of the TCP Performance Tuning series

Slaptijack's Koding Kraken