TCP Friendly AIMD-Based Multipath Routing

Last updated on October 06, 2004

On this page you can find the ns-2 simulator module and simulation scripts written and used for the simulations in the paper:

O. Alparslan, N. Akar, and E. Karasan, "Combined use of prioritized AIMD and flow-based traffic splitting for robust TCP load balancing," Lecture Notes in Computer Science, vol. 3266, pp. 124-133, 2004.

Simulator module is written and tested on Redhat 9.0 using ns-2 version 2.27

 

Installing the module:

1) First download the extension from here. Create a new directory called "multipath" under the "ns-2.27" directory of ns-2. Untar the files and copy them to the "multipath" directory.

2) Module requires modifications in some of the existing files of ns-2. First download the modifications file from here. It is the output of "diff" command of linux applied to a modified ns-2 version 2.27 and an unmodified ns-2 version 2.27. The output shows the name of the files and the line numbers that must be modified, added or deleted.

3) In the Makefile, add the following lines to the end of OBJ_CC

multipath/drop-tail2.o\
multipath/drop-tail3.o\
multipath/drop-tail4.o\
multipath/hdr_mp.o\
multipath/mpdelay.o\
multipath/mpdelay2.o\
multipath/mpsragent.o\
multipath/hdr_mpsrc.o\
multipath/cprobe.o\

4) In case you have a problem with patching the TCP source files with the diff file here, just replace the tcp.cc, tcp.h, tcp-sink.cc, tcp-sink.h files under "ns-2.27/tcp" directory with the modified versions from here. There are some speed optimizations and functions for logging the stats of tcp flows in these files.

Simulation scripts:

You can download simulation script set from here. It includes routes of first and second paths, flow arrivals and a sample simulation script. You must create a directory called "log" under the directory you are running ns-2. Simulation log files will be created in and written to that directory. Also a file called "out.tr" will be created and written to the same directory you are running ns-2. "out.tr" file shows the starting and ending times of the flows and their source, destination, number of successfully carried packets information. You can learn the performance of the system by processing "out.tr" file by using another program like Matlab.

 

Back to home page