The Mobile Network Emulator (MNE) is a simple, light-weight mobile network emulator that runs under Linux. The MNE works in a distributed manner, with each node controlling its own virtual position and blocking packets from other nodes as necessary. The MNE nodes use the Multicast Dissemination Protocol (MDP) to reliably and efficiently transfer their position and various other pieces of information (e.g., MAC address, radio parameters) to all other nodes. This information is then used to determine which nodes are out of range of the given MNE node, and those nodes are blocked by MAC address using iptables. The use of a control backchannel (a second network which is reliable and not congested) is highly recommended, but is not necessarily required, for transferring MNE messages and for distributing environmental information (events, etc.).
Just as in a real-world field test, each MNE node runs real applications, including Mobile Ad-Hoc Networking (MANET) routing protocol implementations, traffic generation tools, etc. While the above image shows a single controller/gateway node, that is not necessary for the MNE itself. That is necessary if you wish to use the MNE control scripts to automate testing.
The MNE was designed with MANET in mind, but at its core, it simply creates network topologies with optional link dynamics. This makes it useful for investigating autoconfiguration methods, and testing how well various protocols and applications deal with network dynamics.
This webpage contains several visualization movies which show the MNE in action.
- Emulation allows real-world applications and protocol implementations to undergo significant mobility/dynamics testing and debugging before undertaking an expensive field trial
- Simple, light-weight, distributed system does not require an expensive central piece of hardware
- IPv4 and IPv6 support
- Multicast support
- Supports autoconfiguration under motion
- Uses a simple link budget calculation and simple path loss models to determine which nodes can communicate
- Supports altitude for three dimensional (3D) emulation
- Allows asymmetric links (if different radio parameters are given at different nodes)
- Includes a variety of simple motion models (static, line, circle, random waypoints)
- Has the ability to use NS-2 scripts for motion generation
- Has the ability to use real-world GPS traces for motion generation
- Supports Linux only because it uses iptables
- Does not support blocking non-IP packets (e.g. ARP)
- Does not support bit errors or per-packet dropping (blocks everything, or nothing)
- IPTABLES filtering does not prevent applications from sniffing traffic using libpcap (it does, however, talk with NRLSMF so that that application can also block multicast packets appropriately)
- Not designed to replace either simulation or real-world testing
The MNE source code may be downloaded from the Protean Tools software repository: