The Enhanced Network Simulator (TeNs)

(Developed at Department of Computer Science & Engineering, Indian Institute of Technology, Kanpur, India)


The Enhanced Network Simulator (TeNs), is an extension of the existing popular networking simulation tool -  Network Simulator (See NS homepage for details, tutorials and downloads). TeNs is an attempt to address the deficiencies of ns in the modeling of IEEE 802.11 MAC layer protocol, which is highly simplified in the original ns . Apart from a more realistic implementation of this, it also incorporates additional features like multiple interfaces support for mobile nodes, a static routing protocol for wireless scenarios, and also features inclusion of simple directional antennas (see the section Enhancements and Modifications to NS for details).

Note :  Currently the enhancements supported are for original Network Simulator  version 2.1b9a only. Support for later versions (like Ns 2.26) will be considered in future. Also note that  the Ns package meant for Linux platform are only being considered.We have tested it only on Red Hat Linux 8.0.  

Contents

  1. Instructions for Installing and Running 
  2. Enhancements and Modifications to NS
  3. Tutorial
  4. Bugs
  5. Future Work
  6. Downloads
  7. Credits
  8. Disclaimer
  9. Related Work

Instructions for Installing and Running


This section describes the instructions for incorporating the changes (discussed in next section) in the Network Simulator.

There are two ways to get started with  the TeNs.
  •  This method is the simpler one. Download the entire NS package from this site. It contains all the changes made to various files as well as  other additions. Follow the instructions contained in the README of the package (its the same as available in the original NS package from NS homepage). After "./install", execute the following steps to modify the "Makefile" (..ns-allinone-2.1b9a/ns-2.1b9a/Makefile), which will ensure that the modifications and additions added, are properly incorporated. 

        -- First of all check the Makefile and replace any alien path existing in it,  with what you think should be for your installation. This may not be required if " ./install " has properly created the Makefile or not.
        -- change variable CPP  in the Makefile to " CPP = g++ "
        -- change variable NSE   in the Makefile to " NSE = nse "
        -- make variable BUILD_NSE empty, i.e.,  " BUILD_NSE = "
     -- Search for the line containing " mobile/antenna.o mobile/omni-antenna.o \ " and replace it by " mobile/antenna.o mobile/omni-antenna.o mobile/dir-antenna.o\  "
       -- Search for the lines  " aodv/aodv_logs.o aodv/aodv.o \    aodv/aodv_rtable.o aodv/aodv_rqueue.o \ " and add the lines " wlstatic/wlstatic_logs.o wlstatic/wlstatic.o \          wlstatic/wlstatic_rtable.o wlstatic/wlstatic_rqueue.o  \   " before it.

          Now, do " make clean " and "make depend"

Then execute make and you are done. In the end export an additional environment variable - "ANTENNA_RADIATION_FILE"  with its value being the path where the antenna radiation file is being stored.

           $export ANTENNA_RADIATION_FILE=...../ns-allinone-2.1b9a/ns-2.1b9a/mobile/antenna.txt

           That's it.           

  • This method is for those who already have Ns 2.1b9a package, and don't want to download the entire bulky package once again. In this method you do not need to download the entire bulky Ns package from here. Rather it will modify the existing Ns (version. 2.1b9a) package that can be obtained from NS homepage.  From the Download section, download the file Ns_to_TeNs.tar.gz . Unzip this file in "..ns-allinone-2.1b9a/ns-2.1b9a/" directory structure of your Ns package. This will create a directory called TeNs_changes. Execute the script "copyscript.sh" contained in TeNs_changes directory and then make the changes in "Makefile" as mentioned above. In addition export the environment variable as mentioned above. Don't forget to execute  " make clean " and "make depend". 


Enhancements and Modifications to NS

Here we briefly describe the additional features that we have added to NS. Note that our main focus was to improve modeling of 802.11 MAC layer protocol. So here is the list .
  1. Addition of support for channel interference.  Off-the-shelf version of Ns has features only one channel. We have added support for 11 channels  , as per specification of 2.4 GHz DSSS PHY in IEEE802.11 protocol, and also added features for random bit error rate, and errors due to channel interference.
  2. Addition of support for directional antenna, in addition to omni-antenna present in off-the-shelf Ns.  Currently we are providing support for some typical directional antenna radiation patterns, using an input file (see different radiation patterns included).  We also provide support for limiting directional antenna, in which you can just limit the angular width for spread of signal by specifying the degree of spread (see next section for details).
  3. Support for multiple interfaces on a mobile node (maximum 10).
  4. Support for adaptive data-rate transitions (as specified in 802.11b specification). Rates supported are 11 Mbps, 5.5 Mbps, 2 Mbps, 1 Mbps. 
  5. Support for gray region in Ns ( Earlier there was simple  2 state transition of signal from full to zero, without any sort of decay.)
  6. Random temporal variations in signal strength (to model a real life scenario).
  7. Static routing protocol for wireless implemented (called " wlstatic ") which also has support for mulithop propagation. 

Tutorial

We currently do not have an extensive tutorial, but the user can get complete picture through this sufficiently commented Tcl simulation script, regarding how to make use of its features. Here is another simulation script for a larger multihop mesh network.

Bugs

Some of the Mobile Ad-hoc Routing Protocols (like TORA, DSDV) may not work, due to changes made in process of creation of mobile nodes (now the node and interfaces are not tightly coupled). Currently only AODV, and the wireless static protocol - WLSTATIC, are confirmed to be fully working. 

Report bugs,  comments, and questions to the following email address :
email

Future Work

Download

Credits

This entire work was done as Bachelor's Project (BTech. Project) by Ashwini Kumar, and Sabyasachi Roy, Dept. of Computer Science & Enginnering (CSE), IIT Kanpur, India. Initial groundwork was done by Siddharth Saha and Ankur Khandelwal, Bachelors pass-out of the same department and institute. The work was completed under the guidance of Dr. Bhaskaran Raman, Assistant Professor, and  Dr.  Dheeraj Sanghi, Professor, both Dept. of CSE, IIT Kanpur, India.

Disclaimer 

This work comes with no guarantees. While its provided for public use as result of efforts on research and development, users are themselves responsible for any consequences of its use, and ensuring that simulations are not invalidated by bugs.

Related Work

The need for multiple interfaces in mobile nodes and directional antennas was being increasingly felt in Ns. An independent effort in this direction was made at IISc, Bangalore, India  (see wireless hosts with multiple interfaces and directional antenna ). Currently we are using the  directional antenna radiation pattern file provided at the above mentioned site.

The page's Web Counter says that you are visitor no.