| 4 | |
| 5 | This is a list of requirements we think a modern overlay networks simulator should fulfill. |
| 6 | |
| 7 | * '''Statistics''': The simulator should be able to collect |
| 8 | statistical data such as sent, received, or forwarded network traffic per |
| 9 | node, successful or unsuccessful packet delivery, and packet hop |
| 10 | count. The output needs to be in a format that is easy to |
| 11 | postprocess e.g. for generating gnuplot output. |
| 12 | |
| 13 | * '''Underlying Network Modelling''': There should be a |
| 14 | flexible underlying network scheme, which on the one hand provides a |
| 15 | fully configurable network topology with realistic bandwidths, |
| 16 | packet delays, and packet losses, and on the other hand a fast and |
| 17 | simple alternative model for high simulation performance. All |
| 18 | necessary specifications should be placed as parameters in |
| 19 | configuration files in a human readable form. |
| 20 | |
| 21 | * '''Scalability''': The simulator should be able to run huge |
| 22 | simulations in real-time with at least 10.000 nodes. In these cases |
| 23 | a GUI is useless and needs to be detachable for higher |
| 24 | performance. |
| 25 | |
| 26 | * '''Reuse of simulation code''': The different implementations |
| 27 | of overlay protocols should be reusable for real network |
| 28 | applications, so that researchers can validate the simulator framework results by |
| 29 | comparing them to the results from real-world test networks like |
| 30 | [http://www.planet-lab.org/ PlanetLab]. Therefore, the simulation framework should |
| 31 | be able to handle and |
| 32 | assemble real network packets and to communicate with other |
| 33 | implementations of the same overlay protocol. |
| 34 | |
| 35 | * '''Flexibility''': The simulator should facilitate both |
| 36 | structured and unstructured overlay network simulations. The user |
| 37 | should be able to specify a large number of parameters. The |
| 38 | simulator should also be able to provide node mobility and node |
| 39 | failure, as well as malicious behavior of nodes. |
| 40 | |
| 41 | * '''Documentation''': For using and extending the simulator |
| 42 | with e.g. new overlay protocols, there should be a comprehensive user |
| 43 | manual. The source code and the API has to be well documented. |
| 44 | |
| 45 | * '''Interactive Visualizer''': In order to validate and debug |
| 46 | new or existing overlay protocols there should be a GUI, which |
| 47 | visualizes both the topology of the |
| 48 | underlying network and the overlay topology in a customizable way. |