OverSim

OverSim is an OMNeT++-based open-source simulation framework for overlay and peer-to-peer networks, developed at the Institute of Telematics, Karlsruhe Institute of Technology, Germany.

The simulator contains several models for structured (e.g. Chord, Kademlia, Pastry) and unstructured (e.g. GIA) peer-to-peer protocols. An example implementation of the framework is an implementation of a peer-to-peer SIP communications network.

OverSim features
Some of the main features of the OverSim simulation framework include:

Flexibility
The simulator allows to simulate both structured and unstructured overlay networks (currently Chord, Pastry, Koorde, Broose, Kademlia, and GIA 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
OverSim 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 and simple alternative model for high simulation performance (SimpleUnderlay).

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. The simulator was used to successfully simulate 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.

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.

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.

Criticism
The framework is outdated and requires an older version of the INET framework. Also, the code contains reported bugs.