Simulations for Equation-Based Congestion Control for Unicast Applications

This page has pointers to the simulation scripts for the following paper. These simulation scripts are also available from a tar file. The README file describes the procedures for running these simulations.

[FHPW00a] Sally Floyd, Mark Handley, Jitendra Padhye, and Joerg Widmer, Equation-Based Congestion Control for Unicast Applications: the Extended Version (postscript, gzipped postscript, PDF), International Computer Science Institute tech report TR-00-03, March 2000.

These scripts are quick amalgams of shell scripts, awk, tcl, and whatever else was handy at the time, so they are not intended as an example of good programming style. They are run in a directory with a "graphs" subdirectory for saved output and *.mf files, and an "awk" subdirectory for awk files. Some of these scripts use supporting *.awk files that are available in the awk directory, but are not listed separately below. Some of the scripts (tfrm12.run) also use "bwcnt" C programs for processing output data; the C code for these is in the scripts directory. Possibly one day we will clean this all up to reduce the proliferation of scripts and languages involved.

The implementation of TFRC in the NS simulator is still occasionally being modified, so the precise results of simulations can change with different versions of NS.

Some of these simulations must be run with SBSIZE in scoreboard.h set to 10000 instead of to 1024, to allow larger TCP congestion windows.


The simulation for Figure 2 on "Illustration of the Average Loss Interval" (top, middle, and bottom) can be run with:
single.com, with supporting files single.run, single.tcl, and queueSize.tcl.

Generating the postscript file also uses the following files:
graphs/s0.interval.mf, s0.loss.mf, and s0.rate.mf.


Figure 3 on "Oscillations of a TFRC flow over Dummynet" and Figure 4 on "TFRC flow over Dummynet:".
Figure 5 on Loss-events per packet.
The simulation scripts for Figure 6 on "TCP flow sending rate" (top, bottom)
are available from the Figure 5 simulation scripts from the SIGCOMM paper.
The simulations for Figure 7 on "TCP competing with TFRC" can be run with:
tfrm12.com, with supporting files tfrm12.run, tfrm12.tcl, and queueSize.tcl.
The supporting program "bwcnt2" for processing the output data is compiled from bwcnt2.c.
On Sally's computer, this simulation set took 13 minutes.

The following supporting files were also required for generating the postscript file:
graphs/getmean.tcl, graphs/s0.12.mf.


The scripts for Figures 8-13 are available from the simulation scripts from the SIGCOMM paper.
The simulations for Figure 14 on 40 long-lived flows (TCP, TFRC) can be run with:
queue2.com, with supporting files queue.run, queue.tcl, tracequeue.tcl, queueSize.tcl, awk/plotaveq.awk, and awk/plotqueue.awk.

Generating the postscript file also uses the following files:
graphs/s0.queue.mf.


Figures 15-18 are from experiments.
The simulations for Figure 19 on "A TFRC flow with an end to congestion" can be run with:
increase.com, with supporting files increase.run, increase.tcl, queueSize.tcl, awk/increase.awk, and graphs/s0.packetrate.mf.
The simulations for Figure 20 on "A TFRC flow with persistent congestion" can be run with:
reduce.com, with supporting files reduce.run, reduce.tcl, queueSize.tcl, awk/reduce.awk, and awk/reduce1.awk.

Generating the postscript file also uses the following files:
graphs/s0.rate1.mf.


The simulations for Figure 21 on "Number of round-trip times to reduce the sending rate" can be run with: reduce1.com, with supporting files reduce1.run, reduce.tcl, queueSize.tcl, awk/reduce1.awk, and awk/reduce2.awk.
Figure 22 on "Two TCP flows on a single link" (top, bottom) and Figure 23 on "Two TFRC flows on a single link" (top, bottom) can be run with friendly.com, with supporting files friendly.tcl, awk/plotqueue.awk, delay/gnuplotA.com, delay/gnuplotB.com, and other supporting files that can be found in the NS distribution (e.g., misc_simple.tcl).
Figure 24 (top, bottom) and Figure 26 (top, bottom) on "Four long-lived TCP and TFRC flows" can be run with queue.com, and supporting files queue.run, queue.tcl, awk/plotqueue.awk, awk/plotaveq.awk.

Generating the postscript file also uses the following files:
graphs/s0.queue.mf,


Figure 27 (top, bottom) on "40 long-lived TCP and TFRC flows" can be run with queue2.com, and the other files listed for Figure 24 above.
Figure 28 (top, bottom) on "40 long-lived TCP and TFRC flows" can be run with queue4.com, and the other files listed for Figure 24 above.
Last modified: May 2000.