[Introduction] [People] [Download] [Documentation] [Contributed Documentation] [Publications] [Peersim Extras] [Additional Code]
Introduction | top |
Peer-to-peer systems can be of a very large scale such as millions of nodes, which typically join and leave continously. These properties are very challenging to deal with. Evaluating a new protocol in a real environment, especially in its early stages of development, is not feasible.
PeerSim has been developed with extreme scalability and support for dynamicity in mind. We use it in our everyday research and chose to release it to the public under the GPL open source license. It is written in Java and it is composed of two simulation engines, a simplified (cycle-based) one and and event driven one. The engines are supported by many simple, extendable, and pluggable components, with a flexible configuration mechanism.
The cycle-based engine, to allow for scalability, uses some simplifying assumptions, such as ignoring the details of the transport layer in the communication protocol stack. The event-based engine is less efficient but more realistic. Among other things, it supports transport layer simulation as well. In addition, cycle-based protocols can be run by the event-based engine too.
PeerSim started under EU projects BISON and DELIS DELIS. The PeerSim development in Trento (Alberto Montresor, Gian Paolo Jesi) is now partially supported by the Napa-Wine project.
People | top |
The main developers of PeerSim are:
Other contributors and testers (in alphabetical order):
Download | top |
The project is hosted at SourceForge.net. The source, the compiled version and other material can be downloaded from the PeerSim project page.
If you want to be kept informed about new release of PeerSim, join the peersim-announce@lists.sourceforge.net mailing list. The list is moderated and extremely low-traffic.
Documentation | top |
Available official documentation:
Contributed Documentation | top |
The following table contains additional documentation written by Peersim users. We provide them "as it is": please refer to the authors names and addresses listed below for further information and support.
If you are interested in providing your documentation to the Peersim community, please write to Gian Paolo Jesi (jesi@cs.unibo.it) providing a short description, a link to your (PDF) file(s), your name and email-address.
Description | Files | Author |
A pragmatic howto to quickly start with PeerSim available in both Italian and English language. | IT_PDF EN_PDF |
Davide Malvestiti (davide.malvestiti@mail.polimi.it) |
Publications | top |
Several publications have been written with the help of Peersim. At this point, the large majority of them have not been written by us. You can find an uncomplete list here. If you want to add your paper to this list, or suggest a correction, please send a mail to Alberto Montresor.
If you write a paper using peersim, please use the following citation:
--- bibtex --- @inproceedings{p2p09-peersim, Author = {Alberto Montresor and M\'{a}rk Jelasity}, Title = {{PeerSim}: A Scalable {P2P} Simulator}, Booktitle = {Proc. of the 9th Int. Conference on Peer-to-Peer (P2P'09)}, Year = {2009}, Month = sep, Pages = {99-100}, Address = {Seattle, WA}, } --- plain latex --- \bibitem{p2p09-peersim} Alberto Montresor and M\'{a}rk Jelasity. \newblock PeerSim: A scalable P2P simulator. \newblock In {\em Proc. of the 9th Int. Conference on Peer-to-Peer (P2P'09)}, pages 99--100. Seattle, WA, September 2009. --- resulting text ---- Alberto Montresor and Mark Jelasity. PeerSim: A scalable P2P simulator. In Proc. of the 9th Int. Conference on Peer-to-Peer (P2P’09), pages 99–100. Seattle, WA, September 2009.
Peersim Extras | top |
Peersim cannot grow forever. Still, each of us has developed a lot of additional code that could be useful to somebody else. To avoid to "bloat" Peersim, we have decided to create the Peersim Extras repository for code that (i) has not reached the maturity required to be included in Peersim, or (ii) is too specific for the mainstream Peersim.
Peersim Extras' CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. The module is extras. When prompted for a password for anonymous, simply press the Enter key.
cvs -d:pserver:anonymous@peersim.cvs.sourceforge.net:/cvsroot/peersim login
cvs -z3 -d:pserver:anonymous@peersim.cvs.sourceforge.net:/cvsroot/peersim co -P extras
User code | top |
The following table page contains additional packages developed by Peersim users for their research. We provide them "as it is": please refer to the maintainers names and addresses listed below for further information and support.
If you are interested in advertise your Peersim code, please write to Gian Paolo Jesi (jesi@cs.unibo.it) providing a short description, a link to your code and your name and address. If your code has been used to write a scientific publication, please provide also a link to it and make sure that the result of your publications can be reproduced with the configuration files contained in your code.
Description | Code | Maintainer |
Bluetooth protocol An implementation of the Bluetooth protocol for Peersim to study the epidemic spread of messages in emergency networks. This module was developed during the author's master degree thesis at the Politecnico di Milano. |
BT [Git repository] |
Davide Malvestiti (davide.malvestiti@mail.polimi.it) |
Bandwidth management protocol The bandwidth aware protocol provides a simple implementation of the priority sharing bandwidth allocation which serves transmissions using FIFO policies, reserving as much resources as possibile for each connection. This module was developed by Alessandro Russo (DISI - University of Trento) under the European project Napa-Wine. |
bandwidth-module.tar.gz |
Alessandro Russo (russo@disi.unitn.it) |
A fault-tolerant FSM An implementation of a fault-tolerant finite state machine based on basic Paxos consensus protocol. Lab assignment for the Computer Networks course at the University of Bologna. |
abcast.tar.gz |
Leonardo D'Alonzo (ldalonzo@gmail.com) |
Symphony An implementation of the Symphony protocol for Peersim. Lab assignment for the Peer-to-Peer Systems course at the University of Pisa. |
symphony.zip |
Andrea Esposito (and1989@gmail.com) |
Pastry An implementation of the Pastry protocol for Peersim. Lab assignment for the Distributed Systems course at the University of Trento. |
pastry.tar.gz | Manuel Cortella (manuel.cortella@studenti.unitn.it) |
Chord An implementation of the Chord protocol for Peersim. Lab assignment for the Distributed Systems course at the University of Trento. |
chord.tar.gz | Andrea Presa (andrea.presa@studenti.unitn.it) |
Kademlia An implementation of the Kademlia protocol for Peersim. Lab assignment for the Distributed Systems course at the University of Trento. |
kademlia.zip | Daniele Furlan (daniele.furlan@gmail.com) Maurizio Bonani (maurizio.bonani@gmail.com) |
Skipnet An implementation of the Skipnet protocol for Peersim. Lab assignment for the Distributed Systems course at the University of Trento. |
skipnet.tar.gz | Rodolfo Cartas Ayala (rodolfocartas@gmail.com) |
BitTorrent An implementation of the BitTorrent protocol for Peersim. Lab assignment for the Distributed Systems course at the University of Trento. |
bittorrent.tar.gz | Fabrizio Frioli, Michele Pedrolli |
Aggregation Aggregation is a collective term for a set of functions aimed at providing statistical information over distributed systems, such as the average load of the nodes or the size of the network. We have developed extremely scalable, robust and decentralized aggregation protocols, described in: Márk Jelasity, Alberto Montresor, and Ozalp Babaoglu. Gossip-based aggregation in large dynamic networks. ACM Trans. Comput. Syst., 23(1):219-252, August 2005. [PDF], [Bibtex]. Alberto Montresor and Ali Ghodsi. Towards robust peer counting. In Proceedings of the 9th P2P Conference, Seattle, WA, September 2009. |
Aggregation.zip T-Size.zip |
Alberto Montresor (alberto.montresor@unitn.it) |
SG-1 A protocol for self-organizing and maintaining a superpeer-based topology. Alberto Montresor. A Robust Protocol for Building Superpeer Overlay Topologies. In Proceedings of the 4th International Conference on Peer-to-Peer Computing, Zurich, Switzerland, August 2004. IEEE. [PDF], [Bibtex]. |
Superpeer.zip | Alberto Montresor (alberto.montresor@unitn.it) |
Peer sampling service We introduced the peer sampling service, that can be used as a source of random peers by participating peers. We performed extensive experiments on several gossip based implementations of the service. Márk Jelasity, Rachid Guerraoui, Anne-Marie Kermarrec, and Maarten van Steen. The peer sampling service: Experimental evaluation of unstructured gossip-based implementations. In Hans-Arno Jacobsen, editor, Middleware 2004, volume 3231 of Lecture Notes in Computer Science, pages 79-98. Springer-Verlag, 2004. [PDF] |
middleware04-exp.tar.gz | Márk Jelasity (jelasity@inf.u-szeged.hu) |
T-Man The T-Man protocol can be used to build a wide range of different topologies using only a ranking function that defines the preference of each node for neighbors. The most recent results have been published here: Márk Jelasity, Alberto Montresor, and Ozalp Babaoglu. T-Man: Gossip-based fast overlay topology construction. Computer Networks, 53 (13):2321–2339, 2009. [PDF] |
T-Man.zip | Alberto Montresor (alberto.montresor@unitn.it) |
PdProtocol The PdProtocol plays the Prisoner Dilemma between nodes in a network to achieve cooperation. It is based on a socially inspired mechanism (based on "tags") applied to P2P networks. Andrea Marcozzi, David Hales, Gian Paolo Jesi, Stefano Arteconi, Ozalp Babaoglu. Tag-Based Cooperation in Peer-to-Peer Networks with Newscast. Technical Report UBLCS-2005-15, University of Bologna, Department of Computer Science, Bologna, Italy, June 2005. [PDF] |
pdprotocol.tgz | Stefano Arteconi (arteconi@cs.unibo.it) |
Slacer This protocol generates a cooperative artificial social network (ASN) in a P2P overlay. Its related papers are the following:
|
slacer.tgz | Stefano Arteconi (arteconi@cs.unibo.it) |
Artificial Social Network (ASN) algorithms Additional algorithms regarding ASN inspired algorithms (PD + Greedy Cheating Liars, Weakest link, and Broadcast) are analyzed and discussed in the following technical reports:
|
GCL-weakestLink-bcast.tgz | Stefano Arteconi (arteconi@cs.unibo.it) |
ResourceWorld, SkillWorld Protocols claiming to produce emergent social rationality in peer-to-peer networks. Andrea Marcozzi and David Hales. Emergent Social Rationality in a Peer-to-Peer System. Technical Report UBLCS-2006-23, University of Bologna, Department of Computer Science, Bologna, Italy, October 2006. [PDF] |
RwSw.tgz | Andrea Marcozzi (marcozzi@cs.unibo.it) |
FirmNet The FirmNet protocol promotes the allocation of tasks in a knowledge-based economy model. Edoardo Mollona and Andrea Marcozzi. FirmNet: The Scope of Firms and the Allocation of Task in a Knowledge-Based Economy. Technical Report UBLCS-2006-22, University of Bologna, Department of Computer Science, Bologna, Italy, November 2006. [PDF] |
Fn.tgz | Andrea Marcozzi (marcozzi@cs.unibo.it) |
Cloudcast Cloudcast is message diffusion protocol that extends a cloud computing environment with a peer-to-peer network. Alberto Montresor and Luca Abeni Cloudy Weather for P2P, with a Chance of Gossip. In Proceedings of the 11th IEEE Conference on P2P Computing, P2P'11, Kyoto, Japan, August 2011. [PDF] |
Cloudcast.zip | Alberto Montresor (alberto.montresor@unitn.it) |
Adam2 Adam2 is a gossip protocol that accurately and efficiently approximates distributions (CDFs) of generic node attributes in large-scale decentralised systems. Jan Sacha, Jeff Napper, Corina Stratan, and Guillaume Pierre. Adam2: Reliable Distribution Estimation in Decentralised Environments In proceedings of the 30th IEEE International Conference on Distributed Computing Systems (ICDCS'10), pages 697-707, 2010. [PDF] |
Adam2.tar.gz | Jan Sacha (jsacha@cs.vu.nl) |
Gosh Some experimentations in the field of P2P, distributed function optimization. Marco Biazzini, Alberto Montresor and Mauro Brunato. Towards a decentralized architecture for optimization. In Proc. of the 22nd IEEE Int. Parallel and Distributed Processing Symposium (IPDPS'08). Miami, FL, USA, April 2008. [PDF] |
Gosh.zip | Alberto Montresor (alberto.montresor@unitn.it) |
AREN AREN Bandwidth Manager provides a lightweight and accurate fair-sharing of bandwidth and rate control enforcement. We assume a simple approach that does not reproduce in-depth transport protocol behavior. Instead, our design focuses in reducing the inherent impact on the overall simulation scalability as bandwidth scheduling accuracy is improved. We have studied the scalability and bandwidth scheduling accuracy of four scheduling approaches, namely the simplest, lock-based, packet or slot-based, and connection-oriented bandwidth scheduler. We have verified that a connection-oriented approach allows us to (i) improve considerably the accuracy of fair bandwidth sharing, and (ii) implement a rate control mechanism properly.
|
AREN [Git repository] | Guthemberg Silvestre (guthemberg.silvestre@lip6.fr) |
GAP and LiMoSense For the paper cited below we implemented existing protocols including GAP (a self-healing tree overlay) and LiMoSense (a robust gossip protocol). The experimental results in the paper used these implementations.
|
lehurament.tar.gz |
Lehel Nyers |
GOSSIPICO An implementation of the GOSSIPICO algorithm for Peersim as described in:
|
GOSSIPICO [Git repository] |
Nicola Corti |
COPNET The features of intra-organizational networks of collaboration are emergent properties of employees’ individual choices of collaboration but firms may shape the networks by calibrating the features of interaction among co-workers. COPNET protocol describes employees’ individual micro-processes of effort reciprocation and co-workers’ matching. Role of organization is calibrate the continuity of association among colleagues and their freedom to rewire, that is, the freedom that employees have in unilaterally terminating specific dyadic relationships. |
COPNET | Stefano Ferriani (stefano.ferriani@enea.it) Edoardo Mollona (edoardo.mollona@unibo.it) |
WiDiSi A Wi-Fi Direct simulator on top of PeerSim. The model of the simulator, its general architecture and evaluation results are described in:
|
WiDiSi | Naser Derakhshan (naser.derakhshan@polimi.it) |
ChordSim A novel Chord protocol implementation for Peersim. Two distinct brances are available:
|
ChordSim | Genc Tato (genc.tato@irisa.fr) |