Simulations for the "Router Mechanisms" paper

The page contains the tcl scripts used for running the simulations in the following paper:

[FF97] Floyd, S. and Fall, K., Router Mechanisms to Support End-to-End Congestion Control . February 1997.


These scripts run with ns version 1.2, and should run with any later releases of ns version 1. Some of these scripts are also available to run with ns version 2:

Section 2: The problem of unresponsive flows

The simulations for the figure of "Simulation showing extreme unfairness" can be run in ns-1 with Fairnessall.tcl and supporting scripts Fairnessall1.tcl, Collapse.tcl, and Setred.tcl. (This can be plotted using S with "csh Collapse.com Fairness.ps".) The ns-2 versions of the same files are Fairnessall.v2.tcl and supporting scripts Fairnessall1.v2.tcl, Collapse.v2.tcl, and Setred.v2.tcl.

The simulations for the figure of "Simulation showing congestion collapse" can be run in ns-1 with Collapseall.tcl and supporting scripts Fairnessall1.tcl, Collapse.tcl, and Setred.tcl. (This can be plotted using S with "csh Collapse.com Collapse.ps".) The ns-2 versions of the files are Collapseall.v2.tcl and supporting scripts Fairnessall1.v2.tcl, Collapse.v2.tcl, and Setred.v2.tcl.

Section 3: Identifying high-bandwidth flows from the RED packet drop history

The simulations for:

can be run with FlowAll.com and supporting scripts Flow4.tcl, Flows.tcl, and Setred.tcl.

In ns-2, these simulations can be run with FlowAll.v2.com and supporting scripts Flow4.v2.tcl, Flows.v2.tcl, and Setred.v2.tcl. (The simulations of Drop-Tail queues measured in bytes cannot yet be run in ns-2.)

Section 6: Simulations

The simulations for upper and lower of "Simulations with and without regulation", can be run with "csh Reclass2.com", using Reclass2.tcl, with supporting scripts Flows.tcl, Setred.tcl, Penalty1.tcl, No-mark-penalty.tcl, and Setup.tcl. (The simulations require ns v1.2a3. These can be plotted using S with "csh bandwidth2.com reclass2.xgr 3 Regulated 187.5" and "csh bandwidth2.com reclass2.xgr 4 Unregulated 187.5".)

Similar simulations with and without regulation can be run in ns-2 with "csh Reclass2.v2.com", using rtm_reclass.tcl, with supporting scripts mechanisms.tcl, sources.tcl, rtm_plot.tcl, rtm_tests.tcl, and rtm_link.tcl.

Appendix:

The simulations for "TCP-friendly bandwidth for a 60-ms roundtrip time and 1460-byte packets" can be run with Dropall.tcl, with supporting scripts Dropband.tcl and Setred.tcl. (These can be plotted using S with "csh Drop1.com".)

The simulation set for "TCP bandwidth vs. steady-state drop rate, for SACK TCP with a delayed-ACK sink" is included in the simulations for the previous simulation set. The data can be generated with Drop.tcl. (These can be plotted using S with "csh Drop.com" with count set to 4.)

The simulations for upper, middle, and lower of "A simulation with rising congestion", and for "Verifying the drop metric", can be run with Flow2.tcl, with supporting scripts Setred.tcl, Flows.tcl, and Setflow2.tcl. These simulations will run best with ns v1.3 or later. (These can be plotted using S with "csh Flow2.com" with supporting scripts Queue.com, Diagonal.com, Bandwidth.com, and Dropave.com.)

For all of the simulations that rely heavily on randomization, the exact results will differ slightly with different seeds for the random number generator and possibly also with different versions of the simulator


Supporting simulation scripts for ns-1. (We will also make a tar file for all of this when we are all done.)


Profiling:

I have not profiled these scripts to see which routines are taking the most time, nor have I made any particular attempts to minimize execution time (e.g., by replacing Tcl lists with Tcl arrays, moving heavily-used code such as code with frequent "ns at" calls from Tcl into C++, etc.). As Daniel Zappala reported earlier, by profiling his scripts and making changes such as these, he reduced the running time of his simulations from 4 1/2 hours to 50 seconds.


Generating the graphs in the format in the paper:

The scripts above generate graphs using the plotting tool "xgraph". The graphs in the paper were plotted using the statistical package S (which I understand is available only as a commercial product). The paragraph above for each simulation also gives the additional script for plotting the figure using S.


Return to [ the Network Research Group].

Maintained by www8888@ee.lbl.gov
Last modified: September 2002