WAN Emulator: A tool for emulating networks with packet delay and loss
Syed AliOral Defence Date:
Tuesday, May 8, 2007 - 15:30Location:
Professor Marguerite Murphy, Professor Dragutin Petkovic
In this report we present the design and implementation of an emulator that mimics the behavior of a wide area network (WAN) by introducing packet delays, errors and re-ordering based on a specified behavior profile. This prototype handles UDP traffic only and operates above the Unix Sockets layer. It accepts UDP packets on a pre-defined port and forwards outgoing traffic to a pre-defined destination host and port, after possibly introducing some amount of packet delay, loss and reordering. The behavior profile contains several parameters, which are used by the emulator to determine how to handle each packet. These parameters are: a) packet loss rate, b) ordered delivery, and c) mean and standard deviation of the packet delay. The WAN emulator is implemented in both the C and JAVA languages. The C-implementation performs the emulation using a single threaded algorithm, whereas the JAVA implementation is designed to handle packets using a thread-pool based strategy. The results from our testing and benchmarking indicate that the emulator performs as expected; any packets going through the emulator are delayed, re-ordered or lost according to the configured behavior profile.