ns (simulator)
| Initial release | June 30, 2008[1] |
|---|---|
| Stable release | 3.13[2] / December 24, 2011[2] |
| Written in | C++ (core) Python (bindings)[2] |
| Platform | Unix, Mac OS X, Microsoft Windows via Cygwin |
| Type | Network simulator |
| License | GNU General Public License[2] |
| Website | [1] |
ns (from network simulator) is a name for series of discrete event network simulators, specifically ns-1, ns-2 and ns-3. These simulators are used in the simulation of routing protocols, among others, and are heavily used in ad-hoc networking research, and support popular network protocols, offering simulation results for wired and wireless networks alike.
Contents |
[edit] Design
ns-3 is built using C++ and Python and scripting is available with either language. Split over 30 modules, features of ns-3 include:
- Callback-driven events
- Attribute system that manages default and per-object simulation values
- Helpers that allow using simpler API when configuring simulations
[edit] Workflow for ns
It include four steps:
- 1. Implement protocol models
- 2. Setup simulation scenario i.e. Make Tcl file in which you mention what type of scenario you want, e.g. no of nodes, kind of agent working on nodes etc.
- 3. Run simulation i.e. Run the tcl file
- 4. Analyse simulation results i.e. by GNU Awk and gnuplot
[edit] History
ns began development in 1989 as a variant of the REAL network simulator and it is currently maintained by volunteers. Long-running contributions have also come from Sun Microsystems and the UCB Daedelus and Carnegie Mellon Monarch projects[3]
[edit] ns-2
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, Mac OS X and on Windows using Cygwin. It is licensed for use under version 2 of the GNU General Public License.
[edit] ns-3
On February 22, 2005 Tom Henderson made a post on ns-developers mailing list saying We intend to have some discussions on how some of ns-2 might be either refactored or forked as part of a future development effort (in parallel, for now, with maintenance of the existing code tree).[4]
In the process of discussing the necessary changes, it was found out that maintaining backward compatibility with ns-2 was generally not worth the effort, since most useful ns-2 models were already implemented in forks of ns-2 that were generally incompatible with each other. It was decided that new simulator will be written from scratch, using the C++ programming language.
Mathieu Lacage started developing yans (Yet Another Network Simulator) back in 2004, which was later used as a base for ns-3. Development of ns-3, initially sponsored by the NSF, INRIA, and Georgia Tech, began on July 1, 2006,..[5][6] The first release, ns-3.1 was made in June 2008, and afterwards the project continued making quarterly software releases.
ns-3 made its eleventh release (ns-3.11) in the first quarter of 2011.[2]
[edit] Criticism
ns-2 is often criticized because modeling is a very complex and time-consuming task, since it has no GUI and one needs to learn scripting language, queuing theory and modeling techniques. Of late, there have been complaints that results are not consistent (probably because of continuous changes in the code base) and that certain protocols are replete with bugs.[citation needed]
ns-3 is often criticized for its lack of support for some protocols which were supported in ns-2.
[edit] Educational use
It's expected that ns-3 will eventually replace ns-2 in most universities that are currently using ns-2.
[edit] Components
- Ns, the simulator itself has Nam, the network animator to visualize ns (or other) output.
- Pre-processing component for Traffic and topology generators.
- Post-processing for Simple trace analysis, often in Awk, Perl, or Tcl.
[edit] See also
[edit] References
- ^ http://mailman.isi.edu/pipermail/ns-developers/2008-June/004277.html
- ^ a b c d e "The ns-3 network simulator". http://www.nsnam.org/. Retrieved December 24, 2011.
- ^ "Rice Monarch Project Extensions to ns-2". http://www.monarch.cs.rice.edu/cmu-ns.html. Retrieved March 31, 2011.
- ^ http://mailman.isi.edu/pipermail/ns-developers/2005-February/001609.html
- ^ http://mailman.isi.edu/pipermail/ns-developers/2006-July/002316.html
- ^ "ns-3". July 2, 2011. http://nsnam.isi.edu/nsnam/index.php/Ns-3. Retrieved March 31, 2011.