Sommario Peer-to-Peer (P2P) - UNISAcordasco/teaching/ASDAD0809/lezione1.pdf · 29/09/2008 2 P2P:...
Transcript of Sommario Peer-to-Peer (P2P) - UNISAcordasco/teaching/ASDAD0809/lezione1.pdf · 29/09/2008 2 P2P:...
29/09/2008
1
Sistemi Peer to Peer
Gennaro CordascoDipartimento di Informatica e ApplicazioniUniversità degli Studi di Salernocordasco[@]dia.unisa.it cordasco+p2p[@]gmail.comhttp://www.dia.unisa.it/~cordascoLaboratorio ISISLAB2 (DIA Piano 2)
29/09/2008 1
Materiale didatticoi) Peer‐to‐Peer Systems and ApplicationsSeries: Lecture Notes in Computer Science , Vol. 3485 Sublibrary: Information Systems and Applications, incl. Internet/Web, and HCI www.peer‐to‐peer.infoSteinmetz, Ralf; Wehrle, Klaus (Eds.) 2005, XVII, 629 p. With online files/update., SoftcoverISBN: 978‐3‐540‐29192‐3
ii) Research papers (http://www dia unisa it/~cordasco)
29/09/2008 2
ii) Research papers (http://www.dia.unisa.it/ cordasco)
iii) JXTA java Programmers guide (http://www.dia.unisa.it/~cordasco)
iv) JXTA Protocol Specifications (http://www.dia.unisa.it/~cordasco)
v) Le slide del corso (http://www.dia.unisa.it/~cordasco) … che ovviamente non sono sufficienti per superare l’esame!!!
Sommario• Introduzione
• Concetti preliminari• Storia• Applicazioni• Classificazione• Problemi aperti
• Reti P2P non strutturate• Random Graphs, Small‐Worlds and Scale‐Free Networks
i
29/09/2008 3
• Reti P2P strutturate• Chord• Tapestry• CAN• Viceroy
• Lower Bound• Reti Uniformi e Reti Randomizzate• Routing Greedy e Routing NoN
• Reti non Uniformi• Grafi di De Bruijn• Koorde
• JXTA
Peer-to-Peer (P2P)File Sharing?
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 perPeer 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 possiedono molti aspetti tecnici interessanti:◦ permettono di sfruttare risorse altrimenti non utilizzate; ◦ controllo decentralizzato (niente Server);◦ assenza di punti nevralgici (single point to failure);◦ si organizzano da soli;
P2P: Applicazioni
File Sharing systemFile Storage systemDistributed file systemGrid ComputingR d d t t
napster
ll
fioranajxta
united devicesopen cola
CAN
ocean storefarsite
pastry
? netmeeting
freenet
Kademlia
Kelips
Redundant storageAnonymity systemCollaboration systemInstant Messaging system
gnutellamorpheus
kazaa
bearshare seti@home
folding@home
ebay
limewire
icq
mojo nation
uddi
process tree Chord
farsite
tapestry
?grove
popular powerjabber
Viceroy
29/09/2008 5
P2P: Storia
Proposti già da oltre 30 anni (ARPAnet era una rete P2P!!!); L’introduzione del Web e la grande differenza, in termini di prestazioni, fra macchine “Client” e “Server” ha spostato l’attenzione verso i sistemi Client\Server;Successivamente, l’aumento delle prestazioni delle macchine “Client” e l’aumento delle capacità di banda della Rete, hanno portato un maggiore interesse verso le risorse che si trovano all’estremità (edge)maggiore interesse verso le risorse che si trovano all estremità (edge) della rete.Alla fine degli anni novanta sono nati quindi i primi sistemi P2P (ICQ, Seti@Home) 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;
29/09/2008
2
P2P: Storia
Sfortunatamente i primi sistemi P2P soffrivano di gravi problemi di scalabilità
Napster era un sistema P2P con “lookup” centralizzata
29/09/2008 7
P2P: Storia(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 taglia della rete cresce in 7 mesi da 2K a 48K nodi;Tuttavia nel 95% delle query il diametro è di 7‐8 hop;Le applicazioni più conosciute che si basano sul protocollo Gnutella sono:◦ BearShare;◦ LimeWire;◦ …
P2P: Storia
La lista degli host presenti nella rete è disponibile sul Server gnutellahost.com;
Il Server gnutellahost.com(127.186.112.097) viene usato dai nodi per il boot:
Si l i t f f il
CA
XGET X X
◦ Single point of failure;◦ La ricerca di un file usa il flooding (non è scalabile):◦ Controllo dei cicli;◦ TTL per evitare di congestionare la rete;
B D
EA’s query (e.g., X)C’s query hitE’s query hit X
29/09/2008 9
La storia continua…Agosto 2001
◦ Gli utenti dopo la chiusura di napster trovano altre vie. 3.05 miliardi di file sono scambiati attraverso la rete Gnutella ogni mese
◦ Anno 2001: Nascono i protocolli P2P di terza generazione. La ricerca, in ambito P2P, (anche a livellouniversitario) comincia ad fornire le prime proposte: nascono le prime Distributed Hash tables (DHTs)
Agosto 2002
◦ La rete KaZaA comincia a decadere, ci sono troppi file contraffatti (la ragione: non viene utilizzatanessuna politica di sicurezza per i file, come ad esempio fare l’hash del contenuto)
◦ Edonkey e Gnutella guadagnano popolarità
29/09/2008 10
y g g p p
Maggio 2003
◦ Viene rilasciato Bittorrent
2003
◦ Si comincia finalmente ad utilizzare il paradigma P2P anche per altre applicazioni
◦ Nascono Skype e il concetto di Voice over IP (P2P) si diffonde
2005:
◦ Gli sforzi della ricerca sono rivolti soprattutto a migliorare l’affidabilità dei sistemi P2P, così da poterliutilizzare anche nelle reti ad‐hoc, …
◦ Ebay compra parte del protocollo Skype per usarlo come paradigma di comunicazione tra venditore e compratore
P2P: Storia(4) Lo sviluppo delle applicazioni P2P
60%
70%
80%
90%
100%
per w
eek
FreenetDirect Connect++CarrachoBlubsterNeo-M odusFastTrackWinM XShoutcastAudiogalaxyeDonkey2000HotlineGnutella
FastTrack
Shoutcast
29/09/2008 12
0%
10%
20%
30%
40%
50%
18.0
2.20
02
18.0
5.20
02
18.0
8.20
02
18.1
1.20
02
18.0
2.20
03
18.0
5.20
03
18.0
8.20
03
18.1
1.20
03
18.0
2.20
04
18.0
5.20
04
18.0
8.20
04
data
volu
mes
in %
GnutellaB itTorrent
BitTorrentGnutella
edonkey
29/09/2008
3
P2P: Scalabilità
Il lavoro richiesto a un determinato nodo nel sistema non deve crescere (o almeno cresce lentamente) in funzione del numero di nodi nel sistema;I protocolli usati da Napster e Gnutella non sono scalabili;sono scalabili;Per migliorare la scalabilità sono nati i cosiddetti protocolli P2P di terza generazione che supportano DHTs (Distributed Hash Tables);Alcuni esempi di questi protocolli sono: Tapestry, Chord, CAN, Viceroy, Koorde, kademlia, kelips …;
Esempi
P2P di seconda generazione e DHT
A ogni risorsa e ad ogni nodo è associata una chiaveLa chiave viene di solito creata facendo l’hash del nome della risorsa o dell’IP del nodoOgni nodo del sistema è responsabile di un i i di i / hi i t tti liinsieme di risorse/chiavi e tutti realizzano una DHTL’unica operazione che un sistema DHT deve fornire è lookup(chiave), la quale restituisce l’identità del responsabile di una determinata chiave
Tutti i nodi del sistema condividono una tabella hash
Conoscono la struttura della tabella
Ma non conoscono il responsabile di una determinata entry
P2P di seconda generazione e DHT
Nodo x
Nodo y
Nodo z
Id0123456…
2m-1…
29/09/2008 16
Overlay Network
[I. Stoica] “An overlay network is a virtual network of nodes and logical links that is built on top of an existing network with the purpose to implement a network service that is not available in the existing networkavailable in the existing network.In particular an overlay network:◦ adds an additional layer of indirection/virtualization◦ changes properties in one or more areas of underlying network”
29/09/2008 17
Overlay Network: PerformanceDal punto di vista topologico:Consideriamo una rete P2P come un grafo G=(V,E), dove V è l’insieme dei nodi nel sistema e E rappresenta l’insieme delle interconnessioni fra essi.Obiettivi:Mi i i i d l i f i i l i li◦ Minimizzare, per ogni nodo, le informazioni relative agli altri nodi:
minimizzare il grado dei nodi;
◦ Minimizzare il numero di messaggi necessari per fare lookup:
Minimizzare il diametro;Minimizzare l’average path lenght (APL), vale a dire, la distanza media fra due nodi nel grafo.
Condizioni necessarie ma non sufficienti
29/09/2008 18
29/09/2008
4
Scalabilità
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;
Messaggi necessari per trovare una chiave
n -1 Chord e altri
Grafo Totalmente connesso
Anello
p;◦ Minimizzare, per ogni nodo, le informazioni relative agli altri nodi;
I vari DHT conosciuti differiscono proprio nel routing;
Dimensione tabella di routing
1
1
n -1
O(log n)
O(log n)
connesso
n è il numero dei peer;
29/09/2008 19
P2P Classificazione
Sistemi P2P Centralizzati (a.k.a. Ibridi)Sistemi P2P GerarchiciSistemi P2P PuriSistemi P2P che utilizzano SuperPeerSistemi P2P che utilizzano SuperPeer
P2P Classificazione
Sistemi P2P Centralizzati (a.k.a. Ibridi)
Resource request
P2P CommunicationP2P Communication
P2P ClassificazioneSistemi P2P Gerarchici
Resource request
Servers/Coordinators Communication
P2P Communication
P2P Classificazione
Sistemi P2P Puri
P2P Communication
P2P Classificazione
Sistemi P2P che utilizzano SuperPeer
Resource request
P2P Communication
Servers/Coordinators Communication
29/09/2008
5
P2P Classificazione(2)
E’ possibile classificare i sistemi P2P in base all’applicazione fornita:◦ File Sharing◦ Communication◦ Distributed Computing◦ Collaboration
P2P Desiderata
ScalabilityStabilityPerformanceDecentralizationDecentralizationLoad BalancingTopology awarenessFlexibility
P2P: Capacità di far fronte ai 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? ◦ Quanto costa una procedura per ripristinare tutti i link?◦ Chi chiama questa procedura? (vale a dire chi si accorge che un nodo non è attivo).
P2P: 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;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;
P2P: Incorporating Geography
Di solito le le prestazioni del routing dei sistemi P2P si misurano contando il numero di hop necessari a individuare il responsabile di una chiave a parità di link nella reteSarebbe utile, inoltre, minimizzare la latenza del singolo hophopIn pratica vogliamo che nodi vicini sulla rete DHT, siano “fisicamente” vicini
s
t
s
t
29/09/2008 29
P2P: Incorporating Geography(2)
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).
29/09/2008
6
P2P: 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à.
P2P: Sicurezza
E’ possibile realizzare un protocollo P2P che resiste ad attacchi di tipo denial of serviceE’ necessario replicare i datiE’ 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 nodi e alle risorse in modo pseudo‐casuale (quasi tutti gli algoritmi usano SHA‐1)
Conclusioni
P2P è un paradigma di computazione che permette di sfruttare al meglio le risorse presenti nel sistema.
Presenta numerosi problemi aperti◦ Performance
◦ Sicurezza
◦ Bilanciamento del carico
◦ Scheduling delle risorse
◦ Etereogeneità dei nodi
◦ …
Numerose applicazioni vengono considerate P2P (ma non lo sono!!)
…
29/09/2008 33 29/09/2008 34
Grazie per l’attenzione