TCP/IP over ATM simulator


Other links:


The TCP/IP over ATM simulator is an extension to the simulator, NS, developed by the Network Research Group at the Lawrence Berkeley National Laboratory. This software is developed as senior project by a group of students from the graduating class of 1997 from LUMS. The simulator is an extensible, easily configured and programmed event-driven simulation engine, with support for several flavors of TCP and router scheduling algorithms. In addition, it also has the ability to simulate ATM connections and can be used to simulate the running of TCP/IP applications on an ATM network.

Like ns, the simulation description language is an extension of the Tool Command Language, Tcl. In fact, the simulation description language is also taken from ns and is then enhanced to include ATM objects such as atm-network, atm-switch, atm-noed etc. A simulation is defined by a Tcl program. Using the ns command, a network topology is defined, traffic sources and sinks are configured, statistics are collected, and the simulation is invoked. By building upon a general-purpose language, arbitrary actions can be programmed into the configuration.


To build the simulation software from source, simply run the ./configure script in the top-level of the distribution directory. Then run 'make'. You'll need to have Tcl (v7.5) installed (or built in the directory above the ns tree). If you use gcc for the compiler, you should use gcc version 2.7.2 or later; ns does not run correctly with older versions of gcc and with some other compilers. ns is also not compatible with Tcl older than version 7.5. ns should compile and run an any unix system that Tcl runs on.

To build ns from source to enable debugging, simply run ``./configure --enable-debug''.

You might experience some problems with the static and dynamic loading of Tcl libararies. Depending on your system you might have to change the static flags in the makefile.

If you have to make changes in order to compile ns, please send in your patches. Likewise, if you encounter bugs or unexpected behavior, please contact Finally, if you implement ns extensions that others can benefit from, please (if possible) send them in for inclusion in a future release.

You might run the following command as a quick test to verify that ns built correctly:

% ./ns test-suite.tcl tahoe1

You should see some debugging output on stdout, then an xgraph window will pop-up with a sequence plot of the connection (xgraph and awk must be in your path for this script to work properly). See test-suite.tcl and example.tcl for more examples. A note describing the test suite is in If you make changes to the simulator, you might want to make sure you haven't introduced bugs by running Matt Mathis' ( test-all script, which is included in the distribution.


Funding for this work was provided by the Lahore University if Management Sciences.

Special Thanks to Uptal and Syed Ijlal Ali Shah for their invluable help.

Also Special Thanks to Sally Floyd and the team that developed NS.


We very much want to hear about bugs and problems, so don't hesitate to offer suggestions or other feedback. Send all simulator related correspondence to:

Syed Umair Ahmed Shah (

Abdul Rafay Khawaja (

Nausheen Zaffar (

Adil Qureshi (

Dr Ijlal Shah (