# Software and Tools

**OPSS Simulator:**
OPSS is an Overlay Peer-to-peer Streaming Simulator designed to simulate large scale (i.e. in the order of 100K nodes) peer-to-peer streaming systems. OPSS is able to simulate a fair (i.e. "TCP-like") sharing of the uplink and downlink bandwidth among different connections, and it guarantees extensibility by allowing the implementation of different peer-to-peer streaming algorithms as separate modules.

Source code of OPSS is available under the GPL license.

Code is available for download here: http://minerva.netgroup.uniroma2.it/p2p

**CDP**
There can be two kinds of Content Distribution Protocols: non real-time and real-time.

The File Distribution Protocol is a simple protocol for non real time content distribution.

The Overlay Streaming Distribution Protocol is a simple mesh-based streaming protocol for real time content distribution.

Both protocols were developed for Peersim P2P network simulator at the Dipartimento di Ingegneria e Scienza dell'Informazione (DISI) of the University of Trento.

Both protocols can build tree- and mesh-based architectures and can be easily configured to obtain different scenarios: by properly adjusting the input parameters it is possible to obtain networks with 103-105 nodes, with different constraints on minimum and maximum outdegree.

Source code of CDP is available under the GPL license.

Code is available for download here: http://www.disi.unitn.it/networking/cdp-main-it.html

**GROOVER**
The stochastic graph process solver (GROOVER) is a Monte Carlo intergation tool developed at the Dipartimento di Ingegneria e Scienza dell'Informazione (DISI) of the University of Trento; its target is to analyze Overlay Content Distribution Systems.

GROOVER explores the state space of a Markov chain whose states are represented by graphs: each graph contains the nodes that have been reached by the content and the edges used to distribute it.

GROOVER comes in two flavors:

- analysis of non real-time distribution process, such as File Distribution;
- analysis of real-time distribution process, such as Overlay Streaming.

In both cases the tool consider tree- and mesh-based architectures and can be easily configured to obtain different scenarios: by properly adjusting the input parameters it is possible to obtain networks with 103-106 nodes, with different constraints on minimum and maximum outdegree.

Code is available for download here: http://www.disi.unitn.it/networking/groover-main-it.html

**P4S System:**
P4S is a Peer-to-peer for Streaming System designed to simulate chunk-based video streaming systems in P2P networks. P4S allows to set many parameters (i.e. network size, number of chunks to distribute, chunk's size, peers' bandwidth and many other parameters). P4S implements the *Alternate* scheduler which uses both push and pull operations for distributing content among peers using a priority-sharing bandwidth management system.
P4S is written in Java for PeerSim simulator.

Source code of P4S is available under the GPL license.

Further information and code are available here: http://disi.unitn.it/networking/P4S-main.html

**group.management**

The group.management tools extends Peersim (the peer-to-peer simulator developed by A. Montresor, M. Jelasity, G.P. Jesi and S. Voulgars) with the ability of managing a collection of dynamic groups.
Groups are defined based on the evaluation of node attributes; they may be created and destroyed at will; during their lifetime, they strive to maintain their membership based on their definition.
For example, you can create groups like "all those nodes whose variable *load* is greater than 10 and whose variable *y* is equal to 1, and potentially, even complex queries like *1.000* nodes with variable "z=100", or "a group of nodes with 1 petabyte of free storage, cumulative".

Source code of group.management is available under the GPL license.

Further information and code are available here: download (tar.gz)

**P2P_Tree_simulator_v01**

P2P_Tree_simulator_v01 is an ad-hoc simulator devoted to simulating live-conferencing P2P tree-based systems. Available here.

**P2P_Tree_model_solver_v01**

P2P_Tree_model_solver_v01 is the numerical solver for the model of tree-based live-conferencing P2P systems. Available here

**P2P_Coopnet_simulator_v01**
P2P_Coopnet_simulator_v01 is an ad-hoc simulator for the Coopnet P2P system.
Available here

**P2P Videoconference System**

VOP is an module written for PeerSim simulator for simulating and validating the analytical model of a p2p real-time videoconference system.

Source code of group.management is available under the GPL license.

Further information and code are available here: download (tar.gz)