ns-3 | |
Released: | [1] |
Programming Language: | C++ (core), Python (bindings) |
Operating System: | Linux, FreeBSD, macOS, Windows |
Platform: | IA-32, x86-64 |
Genre: | Network simulator |
License: | GNU GPL |
ns (from network simulator) is a name for a series of discrete event network simulators, specifically ns-1, ns-2, and ns-3. All are discrete-event computer network simulators, primarily used in research[2] and teaching.
The first version of ns, known as ns-1, was developed at Lawrence Berkeley National Laboratory (LBNL) in the 1995-97 timeframe by Steve McCanne, Sally Floyd, Kevin Fall, and other contributors. This was known as the LBNL Network Simulator, and derived in 1989 from an earlier simulator known as REAL by S. Keshav.
Ns-2 began as a revision of ns-1. From 1997 to 2000, ns development was supported by DARPA through the VINT project at LBL, Xerox PARC, UC Berkeley, and USC/ISI. In 2000, ns-2 development was supported through DARPA with SAMAN and through NSF with CONSER, both at USC/ISI, in collaboration with other researchers including ACIRI.
1. It is a discrete event simulator for networking research.
2. It provides substantial support to simulate bunch of protocols like TCP, FTP, UDP, https and DSR.
3. It simulates wired and wireless network.
4. It is primarily Unix based.
5. Uses TCL as its scripting languages.
6. Otcl: Object oriented support
7. Tclcl: C++ and otcl linkage
8. Discrete event scheduler
Ns-2 incorporates substantial contributions from third parties, including wireless code from the UCB Daedelus and CMU Monarch projects and Sun Microsystems.
In 2005, a team led by Tom Henderson, George Riley, Sally Floyd, and Sumit Roy, applied for and received funding from the U.S. National Science Foundation (NSF) to build a replacement for ns-2, called ns-3. This team collaborated with the Planete project of INRIA at Sophia Antipolis, with Mathieu Lacage as the software lead, and formed a new open source project.
In the process of developing ns-3, it was decided to completely abandon backward-compatibility with ns-2. The new simulator would be written from scratch, using the C++ programming language. Development of ns-3 began in July 2006.
Current status of the three versions is:
ns-3 is a discrete-event network simulator, sometimes called a 'system simulator' in contrast to a 'link simulator' that models an individual communications link in more detail. ns-3 is written in C++ and compiled into a set of shared libraries that are linked by executable programs that describe the desired simulation topology and configuration. Python bindings are optionally provided using cppyy, allowing users to write simulation programs in Python. The ns-3 simulator features an integrated attribute-based system to manage default and per-instance values for simulation parameters.
To build ns-3, you need a computer with a C++ compiler, Python, and the CMake build system. Simple scenarios should run on typical home or office computers, but very large scenarios benefit from large amounts of memory and faster CPUs. The project provides an installation guide that details the requirements, and a tutorial on how to get started.
The general process of creating a simulation using either ns-2 or ns-3 can be divided into several steps: