Sommario Peer-to-Peer (P2P) - UNISAcordasco/teaching/ASDAD0809/lezione1.pdf · 29/09/2008 2 P2P:...

6
29/09/2008 1 Sistemi Peer to Peer Gennaro Cordasco Dipartimento di Informatica e Applicazioni Università degli Studi di Salerno cordasco[@]dia.unisa.it cordasco+p2p[@]gmail.com http://www.dia.unisa.it/~cordasco Laboratorio ISISLAB 2 (DIA Piano 2) 29/09/2008 1 Materiale didattico i) PeertoPeer Systems and Applications Series: Lecture Notes in Computer Science , Vol. 3485 Sublibrary: Information Systems and Applications, incl. Internet/Web, and HCI www.peertopeer.info Steinmetz, Ralf; Wehrle, Klaus (Eds.) 2005, XVII, 629 p. With online files/update., Softcover ISBN: 9783540291923 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, SmallWorlds and ScaleFree 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) y File Sharing? y Sistema distribuito nel quale ogni nodo ha identiche capacità e responsabilità e tutte le comunicazioni sono potenzialmente simmetriche; y Peer to peer (obiettivi): condividere risorse e servizi (dove per Peer to peer (obiettivi): condividere risorse e servizi (dove per risorse e servizi intendiamo: scambio di informazioni, cicli di CPU, spazio sul disco …); y 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 y File Sharing system y File Storage system y Distributed file system y Grid Computing Rd d tt napster ll fiorana jxta united devices open cola CAN ocean store farsite pastry ? netmeeting freenet Kademlia Kelips y Redundant storage y Anonymity system y Collaboration system y Instant Messaging system gnutella morpheus kazaa bearshare seti@home folding@home ebay limewire icq mojo nation uddi process tree Chord farsite tapestry ? grove popular power jabber Viceroy 29/09/2008 5 P2P: Storia y Proposti già da oltre 30 anni (ARPAnet era una rete P2P!!!); y 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; y 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 allestremità (edge) maggiore interesse verso le risorse che si trovano all estremità (edge) della rete. y Alla fine degli anni novanta sono nati quindi i primi sistemi P2P (ICQ, Seti@Home) y L’interesse verso questo tipo di protocolli è aumentato con la nascita dei primi sistemi per filesharing (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;

Transcript of Sommario Peer-to-Peer (P2P) - UNISAcordasco/teaching/ASDAD0809/lezione1.pdf · 29/09/2008 2 P2P:...

Page 1: Sommario Peer-to-Peer (P2P) - UNISAcordasco/teaching/ASDAD0809/lezione1.pdf · 29/09/2008 2 P2P: Storia ySfortunatamente i primi sistemi P2P soffrivano di gravi problemi di scalabilità

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;

Page 2: Sommario Peer-to-Peer (P2P) - UNISAcordasco/teaching/ASDAD0809/lezione1.pdf · 29/09/2008 2 P2P: Storia ySfortunatamente i primi sistemi P2P soffrivano di gravi problemi di scalabilità

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

Page 3: Sommario Peer-to-Peer (P2P) - UNISAcordasco/teaching/ASDAD0809/lezione1.pdf · 29/09/2008 2 P2P: Storia ySfortunatamente i primi sistemi P2P soffrivano di gravi problemi di scalabilità

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

Page 4: Sommario Peer-to-Peer (P2P) - UNISAcordasco/teaching/ASDAD0809/lezione1.pdf · 29/09/2008 2 P2P: Storia ySfortunatamente i primi sistemi P2P soffrivano di gravi problemi di scalabilità

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

Page 5: Sommario Peer-to-Peer (P2P) - UNISAcordasco/teaching/ASDAD0809/lezione1.pdf · 29/09/2008 2 P2P: Storia ySfortunatamente i primi sistemi P2P soffrivano di gravi problemi di scalabilità

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).

Page 6: Sommario Peer-to-Peer (P2P) - UNISAcordasco/teaching/ASDAD0809/lezione1.pdf · 29/09/2008 2 P2P: Storia ySfortunatamente i primi sistemi P2P soffrivano di gravi problemi di scalabilità

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