TCP-BFA: Buffer Fill Avoidance

Amr A. Awadallah ( & Chetan Rai (

Computer Systems Lab

Stanford University

IFIP High Performance Networking Conference

Vienna, Austria, September 1998.


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
Presentation Power Point
TCP-BFA Source Code for ns2.1b1 README tcp-bfa.h bfa-sim.tcl
TCP-BFA Source Code for FreeBSD 2.1.6 README tcp-bfa-freebsd.tgz

(Last Updated Sunday 9/4/98 by Amr A. Awadallah)