The NetEmulator is a Linux based collection of Open Source software programs that enable a PC, or a cluster of PC's, to emulate a wireless network in which links have limited capacity and packets get lost and delayed.
The NetEmulatorís building blocks are implemented as separate Linux application programs. Click on the image to see full-size.
Unlike most other available network emulators, the NetEmulator models wireless layer 2/1 networks. A plethora of external user devices (eg. layer 3 routers, hosts, firewalls, etc) can readily "plug in" to a realistic yet synthetic layer 2/1 network. Once plugged-in, the performance of external applications and network protocols (like OSPF, RIP, DHCP, etc.) can be observed. This enables performance limitations of applications and network protocols to be discovered "in the lab" prior to deploying them in a real wireless environment. Thus, problems can be identified more quickly and easily. And, the NetEmulator enables methodical and repeatable testing so that the robustness of applications and protocols can be assured.
For each external user device that you'd like to "plug in" to the NetEmulator, an Ethenet NIC port on a Linux based PC is required...everything else, well, is just software. Arbitrary layer 2/1 network topologies can be emulated.
Models for three different types of layer 2/1 media types are provided, and, because it's Open Source, the models can be customized and new models created. The provided models, briefly described below, are generalized abstractions of common classes of wireless media access types:
The "Provisioned" model emulates traditional FDMA/TDMA systems in which each node is allocated a fixed amount of bandwidth.
The "Csma" model emulates shared contention based channels in which nodes compete against each other for the wireless channel using carrier sensing; this model includes a configurable exponential backoff algorithm and retransmission scheme.
The "Slotted Aloha" model emulates shared contention based channels in which nodes probabilistically choose a slot for transmitting data.