In regard to network testing, the terms emulation and simulation are often used interchangeably. In most cases, either term will generally get the point across, but there’s a big difference between a network emulator and network simulator, both practically and semantically.
On a basic level, a network simulator uses mathematical formulas to create a theoretical and entirely virtual model of a network. Simulators are software solutions and different types are available for different applications. While used primarily for research and educational purposes, they can also act as crucial testing tools in the design and development of a network. Simulators, such as ns-2/ns-3, Qualnet, and OPNET are used to simulate networking and routing protocols. OPNET provides a standalone simulation environment.
These network simulators use discrete event simulation which chronologically queues and processes events like data flows. This allows a network architect or engineer to build and evaluate an experimental model of a network, including its topology and application flow. Since a variety of theoretical scenarios can be introduced to a network where anything can be built and applied, performance can be hypothesized before the network itself has even been implemented within the real-world.
Although testing a network in such a manner can save both time and money, network simulators aren’t without their limitations. These highly complex operations require a degree of experience and training to properly configure in order to acquire reliable results. Additionally, network simulators just aren’t practical in that certain events can’t be anticipated independently of a physical network. Moreover, it takes many years of practical hands-on experience building wireless solutions to utilize efficiently an expertly a tool like OPNET Modeler. We have such experience with OPNET Modeler, and it has taken many years of practical experience to be proficient with this tool.
A network emulator, also referred to as a WAN emulator, is used to test the performance of a real network. These devices can also be used for such purposes as quality assurance, proof of concept, or troubleshooting. Available as hardware or software solutions, a network emulator allows network architects, engineers, and developers to accurately gauge an application’s responsiveness, throughput, and quality of end-user experience prior to making changes or additions to a system.
Network emulation is used by manufacturers, service providers, and applications developers to verify the robustness of their network product or application. A network emulator recreates the real world effects seen in the network.
By physically placing it between two LAN segments, a network emulator can accurately replicate a client/server WAN connection without the need for a router, modem, or even live traffic. It can then be configured to manipulate bandwidth constraints and apply impairments, such as packet loss, delay, and jitter, to the mirrored network. Latency can be specified to emulate the transfer of data over large distances and applications behave and respond as if they’re actually physically separated. Application performance and end-user experience can then be observed, tested, and validated under such conditions in real-time.
Emulation is a viable option providing researchers and developers with the ability to bridge the gap between simulation and field testing in a practical, scalable and realistic environment.
With emulation, you guarantee a continuous execution of software validation tests throughout product development life cycles. This will notably increase defect detection and decrease resolution time by providing early insight into the correctness and effectiveness of custom wireless solutions.
Network Emulation vs. Simulation
Most of the work in estimating network performance has been done using network simulators such as ns-2/ns-3 and OPNET Modeler, which are relatively inexpensive (excluding OPNET which is very costly to license) to collect statistics in comparison to field tests with many devices. However, these simulators are not capable of providing statistics of real-time performance.
A distinguishing characteristic of real-time applications is user interaction, and simulators are handicapped to capture this; simplistic traffic sources used in simulators to model such user interaction, such as HTTP traffic models, cannot capture the high variability in real-time traffic. Detailed and precise statistics of real-time network statistics can be measured using test beds, which are prohibitively expensive.
A trend in the development of modern networked communications devices is the use of embedded Linux as the target operating system. Embedded Linux facilitates the use of open source network applications to implement the product’s network stack (e.g. Quagga, ospfd, olsrd, pimd, or Zebra for Mobile Ad Hoc Network routing), for upstream control and status (e.g. Net-SNMP agent and sub-agent) , or to provide node mobility via GPS (gpsd). These applications can be written in any software development language that is compatible with execution on the network emulation platform, and can be provided in either source code format for building on the platform, or a validated binary distribution through platform package management (.deb or .rpm).
While these network application may require custom model development in a network simulation environment (if not available through an existing or purchasable library), with a real time network emulation framework such as the Extended Mobile Ad-Hoc Network Emulator (EMANE), the actual open source applications can be used executing with network stack isolation and virtualization provided by light weight Linux containers (LXC). This ensures both fidelity to the actual embedded systems implementation and eliminates the network simulation development costs associated with modeling open source applications that are used with the actual deployment.
EMANE is an open source distributed emulation framework which provides wireless network experimenters with a highly flexible modular environment for use during the design, development and testing of simple and complex network architectures.
The following are our summary conclusions comparing network emulation vs. simulation:
- Network emulation provides a suitable alternative to both simplistic simulators and expensive simulators and test beds. It can provide real-time performance measurements of production-ready prototype technologies in a laboratory abstraction of real-world networks.
- Network simulation and emulation both provide a cost effective alternative to hardware emulators that have high costs, complicated configuration requirements and limited scale. Both can be scaled to hundreds of nodes.
- The primary advantage of emulation is the time savings in prototype testing. Further, the ability to port emulators into general purpose clusters offers a scalable solution.
- Among network emulators, there are two different approaches: hardware emulation and software solutions with the later being significantly less expensive than the former. We believe that high-fidelity software emulation is an attractive solution to obtain the performance of an actual system and complements network simulation analysis.
- As a company, we have developed over the years custom network emulators that provide real time network behavior at both the control and data planes as described as Radio Emulators. We are currently using the open source network emulator EMANE for circumstances where a custom solution is not required.
- We are uniquely positioned in the network simulation space having many years of practical experience with OPNET Modeler design and development as described as OPNET Wireless Networking Suite.
- We have experience using the EMANE emulator for networking waveform development and analysis, and have developed custom environment scripting, shims, jammers, and a custom EMANE over the air real-time spectrum and waterfall viewer.
- These two complementary approaches provide solutions for the development of networking devices in advance or in lieu of actual physical hardware and software.