# Network traffic simulation

Network traffic simulation is a process used in telecommunications engineering to measure the efficiency of a communications network.

## Overview

Telecommunications systems are complex real-world systems, containing many different components which interact, in complex interrelationships. The analysis of such systems can become extremely difficult: modelling techniques tend to analyse each component rather than the relationships between components. Simulation is an approach which can be used to model large, complex stochastic systems for forecasting or performance measurement purposes. It is the most common quantitative modelling technique used.
The selection of simulation as a modelling tool is usually because it is less restrictive. Other modelling techniques may impose material mathematical restrictions on the process, and also require multiple intrinsic assumptions to be made.
Network traffic simulation usually follows the following four steps:
* Modelling the system as a dynamic stochastic (i.e. random) process
* Generation of the realizations of this stochastic process
* Measurement of Simulation data
* Analysis of output data

## Simulation methods

There are generally two kinds of simulations used to model telecommunications networks, viz. discrete and continuous simulations. Discrete simulations are also known as discrete event simulations, and are event-based dynamic stochastic systems. In other words, the system contains a number of states, and is modelled using a set of variables. If the value of a variable changes, this represents an event, and is reflected in a change in the system’s state. As the system is dynamic, it is constantly changing, and because it is stochastic, there is an element of randomness in the system. Representation of discrete simulations is performed using state equations that contain all the variables influencing the system.
Continuous simulations also contain state variables; these however change continuously with time. Continuous simulations are usually modelled using differential equations that track the state of the system with reference to time.

## Advantages of simulation

* Normal analytical techniques make use of extensive mathematical models which require assumptions and restrictions to be placed on the model. This can result in an avoidable inaccuracy in the output data. Simulations avoid placing restrictions on the system and also take random processes into account; in fact in some cases simulation is the only practical modelling technique applicable;
* Analysts can study the relationships between components in detail and can simulate the projected consequences of multiple design options before having to implement the outcome in the real-world.
* It is possible to easily compare alternative designs so as to select the optimal system.
* The actual process of developing the simulation can itself provide valuable insights into the inner workings of the network which can in turn be used at a later stage.

## Disadvantages of simulation

* Accurate simulation model development requires extensive resources.
* The simulation results are only as good as the model and as such are still only estimates / projected outcomes.
* Optimisation can only be performed involving a few alternatives as the model is usually developed using a limited number of variables.
* Simulations cost a lot of money to build and are very expensive to make

## Statistical issues in simulation modelling
### Input data

Simulation models are generated from a set of data taken from a stochastic system. It is necessary to check that the data is statistically valid by fitting a statistical distribution and then testing the significance of such a fit. Further, as with any modelling process, the input data’s accuracy must be checked and any outliers must be removed.

### Output data

When a simulation has been completed, the data needs to be analysed. The simulation's output data will only produce a likely estimate of real-world events. Methods to increase the accuracy of output data include: repeatedly performing simulations and comparing results, dividing events into batches and processing them individually, and checking that the results of simulations conducted in adjacent time periods “connect” to produce a coherent holistic view of the system.

### Random numbers

As most systems involve stochastic processes, simulations frequently make use of random number generators to create input data which approximates the random nature of real-world events. Computer generated [random numbers] are usually not random in the strictest sense, as they are calculated using a set of equations. Such numbers are known as pseudo-random numbers. When making use of pseudo-random numbers the analyst must make certain that the true randomness of the numbers is checked. If the numbers are found not to behave in a sufficiently random fashion, another generation technique must be found. Random numbers for the simulation are created by a random number generator.