Designing modern dynamic networks
Peer-to-peer (P2P) networks gained a great deal of notoriety in the nineties as a mechanism allowing users to share copyrighted material, in particular MP3-coded music files. Meanwhile, academic researchers began to focus on the benefits and possible application areas of this decentralised and highly fault-tolerant network structure. Currently, P2P technologies used for file sharing are superseding older mechanisms, including the traditional File Transfer Protocol (FTP). P2P systems, such as BitTorrent, make efficient use of bandwidth for all broadband users and have been known to scale to over 100,000 users for a single file/data set. PeerSim has been developed as an open-source simulation environment, which can potentially provide assurance for software developers, when designing such P2P systems and testing network applications. Simulations do not suffer from the problems arising when experimenting with the P2P system itself or when adopting an analytical approach, requiring mathematical modelling of the P2P network. As P2P systems can consist of a very large number of nodes, performing experiments with the actual system requires significant resources, in addition to being vulnerable to node failures. The cost of network communications' simulations is less than that of large-scale experiments because fewer resources are necessary. Furthermore, the model can be less complex than a mathematical one. PeerSim was specifically designed for epidemic protocols, such as OverStat and SG-1 among others, with high scalability and support for dynamism. The simulator structure is based on components, making it easy to quickly prototype a protocol by combining different pluggable building blocks. Every block can easily be replaced by another component implementing the same interface (i.e. the same functionality). Two different simulation models are supported by PeerSim, a simplified cycle-based model and a more traditional event-driven model. The cycle-based model allows the simulator to scale up to a large number of nodes, with some accuracy being lost in comparison with PeerSim's event-driven simulator engine. Interested users can find tutorials and examples, along with detailed Application Programming Interface (API) documentation at the project's website, http://www.cs.unibo.it/bison/