|This article needs additional citations for verification. (December 2014) (Learn how and when to remove this template message)|
In communication and computer network research, network simulation is a technique where a program models the behavior of a network either by calculating the interaction between the different network entities (hosts/packets, etc.) using mathematical formulas, or actually capturing and playing back observations from a production network. The behavior of the network and the various applications and services it supports can then be observed in a test lab; various attributes of the environment can also be modified in a controlled manner to assess how the network would behave under different conditions.
A network simulator is software that predicts the behavior of a computer network. Since communication Networks have become too complex for traditional analytical methods to provide an accurate understanding of system behavior, network simulator are used. In simulators, the computer network is typically modeled with devices, links, applications etc. and the performance is analysed. Simulators typically come with support for the most popular technologies and networks in use today.
Most of the commercial simulators are GUI driven, while some network simulators are CLI driven. The network model / configuration describes the state of the network (nodes, routers, switches, links) and the events (data transmissions, packet error etc.). An important output of simulations are the trace files. Trace files log every packet, every event that occurred in the simulation and are used for analysis. Network simulators can also provide other tools to facilitate visual analysis of trends and potential trouble spots.
Most network simulators use discrete event simulation, in which a list of pending "events" is stored, and those events are processed in order, with some events triggering future events—such as 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 complex task. For example, if congestion is high, then estimation of the average occupancy is challenging because of high variance. To estimate the likelihood of a buffer overflow in a network, the time required for an accurate answer can be extremely large. Specialized techniques such as "control variates" and "importance sampling" have been developed to speed simulation.
A network emulator allows users to introduce real devices and applications into a test network (simulated) that alters packet flow in such a way as to mimic the behavior of a live network. Live traffic can pass through the simulator and be affected by objects within the simulation.
The typical methodology is that real packets from a live application reach the emulation server (where the virtual network is simulated. The real packet gets modulated into a simulation packet. The Simulation packet gets demodulated into real packet after experiencing effects of loss, errors, delay, jitter etc., thereby transferring these network effects into the real packet. Thus it is as-if the real packet flowed through the real networks but in reality it flowed through the simulated network.
Emulation is widely used in the design stage for validating communication networks prior to deployment.
Examples of network simulators
There are both free/open-source and proprietary network simulators available. Examples of notable network simulators / emulators include:
Uses of network simulators
Network simulators provide a cost effective method for
a. Network design validation for enterprises / data centers /sensor networks etc.
b. Impact assessment for modification / additions to existing network
c. Network protocol R & D
d. Defense applications such as HF / UHF / VHF MANET networks, Tactical data links etc.
There are a wide variety of network simulators, ranging from the very simple to the very complex. Minimally, a network simulator must enable a user to
1. Model the network topology specifying the nodes on the network and the links between those nodes
2. Model the application flow (traffic) between the nodes
3. Providing network performance metrics as output
4. Visualization of the packet flow
5. Logging of packet / events for drill down analyses / debugging
- Channel model
- Mobility model
- Network emulation
- Network topology
- Network traffic simulation
- Queueing theory
- Traffic generation model
- Simulation language
- Simulation software
- Wireless sensor network simulators
- Asmussen, Søren, Glynn, Peter W., 2007. "Stochastic Simulation: Algorithms and Analysis". Springer. Series: Stochastic Modelling and Applied Probability, Vol. 57, 2007.
- Banks, Carson, Nelson Nicol. "Discrete Event System Simulation". Pearson