14 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 is a list of 14 congestion control algorithms available in TCP. I'm presenting it in alphabetical order.

  1. BIC TCP - Binary Increase Congestion Control, this is the default congestion control algorithm in Linux as of kernel version 2.6.7
  2. Compound TCP (CTCP) - TCP Reno with a scalable delay-based component, developed by Microsoft and used in Windows Vista
  3. FAST TCP - uses queueing delay (rather than packet loss) as an indicator of congestion
  4. Hamilton TCP (H-TCP) - uses Additive-Increase / Multiplicative-Decrease (AIMD) to control the congestion window
  5. HighSpeed TCP (HSTCP) - a recent (2003) implementation
  6. Scalable TCP - adaptation of the algorithms in TCP Reno
  7. TCP Hybla - aimed at overcoming the extremely long Round-Trip Times (RTT) of satellite networks
  8. TCP Low Priority (TCP-LP) - designed to only use 'extra' bandwidth
  9. TCP NewReno - TCP Reno with a modified Fast Retransmit and Fast Recovery
  10. TCP Reno - adds Fast Recovery to TCP Tahoe's Fast Retransmit
  11. TCP Tahoe - uses Fast Retransmit to reduce wait time when a packet is lost
  12. TCP Vegas - similar to FAST TCP, uses delay rather than loss to determine congestion
  13. TCP Veno - slight modification to TCP Reno, optimized for heterogeneous networks, especially those involving wireless links
  14. TCP Westwood+ - based on end-to-end bandwidth estimates, especially effective in wireless networks

Part 2 of the TCP Performance Tuning series

My Bookshelf

Reading Now

Other Stuff