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.