ns-3 is a discrete-event network simulator, commonly used to gain insight into dynamics of complex networks. Descriptions here are short, to get you running ns-3 quickly, but further information can be found in the official documentation. Instructions are based the ns-3 installation wiki and the ns-3 tutorial.
Installation and build
sudo apt-get install gcc g++ python python-dev bzr mercurial gdb valgrind gsl-bin libgsl0-dev libgsl0ldbl flex bison libfl-dev g++-3.4 gcc-3.4 tcpdump sqlite sqlite3 libsqlite3-dev libxml2 libxml2-dev libgtk2.0-0 libgtk2.0-dev vtun lxc uncrustify doxygen graphviz imagemagick texlive texlive-extra-utils texlive-latex-extra python-sphinx dia python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev libboost-signals-dev libboost-filesystem-dev
# Clone repositories and download code:
hg clone http://code.nsnam.org/ns-3-allinone
cd ns-3-allinone
./download.py -n ns-3.16
# Build the code:
./build.py –enable-examples –enable-tests
# Sanity tests for build:
cd ns-3.16
./test.py -c core
{/codecitation}
Concepts
A Node is a simulated computation device (e.g., computer), which runs Applications. Each Node is connected to Net Devices, which simulate the behavior of a NIC’s software (driver) and hardware together. The Net Device is in turn connected to a Channel. Each of these abstractions (Node, Application, Net Device and Channel) are C++ classes that the programmer specializes. For example WifiChannel is a subclass of Channel.
Topology helpers connect multiple components in known, useful structures; they are a high-level tool to reduce the burden of common configuration tasks.
More information in the official tutorial.