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.
As a network engineer, an improperly configured application can cost a whole lot of time and money down the line. The best way to try and prevent these unfortunate accidents is by conducting thorough and efficient testing on a routine basis. Whether designing a network, migrating to the cloud, or adding a new device to the rack, every step within the application deployment life cycle should be validated with accurate testing.
Regarding 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.
A simulator can perform tasks in abstract to demonstrate the behavior of a network and its components, while an emulator can copy the behavior of a network to functionally replace it.
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-3, are used to simulate networking and routing protocols. OPNET, which was acquired by Riverbed in 2012 and applied to their SteelCentral product line, also provided a standalone simulation environment.
Both of these network simulators use discrete event simulation which chronologically queues and processes events like data flow. 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.
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 applying making changes or additions to a system.
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.
Software solutions, such as NetEm, which comes prepackaged within the Linux kernel, are ideal for testing at low data rates, but are limited by the testing machines on which they’re run.
Hardware solutions, such as the Linktropy 8510 from Apposite Technologies (Disclaimer: I currently work for Apposite Technologies), are purpose-built appliances. Testing can be done in minutes by simply installing the device in-line between client and server and configuring the traffic parameters. A hardware-based WAN emulator can emulate thousands of high-speed client connections, but they aren’t free.
You Say Potato, I say Tomato
Understanding the difference between a network simulator and a network emulator will expand your testing tool kit and optimize your engineering efforts. Both are useful and necessary tools and each serve their own distinct purpose. A network simulator will help you design a network from the ground-up without the need for physical appliances. Looking to develop a satellite communications network from scratch? Use a network simulator. Once that network is designed and built, a network emulator will help you test and validate application performance, troubleshoot, and provide proof-of-concept. Thinking about switching from MPLS to SD-WAN? Be sure to use a WAN emulator to validate and test vendors and appliance under consideration to ensure they can meet the performance demands of your current system. Good luck and godspeed.
This article was originally published in Network World by Zak Cole of Apposite Technologies.