Lezione (2025-10-17)
Architettura Peer to Peer (P2P)
Section titled “Architettura Peer to Peer (P2P)”L’architettura P2P è un approcio alternativo al modello client-server, che può presentare benefici soprattutto quando si devono trasferire grandi quantità di dati.
I protocolli P2P sono definiti alcune caratteristiche comuni:
- non c’è un server sempre attivo;
- coppie arbitrarie di host comunicano direttamente tra loro;
- i peer non sono sempre attivi e possono cambiare indirizzo IP;
BitTorrent
Section titled “BitTorrent”Il protocollo BitTorrent si usa per scambiarsi files in maniera P2P.
BitTorrent assegna alcuni nomi specifici a parti del protocollo:
- torrent: gruppo di peer che si scambiano le parti del file;
- tracker: host che tiene traccia dei peer che partecipano al torrent, quando un peer vuole connettersi può scaricare la lista degli altri host attivi;
- chunk: una frazione del file intero (tipicamente 256 kb);
- seeder: peer che rimane collegato alla rete quando finisce il suo download;
- leecher: peer che scarica il file e non contribuisce all’upload;
Il protocollo si basa sullo scambio di parti di file, in un dato istante un peer può richiedere ad altri host se hanno la parte che gli manca e scaricarla. Successivamente diventa in grado di fornire quella parte ad altri nuovi host.
Ricerca di informazioni
Section titled “Ricerca di informazioni”Uno dei problemi dei protocolli P2P è quello di essere in grado di conoscere quali files sono presenti nella rete formata dagli host attivi in un dato momento.
Le 3 soluzioni più diffuse sono:
-
directory centralizzata:
- un host (indice) tiene traccia dinamicamente della posizione dei file tra i vari peers;
- un peer comunica periodicamente quali files possiede;
- un nuovo peer consulta l’indice per sapere a quali host connettersi;
-
query flooding:
- un peer conosce peer vicini (sa che file ci sono su quegli host);
- se gli serve un nuovo file chiede a loro se sanno dov’è;
- se i peer vicini non lo sanno, chiedono a loro volta ai loro vicini;
- prima o poi qualcuno riuscirà a connettersi ad un host che ha il file;
-
copertura gerachica:
- è una combinazione tra il metodo della directory e quello del query flooding;
- i peer sono suddivisi in gruppi, con un leader che tiene traccia di tutti i file sui peer del suo gruppo;
- il query flooding avviene solo tra i capi gruppo, limitando il traffico generato;