Implementation of the TCP-Friendly Congestion Control Protocol (TFRC)


This is work in progress. Although there has been a fair amount of testing, the code may still be buggy. To install, download and unpack the file tfrc.tar.gz. It contains the subdirectories: Run ./ in the main directory to compile the code and include in the source directory in the PATH. So far, the code has been tested under FreeBSD, Linux and Solaris. Please send bug reports to

Running experiments

Sender and receiver have to be started at the same time on different hosts.

sender <receiver-address> <port> [ttl]
receiver <sender-address> <port> [ttl]

Optional parameters for the sender:

Optional parameters for the receiver: The scripts and automatically synchronize the start of sender and receiver and call tcpdump with the necessary parameters. Log files are stored in the current working directory.

Usage: <receiver-address> <#tcp> <#tfrc> <duration> <sender-address> <#tcp> <#tfrc> <duration>

In addition, the scripts and run experiments with different TCP/TFRC flow combinations and create subdirectories in the log directory for the different test runs.

Usage: <receiver-address> <duration> <sender-address> <duration>

Page maintained by Jörg Widmer (