Network simulation: Difference between revisions

Content deleted Content added
m Undid edits by 102.106.216.195 (talk) to last revision by Lady-Phoenix
Nicmcd (talk | contribs)
m Fixed URL to supersim simulator
Tag: Reverted
Line 1:
{{refimprove|date=December 2014}}
{{Short description|Simulating computer networks}}
In [[communication]] and [[computer network]] research, '''network simulation''' is a technique wherebywhere a software program replicatesmodels the behavior of a real network. This is achievedeither by calculating the interactionsinteraction between the different network entities such(hosts/[[Router as routers, switches, nodes, access points, links(computing)|packet]]s, etc.) Mostusing simulatorsmathematical useformulas, discreteor eventactually simulationcapturing inand whichplaying theback modelingobservations offrom systemsa inproduction which state variables change at discrete points in timenetwork. 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/protocols would behave under different conditions.
{{Use American English|date = March 2019}}
{{unreferenced|date=April 2019}}
In [[computer network]] research, '''network simulation''' is a technique whereby a software program replicates the behavior of a real network. This is achieved by calculating the interactions between the different network entities such as routers, switches, nodes, access points, links, etc. Most simulators use discrete event simulation in which the modeling of systems in which state variables change at discrete points in time. 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/protocols would behave under different conditions.
 
==Network simulator==
A '''network simulator''' is a [[software]] program that can predictpredicts the performancebehavior of a [[computer network or a wireless communication network]]. Since communication networksNetworks have become too complex for traditional analytical methods to provide an accurate understanding of system behavior, network simulatorssimulator are used. In simulators, the computer network is typically modeled with devices, links, applications, etc., and the network performance is reportedanalysed. Simulators typically come with support for the most popular technologies and networks in use today such as [[5G]], [[Internet of Things]] (IoT), [[Wireless LAN]]s, [[mobile ad hoc network]]s, [[wireless sensor network]]s, [[vehicular ad hoc network]]s, [[Cognitive Radio Networks|cognitive radio networks]], [[LTE (telecommunication)|LTE]] etc.
 
==Simulations==
Most of the commercial [[Simulation|simulators]] are [[GUI]] driven, while some network simulators are [[Command-line interface|CLI]] driven. The network model / configuration describes the state of the network (nodes, routers, switches, links) and the events (data transmissions, packet error, etc.). OutputAn resultsimportant wouldoutput includeof network-levelsimulations metrics,are link metrics, device metrics etc. Further, drill down in terms of simulationsthe [[tracing (software)|trace]] files would also be available. Trace files log every packet, every event that occurred in the simulation and isare used for analysis. Most networkNetwork simulators usecan [[discretealso eventprovide simulation]],other intools whichto afacilitate listvisual analysis of pending "events" is stored,trends and thosepotential eventstrouble 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 (networking)|downstream]] nodespots.<section end=transclusionLabelG20170307T1400GMT1 />
 
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.
==Network emulation==
[[Network emulation]] 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.
 
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.<ref name=AG07>Asmussen, Søren, Glynn, Peter W., 2007. "Stochastic Simulation: Algorithms and Analysis". Springer. Series: Stochastic Modelling and Applied Probability, Vol. 57, 2007.</ref><ref>Banks, Carson, Nelson Nicol. "Discrete Event System Simulation". Pearson</ref>
The typical methodology is that real packets from a live application are sent to the emulation server (where the virtual network is simulated). The real packet gets 'modulated' into a simulation packet. The simulation packet gets demodulated into a 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 a real network but in reality it flowed through the simulated network.
 
==Network emulationEmulation==
[[NetworkA emulation]]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 are sent toreach the emulation server (where the virtual network is simulated). The real packet gets 'modulated' into a simulation packet. The simulationSimulation packet gets demodulated into a 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 athe real networknetworks but in reality it flowed through the simulated network.
 
Emulation is widely used in the design stage for validating communication networks prior to deployment.
 
==ListExamples of network simulators==
There are both free/open-source and proprietary network simulators available. Examples of notable network simulators / emulators include:
<!-- Only add simulators that have a wp article, and are mentioned in many research papers. Search at http://scholar.google.com. Do not add external links here. -->
* NS[[ns (simulator)|ns]] (open source)
* [[OPNET]] (Riverbedproprietary software)
* [[NetSim]] (Tetcosproprietary software)
* [https://github.com/booksim/booksim2 BookSim] (open source cycle-accurate flit-level simulator)
* [[GloMoSim]]
* [https://github.com/ssnetsim/supersim SuperSim] (open source cycle-accurate flit-level simulator)
 
All of these are open source code editable while some of these are commercial.
 
==Uses of network simulators ==
Network simulators provide a cost- effective method for
 
a. Network design validation for enterprises / data centers /sensor networks etc.<br />
* 5G-NR capacity, throughput and latency analysis
b. Impact assessment for modification / additions to existing network<br />
* Network R & D (More than 70% of all Network [[Academic paper|Research paper]] reference a network simulator)
c. Network protocol R & D<br />
* Defense applications such as [[High frequency|HF]] / [[UHF]] / [[VHF]] Radio based [[MANET]] Radios, [[Tactical data link]]s etc.
d. Defense applications and [[Network-centric warfare]]
* [[Internet of things|IOT]], [[VANET]] simulations
* [[Unmanned aerial vehicle|UAV]] network/[[wikt:drone|drone]] swarm communication simulation
* [[Machine Learning]]: Testing ML algorithms for optimizing network parameters, generating synthetic data training ML algorithms on networks
* Education: Online courses, Lab experimentation, and R & D. Most universities use a network simulator for teaching / R & D since it is too expensive to buy hardware equipment
 
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 <br />
*2. Model the application flow (traffic) between the nodes<br />
*3. Providing network performance metrics as output<br />
*4. Visualization of the packet flow<br />
*5. Logging of packet / events for drill- down analyses / debugging
* Technology/protocol evaluation and device designs
* Logging of packet/events for drill-down analyses/debugging
 
==See also==
*[[Channel model]]
*[[Mobility model]]
*[[Network emulation]]
*[[Network topology]]
*[[Network traffic simulation]]
*[[Queueing theory]]
*[[Traffic generation model]]
*[[Simulation language]]
*[[Simulation software]]
*[[Wireless sensor network#Simulation of WSNs|Wireless sensor network simulators]]
 
==References==
{{reflist}}
 
==External links==
* [http://www.idsia.ch/~andrea/sim/simnet.html List of Network Simulation Tools]
 
[[Category:Computer networking]]
[[Category:Telecommunications engineering]]
[[Category:Computer network analysis]]
[[Category:SimulationModeling and simulation]]
[[Category:Military radio systems]]