NS2 is an open-source simulation tool that runs on Linux. It is a discreet event simulator targeted at networking research and provides substantial support for simulation of routing, multicast protocols and IP protocols, such as UDP, TCP, RTP and SRM over wired and wireless (local and satellite) networks. It has many advantages that make it a useful tool, such as support for multiple protocols and the capability of graphically detailing network traffic. Additionally, NS2 supports several algorithms in routing and queuing. LAN routing and broadcasts are part of routing algorithms. Queuing algorithms include fair queuing, deficit round-robin and FIFO.ns-2 was built in C++ and provides a simulation interface through OTcl, an object-oriented dialect of Tcl. The user describes a network topology by writing OTcl scripts, and then the main ns-2 program simulates that topology with specified parameters. It runs on Linux, FreeBSD, Solaris and Mac OS X. It is licensed for use under version 2 of the GNU General Public License.
Ns is often growing to include new protocols.
• To support networking research and education
– Protocol design, traffic studies, etc.
– Protocol comparison;
– New architecture designs are also supported.
• To provide collaborative environment
– Freely distributed, open source;
– Increase confidence in result
Object-oriented & modular
pros: code reuse (e.g., TCP variants), maintenance
cons: performance (speed and memory), careful planning of modularity
- uses two languages: C++ and OTcl (Object TCL) -to achieve separation of control- and packet level
C++ for packet processing
• fast execution, detailed, full control over execution
• to make simulator scalable, packet processing must be done at C++ level
OTcl for control
• simulation setup, configuration, occasional actions (e.g., creating new TCP flows)
- compromise between speed and abstraction level(s) offered to the user
- draw back: need to learn two languages and debug in two “worlds”