4pp

Transcript

4pp
Sistemi peer-to-peer (P2P)
• Giunti agli oneri della cronaca di recente
– Negli anni 1999/2000
– Il famoso caso Napster (sistema di file sharing per file MP3)
• Molto popolari
– Parte consistente del traffico Internet: più del 30% è riconducibile
ad applicazioni di tipo P2P
– Trend crescente (nonostante tutto)
Sistemi peer-to-peer
• Qualche anno fa si diceva Internet = Web
• Alcuni pregiudizi sul P2P
Valeria Cardellini
Università di Roma Tor Vergata
– P2P = file sharing
• Molti sistemi per il file sharing si basano su un approccio P2P
– P2P = illegalità
• Una percentuale massiccia di file scambiati è coperta da copyright
IW - Valeria Cardellini, A.A. 2007/08
Cosa è il peer-to-peer
2
Caratteristiche dei sistemi P2P
• Tutti i nodi (peer) hanno la stessa importanza (in linea di
principio)
• Peer: entità con capacità simili alle altre entità nel
sistema
– Nodi indipendenti (autonomi) e localizzati ai bordi (edge) di
Internet
• Nessun controllo centralizzato
– Ogni peer ha funzioni di client e server e condivide delle risorse
• Il termine peer-to-peer si riferisce ad una classe di
sistemi ed applicazioni che utilizzano risorse
distribuite per eseguire una funzionalità (critica) in
modo decentralizzato
• servent = server + client
– In realtà, possono essere presenti server centralizzati o nodi con
funzionalità diverse rispetto agli altri (supernodi)
• I peer sono organizzati in una gerarchia
• Sistemi altamente distribuiti
– Il numero di nodi può essere dell’ordine delle centinaia di migliaia
• Condivisione delle risorse (cicli di CPU, storage, dati)
• Nodi altamente dinamici ed autonomi
– Offrire ed ottenere risorse dalla comunità di peer
– Un nodo può entrare o uscire dalla rete P2P in ogni momento
• Operazioni di ingresso/uscita (join/leave) dalla rete anche sofisticate
– Ridondanza delle informazioni
IW - Valeria Cardellini, A.A. 2007/08
3
IW - Valeria Cardellini, A.A. 2007/08
4
Applicazioni P2P
Condivisione di file
• Distribuzione e memorizzazione di contenuti
• E’ la killer application del P2P
• Occorrono funzionalità di publishing, searching, retrieval
• Vediamo un esempio…
– Contenuti: file, video streaming, …
– Es. di file sharing: Gnutella, KaZaA, BitTorrent, eDonkey ed
eMule, …
– Es. di file storage: Freenet
– Alice esegue un’applicazione client P2P sul suo portatile
– In modo intermittente si connette ad Internet; ottiene un nuovo
indirizzo IP per ogni connessione
– Registra il suo contenuto nel sistema P2P
– Cerca “Hey Jude”
– L’applicazione visualizza altri peer che hanno una copia di “Hey
Jude”
– Alice sceglie uno dei peer, Bob
– Il file viene copiato dal PC di Bob al portatile di Alice (P2P)
– Mentre Alice esegue il download, altri utenti eseguono un
upload da Alice
• Condivisione di risorse di calcolo (elaborazione
distribuita)
– Es.: SETI@home – Search for Extraterrestrial Intelligence
• Collaborazione e comunicazione
– Es.: Chat/Irc, Instant Messaging, Jabber
• Telefonia
– Es.: Skipe
• Content Delivery Network
– Es.: CoralCDN
• Piattaforme
– Es:. JXTA (http://www.sun.com/software/jxta/)
IW - Valeria Cardellini, A.A. 2007/08
5
IW - Valeria Cardellini, A.A. 2007/08
6
Obiettivi e problemi dei sistemi P2P
Software per la condivisione di file
• Obiettivi
–
–
–
–
–
–
Condividere/ridurre i costi usando risorse non utilizzate
Migliorare la scalabilità
Aumentare la persistenza e la disponibilità delle risorse
Consentire l’aggregazione di risorse e l’interoperabilità
Aumentare l’autonomia
Aumentare l’anonimato/privacy, nascondendo le operazioni svolte
dagli utenti
– Consentire dinamismo e comunicazioni ad-hoc
• Consente ad Alice di registrare una directory del
proprio file system per la condivisione
– Chiunque può ottenere un file dalla directory registrata
– Come un Web server
• Consente ad Alice di copiare file dalle directory
condivise di altri utenti
– Come un Web client
• Problemi
• Consente ad Alice di individuare quali peer
possiedono un determinato file tramite una ricerca
basata su keyword
– Sicurezza: garantire integrità e autenticità delle risorse
– Disuguaglianza tra i nodi
– Elevato tasso con cui i nodi entrano/escono dal sistema P2P
– Come Google
IW - Valeria Cardellini, A.A. 2007/08
• Può portare ad una instabilità del sistema che ne influenza
negativamente le prestazioni
7
IW - Valeria Cardellini, A.A. 2007/08
8
Architetture P2P
Overlay network
• Tre tipologie di architetture P2P
• Instradamento delle informazioni su un’infrastruttura di
rete già esistente
– Decentralizzate pure
• Tutti i nodi sono peer, nessun coordinatore centralizzato
• Ogni peer può funzionare come router, client, o server
– Overlay network: è la rete virtuale che interconnette i peer ed è
basata su una rete fisica sottostante (tipicamente IP)
– Vantaggi:
– Parzialmente centralizzate
• Alcuni nodi (supernodi) facilitano l’interconnessione tra i peer
– Indice locale centralizzato per risorse dei peer locali
• Prima comunicazione con un supernodo (a), poi con il peer (b)
• Semplicità di sviluppo di nuove applicazioni
• Tempi di sviluppo ridotti
– Decentralizzate ibride
• Instradamento a livello applicativo
• Presenza di un server centralizzato che facilita l’interazione tra i peer
(servizio di localizzazione)
Architettura decentralizzata pura
– Routing content-aware
– Routing application semantic-aware
Architettura P2P
parzialmente centralizzata
IW - Valeria Cardellini, A.A. 2007/08
9
Overlay routing
10
Reti strutturate e non strutturate
• Reti non strutturate
• Idea base:
– Nodi organizzati come un grafo random
– Il sistema fa trovare la strada per raggiungere una risorsa
• L’organizzazione della rete segue principi molto semplici
• Rispetto al routing tradizionale
– Non ci sono vincoli sul posizionamento delle risorse rispetto
alla topologia del grafo
– La risorsa non è esattamente un indirizzo di un nodo della
rete, ma può essere un file, una CPU disponibile, dello
spazio libero su disco, …
• La localizzazione delle risorse è resa difficoltosa dalla
mancanza di organizzazione della rete
– L’aggiunta o la rimozione di nodi è un’operazione semplice
e poco costosa
– Obiettivo: gestire nodi con comportamento fortemente
transiente (tassi di join/leave elevati)
– Esempi: Gnutella, FastTrack, eDonkey/Overnet
• Concentriamo l’attenzione sul routing, non
sull’interazione per recuperare una risorsa
– Il recupero avviene con un’interazione diretta tra peer,
usando protocolli come HTTP
IW - Valeria Cardellini, A.A. 2007/08
IW - Valeria Cardellini, A.A. 2007/08
11
IW - Valeria Cardellini, A.A. 2007/08
12
Reti strutturate e non strutturate
Routing in reti non strutturate
• Reti strutturate
• Sistemi decentralizzati ibridi: directory centralizzata
– Vincoli sul grafo (strutturato) e sul posizionamento delle
risorse sui nodi del grafo
– Es.: Napster
• L’organizzazione della rete segue principi rigidi
• Sistemi decentralizzati puri: ricerca flood-based
– L’aggiunta o la rimozione di nodi è un’operazione costosa
– Obiettivo: migliorare la localizzazione delle risorse
– Esempi: Chord, Pastry, CAN
– Es.: Gnutella 0.4
• Sistemi parzialmente centralizzati
– Es.: KaZaA, Gnutella 0.6
IW - Valeria Cardellini, A.A. 2007/08
13
• Un nodo centralizzato (directory server) possiede il
mapping risorse-peer (index), fornendo un servizio di
discovery dei peer e di lookup delle risorse
• Limiti
• Approccio completamente distribuito per localizzazione le
risorse
• Ogni peer propaga (flood) la richiesta ai peer “vicini”, che
a loro volta inviano la richiesta ai loro “vicini” (escludendo
il vicino da cui hanno ricevuto la richiesta)
– Gestione costosa della directory centralizzata
– Collo di bottiglia costituito dal nodo centrale (scalabilità
limitata)
– Single point of failure (motivi tecnici e legali, es. Napster)
– Fino a che la richiesta è risolta oppure viene raggiunto un
massimo numero di passi (per limitare il “raggio della ricerca”)
– L’eventuale risposta viene
inviata al peer dal quale è stata
ricevuta la richiesta
peers
2. List of peers
offering the file
14
Sistemi con ricerca flood-based
Sistemi con directory centralizzata
Napster server
Index
1. File location
request
IW - Valeria Cardellini, A.A. 2007/08
• Da evitare:
Napster server
Index
– La propagazione all’infinito
3. File request
• Decremento del TTL ad ogni inoltro
– La circolazione nei cicli del grafo
5. Index update
4. File delivered
• ID della query per evitare che venga nuovamente
elaborata dai nodi da cui è stata già ricevuta
IW - Valeria Cardellini, A.A. 2007/08
15
IW - Valeria Cardellini, A.A. 2007/08
16
Esempio di ricerca con flooding
Problemi del flooding
• Crescita esponenziale del numero di messaggi
(possibilità di attacchi DOS)
P3
P2
– Nodi black-hole in caso di congestione
A?
A?
A?
A?
TTL=1
– Non è realistico esplorare tutta la rete
A?
A?
A?
A?
A!
TTL=1
TTL=1
TTL=1
A!
TTL=1
TTL=1
TTL=1
TTL=1
P8
• Costo della ricerca
P7
P6
– Le risposte dovrebbero avere tempi ragionevoli
A?
A?
A?
A?
A?
TTL=2
A?
TTL=2
– Come determinare il raggio di ampiezza del flooding?
TTL=2
TTL=2
TTL=2
TTL=2
A!
A!
• Non è garantito che vengano interrogati tutti i nodi (o i
nodi) che posseggono la risorsa
• Traffico di query: i messaggi che non producono risultati
occupano comunque banda
• Mancanza di una relazione tra topologia virtuale e
topologia reale
P9
P4
A?
A?
A?
TTL=1
TTL=1
TTL=1
TTL=1
P5
P1
A?
A? richiesta con TTL scaduto
TTL=1
TTL=1
P10
A?
A? richiesta già ricevuta
TTL=1
TTL=1
– A che distanza sono i “vicini”?
IW - Valeria Cardellini, A.A. 2007/08
17
IW - Valeria Cardellini, A.A. 2007/08
Case study: Gnutella
18
Connessione in Gnutella
• Gnutella versione 0.4 implementa un’architettura
decentralizzata pura
host-caching
n1
n1
n2
n2
n3
n3
– Discovery
• Per accedere alla rete occorre conoscere l’indirizzo di un nodo
(problema del bootstrap)
• Esistono servizi di host-caching che forniscono liste di nodi
della rete Gnutella
• Ottenuta la lista, il nodo prova a connettersi con alcuni dei nodi
noti
• A seconda della velocità di connessione, il nodo prova a
mantenere da 3 a 8 connessioni
• Se una connessione viene persa, il nodo cerca di connettersi
ad un altro nodo della lista, che viene continuamente
aggiornata
– Search
•
• Per le ricerche di risorse, Gnutella utilizza un flooding con
esplorazione breadth-first (BFS)
IW - Valeria Cardellini, A.A. 2007/08
19
Un servent può rifiutare una richiesta di connessione, ad esempio
perché ha raggiunto un numero massimo di connessioni ammesse
IW - Valeria Cardellini, A.A. 2007/08
20
Comunicazione fra servent
Struttura dei messaggi
• I servent comunicano fra loro con messaggi (detti
descriptor); sono supportati 5 tipi di messaggi:
Payload
Payload
Descriptor
Descriptor ID
ID descriptor
descriptor
– Ping
16 byte
• Usato per il discovery dei nodi vicini nella rete P2P
– Pong
1 byte
TTL
TTL
Hops
Hops
Payload
Payload length
length
1 byte
1 byte
4 byte
• Descriptor ID è un identificatore univoco del
messaggio all’interno della rete
• Messaggio di risposta a un Ping: un nodo che riceve un Ping
risponde con uno o più Pong, includendo il suo indirizzo
– Usato per associare le risposte alle richieste e per evitare di
propagare le stesse richieste più di una volta
– Query
• Messaggio di richiesta per localizzare una risorsa
• Il Payload descriptor identifica il tipo di messaggio
• All’i-esimo passo: TTL(i) = TTL(0) - Hops(i)
• Payload length è la lunghezza dei dati associati al
messaggio
– QueryHit
• Messaggio di risposta a una query: contiene le informazioni per
reperire la risorsa
– Push
• Permette il download da servent dietro un firewall tramite il
protocollo HTTP
IW - Valeria Cardellini, A.A. 2007/08
21
IW - Valeria Cardellini, A.A. 2007/08
Ping e Pong
Query e QueryHit
• Il messaggio di Ping è inviato periodicamente per
sondare la rete alla ricerca di altri nodi
• Query specifica il criterio di ricerca e la velocità di
trasferimento minima richiesta ai servent
– Un nodo che riceve un Ping risponde inviando al
mittente un Pong
Number
Number of
of hits
hits
1 byte
• Il messaggio Pong contiene l’IP e la porta su cui sono
accettate connessioni, il numero di file condivisi e il numero
di Kb totali condivisi
Port
Port
2 byte
IP
IP
Speed
Speed
Result
Result set
set
server
server ID
ID
4 byte
4 byte
N byte
16 byte
• QueryHit riguarda tutti i risultati
trovati su un dato servent che
soddisfano il criterio di ricerca
– Possono essere inviati più messaggi di pong per
comunicare il contenuto della propria host-cache
– ll messaggio di ping viene
inoltrato ai vicini fino a che il
TTL non si annulla
IW - Valeria Cardellini, A.A. 2007/08
22
– Port: porta su cui il servent accetta
connessioni in entrata
– Result set: contiene gli identificatori
delle risorse che soddisfano la query
– Servent ID: identifica univocamente il
nodo nella rete
23
IW - Valeria Cardellini, A.A. 2007/08
24
Sistemi parzialmente centralizzati
Download di un file
• Non tutti i peer sono uguali
– I nodi meglio connessi e con buona capacità computazionale
possono avere funzioni speciali (detti supernodi o super-peer o
broker)
– I supernodi sono identificati dinamicamente
• Un nodo richiede direttamente il trasferimento di un
file ad un peer che ha risposto alla query
– Il protocollo usato per il trasferimento è HTTP
• I supernodi agiscono da rappresentanti dei loro
sottoposti
– Organizzazione gerarchica
• I supernodi hanno funzione di directory semicentralizzata
– I supernodi indicizzano le risorse disponibili nei peer che
gestiscono
GET /get/<file index>/<file name>/
HTTP/1.0
HTTP
200 OK
Connection: keep-alive
Server: Gnutella
Range: bytes=0Content-type: application/binary
User-Agent: Gnutella
Content-length: 200346
• Il flooding riguarda solo i supernodi
• Rispetto ai sistemi decentralizzati puri
... data...
– Si riduce il tempo di discovery
– Si sfrutta l’eterogeneità dei nodi presenti in una rete P2P
IW - Valeria Cardellini, A.A. 2007/08
25
IW - Valeria Cardellini, A.A. 2007/08
26
Case study: KaZaA
Query di una risorsa con supernodi
• Alcune caratteristiche
– FastTrack come rete di file sharing; Kaaza è il client più
popolare
– Download parallelo di parti di file
– Redirezione automatica ad un altro server quando il server
corrente diviene non disponibile
– Stima del tempo di download
– Numero massimo di upload/download simultanei
configurabile
– Gestione della coda al server/client
A!
A!
A?
A?
A!
A?
A?
A?
• Utenti assidui con priorità più elevata al server
– Priorità di incentivo
A?
• Chi collabora alla condivisione dei contenuti è privilegiato nello
scaricare file
– Ricerca basata su keyword
IW - Valeria Cardellini, A.A. 2007/08
27
IW - Valeria Cardellini, A.A. 2007/08
28
KaZaA: la tecnologia
Case study: BitTorrent
• Software
• E’ il più popolare protocollo P2P per la distribuzione
di contenuti
– Proprietario
– File e dati di controllo crittografati
– Circa 15% del traffico su Internet
– Ogni informazione come richiesta o risposta HTTP
• Idea di base: dividere un file in pezzi (da 256 KB) e
far ridistribuire ad ogni peer i dati ricevuti, fornendoli
a nuovi destinatari; in questo modo:
– Il download include adware e spyware…
• Architettura
– Si riduce il carico di ogni sorgente
– Si riduce la dipendenza dal distributore originale
– Si fornisce ridondanza
– Architettura parzialmente centralizzata
con organizzazione gerarchica dei peer
– Ogni peer è un supernodo oppure è
assegnato ad un supernodo
– Ogni supernodo ha informazioni su molti
altri supernodi
– Lista di potenziali supernodi inclusa
all’atto del download del software
IW - Valeria Cardellini, A.A. 2007/08
• Per condividere un file, un peer crea un file .torrent,
che contiene metadati sul file condiviso e sul tracker
– Tracker: il nodo che coordina la distribuzione del file
29
30
Routing in reti strutturate
Caratteristiche di BitTorrent
• Per scaricare un file, un peer
• Sistemi con Distributed Hash Table (DHT)
– ottiene un file .torrent per quel file
– si connette al tracker individuato in .torrent, che indicherà da
quali peer scaricare i vari pezzi del file
– si connette ai peer individuati per scaricare i vari pezzi
– Anche noti come sistemi con document rooting
• Ad ogni peer è assegnato un ID ed ogni peer conosce un
certo numero di peer
• Ad ogni risorsa condivisa (pubblicata) viene assegnato un
ID, basato su una funzione hash applicata al contenuto della
risorsa ed al suo nome
• Routing della risorsa pubblicata
verso il peer che ha l’ID più simile
a quello della risorsa
• Un gruppo di peer interconnessi per condividere un
“torrente” viene detto swarm
– Se lo swarm contiene solo il seeder iniziale, il client si connette
direttamente al seeder
– Mano a mano che i peer entrano nello swarm, iniziano a
negoziare tra loro pezzi del file (anziché scaricarli dal seeder)
• Alcune tecniche usate dai client BitTorrent
– Scaricare i primi 4 pezzi selezionandoli in modo casuale per
aumentare la possibilità di trading con gli altri peer
– Scaricare i rimanenti pezzi selezionandoli in base alla strategia
rarest first
• La richiesta per la risorsa
specifica sarà instradata verso il
peer che ha l’ID più simile a quello
della risorsa
• Prima il pezzo più raro
• Migliore della selezione casuale
– Inviare dati ai peer che inviano dati (tit-for-tat)
IW - Valeria Cardellini, A.A. 2007/08
IW - Valeria Cardellini, A.A. 2007/08
31
• Possibile copia locale della
risorsa ad ogni peer attraversato
IW - Valeria Cardellini, A.A. 2007/08
32
Distributed Hash Table
Distributed Hash Table (2)
• Le DHT offrono un’astrazione distribuita della struttura
dati hash table
• Le risorse sono rappresentate da una coppia chiave
valore (key K, value V)
• Le DHT operano in maniera distribuita con molti nodi
– K identifica l’oggetto, che è contenuto in V
– put(K, V): memorizza V in tutti i nodi responsabili per l’oggetto
identificato da K
– remove(K, V): cancella tutti i riferimenti a K e all’associato V
– V = get(K): recupera V associato a K da uno dei nodi
responsabili
– Più di 20 protocolli e prototipi per reti P2P strutturate, tra cui:
– Elevata scalabilità
• Diverse soluzioni che specificano anche la modalità di
routing delle ricerche e della memorizzazione
•
•
•
•
•
•
•
•
•
• Ogni chiave viene mappata su almeno un nodo della
rete
• Ogni risorsa è identificata solo mediante il valore della
chiave
Chord (MIT)
Tapestry (Berkeley)
CAN (Berkeley)
Pastry (Rice Univ., Microsoft)
Kademlia (NY Univ.)
SkipNet/SkipGraph
Viceroy
Z-Ring
Chimera (UCSB)
– Per cercare una risorsa occorre conoscere il valore esatto della
chiave
IW - Valeria Cardellini, A.A. 2007/08
33
Chord
34
Finger table in Chord
• I nodi e le chiavi sono mappati
in uno spazio circolare
mediante funzioni hash
• Ogni nodo è responsabile
delle chiavi poste tra sé e il
nodo precedente nel cerchio
• Finger table
• Idea della finger table
– Ogni nodo conosce “bene” le posizioni vicine ed ha un’idea
approssimata delle posizioni più lontane
• Come avviene la ricerca? Algoritmo di routing:
– Il nodo in posizione x vuole instradare una richiesta per la
posizione z
– Se z è nella zona di competenza del nodo, la ricerca termina
– Altrimenti, cerca nella finger table un nodo y con y = max
numero < z e invia la richiesta a quel nodo
– E’ una tabella di routing
posseduta da ogni nodo
– Il nodo in posizione x conosce
nodi competenti per le posizioni
•
•
•
•
IW - Valeria Cardellini, A.A. 2007/08
• Caratteristiche
– L’algoritmo raggiunge velocemente le vicinanze del punto
cercato, per procedere poi con salti via via più piccoli
– Costo di lookup O(log N), essendo N il numero dei nodi
x+1
x+2
x+4
x+8, …
http://www.pdos.lcs.mit.edu/chord/
IW - Valeria Cardellini, A.A. 2007/08
35
IW - Valeria Cardellini, A.A. 2007/08
36
Routing in Chord
Tapestry e CAN
N1
finger table
N51+2
N56
N51+4
N56
• Tapestry
– Prefix routing basato su algoritmo
di Plaxton
lookup(K54)
N8
K54
N56
finger table
N14
N51
...
…
N8+32
N42
– Anche in Pastry e Kademlia il
routing è basato su Plaxton
N48
• CAN (Content Addressable
Network)
N21
finger table
N42+8
N51
N42+16
N1
• La struttura mesh di Plaxton
contiene puntatori ai nodi il cui ID
corrisponde agli elementi di una
struttura ad albero di prefissi di ID
N42
IW - Valeria Cardellini, A.A. 2007/08
N38
Problemi Chord
– Meccanismo fragile
– Scarso supporto per
ricerche senza
matching esatto
– Non considera la
topologia fisica 37
– Nodi e risorse disposti in uno
spazio cartesiano d-dimensionale
– Ogni nodo è responsabile di un
sottospazio
– Ogni risorsa è individuata da d
coordinate
IW - Valeria Cardellini, A.A. 2007/08
38

Documenti analoghi

Linguaggi ed Applicazioni mulømediali

Linguaggi ed Applicazioni mulømediali •  I nodi che hanno il file A inviano una risposta •  La risposta viene propagata indietro fino al nodo 2 •  File download

Dettagli

sistemi p2p - Benvenuto su AMS Campus - AlmaDL

sistemi p2p - Benvenuto su AMS Campus - AlmaDL Descriptor id: Identificatore univoco(nella rete)del messaggio Payload descriptor: tipo di messaggio (es. 0x00 = Ping) TTL: time-to-live Hops: numero di propagazioni, TTL(0) = TTL(i) + Hops(i) Payl...

Dettagli

I sistemi peer-to-peer

I sistemi peer-to-peer Si cerca di limitare la ricerca all'interno di un cluster; eventualmente è diffusa all'esterno Alcuni sistemi ibridi: FastTrack, E-Donkey,

Dettagli

u - TWiki

u - TWiki   Rshare (StealthNet) Per maggiori informazioni, consultare http://it.wikipedia.org/wiki/Peer-to-peer 2-10

Dettagli