[e2e] A new version of NS-2 TCP-Linux

Xiaoliang (David) Wei weixl at caltech.edu
Mon Oct 1 00:01:53 PDT 2007

Dear Colleagues,

    I'd like to announce a new version of NS-2 TCP-Linux, which runs
congestion control module source codes from Linux in NS-2 simulation. This
new version has the following features:

1. incorporates 14 congestion control algorithms in Linux 2.6.22-6 into
NS-2.31 (also compatible with NS-2.29 and NS-2.30);

2. allows to set new values for parameters of different congestion control
algorithms so that we can study the effects/sensitivities of parameter
setting in these algorithms.

    The simulation speed and memory usage are still very similar to other
standard NS-2 TCPs (such as Sack1) and the usage is almost the same as the
current NS TCPs (except adding one command to select congestion control
module and optionally two commands to set new parameter values).

    The new patch can be downloaded from
http://www.cs.caltech.edu/~weixl/technical/ns2linux/index.html and the
page has more details on the usage.

    There is an updated tutorial which provides simple usage examples:

    If you find any problem, please let me know.:)

A little bit more details (See the links above for more details):

1. In the patch, I added a new TCP class which is called LinuxTCPAgent.
The class loosely follows the ack processing path in Linux TCP with many
simplifications. It calls congestion control modules to change the cwnd
and ssthreshold, as Linux does. You can always add your own congestion
control algorithms with minor modifications, as long as you get the
source codes of their Linux congestion control modules.

2. I also added a new Scoreboard design which can process SACK in a
similar way as Linux does, while maintaining the similar simulation
speed as scoreboard-rq.

3. Some Limitations: D-SACK, F-RTO and ECN process is yet to be
implemented. Also, since the TCPSink in NS2 has some difference from
Linux receiver process, the cwnd trajectory from simulation results are
not exactly the same as Linux experiments.


Xiaoliang (David) Wei      EAS @ Caltech

More information about the end2end-interest mailing list