Ns3 uses C++ programs or python scripts to define simulations. Ns-3 also supports a real-time scheduler that facilitates a number of “simulation-in-the-loop” use cases for interacting with real systems. For instance, users can emit and receive ns-3-generated packets on real network devices, and ns-3 can serve as an interconnection framework to add link effects between virtual machines.
Need for Ns3 projects:
- Ns3 projects was designed to improve scalability, modularity, coding style, and documentation.
- Several C++ design patterns such as smart pointers, templates, callbacks, and copy-on-write are leveraged
- The Internet nodes are designed to be a more faithful representation of real computers, including the support for key interfaces such as sockets and network devices, multiple interfaces per nodes, use of IP addresses, and other similarities.
- Design architecture to support the open-source networking software like routing daemons, kernel protocol and packet trace analyzer
- To reduce the need to port or rewrite models and tools for simulation.
Merits of ns3 projects:
- Wide range of use, both optimization and expansion of the existing networks and also design of the new network can be used
- Particularly applicable for design and optimization of medium and large network
- Ns3 projects is flexible, vivid and visual to use simulator for teaching
- Forecast function of network simulation is unmatched by any other method.
- It has low initial application cost.
- It’s simulation results are reproduced and easily analysis
Have high reliability
- It has cross layer features like tracing and packet tags. This means,
- Allow to report events across non-contiguous layers
- Small units of information attached to packets
- Running routing daemons on NS-3
- Run unmodified POSIX programs under simulation
- Packets can be saved to PCAP files, in a real format
- It’s an real time scheduler like simulation events synchronized to “wall clock time”
Run Linux Kernel TCP/IP stack under simulation
Types of routing protocols in ns3 Projects:
- IPV4 AODV (Ad Hoc On Demand Distance Vector)
- Dynamic Source Routing (DSR)
- IPV4 Static Routing (supports both uncast and multicast)
- IPV4 OLSR (Optimized Link State Routing)
- IPv4 DSDV (Destination Sequenced Distance Vector)
- Ipv4NixVectorRouting (a more efficient version of global routing)
- Ipv4ListRouting (used to store a prioritized list of routing protocols)
- Ipv4GlobalRouting (used to store routes computed by the global route manager)
- Ipv6ListRouting (used to store a prioritized list of routing protocols)