Implementation of the TCP-Friendly Congestion Control
Protocol (TFRC)
Installation
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:
- /common with a network library,
- /log as the default directory for log files,
- /scripts with perl and shell scripts to parse log files, and
- /source with the actual code of the TFRC implementation.
Run ./install.sh 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 widmer@aciri.org.
Running experiments
Sender and receiver have to be started at the same time on different
hosts.
Usage:
sender <receiver-address> <port> [ttl]
receiver <sender-address> <port> [ttl]
Optional parameters for the sender:
- -t time specifies for how long the sender should run (in seconds)
- -m maxbr limits the maximum allowed bitrate to maxbr KByte/s
- -i minbr limits the minimum possible bitrate to minbr KByte/s
- -c cbr causes the sender to send with a constant rate of cbr KByte/s
Optional parameters for the receiver:
- -t time specifies for how long the sender should run (in seconds)
- -n lognr is the number to use for naming of the log files
- -c causes the receiver to use constant instead of linearly
decreasing weights for the loss history
- -w histsize specifies the number of intervals to use for the loss
history
The scripts runsender.sh and runreceiver.sh 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:
runsender.sh <receiver-address> <#tcp> <#tfrc>
<duration>
runreceiver.sh <sender-address> <#tcp> <#tfrc>
<duration>
In addition, the scripts runsender.pl and runreceiver.pl run
experiments with different TCP/TFRC flow combinations and create
subdirectories in the log directory for the different test runs.
Usage:
runsender.pl <receiver-address> <duration>
runreceiver.pl <sender-address> <duration>
Page maintained by Jörg Widmer
(widmer@aciri.org)
6/27/2000