- The principal idea of network simulation is that if a system can be modeled, then features of the model can be changed and the corresponding results can be analyzed.
- As the process of model modification is relatively cheap than the complete real implementation, a wide variety of scenarios can be analyzed at low cost (relative to making changes to a real network).
- NS3 is not an updated version of NS2 since that NS3 is a new simulator and it is not backward-compatible with NS2.
- Ns3 network simulator is Written in C++ and released under the terms of the GNU GPLv2.
Features of ns3:
- Supports incorporation of more open-source networking software and reduce the need to rewrite models for simulation
- Core of ns3 is written in C++ and with Python scripting interface and also several advanced C++ design patterns are used
- Lightweight virtual machines are used.
- Protocol entities are designed to be closer to real computers etc.
Smart pointer in ns3:
- It’s automatically free the memory used by the pointer only when the last reference is destroyed
- If a function returns a smart pointer, the programmer need not take any specific action to free the memory
- Rather than you just let the pointer variable go out of scope
- It’s created by using the CreateObject.
- Example as follows,
Ptr<UdpSocketImpl> socket = CreateObject<UdpSocketImpl>();
- Smart Pointers are returned by many of the ns–3 functions
- For example Ptr GetNode () const;