This is a simple simulator for sketching mesh network routing strategies in the hopes to find better approaches to mesh routing. Please note that this simulator does not virtualize a TCP/IP stack nor all characteristics of wireless connections. The dynamic nature of MANETs is also not (yet) covered by this simulator.
Check out the live demo! - Pull requests are welcome!
- load, edit and save MeshViewer and NetJSON data
- create custom (bidirectional) graphs from primitives (single node, line/loop, 4-/8-Lattice, random tree)
- live editing of Node, Link and Packet implementations
- run simulations stepwise and with intervals
- elaborate routing statistics
- nodes state introspection
- send commands to selected nodes
In the future, a native language might give speed advantages.
How fast is the simulation?
10000 steps for a lattice of 10000 nodes and 19800 links with ~36000 packets takes about three minutes on a i7.
How is the routing efficiency value calculated?
Overall efficiency is computed as the medium efficiency of each route. Route efficiency is calculated as (
optimal route hop count*
number of received packets/
accumulated hop count of received packets).
How to Use
Get the content of the repository and open the file index.html in a browser.
2. Create a topology
3. Implement a routing strategy (optional)
A simple routing algorithm is already implemented. It will discovery neighbors and route packets to random neighbors. For sketching your own mesh routing strategy, you need to edit the node.js and packet.js files.
4. Deploy packets
Select a start and end node for a route to deploy packets on. Keep the control key pressed to select multiple nodes.
Add Routes button on the
Sim tab to create a route on which packets can be deployed.
step button two times to let the nodes discover its neighbors with special broadcast packets.
Now to click the
Deploy Packets button once to place packets on the created routes.
The number of (unicast) packets will be displayed on the node.
step button to let the nodes propagate through the network in a random fashion until the destination is reached.
6. Evaluate (optional)
Sim tab will show the efficiency of the routing approach once a packet has reached its destination.
show tab to inspect the state of selected nodes and its current packets.
OMNeT++: OMNeT++ is an extensible, modular, component-based C++ simulation library and framework, primarily for building network simulators.
ns-3: ns-3 is a discrete-event network simulator for Internet systems, targeted primarily for research and educational use.
MeshViewer: A visualization tool for mesh networks. Primarily used by Freifunk communities. Some code was used by this project.
In depth analysis of B.A.T.M.A.N.-adv Performance Analysis and Simulation of a Freifunk mesh network
Contains an overview of different mesh routing strategies: From MANET To IETF ROLL Standardization: A Paradigm Shift in WSN Routing Protocols
About routing based on virtual coordinates: