= !OverSim Features = Some of the main features of our simulation framework include: [[Image(OverSimArchitecture.png, right, nolink)]] * '''Flexibility''': The simulator allows to simulate both structured and unstructured overlay networks (currently ''Chord'' 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''': 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 (''!IPv4Underlay''), 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. 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. * '''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. = Planned Features / Work in Progress = This is a list of features we're currently working on, which will be available in one of the next releases of !OverSim: * '''Additional overlay protocols''': At the moment we're working on implementations of ''Kademlia'', ''Koorde'', ''Broose'' as well as several Application Layer Multicast protocols. * '''Additional applications''': In the future we like to add new applications which make use of the overlay protocols like a DHT, the ''Internet Indirection Infrastructure (i3)'' protocol or traffic generators for multicast traffic. * '''Reuse of simulation code''': The different implementations of overlay protocols should be 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 [http://www.planet-lab.org/ PlanetLab]. Therefore, the simulation framework should be able to handle and assemble real network packets and to communicate with other implementations of the same overlay protocol.