Condivisione file P2P
 All’inizio del 2004 P2P era responsabile di un volume
di traffico maggiore a qualunque altra applicazione
Internet
 Scenario di Riferimento: File Sharing
 Giulia cerca un brano MP3
 Il sistema fornisce una lista dei peer che
possiedono il brano
 Giulia richiede il brano a uno dei peer (Roberto)
 Connessione diretta TCP tra il PC di Giulia e
quello do Roberto
 Contemporaneamente Mario scarica da Giulia
un’altro brano
 Client/Server transitorio
1: Introduction
1
Architettura centralizzata
(NAPSTER)
 Directory centralizzata
 Il peer informa la
directory centralizzata
del proprio IP e degli
oggetti disponibili
 La directory deve
conoscere i peer attivi
 Unico punto di guasto
 Collo di bottiglia per le
prestazioni
 Diritti d’autore
1: Introduction
2
In sintesi
 Directory Centralizzata
Trasferimento tra peer distribuito
 Processo di localizzazione dei contenuti
centralizzato

 Query flooding (GNUTELLA)
1: Introduction
3
Query flooding (GNUTELLA)
 Approccio
completamente
distribuito per la
localizzazione dei
contenuti
 OVERLAY
NETWORK


arco tra due peer
se esiste una
comunicazione TCP
tra di essi
Solitamente meno
di 10 vicini
1: Introduction
4
Query flooding (GNUTELLA)
 Giulia vuole localizzare
“one.mp3”



Invia una Gnutella query a
tutti i suoi vicini sulla overlay
network
I vicini a loro volta inoltrano la
query ai propri vicini
I peer che possiedono
“one.mp3” generano un query
hit, che segue il percorso
inverso della Gnutella Query,
fino a Giulia
 In questo modo Giulia conosce
chi possiede “one.mp3” (anche
+ di uno) e lo può contattre
direttamente per trasferire il
file
1: Introduction
5
Scalabililtà
 Query flooding  significativa quantità di
traffico
 Query flooding a raggio limitato (TTL, #hop)
 Riduzione traffico
 riduzione peer
contattati  minor
probabilità di
trovare i files
1: Introduction
6
Problematiche di gestione dei Peer
 Devo trovare qualche peer (problema di
bootstrap)
Mantenere elenco peer connessi di frequente
 Sito Gnutella con tale elenco

 Una volta stabilità una connessione con
almeno un peer
Conscenza di altri peer (PING/PONG)
 Instaurazione di connessioni con alcuni di tali
peer per aumentare gli archi della overlay
network

1: Introduction
7
Sistemi ibridi (KaZaA)
 Prende in prestito concetti di Napster e
Gnutella
 Tecnologia proprietaria e traffico di
controllo criptato  no dettagli, ma
principi (kazaa-lite reverse engineering)
 Come Gnutella: non usa server dedicati per
localizzare i contenuti
 A differenza di Gnutella: non tutti I peer
sono uguali. Quelli dotati di maggior banda
sono designati leader di gruppo
1: Introduction
8
Sistemi ibridi (KaZaA)
 I leader di gruppo sovrintendono a
centinaia di peer ordinari che comunicano al
proprio leader i contenuti che mettono a
disposizone (tipo Napster a livello locale)
 I vari leader sono collegati tra loro da una
overlay network
1: Introduction
9
Tecniche per migliorare le
prestazioni
 Accodamento delle richieste di upload

Limita il numero di upload simultanei in modo
che la banda a disposizione per ciscun upload
abbia un limite inferiore
 Priorità di incentivo
 Chi collabora alla condivisione dei contenuti è
privilegiato nello scaricare file
 Downloading parallelo

Vengono richieste porzioni diverse di un file a
peer distinti
1: Introduction
10
Riferimenti
 http://ntrg.cs.tcd.ie/undergrad/4ba2.02-
03/Intro.html
1: Introduction
11
Scarica

Slides sul Peer to Peer