Il P2P

Un esempio pratico: BitTorrent:

Chi almeno una volta nella vita si è stato interessato alle applicazioni P2P avrà sentito parlare delle principali applicazioni per Client che costituiscono la rete, ovvero quelle applicazioni che consentono l'interfacciamento dei Peer alle reti CDN. Tanto per citarne alcuni:
 
- qBittorrent
- QTorrent
- rTorrent
- Shareaza
- SharkTorrent
- Turbo Torrent
- µTorrent
- Vuze
- XTorrent
- Emule

Forse quelli più conosciuti sono Emule e µTorrent (si legge "muTorrent"). Di quest'ultimo ci serviremo in questo paragrafo. Queste applicazioni si basano tutte sull'utilizzo di un cosiddetto protocollo detto BitTorrent. Un protocollo in termini semplici stabilisce le regole con cui l'applicazione Client interagisce con la rete e con cui l'applicazione gestisce la condivisione dei files. Per tanto è un elemento imprescindibile da essa. Senza di esso l'applicazione è inutile. L'icona di BitTorrent è la seguente, di sicuro qualcuno di voi l'avrà già vista prima.



BitTorrent è stato progettato da Bram Cohen nel 2002, allora studente alla Stanford University. La cosa che lo rende il padre del P2P è il fatto di aver progettato da solo tutta la struttura. Il mondo dell'informatica gli deve molto. Oggi l'azienda BitTorrent Inc. regna a livello aziendale.

Prima di vedere come funzione BitTorent vediamo quali elementi costituiscono questo protocollo. Esso si basa su tre elementi principali: 

1. Torrent: è in pratica l'insieme costituito da tutti Peer che vogliono accedere alla condivisione di un medesimo file. Esiste un Torrent per ogni file.

2. Chunks: ogni file che un qualsiasi peer voglia scaricare è sempre suddiviso in moduli o prozioni più piccole di dimensioni prestabilite (Ad esempio un file mp3 di 13 MBytes, potrebbe essere scomposto in 13 moduli da 1 MB) . Tali moduli sono definiti chunks. Ogni peer può scaricare un Chunk da un Peer ed un altro chunk da una altro peer. Questo aspetto in Emule è molto visibile, in quanto la barra di Download è costituita da moduli colorati che indicano i diversi chunks.

3. Tracker: è un documento in cui sono memorizzate numerose informazioni di carattere tecnico: tiene conto periodicamente in una tabella detta DHT, Distrubuited Hash Table, di quanti e quali sono i Peer collegati ad un preciso Torrent e le relative informazioni sulla velocità, la frequenza di upload e download, lo stato di aggiornamento del Tracker etc. Nulla più che un file di informazioni utili. Ad ogni Torrent è associato il proprio Tracker: tanti files sono in download, tanti saranno i Trackers esistenti.

In seguito mostriamo come si presenta l'interfaccia prinicipale µTorrent per mostrare visivamente quanto detto: