The main goal of a congestion avoidance algorithm is to maximize throughput and minimize delay. While TCP Reno achieves high throughput, it tends to consume all of the buffer space at the bottleneck router, causing large delays. In this paper we propose a simple scheme that modifies TCP Reno's congestion avoidance algorithm by throttling back the opening of the congestion window once an increase in round-trip time is perceived. We call the scheme TCP-BFA and have implemented it in the ns network simulator and in BSD 4.4. We show through simulations and measurements of real traffic on the Internet that TCP-BFA results in lower router buffer occupancies and lower delays while maintaining a throughput similar to that of TCP Reno. The advantages of TCP-BFA are (1) smaller router buffer size requirements, (2) an order of magnitude improvement in network power (the ratio of throughput to delay), (3) fewer packet losses, (4) faster detection of multiple losses due to lower retransmission timeout estimates, and (5) smoother traffic patterns.
|Paper||Acrobat PDF||Compressed Postscript|
|TCP-BFA Source Code for ns2.1b1||README||tcp-bfa.cc||tcp-bfa.h||bfa-sim.tcl|
|TCP-BFA Source Code for FreeBSD 2.1.6||README||tcp-bfa-freebsd.tgz|