Some of the main features of our simulation framework include:
- Flexibility: The simulator allows to simulate both structured and unstructured overlay networks (currently Chord, Pastry, Bamboo, Koorde, Broose, Kademlia, GIA, NICE, NTree, Quon, Vast, and Publish-Subscribe for MMOGs are implemented). The modular design and use of the Common API facilitate the extension with new features or protocols. Module behavior can easily be customized by specify parameters in a human readable configuration file.
- Interactive GUI: In order to validate and debug new or existing overlay protocols you can make use of the GUI of OMNeT++, which visualizes networks topologies, messages and node state variables like the routing table.
- Exchangeable Underlying Network Models: Our simulation framework has a flexible underlying network scheme, which on the one hand provides a fully configurable network topology with realistic bandwidths, packet delays, and packet losses (INETUnderlay), and on the other hand a fast alternative model for high simulation performance (SimpleUnderlay). OverSim supports IPv4 and IPV6 as well as UDP and TCP.
- Scalability: OverSim was designed with performance in mind. On a modern desktop PC a typical Chord network of 10,000 nodes can be simulated in real-time. We successfully simulated networks of up to 100,000 nodes.
- Base Overlay Class: The base overlay class facilitates the implementation of structured peer-to-peer protocols by providing a RPC interface, a generic lookup class and a common API key-based routing interface to the application.
- Different Routing Modes: All implemented KBR protocols that make proper use of the Base Overlay Class support the following routing modes: iterative, exhaustive-iterative, semi-recursive, full-recursive, and source-routing-recursive.
- Reuse of Simulation Code: The different implementations of overlay protocols are reusable for real network applications, so that researchers can validate the simulator framework results by comparing them to the results from real-world test networks like PlanetLab. Therefore, the simulation framework is able to handle and assemble real network packets and to communicate with other implementations of the same overlay protocol.
- Churn Models: The simulator supports different churn models including LifetimeChurn and ParetoChurn.
- Statistics: The simulator collects various statistical data such as sent, received, or forwarded network traffic per node, successful or unsuccessful packet delivery, and packet hop count. The included Python scripts support easy post-processing of statistical data and generation of gnuplot output.
- Applications: Several overlay applications like a DHT, Internet Indirection Infrastructure (i3), Scribe, SimMud, P2PNS and several test applications (KBRTestApp, DHTTestApp, and SimpleGameClient) are implemented.