A network emulator allows computers to interact via a virtual Internet. This provides a robust, repeatable test environment for distributed applications. These could be user level applications such as Internet games or interactive multimedia programs, or system level applications like distributed file systems.
For this work we have developed an emulator called the Internet Protocol Traffic and Network Emulator (IP-TNE). This uses components from the Internet Protocol Traffic and Network Simulator (IP-TN) and uses the CCTKit PDES kernel that provides high performance simulation on both sequential and shared memory parallel computers. TasKit has been modified for this work by adding a new task type, the real-time task type. This allows real-time interaction with a simulation running within TasKit.
To use the emulator routes are setup on the hosts involved in the emulation experiment so that packets can be seen by the host running the emulator. The emulator reads packets permiscuously and replies to ARP requests for registered hosts with fictitious hardware addresses. This leads to IP packets being routed to the emulator, which reads the packets, passes the packets through a network simulator and then dispatches the packets to there final destination. Packets are timestamped when they are read from the network and are released from the emulator when the wall clock time reaches the packet's output time as calculated in the simulator. A diagram showing how packets pass through IP-TNE is available for viewing. IP-TNE provides several methods for routing packets between client hosts and the emulator.
Current work includes attaining smoother real-time performance from CCTKit to allow larger networks to be modeled, fully integrating a graphical user interface with the emulator and in experimenting with different ways of using the IP-TNE.