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 (plus
getmean-full.tcl).
The
README
file describes the procedures for running these simulations.
Sally Floyd, Mark Handley, Jitendra Padhye, and Joerg Widmer,
Equation-Based Congestion Control for Unicast Applications
(postscript,
PDF),
May 2000,
to appear in SIGCOMM 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 (gnuplot command 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:".
The simulations for Figure 5 on
"TCP flow sending rate"
(top,
bottom) can be run with
tfrm-full.CA.DropTail.run,
tfrm-full.CA.RED.run
with supporting files
tfrm-full.CA.tcl,
queueSize.tcl,
getmean-full.tcl.
These scripts will produce data files called
graphs/s-full-RED.CA.tcpmean
graphs/s-full-DropTail.CA.tcpmean
There are three values for
each data point (from three runs) in these output files. To merge them, use merge2.tcl:
merge2.tcl graphs/graphs/s-full-RED.CA.tcpmean > graphs/s-full-RED.CA.tcp
merge2.tcl graphs/graphs/s-full-DropTail.CA.tcpmean > graphs/s-full-DropTail.CA.tcp
Unfortunately, we no longer have the *.mf gnuplot script for
generating the postscript from "s-full-RED.CA.tcp" and
"s-full-DropTail.CA.tcp".
On a 450MHz Xeon, each graph takes about 7 hours to generate
The simulations for Figure 6 on
"TCP competing with TFRC" can be run
with:
tfrm12.com,
with supporting files
tfrm12.run,
tfrm12.tcl,
awk/plotdrops.awk.
and
queueSize.tcl.
The supporting programs
"bwcnt2" and "bwcnt2a" for processing the output data are compiled from
bwcnt2.c
and bwcnt2a.c.
On Sally's computer, this simulation set took 13 minutes.
The following supporting files were also required for generating
the postscript file:
tfrm12.run1,
graphs/getmean.tcl,
graphs/s0.12.mf,
graphs/s0.loss3.mf.
The simulations for Figure 7 on "Coefficient
of variation of throughput between flows" can be run with tfrmvar.run with supporting files tfrmvar.tcl, queueSize.tcl, and
graphs/getvar.tcl.
fixcov.tcl combines the many output files together, and gnuplot requires s3xxx.mf to generate the postscript.
When we have collected the scripts for Figure 8, we will put them on-line.
The simulations for Figures 9 and 10 can be run with the
script
long/doit.
The supporting scripts are in the tar file.
The simulation takes perhaps one hour.
The simulations for Figures 11-13 can be run with the
script
short/doit.
The simulation takes up to three days.
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,
queueSize.tcl,
tracequeue.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.
Generating the postscript file also uses the following files:
graphs/s0.half.mf.
Last modified: April 2001 by Sally.