Network emulation
Network emulation is a technique for testing the performance of real applications over a virtual network. This is different from network simulation where purely mathematical models of traffic, network models, channels and protocols are applied. The aim is to assess performance, predict the impact of change, or otherwise optimize technology decision-making.
Methods of emulation
Network emulation is the act of introducing a device to a test network (typically in a lab environment) that alters packet flow in such a way as to mimic the behavior of a production, or live, network — such as a LAN or WAN. This device may be either a general-purpose computer running software to perform the network emulation or a dedicated emulation device. Devices incorporate a varying amount of standard network attributes into their designs including: the round-trip time across the network (latency), the amount of available bandwidth, a given degree of packet loss, duplication of packets, reordering packets, corruption and modification of packets, and/or the severity of network jitter. Higher-end network emulators can also mimic typical Layer 1 physical errors such as Bit Error Rate, Loss of Signal, Output Bit Rotation, and others.
It is commonly known that networks are imperfect — private or public. They introduce delay and errors. They go down. They drop packets. The primary goal of network emulation is to create an environment whereby users can connect up their devices, applications, products and/or services and evaluate their performance, stability, or functionality against real-world network scenarios. Once tested in a controlled environment against actual network conditions, users can have confidence that the item being tested will perform as expected.
Emulation, simulation and traffic generation
Emulation differs from simulation in that a network emulator appears to be a network; end-systems such as computers can be attached to the emulator and will behave as if they are attached to a network. A network emulator emulates the network which connects end-systems, not the end-systems themselves.
Network simulators are typically programs which run on a single computer, take an abstract description of the network traffic such as a flow arrival process and yield performance statistics such as buffer occupancy as a function of time.
These products are typically found in the Development and QA environments of Service Providers, Network Equipment Manufacturers, and Enterprises.
Network emulation software
Software developers typically want to analyze the response time and sensitivity to packet loss of client-server applications, and emulate specific network access (wifi / 3G / 4G / transatlantic communication etc.) with different round-trip-time, throughput, bit error rate, network drop outs and application dropouts . Emulators for this purpose come in many different forms including browser-based or integrated development environment appliances.
The most popular network simulation software packages OPNET and NetSim also have emulation modules for real time interconnects.
Traffic generation software
The network performance under maximum throughput conditions can be analysed by network traffic measurement in a testbed network, using a network traffic generator such as iperf. The traffic generator sends dummy packets, often with a unique packet identifier, making it possible to keep track of the packet delivery in the network using a network analyzer .