Wednesday 31 March 2021

Study of Network simulator (NS)

 Simulators 

Most of the commercial simulators are Graphical User Interface (GUI) driven, while some network simulators are Command-Line Interface (CLI). The design of the network describes the state of the network (nodes, routers, switches and links) and the events (data transfer, transmission delay, packet error etc.). The major output of simulation is the trace files which log every packet and event that occurred during simulation and is used for analysis. Also provides other tools to facilitate visual analysis of trends and potential trouble spots. Most of the network simulators are discrete event, in which the list of pending "events" are stored and processed in order. Some events triggers the future events (i.e.) the event of the arrival of a packet at one node triggering the event of the arrival of that packet at a downstream node. Simulation of networks is a very difficult task. For example, if blocking is high, then evaluation of the average occupancy is challenging because of high variance. To evaluate the probability of buffer overflow in a network, the time required for a precise answer can be enormously large. Techniques like "control variants" and “sampling" have been developed to speed simulation

List of Network Simulators 

 There are many both free/open-source and proprietary simulators.

1. NS2 (Network Simulator 2) 

2. NS3 (Network Simulator 3) 

3. OPNET.

4. OMNeT++.

 5. NetSim. 

6. QualNet.

 7. J-Sim.).

2 Uses of Network Simulators

 

Network simulators serve a variety of requirements. Simulators are relatively fast and economical when compared to the cost and time involved in setting up an entire bed containing multiple network computers, data links and routers. They authorize researchers to test scenarios that might be particularly difficult or expensive to emulate using a real hardware - for instance simulating a scenario with several nodes or experimenting with a new protocol in the network. Simulators are mainly useful in allowing researchers to test new networking protocols or changes to existing protocols in controlled and reproducible surroundings.


A typical simulator encompasses a wide range of networking technologies and can help the users to build complex networks from basic building blocks such as selection of nodes and links. Various types of nodes in Hierarchical networks resembling computers, hubs, bridges, routers, links, switches mobile units etc can be designed with the help of simulators.

 

Various types of Wide Area Network (WAN) technologies like TCP, ATM, IP etc. and Local Area Network (LAN)

technologies like Ethernet, token rings etc., can be imitated with a simulator and the user can examine various standard results apart from devising some novel protocol or routing strategy. Network simulators are widely used to simulate battlefield networks in Network-centric warfare.

There are ample varieties of simulators, ranging from simple to complex. A simple simulator must enable a user to represent network topology, to specify nodes on the network, the links and the traffic between the nodes. More complex systems may permit the user to specify everything about the protocols used to handle traffic in a network. User friendly applications permit users to envision easily the working mechanism of their simulated situation. Text-based applications offer a less sensitive interface, but permits more advanced forms of customization.

1 NS2

 

The Ns2 is a discrete event simulator targeted at packet level networking research and provides substantial support

to simulate group of protocols like TCP, UDP, FTP and HTTP. It comprises of two simulation tools. Ns-2 is primarily UNIX based and fully simulates a layered wire or wireless network from the physical radio transmission channel to high-level applications. The simulator is written in C++ and a script language called OTcl.

  

C++:  C++ is fast to run but slower to change, making it suitable for detailed protocol implementation. 

 

Otcl:  OTcl runs much slower but can be changed very quickly (and interactively), making it ideal for simulation                configuration. Ns provides glue to make objects and variables appear on both languages. 

 

NS2 uses an OTcl interpreter by which the user writes an OTcl script that defines the network, (number of nodes and

links) the transaction in the network (sources destinations, type of traffic) and the type of protocols used. The outcome of the simulation is a trace file that can be used for data processing (calculate delay, throughput etc). To visualize the simulation, a program called Network Animator (NAM) is used. It visualizes the packets as they propagate throughout the network. The ns2 simulator has numerous features that make it suitable for our simulations.

 

     A network environment for ad-hoc networks, 

     Wireless channel modules (e.g.802.11), 

     Routing along multiple paths, 

     Mobile hosts for wireless cellular networks. 

     Download of  ns-2 source code is possible and can be compiled for multiple platforms.

Advantages: 

1.       NS2 has large number of available models, realistic mobility models, powerful and flexible scripting and simulation setup, large user community and ongoing development. 

2.       NS2 provides an easy traffic and movement pattern by including an efficient energy model. 

3.       It provides a set of randomized mobility model [29] and there are several projects to bring advanced mobility models to the simulators. 

4.       Complex scenarios can be easily tested. 

5.       Popular for its modularity. 

Limitations:  

1.  NS2 needs to be recompilation every time if there is a change in the user code. 

2.  Real system is too complex to model i.e. complicated infrastructure. 

2 NS3

 

The ns-3 simulator is a discrete-event network simulator for Internet systems, targeted primarily for research and

learning purpose. The ns-3 project, started in 2006, is open-source free software, licensed under the GNU GPLv2 license. It will rely on the current contributions of the community to develop new models, debug or maintain the existing ones, and share the results. Ns3 is mainly used on LINUX systems and not limited to internet based systems alone. 

 

C++: implementation of simulation and core model.Ns-3 is built as a library which may be statically or dynamically               linked to a C++ main program. These libraries describe the beginning of simulation and their topology.

Python: C++ wrapped by Python. Python programs to import an “ns3” module. The features of NS3                       simulator are given below.

 

1.  Modular, documented core

2.  C++ programs and Python scripting

3.  Alignment with real systems

4.  Software integrations 

5.  Virtualization and test bed integration

6.  Attribute system

7.  Updated models

 

Advantages:  

1.  High modularity than its ancestor NS2. 

2.  Support simulation for TCP, UDP, ICMP, IPv4, multicast routing, P2P and CSMA protocols. 

3.  Support for ported code should make model validation easier and more credible. 

4.  Much more flexible than any other simulators. 

5.  Wide range of use in both optimization and expansion of the existing networks. 

Limitations:  

1.       NS3 still suffers from lack of credibility. 

2.       NS3 is intended to replicate the successful mode of NS2 in which various organizations contributed to the models and components based on the framework of NS2. 

3.       NS3 needs a lot of specialized maintainers in order to avail the merits of NS3 as the commercial OPNET network simulators. 

4.       Active maintainers are required to respond to the user questions, bug reports and help to Test & validate the system.

3 OPNET 

 

OPNET is extensive and powerful simulation software which enables to simulate heterogeneous networks with a

range of protocols. Modeler is a commercial network simulation environment for network modeling and simulation [SAR12].

It allows the users to design communication networks, procedure, protocols, and applications with flexibility and scalability. The network is simulated graphically and the graphical editors mirror the structure of actual networks and their mechanism. An object-oriented system approach is used in the modeler.  

 

C (C++): The programming language in OPNET is C (recent releases support C++ development). The initial                

configuration (topology setup, parameter setting) is usually achieved using Graphical User Interface (GUI), a set of XML files or through C library calls. Simulation scenarios (e.g., parameter change after some time, topology update, etc.) usually require writing C or C++ code; although in simpler cases one can use special “scenario” parameters (e.g., link fail/restore time).

 

OPNET’s detailed features include:

 

1.     Fast discrete event simulation engine

2.     Lot of component library with source code

3.     Object-oriented modeling

4.     Hierarchical modeling environment

5.     Scalable wireless simulations support

6.     32-bit and 64-bit graphical user interface

7.     Customizable wireless modeling

8.     Discrete Event, Hybrid, and Analytical simulation

9.     32-bit and 64-bit parallel simulation kernel

10. Grid computing support

11. Integrated, GUI-based debugging and analysis

12. Open interface for integrating external component libraries

Advantages: 

1.       Leverage three different simulation technologies to efficiently tradeoff simulations detail and speed. 

2.       Fast discrete event simulation engine. 

3.       Customizable wireless modeling. 

4.       Integrated GUI based debugging and analysis [28]. 

Limitations: 

1.  Complex GUI operation. 

2.  It does not allow much number of nodes within a single connected device. 

3.  Accuracy of results is limited by the sampling resolution. 

4.  Simulation is inefficient if nothing happens for long periods

 

4 OMNET++

 

It is a component-based, modular and open architecture discrete event simulator framework. The most common use

of OMNeT++ is for simulation of networks, but it is also used for queuing network simulations and other areas as well. It is licensed under its own Academic Public License, which permits GNU Public License like freedom but only in noncommercial settings. It provides component architecture for models.

 

C++:  The C++ class library  comprises of simulation kernel and utility classes (for random number generation,                statistics collection, topology discovery etc) -- this one is used to create simulation components (simple modules  and channels); infrastructure to assemble simulations from these components and configure (NED language, ini files); runtime user interfaces or environments for simulations (Tkenv, Cmdenv); an Eclipse-based simulation IDE for designing, running and evaluating simulations; extension interfaces for real-time simulation, emulation, MRIP, parallel distributed simulation, database connectivity and so on.

 

The OMNeT++ components include:

 

1.     Simulation kernel library

2.     Compiler for the NED topology description language (nedc)

3.     Graphical network editor for NED files (GNED)

4.     GUI for simulation execution, links into simulation executable (Tkenv)

5.     Command-line user interface for simulation execution (Cmdenv)

6.     Graphical output vector plotting tool (Plove)

7.     Graphical output scalars visualization tool (Scalars)

8.     Model documentation tool (opp_neddoc)

9.     Utilities (random number seed generation tool, make file creation tool, etc.)

10. Documentation, sample simulations, etc.

Advantages: 

1.  Provides a powerful GUI environment. 

2.  Tracing and debugging are much easier than other simulators. 

3.  Accurately models most hardware and include the modeling of physical phenomena. 

Limitations: 

1.       It does not offer a great variety of protocols and very few protocols have been implemented, leaving users with significant background work. 

2.       Poor analysis and management of typical performance. 

3.       The mobility extension is relatively incomplete. 

 

5 NETSIM

 

NetSim is a discrete event simulator developed by Tetcos in 1997, in association with Indian Institute of Science. It has

also been featured with Computer Networks and Internets V edition by Dr. Douglas Comer, published by Prentice Hall. It has an object-oriented system simulating environment to support simulation and analysis of voice and data communication scenarios for High Frequency Global Communication Systems (HFGCS).

 

Java: It creating fast, platform independent software that could be used in simple, consumer electronic products. Java              designed for simple, efficient, platform-independent program for creating WWW-based programs. Using Java one can create small programs called applets that are entrenched into an HTML document and viewable on any Java-compatible browser.

Java applets are compiled into a set of byte-codes, or machine-independent processing instructions.

Features: 

       NetSim modeling and simulation are supported for Aloha, Slotted Aloha, Token Ring/Bus, Ethernet CSMA/CD, Fast Ethernet, WLAN - IEEE 802.11 a/b/g/n and e, X.25, Frame Relay, TCP, UDP, IPv4 and IPv6, Routing - RIP, OSPF, BGP,MPLS, MANET, GSM, CDMA, Wire-less Sensor Network, Zigbee, Cognitive radio)[5]. 

       It simulates a wide variety of Cisco routers, including 2500 series, 2600 series, 2800 series, and 3600 series, as well as the Cisco Catalyst 1900 series, 2900 series, and 3500 series switches. Protocol libraries are available as open C code for user modification. This can help to avoid the time consuming process such as encoding, customization and configuring commercial simulators to meet customer specific needs. Along with the Boson Virtual Packet Technology engine NetSim utilizes Boson’s proprietary Router & Simulator EROUTER software technologies, to produce individual packets. These packets are routed and switched through the simulated network, allowing the simulator to build an appropriate virtual routing table and simulate proper networking. Other simulation products on the market do not support this level of functionality. 

       It can be used to create a simulation of the topology of corporate network and help practice trouble-shooting without using devices on the production network. 

Advantages: 

1.       NetSim has a GUI which features drag and drop functionality for devices, links etc. i.e. Modeling in NetSim is simple and user friendly. 

2.       It has a built in analysis framework that provides intra and inter-protocol [19] performance comparison with graphical options. 

3.       Data packet and control packet flow can be visual-ized through NetSim built-in packet animator. 

4.       It is easy to learn all about NetSim.

Limitations: 

1.       NetSim is a single process discrete event simulator. A single event queue is used for the simulation which at any given time contains one entry for each station on the network. 

2.       Free version of NetSim is not available.

6 QualNet 

 

 It is a commercial network simulator from Scalable Network Technologies, Inc in 2000-2001. It is an ultra high

fidelity network simulation software that predicts wired or wireless platform network and their device performance. For a large, heterogeneous network and distributed applications such networks are executed.

 

C++:  For implementing new protocols, Qualnet uses C/C++ and follows a procedural paradigm. It uses the parallel simulation environment for the basic operations of complex systems (PARSEC). Hence it can run on distributed machines.

 

Features: 

       QualNet can support real-time speed to enable network developers and designers to run multiple analysis by varying model, network, and traffic parameters in a short time. 

       It can model thousands of nodes by taking advantage of the latest hardware and parallel computing techniques. A very powerful simulation tool that can support simulation of 500 to 20,000 nodes. 

       QualNet can run on cluster, multi-core, and multi-processor systems to model large networks with high fidelity. 

       It provides high fidelity commercial protocol and device models to enable more accurate modeling of real-world networks. 

       It enables the designer to design large wired and wireless networks using pre-configured or user-designed models.     It also facilitates to design new protocol models and to optimize new and existing models. 

       QualNet can connect to other hardware and soft-ware applications, such as OTB, real networks, and a third party graphical software in order to enhance the value of the network model. 

Advantages: 

1.  QualNet supports multiprocessor systems and distributed computing. 

2.  It can simulate a mixture of both wired and wireless networks. 

3.  It provides GUI that is convenient and easy-to-use. 

4.  It facilitates sophisticated animation capabilities. 

5.  It can run on cluster, multi-core, and multi-processor systems.

Limitations: 

1.       The simulation tool QualNet is an extension of GloMoSim which is being commercialized. 

2.       Installation of QualNet on Linux is difficult. 

3.       The java based user interface provided by this simulation software is slow.

7 JSIM

  

J-Sim has been developed by a team at the Distributed Real-time Computing Laboratory (DRCL). The project has been sponsored by the National Science Foundation (NSF), DARPA’s, Air Force Office of Scientific Research’s Multidisciplinary University Research Initiative, the Ohio State University and  University of Illinois at Urbana-Champaign. J-Sim is free and available with source code.

 

Java: Java is easy to learn and easy to use. In case of any problems, source texts provided with J-Sim can be used to create fresh code, compiled in the target environment, thus 100% compatible with JVM used. Java provides a class called Thread whose instances run parallel with other such instances. It is an object-oriented language, providing the concepts of classes, instances, encapsulation, inheritance and polymorphism. J-Sim provides basic classes for simulation, process and queue which can be either directly used or extended according to specific user's requirements.

 

Tcl:  Scripting is an essential part of J-Sim, used to "glue" all the components and define how the operation of the system takes place. It makes possible to manipulate Java objects in the Tcl environment, such as creating an object, invoking a method or accessing a field variable of a Java object.

Features:  

       It is loosely-coupled, component-based programming model. The ability to handle data independently contexts along with the fact that components are loosely coupled and only bound to one another at system integration time. This is the key reason that a component can be reused in other software systems with the same context. It is as the same fashion as IC chips used in hardware design.

       It provides dynamic thread execution framework for real-time process-driven simulation. In J-SIM, the simulation engine extends the worker Pool class and monitors the activities of all worker threads. It maintains a globallyobserved virtual system time that is proportional to the real time. 

       Implementation of a complete suite of Internet Integrated/Differentiated/Best Effort Services protocols. The inference of the same is three fold with all the Internet protocol classes available, the abstract classes and by virtue of the component hierarchy. 

       A dual-language environment that allows auto-configuration and on-line monitoring. This closely mimics the IC debugging and testing process [25]. 

       Representation of generic interface classes for trace-driven simulation, with which (i) the network of interest can be emulated based on real network traffic loads and (ii) fidelity of J-SIM can be validated (and the (in)accuracy quantitatively characterized) through analysis/comparison of real network performance data and simulation data.

Advantages:  

1.       A simple and well-defined component-based soft-ware architecture with object oriented paradigm. This facilitates hierarchical modeling of complex systems

2.       Simulation engine is built in the runtime and is transparent to components. 

3.       It provides Process-oriented modeling and wait () methods, synchronization methods to further ex-tend programming flexibility. 

4.       It can work with both discrete event simulation and real-time process-based simulation. 

5.       It will implement a parallel simulation in the autonomous component architecture. 

Limitations:  

1.       Java has some security restrictions. So forth JSIM can be prevented from persistence in data. 

2.       Operation of JSIM required clear concept of queuing algorithm. 

3.       The graphical model designer, which has limited capabilities as of now (can only be used to design a model), is intended to be a GUI-based model builder that would do much of  the code generation that has to be done manually. 

5.  Comparison of Simulators 

 

            MANET simulators exhibit different features and models. The choice of a simulator should be driven by the requirements and the level of details necessary. If high-precision PHY layers are desirable, then ns-2 is the wisest option. On contrary, if the wireless tools has no impact on the targeted protocol, modern simulators (like NAB or Jane) which propose high-level abstractions and polished object-oriented designs will be adapted. These targeted nodes determine the choice of the simulation tool. Sequential simulators should not be anticipated to run more than 1,000 nodes. To end with, most noncommercial simulators suffer from lack of good certification and support. Using a commercial one, may help in case of difficulty. In addition, commercial simulators feature extensive list of supporting protocols, while open source solutions give complete empowerment. These are listed in the table below.

 

Table: Comparisons of Various Simulators

 

Name

License

Programming Language

 

Supported Operating System  

NS2

Open source

C++, TCL

GNU/Linux, FreeBSD, Mac OS

X, Win-dows XP, Windows Vista and Win. 7. 

NS3

Open source

C++, Python

GNU/Linux, FreeBSD, Mac OS X, Win-dows XP, Windows Vista & Windows 7. 

OPNet

Commercial

C

Windows XP, Vista, 7 & Windows NT 4.0. 

OMNET++

Open source

C++

Windows XP or Lat-er, Linux, Mac OS X, 

NETSIM

Open source

Java

Windows (7, Vista) and windows XP 

QUALNET

Commercial

C++

UNIX, Window- MAC, Linux 

JSIM

Open source

JAVA, Tcl

Windows XP, Vista & 7, MAC OS X, Linux. 

 

 

6.  Conclusion

 

In this paper, we have presented a general overview of an open source network simulators for those who are not familiar with it. A brief introduction of Open-Source Technology key concepts, Network Simulation and different open source network simulator. We analyzed and discussed advantages, disadvantages and future scope of Open-Source Technology. Its uses are more efficient for academics, industries, new researchers and student. It is easier for all the users to learn and use, then we introduced four different open source network simulators NS2, NS3, OMNeT++ and J-Sim. We also  discussed about current feature, merits & demerits, challenges, future scope of all simulators. Currently NS2 is the best option simulator, for GUI interested OMNeT++, for large network simulation Opnet, Qualnet, Netsim are better than ns2,  Jsim is best for wireless sensor. 

 


No comments:

Post a Comment

The Future of Web Development: Why Next.js is Going Viral

  Are you ready to level up your web development game? Look no further than Next.js, the latest sensation in the world of web development th...