1 Sistemi Distribuiti

Transcript

1 Sistemi Distribuiti
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. Domenico Cotroneo
Sommario
• Introduzione e classificazione
• Storia ed esempi
• Distributed Hash Table (DHT)
- Chord
• Problemi aperti
• Applicazioni
- WinMx, Kazaa, Overnet, Freenet
Riferimenti:
G. Coulouris et al.: Distributed Systems: Concepts and Design
(Cap. X), IV ed., 2005.
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;
Peer to peer (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
1
P2P: Requisiti
Requisiti Funzionali
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
4
P2P: Classificazione (1/3)
Un’applicazione P2P è caratterizzata da tre fasi :
Boot: permette a un peer di trovare la rete e di connettersi ad
essa; (nessuno o quasi fa boot P2P)
Lookup: permette ad un peer di trovare il
gestore/responsabile di una determinata informazione; (pochi
sono P2P, alcuni usano SuperPeer)
Scambio di file o resource sharing;(tutti P2P)
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
5
P2P: Classificazione (2/3)
Parleremo di applicazioni:
P2P pure se:
⌧le fasi di boot, lookup e scambio di file sono P2P;
P2P se:
⌧le fasi di lookup e scambio di file sono P2P;
⌧la fase di boot utilizza qualche SERVER;
P2P Ibride se:
⌧la fase di scambio dei file è P2P;
⌧la fase di boot utilizza qualche SERVER;
⌧nella fase di lookup vengono usati Peer particolari:
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
6
2
P2P: Classificazione (3/3)
In base all’operazione di lookup:
Lookup Centralizzato
⌧ Indice centralizzato;
Lookup Decentralizzato
⌧ Indice completamente distribuito;
Lookup Ibrido
⌧Più sistemi centralizzati collegati in un sistema
decentralizzato;
In tutti e tre questi sistemi il trasferimento e la
memorizzazione dei file è P2P;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
7
Un po’ di storia (1/3)
Proposti già da oltre 30 anni;
Sviluppati nell’ultimo decennio;
L’interesse verso questo tipo di protocolli è aumentato
con la nascita dei primi sistemi per file-sharing
(Napster (1999), Gnutella(2000));
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;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
8
Un po’ di storia (1/3)
Proposti già da oltre 30 anni;
Sviluppati nell’ultimo decennio;
L’interesse verso questo tipo di protocolli è aumentato
con la nascita dei primi sistemi per file-sharing
(Napster (1999), Gnutella(2000));
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;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
9
3
Un po’ di storia (2/3)
L’eredità di Napster è stata raccolta da Gnutella;
Il 14 / 03 / 2000 Justin Frankel e Tom Pepper realizzano
la prima release di Gnutella (!!! Solo 14 ore !!! );
La dimensione della rete cresce in 7 mesi da 2K a 48K
nodi;
Tuttavia è stato stimato che il 95% delle query aveva un
diametro di 7-8 hop;
Le applicazioni più conosciute che si basano sul protocollo
Gnutella sono:
BearShare;
LimeWire;
…
Corso di Sistemi Distribuiti, prof. S. Russo
10
Sistemi distribuiti peer-to-peer
Un po’ di storia (3/3)
La lista degli host presenti nella rete è disponibile sul
Server gnutellahost.com;
Il Server gnutellahost.com viene usato dai nodi per il
boot. Ciò significa
Single point of failure;
Gnutella non è P2P Puro!!!;
Le richieste di Ricerca di un file vengono propagate
con tecniche di flooding (non è scalabile):
controllo dei cicli;
TTL per evitare di congestionare la rete;
Corso di Sistemi Distribuiti, prof. S. Russo
11
Sistemi distribuiti peer-to-peer
GET X.mp3
X
X
C
A
B
A’s query (e.g., X)
C’s query hit
E
E’s query hit
Corso di Sistemi Distribuiti, prof. S. Russo
D
X
Sistemi distribuiti peer-to-peer
12
4
Gnutella: Flooding
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
13
Scalabilità (1/2)
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;
I protocolli usati da Napster e Gnutella non sono
scalabili;
Per migliorare la scalabilità sono nati i cosiddetti
protocolli P2P di seconda generazione che supportano
DHT (Distributed Hash Table);
Alcuni esempi di questi protocolli sono: Tapestry,
Chord, Can, Viceroy, Koorde, kademlia,kelips …;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
14
Scalabilità (2/2)
La scalabilità di un protocollo è direttamente legata all’efficienza
dell’algoritmo usato per il routing (lookup);
In questo senso, sostanzialmente gli obiettivi sono due:
Minimizzare il numero di messaggi necessari per fare lookup;
Minimizzare, per ogni nodo, le informazioni relative agli altri nodi;
I vari DHT conosciuti differiscono proprio nel routing;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
15
5
Messaggi necessari per trovare una
chiave
Anello
DHT
n -1
Grafo
Totalmente
connesso
O(log n)
1
O(log n)
1
n -1
Dimensione tabella di routing
n è il numero dei peer;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
16
P2P di seconda generazione e DHT
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
17
P2P di seconda generazione e DHT
Tutti i nodi del sistema condividono una tabella hash;
Conoscono la struttura della tabella…
Ma non conoscono il responsabile di una data entry!
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
18
6
DHT: Chord (1/4)
Le chiavi sono “mappate” su un array circolare costituito da 2m identificatori;
I nodi sono identificati con le stesse chiavi.
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. Questo insieme
viene usato per dimostrare la correttezza del Routing;
Fingers:
Un
insieme
m
nodi
costituito dai responsabili delle chiavi
distanziate
esponenzialmente
dal
nodo x, vale a dire l’insieme delle
chiavi che si trovano a distanza 2i da
x dove 0 ≤ i ≤ m-1. Questo insieme
viene
usato
per
dimostrare
l’efficienza del Routing;
Corso di Sistemi Distribuiti, prof. S. Russo
m=6
19
Sistemi distribuiti peer-to-peer
DHT: Chord (2/4)
Successors
indice
Nodo
1
14
2
21
3
24
4
32
5
38
6
42
Predecessor
Nodo 1
m=6
Corso di Sistemi Distribuiti, prof. S. Russo
20
Sistemi distribuiti peer-to-peer
DHT: Chord (2/4)
Fingers
ID
Resp.
8+1=9
14
8+2=10
14
8+4=12
14
8+8=16
21
8+16=24
24
8+32=40
42
m=6
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
21
7
DHT: Chord (3/4)
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));
L’algoritmo di routing effettua a ogni step il passo più
grande che riesce a fare;
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
22
DHT: Chord (4/4)
Algoritmo di lookup:
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
23
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
24
8
DHT: Capacità di tollerare i fallimenti
Cosa succede se un nodo cade?
I dati presenti nel nodo possono essere recuperati solo se ci
sono duplicati.
Il routing continua a funzionare? Con quale efficienza ? (Graceful
degradation??)
Quanto costa una procedura di recovery (ripristinare tutti i link)?
Chi ha la responsabilità di rilevare fallimenti (failure detection)?
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
25
DHT: Routing Hot Spots
Se una chiave è richiesta più spesso, il responsabile della chiave e
anche i suoi vicini potrebbero sovraccaricarsi;
Per ovviare al problema si possono usare meccanismi di caching e di
duplicazione;
Diverso è il problema relativo ai nodi che si sovraccaricano per il
traffico generato dalle lookup;
Questo tipo di traffico è abbastanza difficile da individuare e da gestire;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
26
DHT: Incorporating Geography (1/2)
Tradizionalmente le prestazioni del routing si ottengono contando il
numero di hop necessari a individuare il responsabile di una chiave;
Sarebbe utile, inoltre, minimizzare la latenza del singolo hop;
Alcune tecniche:
Geographic Layout: Usare un algoritmo per attribuire le chiavi ai nodi in
modo che nodi “fisicamente” vicini abbiano identificatori simili.
(Controindicazioni: Bilanciamento del carico, Routing Hot Spots e
Sicurezza);
PNS(Proximity neighbor selection) La scelta dei vicini non dipende solo
dalla distanza fra i nodi sulla rete di overlay ma è influenzata anche
dalle distanze reali.
PRS(Proximity routing selection) Durante la ricerca l’algoritmo di
routing non sceglie il successivo step basandosi solo sulla distanza fra i
nodi nella rete di overlay; considera anche la distanza effettiva fra i
nodi (in termini di RTT);
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
27
9
DHT: Incorporating Geography (2/2)
Osservazioni:
PRS e PNS sono i sistemi più usati,(sembra che PNS offre prestazioni
migliori di PRS);
PRS e PNS partono dal presupposto che è possibile conoscere il RTT
con ogni altro nodo (non è fattibile, ma è possibile ottenere delle stime a
un costo relativamente basso);
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
28
Incorporating geography: Chord
Chord e PRS:
L’algoritmo di routing non va semplicemente al nodo più vicino sulla rete di
overlay, ma ad esempio potrebbe considerare i due nodi più vicini e
scegliere quello con RTT minore;
Le path-lenght si allungano ma rimangono O(log n);
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
29
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
30
10
Incorporating geography: Chord
Chord e PNS:
La finger table viene riempita considerando anche il RTT:
l’i-esimo finger del nodo α non è semplicemente il ‘‘responsabile’’ della
chiave α+2i ma è il nodo più vicino(RTT) fra i nodi ‘‘responsabili’’ delle
chiavi nell’intervallo [α+2i-1, α+2i ].
Anche in questo caso le path-lenght si allungano ma rimangono O(log n)
(dimostrazione analoga alla precedente).
Anche usando simultaneamente PRS e PNS la lunghezza asintotica delle
path non varia;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
31
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
32
DHT: Extreme Heterogeneity
I nodi connessi a questo tipo di reti sono eterogenei (Es.
capacità di calcolo e banda);
E’ possibile progettare algoritmi di routing che
considerino anche questa eterogeneità;
La tecnica più diffusa per risolvere questo problema
consiste nel considerare dei nodi virtuali tutti con le
stesse capacità e assegnare a ogni nodo reale un
numero di nodi virtuali proporzionale alle proprie
capacità;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
33
11
DHT: Sicurezza
E’ possibile realizzare un protocollo P2P che resiste ad
attacchi di tipo denial of service;
E’ necessario replicare i dati;
E’ importante usare funzioni hash “One Way” (per i dati
e per i nodi);
E’ importante osservare che tutte le dimostrazioni
relative alla sicurezza dei vari algoritmi incontrati finora
si basano sul fatto che le chiavi vengono associate ai
files in modo casuale (quasi tutti gli algoritmi usano
SHA);
Corso di Sistemi Distribuiti, prof. S. Russo
34
Sistemi distribuiti peer-to-peer
P2P(quasi): Direct Connect (DC++)
Usa una serie di hub (server) che mantiene le informazioni relative a
un gruppo di utenti;
Una volta connessi ad un hub si condivide file solo con i nodi connessi
a tale hub;
E’ possibile connettersi a più hub contemporaneamente;
Gli hub sono connessi tra loro ma non si scambiano informazioni
relative alla ricerca di una determinata chiave (Sono tanti piccoli
Napster);
La lista degli hub attivi viene mantenuta da tutti gli hub e aggiornata
periodicamente dagli altri hub mediante messaggi del tipo “I am
here”;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
P2P ibrido35
P2P(quasi): WinMx
E’ basato su una rete di Server (circa 50) chiamata OpenNap
nata subito dopo che è stato chiuso il Server di Napster;
Viene usata anche da NapMx;
In WinMx viene fatta una distinzione fra nodi di connessione
primaria:
direttamente connessi ai server;
sono usati anche per il Routing;
e nodi di connessione secondaria:
connessi solo ai nodi di connessione primaria;
non si occupano di Routing;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
P2P ibrido36
12
P2P(quasi): KaZaA
Viene usata una rete proprietaria;
In KaZaA viene fatta una distinzione fra nodo e Supernodo(server):
Ogni nodo semplice collabora con il proprio Supernodo;
I Supernodi collaborano tra loro e con i propri sottonodi;
Come sono connessi i Supernodi?
Corso di Sistemi Distribuiti, prof. S. Russo
P2P ibrido
Sistemi distribuiti peer-to-peer
37
Gnutella2
L’obiettivo della lookup in Gnutella è trovare tutti i peer che dispongono
di un determinato oggetto (non ci sono limitazioni sul tempo);
L’obiettivo della lookup in Gnutella2 è trovare, nel minor tempo
possibile, almeno un peer (se c’è) che dispone di un determinato
oggetto; una volta trovata un’istanza dell’oggetto desiderato è possibile
scegliere se fermarsi o continuare la ricerca;
L’abilità di trovare almeno un’istanza di un oggetto è molto importante,
altrimenti non sono possibili altre azioni;
Bisogna trovare un modo per tenere sotto controllo la ricerca;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
38
Gnutella2: Ricerca (1/4)
Esistono tre approcci per controllare la ricerca;
Gnutella2
Future
Random walker approach;(il nodo che origina la query ne controlla
l’esecuzione e in ogni istante può decidere se continuare o abortire
la ricerca).
Random or crawling mesh approach;(il nodo che origina la query
iterativamente contatta alcuni nodi della rete, finché non si verifica
una determinata condizione).
Guided mesh approach;(DHT)
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
39
13
Gnutella2: Ricerca (2/4)
Su una rete pubblica di grandi dimensioni non è possibile
effettuare direttamente la ricerca di un oggetto:
ci sono troppi nodi da contattare;
il costo per mettersi in contatto con un nodo è troppo alto
paragonato alla probabilità di successo su quel nodo;
la maggior parte dei nodi non dispongono di risorse sufficienti
per far fronte a un numero notevole query;
non tutti i nodi si possono contattare direttamente (es. firewall);
Corso di Sistemi Distribuiti, prof. S. Russo
40
Sistemi distribuiti peer-to-peer
Gnutella2: Ricerca (3/4)
Nodo
Soluzione? P2P Ibrido:
Hub
Gnutella2 organizza i nodi in un sistema gerarchico a due livelli
dove i nodi ad alta capacità chiamati Hub rispondono alle query
per le proprie foglie;
La re-distribuzione della rete agli Hub è P2P;
Hub vantaggi:
Viene ridotto il numero totale dei nodi da contattare;
Un Hub contiene informazioni relative a tanti oggetti, quindi è
maggiore la probabilità che una query trovi un’istanza di un
oggetto;
E’ possibile avere informazioni su nodi down;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
41
Gnutella2: Ricerca (4/4)
Per evitare che questo sistema degeneri in un sistema
centralizzato viene limitato il numero di leaves per ogni
hub;(circa 150)
La comunicazione fra leaves e hub è diretta;
Problema Inter-Hub Communication;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
42
14
Gnutella2: Inter-Hub Communication (1/5)
Nodo
Hub
Ogni hub conosce solo i propri vicini;
Quando un hub riceve una query dal nodo di origine, oltre a
elaborarla, la inoltra ai propri vicini che non la inoltrano
ulteriormente; (in pratica TTL = 2)
Ad esempio se la ricerca viene inviata ad un hub che ha 5 vicini in
un solo passo (con una query) vengono analizzate le foglie
relative a 6 hub;
L’insieme dei nodi raggiunti in un passo viene chiamato cluster;
Corso di Sistemi Distribuiti, prof. S. Russo
43
Sistemi distribuiti peer-to-peer
Gnutella2: Inter-Hub Communication (2/5)
Nodo
Hub
Quando un nodo richiede la ricerca di un oggetto al proprio hub:
Viene ricercato l’elemento nel proprio cluster
Viene ricercato l’elemento nei cluster vicini(a distanza 1) più qualche cluster
lontano scelto a caso;
Viene ricercato l’elemento nei cluster vicini dei vicini (a distanza 2) più
qualche cluster lontano scelto a caso;
…
Corso di Sistemi Distribuiti, prof. S. Russo
44
Sistemi distribuiti peer-to-peer
Gnutella2: Inter-Hub Communication (3/5)
Nodo
Hub
Non è possibile per ogni hub mantenere la lista di tutti gli hub;
(Non è scalabile);
La lista dei cluster a distanza i+1 è ottenuta in risposta alla
ricerca effettuata sui cluster a distanza i;
Le risposte contengono inoltre altre informazioni utili per le
statistiche (es. numero di nodi presenti nel cluster);
…
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
45
15
Gnutella2: Inter-Hub Communication (4/5)
Nodo
Hub
Ogni hub mantiene la lista degli hub vicini (direttamente connessi)
più una cache di hub lontani aggiornata di tanto in tanto;
Viene mantenuta una done list;
Le ricerche all’interno del cluster sono fatte usando TCP;
Le ricerche fra cluster sono fatte usando UDP;
UDP SEARCH
TCP SEARCH
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
46
Gnutella2: Inter-Hub Communication
(Esempio)
try list
cluster
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
47
Gnutella2: Inter-Hub Communication (5/5)
Ogni hub deve mantenere quindi:
la lista dei propri vicini;
una lista di hub lontani (da aggiornare di tanto in tanto);
una done list (i nodi a cui abbiamo inviato una query più i loro
vicini);
una try list; (i vicini dei vicini dei nodi a cui abbiamo inviato una
query);
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
per
ogni
query
48
16
Gnutella2: Boot
Come fa un nuovo nodo a connettersi alla
rete?
E’ necessario conoscere almeno un host attivo;
Chi mantiene la lista degli host attivi?
⌧ un Server; (Gnutella, Napster)
⌧ tanti Server; (Gnutella2)
⌧ nessun Server.(☺
☺)
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
49
Overnet
Sistema P2P per il file sharing sviluppato dalla
MetaMachine;
Non ci sono server; (P2P puro)
Usano DHT (Distribuited Hash Table) con ID a 128 bit;
Purtroppo non è Open Source;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
50
Overnet:boot
Ogni nodo mantiene una cache dei nodi connessi
alla rete;
Durante la fase di boot il nodo tenta di connettersi
ai nodi presenti nella cache;
Se questa fase non ha successo viene richiesto
l’indirizzo di un nodo on-line;(a regime non capita
praticamente mai)
In ogni caso è stato creato un canale IRC per
mantenere queste informazioni;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
51
17
P2P(file-storage-service): FreeNet
Ogni nodo mette a disposizione un po’ di spazio;
Le operazioni possibili sono get e put di un file;
Per aggiugere un nuovo file si invia un send message nella rete e un
identificatore GUID (Global Unique Identifier) in base al quale il file
viene memorizzato in un insieme di nodi (Data Partition);
Per recuperare un file basta inviare un messaggio di richiesta
contenente il GUID del file;
Servizi aggiuntivi:
Persistenza;
Anonimia;
P2P Puro
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
52
P2P: FreeNet (Routing)
E’ tutt’altro che efficiente;
Corso di Sistemi Distribuiti, prof. S. Russo
Sistemi distribuiti peer-to-peer
53
Ulteriori riferimenti
http://www.pdos.lcs.mit.edu/chord/
http://www.napster.com/
http://www.gnutella .com/
http:// www.gnutella2.com/
http:// www.shareaza.com/
http://www.overnet.com/
http:// www.openp2p.com/
S. Ratnasamy, S. Shenker, and I. Stoica. “Routing algorithms for DHTs: Some
open questions”. In In 1st International Peer To Peer Systems Workshop
(IPTPS02).
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
54
18