Università degli Studi di Napoli Federico II
Facoltà di Ingegneria
Corso di Laurea Specialistica in Ingegneria Informatica
Corso di
Sistemi Distribuiti
Prof. Stefano Russo
Sistemi distribuiti
peer-to-peer
Ing. Marcello Cinque
Sommario
•  Introduzione e classificazione •  Evoluzione dei sistemi P2P
•  Esempi: o Napster, BitTorrent, o Gnutella, Freenet,
o Chord, Pastry.
Riferimenti:
•  G. Coulouris et al.: Distributed Systems: Concepts and Design (Cap. X, da 10.1 a
10.5.1), IV ed., 2005;
•  E.K. Lua et al. “A Survey and Comparison of Peer-to-Peer Overlay Network Schemes”,
IEEE Communications Surveys and Tutorial, Vol. 7, No. 2, Second Quarter 2005;
•  I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F. Kaashoek, F. Dabek, H.
Balakrishnan, “Chord: A Scalable Peer-to-peer Lookup Protocol for Internet
Applications”. In IEEE/ACM Trans. on Networking, 2003.
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
2
Sistemi distribuiti peer-to-peer (P2P)
  Un sistema peer-to-peer (P2P) è un sistema
distribuito nel quale ogni nodo ha identiche capacità e
responsabilità e tutte le comunicazioni sono
potenzialmente simmetriche;
  Obiettivi: condividere risorse e servizi (dove per
risorse e servizi intendiamo: scambio di informazioni,
cicli di CPU, spazio sul disco …);
  I sistemi P2P sono caratterizzati da:
controllo decentralizzato;
  adattabilità;
  si organizzano e si gestiscono da soli;
 
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
3
Peer-to-Peer vs Client-Server
Architettura Client-Server
•  Approccio centralizzato
•  Risorse poste nei server
•  Localizzazione e gestione
semplificate
•  Limiti di scalabilità e
affidabilità
Corso di Sistemi Distribuiti, prof. S. Russo
Architettura Peer-to-Peer
•  Approccio distribuito
•  Risorse condivise dai peer
•  Consente scalabilità e
affidabilità
•  Richiede algoritmi per la
localizzazione e gestione
delle risorse
Sistemi distribuiti peer-to-peer
4
P2P: Applicazioni e Requisiti
  Applicazioni
 
 
 
 
 
 
File sharing system;
File storage system;
Distributed file system;
Redundant storage;
Chat service;
Distributed computation;
  Requisiti non funzionali
 
 
 
 
 
Availability;
Reliability;
Performance;
Scalability;
Anonymity;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
5
Operazioni sottese ad applicazioni peer-to-peer
Il ciclo di vita di applicazioni peer-to-peer è scandito da
tre fasi distinte:
  Boot: un’applicazione appena avviata intende far
parte del sistema ottenendo informazioni per
connettersi agli altri membri del sistema P2P;
  Lookup: un’applicazione intende acquisire una
risorsa (ad esempio un file), pertanto ricerca chi dei
peer del sistema detiene la risorsa di interesse;
  Resource Sharing: un’applicazione contatta un
peer identificato nella fase di lookup per acquisire
una risorsa e effettua lo scambio dati.
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
6
Soluzioni architetturali per boot e lookup
Corso di Sistemi Distribuiti, prof. S. Russo
Le fasi di boot e di lookup possono essere
realizzate secondo tre pattern architetturali:
  Centralizzato: esiste un server
centrale a cui ogni peer richiede
informazioni di boot e lookup;
  Federato: esiste un server per
ogni gruppo di peer, e i server
sono interconnessi per garantire consistenza dei dati gestiti;
  Distribuito: non esiste un
server dedicato, ma i dati sono
distribuiti tra i peer e sono
ottenuti applicando appositi
algoritmi decentralizzati.
7
Sistemi distribuiti peer-to-peer
P2P: Classificazione
  Parleremo di:
  P2P puro se:
  le fasi di boot, lookup e sharing sono P2P;
  P2P se:
  le fasi di lookup e sharing sono P2P;
  la fase di boot utilizza dei SERVER (centralizzati o federati);
  P2P Ibride se:
  la fase di sharing è P2P;
  la fase di boot utilizza dei SERVER (centralizzati o federati);
  nella fase di lookup vengono usati Peer particolari (server federati):
Hub (Direct Connect)
Supernodo (KaZaA)
MainPeer (EDonkey)
Corso di Sistemi Distribuiti, prof. S. Russo
SuperPeer , Ultra Peer(Gnutella2)
NodoRandezVous (JXTA)
Server (WinMX)
Sistemi distribuiti peer-to-peer
8
Peer-to-peer overlay - 1/3
I nodi di un sistema peer-to-peer sono interconnessi
per mezzo di una overlay network costruita al di sopra
del protocollo IP:
  I nodi rappresentano
applicazioni interconnesse
per mezzo di link virtuali o
logici, ognuno dei quali
corrisponde a uno o più
link fisici nella rete sottostante;
  I nodi di una overlay
network realizzano operazioni di “store&forward” per
consegnare un messaggio
a destinazione.
9
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
Peer-to-peer overlay - 2/3
IP routing
Overlay routing
Scala
Gli indirizzi IP sono in numero
limitato [IPv4: 232 ma IPv6 2128]
Il peer-to-peer consente di
indirizzare più oggetti [>2128]
Load
Balancing
Il carico dei router dipende dalla
topologia ed il relativo traffico
Oggetti disposti a caso, scollegando
il carico dalla topologia
Dinamiche di
rete
Tabelle di routing aggiornate
asincronamente ad ogni ora
Tabelle di routing aggiornate in
frazioni di secondi in maniera
sincrona e/o asincrona
Fault
Tolerance
Ridondanza realizzata dagli ISP ed
amministratori di rete
Percorsi ed oggetti replicati
all’occorrenza
Identificazione
destinazione
Ogni indirizzo IP identifica un
singolo nodo
Messaggi indirizzati verso la replica
più vicina di un oggetto
Sicurezza e
anonimità
Sicurezza ottenuta solo se tutti i
nodi sono affidabili, non è garantita
l’anonimità
Sicurezza ottenubile anche su reti
non pienamente affidabili. Una
limitata anonimità è ottenibile
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
10
Peer-to-peer overlay - 3/3
I sistemi peer-to-peer sono comunemente classificati in
base all’organizzazione imposta all’overlay network:
  P2P Strutturati: la topologia dell’overlay network
è lascamente controllata e le risorse non sono
collocate a caso, ma in precise posizioni in modo
da rendere la loro ricerca più efficiente;
  P 2 P N o n S t r u t t u r a t i : i p e e r n o n s o n o
interconnessi secondo una precisa struttura, ma
adottando grafi casuali.
Overlay network strutturate: maggiore efficienza di
ricerca, ma vulnerabilità ai fallimenti di nodo;
richiedono la gestione di uno stato complesso.
Overlay network non strutturate: più affidabili, ma
meno efficienti per quanto riguarda i tempi di lookup.
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
11
Evoluzione sistemi P2P
Peer-to-Peer
strutturati
Peer-to-Peer
non strutturati
Third
Generation
Second
Generation
First
Generation
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
12
P2P di I generazione
Peer-to-Peer
strutturati
Peer-to-Peer
non strutturati
Third
Generation
Second
Generation
First
Generation
Sistemi con fase di boot e lookup centralizzati (o federati), mentre lo sharing è
realizzato in modalità peer-to-peer.
Esempio: BitTorrent, Napster
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
13
Esempio P2P di I generazione: Napster
  Sistema per lo sharing di
file musicali
  Nel 2000, 50 milioni di
utenti hanno scaricato il
client di Napster;
  Napster ha avuto un
picco di traffico di circa
7 TB in un giorno;
  Soluzione con lookup
centralizzata
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
14
Esempio P2P di I generazione: BitTorrent - 1/3
BitTorrent è una soluzione P2P di prima generazione per file sharing:
.torrent File
•  U n s e r v e r m a n t i e ne .torrent files che
.torrent Server
Tracker
contengono metainformazioni sui file da
scaricare;
•  Un Tracker tiene traccia di tutti i peer che detengono
un dato file.
Un downloader contatta periodicamente il tracker per
aggiornare le sue informazioni e ricevere la lista di peer
che posseggono il file in download, così da contattarli.
Riferimento: www.imconf.net/imc-2006/papers/p20-legout.pdf
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
15
Esempio P2P di I generazione: BitTorrent - 2/3
Il tracker tiene traccia di
tutti i membri dello
swarm, e i frammenti di
file in loro possesso.
Il downloader riceve e
diffonde più frammenti
del file allo stesso tempo
da/verso molteplici peers.
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
16
Esempio P2P di I generazione: BitTorrent - 3/3
Quale frammento del file viene richiesto dal
downloader?
Inizialmente un peer richiede frammenti scelti a caso
(Random First Policy), quando ne sono stati scaricati
almeno 4, si passa ad eseguire il Rarest First Algorithm:
Ogni peer mantiene una peer list col numero di peer
aventi ogni frammento (RepID). Gli identificativi dei
frammenti con il minore RepID sono memorizzati nella
rarest piece list, da cui a caso viene scelto il
frammento da scaricare.
Quando un blocco di un frammento è stato scaricato,
anche gli altri saranno richiesti con altissima priorità
(Strict Priority Policy).
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
17
P2P di II generazione:
Peer-to-Peer
strutturati
Peer-to-Peer
non strutturati
Third
Generation
Second
Generation
First
Generation
Sistemi con fase di boot centralizzata (o
federata), e lookup e sharing distribuite;
l’overlay non presenta organizzazione.
Esempio: Gnutella, Freenet
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
18
Esempio P2P di II generazione: Gnutella
  Raccoglie l’eredità di Napster;
  Nel 2000 la dimensione della rete cresce in 7 mesi da 2K
a 48K nodi;
  Applicazioni più conosciute basate su Gnutella:
 
 
 
BearShare;
LimeWire (anche client BitTorrent);
…
  Fase di boot centralizzata: un Server (gnutellahost.com)
viene usato dai nodi per il boot.
  Fase di lookup distribuita: le richieste di Ricerca vengono
propagate con tecniche di flooding.
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
19
Flooding – 1/2
I sistemi di seconda generazione sono interconnessi
secondo un grafo casuale, dove ogni nodo mantiene una
lista degli identificativi dei vicini, che riceve a conclusione
la fase di boot.
Come realizzare il lookup senza un server
centralizzato o federato?
Il nodo invia una richiesta di query a tutti i vicini, i quali
inoltrano la richiesta ai propri vicini se non dispongono
dell’informazione cercata. Il messaggio di query si
propaga all’interno del sistema fino a raggiungere un nodo
che detiene l’informazione (flooding), che viene inoltrato
al richiedente.
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
20
Flooding – 2/2
Il flooding presenta l’inconveniente che i messaggi
possono circolare nel sistema indefinitamente, ripassando
per nodi già visitati precedentemente. Soluzioni:
•  Ogni nodo mantiene la lista di query già valutate,
qualora una query passata è nuovamente ricevuta,
viene scartata;
•  Ogni query ha associato un TTL, che viene
decrementato ad ogni ricezione, cosicché quando il
suo valore è nullo la query viene scartata.
Siccome diverse repliche della stessa query sono
disseminate nel sistema, sussiste l’inconveniente che il
sender della query riceva l’informazione più di una volta
se nel sistema più di un nodo la detiene.
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
21
Esempio P2P di II generazione: Freenet - 1/2
Freenet migliora le prestazioni del flooding strutturando
scarsamente l’overlay network:
•  Ogni dato è identificato da una chiave.
•  Dati con chiavi simili tendono a raggrupparsi su un
simile insieme di peer, così da ridurre i peer da
visitare per il lookup.
Ogni nodo presenta due liste di chiavi:
•  Quella dei propri dati;
•  Quella delle locazioni dei dati noti.
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
22
Esempio P2P di II generazione: Freenet - 2/2
C
3
A
1
2
Richiedente
Quando D riceve la richiesta,
non contatta direttamente A,
ma ripercorre al contrario il
percorso di lookup.
2
B
Il peer A avvia il flooding di
richieste per un dato detenuto
da D.
F
Peer con dato
richiesto
D
3
E
Richiesta Oggetto
Corso di Sistemi Distribuiti, prof. S. Russo
Definizione
scorciatoia
Sistemi distribuiti peer-to-peer
Ogni nodo contattato
memorizza nella seconda lista
la chiave e il next_hop così da
definire una scorciatoia
(routing short-cut) per
successive query dello stesso
dato.
23
Scalabilità
  I protocolli di I e II generazione non sono scalabili, in
quanto le prestazioni (es. tempo di ricerca di un file)
peggiorano linearmente all’aumentare del numero dei
nodi. In altri termini, la quantità di lavoro richiesta a un
determinato nodo deve crescere linearmente in funzione
del numero di nodi nel sistema;
  La scalabilità è direttamente legata all’efficienza
dell’algoritmo usato per il lookup;
  Per questo motivo, diviene necessario:
  Minimizzare il numero di messaggi necessari per fare lookup;
  Minimizzare, per ogni nodo, le informazioni relative agli altri nodi;
  Per migliorare la scalabilità sono nati i cosiddetti protocolli
P2P di terza generazione che supportano DHT
(Distributed Hash Table);
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
24
P2P di III generazione:
Peer-to-Peer
strutturati
Peer-to-Peer
non strutturati
Third
Generation
Second
Generation
First
Generation
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi con tutte le fasi completamente
distribuite, con la overlay strutturata
secondo il paradigma DHT.
Esempi: Chord, CAN e Pastry
25
Sistemi distribuiti peer-to-peer
Distributed Hash Table (DHT)
Nei sistemi di I e II generazione le informazioni sono
organizzate senza alcuno schema.
Nella III generazione, gli oggetti sono
deterministicamente collocati nei peer i cui identificatori
corrispondono alla chiave associata all’informazione.
Le Distributed Hash
Tables (DHT) forniscono un’astrazione simile alle hash
tables, per cui a una
chiave corrisponde un
valore, sebbene i dati
non siano locali ma
distribuiti.
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
26
DHT: funzionamento di base
  A ogni file e ad ogni nodo è associata una chiave;
  La chiave viene di solito creata facendo l’hash del nome
del file o dell’IP del nodo;
  Ogni nodo del sistema è responsabile di un insieme di
file/chiavi e tutti realizzano una DHT;
  La principale operazione che un sistema DHT deve
fornire è lookup(key), la quale restituisce l’identità del
responsabile di una determinata chiave.
IP Address
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
27
DHT: funzionamento di base
  Tutti i nodi del sistema condividono una tabella hash;
  Conoscono la struttura della tabella…
  Ma non conoscono il responsabile di una data chiave!
ID
Nodo x
Nodo y
Nodo z
…
Corso di Sistemi Distribuiti, prof. S. Russo
0
1
2
3
4
5
6
…
2m
Sistemi distribuiti peer-to-peer
28
DHT: scalabilità
Messaggi necessari per trovare
una chiave
Anello
n -1
DHT
Grafo
Totalmente
connesso
O(log n)
1
1
O(log n)
n è il numero dei peer;
Corso di Sistemi Distribuiti, prof. S. Russo
n -1
Dimensione tabella di routing
Sistemi distribuiti peer-to-peer
29
Esempio P2P di III generazione: Chord - 1/6
  Soluzione DHT che associa a peer e chiavi un identificativo di m bit
attraverso una funzione di hash SHA-1 (in totale N = 2m identificativi);
  Si basa su un overlay ad anello in cui i peer sono ordinati in base agli id.
  Il nodo responsabile di una determinata chiave K è quello con il primo
identificativo W tale che W succede K in senso orario;
  Ogni nodo x di Chord mantiene due insiemi di vicini:
  gli m successori del nodo x più il
predecessore.
m=6
N4
N56
  F i n g e r s : U n i n s i e m e m n o d i
costituito dai responsabili delle chiavi N51
distanziate esponenzialmente dal
nodo x, vale a dire l’insieme delle N48
chiavi che si trovano a distanza 2i da
x dove 0 ≤ i ≤ m-1.
N8
K54
K24
N42
K30
N38
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
K10
N14
N21
N32
30
Esempio P2P di III generazione: Chord - 2/6
Successors table: utilizzata per ricerche nelle
immediate vicinanze; contiene gli id degli m successori
e del predecessore
N4
N56
N8
N51
N14
N48
N21
N42
N38
Corso di Sistemi Distribuiti, prof. S. Russo
N32
Sistemi distribuiti peer-to-peer
Grado del
successore
NodeID
1
N14
2
N21
3
N32
4
N38
5
N42
6
N48
Predecessor
N4
31
Esempio P2P di III generazione: Chord - 3/6
Finger Table: utilizzata per velocizzare la ricerca;
contiene gli id degli m peer a distanza 2i con 0 ≤ i ≤ m-1
N4
N56
N8
+1
N51
+2
+4
+32
+8
N14
+16
N48
N21
N42
N38
Corso di Sistemi Distribuiti, prof. S. Russo
N32
Sistemi distribuiti peer-to-peer
Grado del
finger
NodeID
1 (N8+1)
N14
2 (N8+2)
N14
3 (N8+4)
N14
4 (N8+8)
N21
5 (N8+16)
N32
6 (N8+32)
N42
32
Esempio P2P di III generazione: Chord – 4/6
La Finger Table consente di realizzare un algoritmo di lookup, più
scalabile, minimizzando le informazioni da memorizzare nei peer.
E’ usata per identificare il nodo più prossimo alla chiave, così da
ridurre i nodi da contattare.
ALGORITMO DI LOOKUP
N4
n.find_successor(id)
N56
if (id ∈ (n, successor]) N8
return successor;
Lookup 54
else N51
N14
n’= closest_preceding_node(id); return n’.find_successor(id);
N48
N21
n.closest_preceding_node(id)
N42
for i = m downto 1 N32
if (finger[i] ∈ (n, id))
N38
return finger[i]; return n;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
33
Esempio P2P di III generazione: Chord – 5/6
La correttezza di Chord
si basa sul presupposto
che ogni peer conosca
esattamente i successori e i finger. Tale
requisito può essere
compromesso dalla
dinamicità dei peer
(churn o fallimenti).
Per mantenere la
correttezza dei dati di
routing sono eseguiti
periodicamente appositi
algoritmi di stabilizzazione.
Corso di Sistemi Distribuiti, prof. S. Russo
n.stabilize()
x = successor.predecessor; if (x ∈ (n, successor))
successor = x; successor.notify(n);
n.notify(n’)
if (predecessor is nil or n’ ∈(predecessor,n)) predecessor = n’;
n.fix_fingers()
next = next + 1 ; if (next > m)
next = 1;
finger[next] = find_successor(n + 2next-1);
n.check_predecessor() if (predecessor has failed)
predecessor = nil;
Sistemi distribuiti peer-to-peer
34
Esempio P2P di III generazione: Chord – 6/6
Analisi di Complessità
  Le informazioni che il nodo deve mantenere sugli altri
nodi sono m + m + 1 = 2m +1 (O(log N));
  Il numero di messaggi necessari per fare lookup è m
(O(log N));
  Il costo che si paga quando un nodo lascia o si connette
alla rete è di O(log2N) messaggi;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
35
Esempio P2P di III generazione: Pastry - 1/4
Anche Pastry usa un overlay ad anello, ma, a differenza
di Chord, si basa sul prefisso delle chiavi:
•  Ad ogni nodo è assegnato in maniera casuale un
NodeID a 128-bit, generalmente considerato come
una sequenza di interi con base B (tipicamente 16);
•  Ogni query di un dato con chiave k viene istradata
verso il nodo il cui NodeID è numericamente vicino
a k (i primi n interi di NodeID e k coincidono);
•  Ad ogni passo dell’algoritmo di routing, un nodo
inoltra la richiesta di query a un peer il cui NodeID
condivide con la chiave un prefisso di almeno un
intero, di dimensione maggiore di quello che la
chiave condivide con il nodo corrente.
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
36
Esempio P2P di III generazione: Pastry - 2/4
Per consegnare a destinazione il messaggio di query,
ogni nodo di Pastry dispone delle seguenti strutture:
1.  Routing Table (R), contiene NodeID e indirizzi IP
dei peer noti. Nella n-sima righa, tutti gli
elementi hanno in comune i primi n interi;
2.  Neighborhood Set (M), contiene dati sui peer
vicini (per prossimità di routing) a quello corrente;
3.  Leaf Set (L), contiene informazioni dei |L|/2 peer
con NodeID più piccolo prossimo a quello
corrente e |L|/2 con NodeID più grande.
(R)
Corso di Sistemi Distribuiti, prof. S. Russo
(M)
Sistemi distribuiti peer-to-peer
(L)
37
Esempio P2P di III generazione: Pastry - 3/4
Le query sono istradate secondo il seguente algoritmo:
•  Se la chiave della query è uguale al NodeID
corrente o in L ci sono nodi che condividono meno
interi del nodo corrente, la query è conclusa;
0 FFFF…F
•  Se la destinazione è in L, il
messaggio viene inoltrato a
D471F1
tale peer;
D467C4
D46A1C
•  Altrimenti, si identifica (in R
D462BA
o in alternativa in L o in M)
D4213F
il peer con il maggior
numero di interi in comune
D13DA3
e il primo non in comune
65A1FC
più vicino a quello della
chiave, e si inoltra il
Lookup
D46A1C
messaggio a questi.
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
38
Esempio P2P di III generazione: Pastry - 4/4
Pastry gestisce il churn dei peer secondo un meccanismo
di heartbeat per rilevare i fallimenti e di riparazione del
leaf set per porvi rimedio:
•  Periodicamente i peer scambiano messaggi di PING,
il peer che non risponde entro un apposito timeout è
considerato fallito;
•  Il nodo che ha scoperto il fallimento, contatta il peer
numericamente successivo a quello fallito, chiedendo
una copia del suo leaf set;
•  Il leaf set ricevuto avrà delle sovrapposizioni con
quello in possesso dal peer che ha iniziato la
procedura, ma anche validi peer per sostituire quello
fallito;
•  I peer vicini sono informati del fallimento e eseguono
la stessa procedura.
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
39
Confronto DHT
CHORD
PASTRY
Architettura
Spazio NodeID
unidirezionale e
circolare
Mesh globale
Plaxton-style
Algoritmo di
Lookup
Matching chiave e Matching chiave e
NodeID
prefisso NodeID
Complesità del O(logN)
lookup
O(logBN)
Routing State
BlogBN + |L| + |M|
Corso di Sistemi Distribuiti, prof. S. Russo
logN
Sistemi distribuiti peer-to-peer
40