The WAN emulator (wan-emu) is a network research/development toolkit that builds network testbed in a easy, efficient, cheap, and realistic way. It is suitable for conducting switched LAN-to-WAN experiments with delay/loss/jitter emulations. Wan-emu can support 100 simultaneous routes per interface, with each one containing independent impairments and modifiers. Also it can construct asymetric links.
Some vendors, such as PacketStorm, modify Linux kernel (open source) as their platforms and use the same queuing disciplines as those in tc (Traffic Control for Linux), but never do they open their patches. Related vendors are listed at the vendor page.
Motivations and Objectives
Many networking researches use the dumbbell (single bottleneck) scenario to perform their simulations. Simulation may be the fatest way to implement their ideas because various conditions, such as link bandwidth, RTT, loss probability, and queuing delay (delay jitter) can be easily specified. However, simulations are often too simplified and ignore some details that may influence the results. Some well-know algorithms, such as TCP congestion control algorithms (Tahoe, Reno, NewReno, Sack, Fack, and Vegas), has a lot of implementations deployed at various operating systems, and has some different assumptions from the original versions, which implements in simulators such as NS, and xkernel. We have no efficient way verifying their effectiveness against their original simulation results. After all, the purpose of networking researches is to deployed their ideas. We thus develop an efficient/cheap/realistic tool to make things easier.
Some companies may also find useful using this tool for developing their products. For example, Zyxel have used wan-emu to test their VoIP solutions and find it useful when customizing delay, loss, and jitter. Merely 4 PCs and wan-emu facilitate the development process of most networking equipments, such as debugging, testing, and benchmarking.


The testbed (see the figure below) consists of cascaded machines with statically configured routes. To emulate multiple competing sources and their sinks, we utilize the IP-aliasing; to emulate the dynamics of the Internet, we write the wan-emu virtual interface driver (a Linux kernel module). We describe them as follows:

wan-emu with tcp-masq:

Click the figure above to enlarge.

IP-aliasing support: Each network interface card (NIC) can not only have multiple IP addresses, but also multiple aliased interface names. With proper routing table setup, we can direct flows destined to somewhere through some aliased interface. Aliased interfaces generate packets with their corresponding aliased IP addresses such that the edge feels that outgoing packets are from different local hosts, and incoming acks are from different remote hosts. What is more, packets are sent without link-layer collisions since a single physical NIC is present at each side. By this we claim that it is a switched LAN-to-WAN testbed. Note that some operating systems merely support aliased IP addresses, but cannot support aliased interface names, such as FreeBSD and Windows 2000.
wan-emu virtual interface driver: Each packet passing through is pasted a timestamp indicating the time for it to be kicked out. An interrupt is triggered every 1ms to examine how many packets are due and should be forwarded. The timer granularity can be easily tuned to 8192 Hz in Linux. We can also specify the random loss probability, and the RTT jitter on each wan-emu virtual device. Multiple wan-emu virtual devices can be attached to multiple aliased interfaces, with multiple data segments but with only one code segment.
We write a Linux kernel virtual network interface card (NIC) device driver to implement the RTT/loss/QueueDelay, together with IP-aliasing and interface-aliasing support, so that a specfied route path can have the desired path properties. In such a way each physical NIC can emulate 100 NICs with different IP addresses attached on them, thus emulating the dumbbell scenario. Each path can have a wan-emu cascaded to characterize the path. This method is verified through the results compared with live-experiment connections from our site to UCLA. Flows through wan-emu resembles the real-life connections in Internet.

If you have any comment or find bugs, please contact .

Best view 800x600