Tecnologie e Applicazioni Peer-to-Peer

Transcript

Tecnologie e Applicazioni Peer-to-Peer
Tecnologie e Applicazioni Peer-to-Peer
Tecnologie e Applicazioni
Peer-to-Peer (P2P)
Gruppo Reti TLC
[email protected]
http://www.telematica.polito.it/
2
Peer-to-peer (P2P)
• Sotto l'etichetta generica di 'peer-to-peer'
(P2P) sono considerati tutti quei servizi e
applicazioni che prevedono lo sfruttamento di
risorse (memoria, potenza di calcolo, contenuti)
ai bordi della rete
• Sfruttare le risorse ai bordi significa dipendere
da un sistema fortemente variabile, con
connettività instabile e indirizzi IP non
predicibili
3
Peer-to-peer (P2P)
• Esempi di applicazioni P2P:
–
–
–
–
–
–
–
Instant Messaging
File Sharing
Distributed Computation
Distributed Search Engines
Gaming
Collaboration Tools
Web Services (SOAP, XML-RPC)
Pag. 1
Tecnologie e Applicazioni Peer-to-Peer
4
P2P: Back to the future
• P2P non è certo una novità
• Internet è nata intorno a collegamenti paritari
tra i nodi che la costituivano
• Applicazioni tuttora usate sono basate su uno
scambio di informazioni non centralizzato
– DNS: l'informazione è mantenuta ai bordi della rete
ed esiste un sistema gerarchico per scoprire e poi
contattare direttamente l'Authoritative Name Server
di un dominio
– Usenet/NNTP: i messaggi sono distribuiti tra i server
in maniera tale da raggiungere tutte le foglie della
rete senza duplicazioni
5
Internet: una rete asimmetrica
• Il successo del Web e l'esplosione commerciale di
Internet hanno allontanato il baricentro della rete
dal bordo
• Si è passati da una rete ancora fondamentalmente
paritaria ad un sistema fortemente asimmetrico:
pochi server e tantissimi client
• La stessa idea del 'tutti autori' si è rivelata
utopica e pochissimi degli utenti sono di fatto
anche produttori di contenuti, che devono
comunque essere memorizzati all'interno della
rete e non sul bordo
6
Internet: una rete asimmetrica
• L'asimmetria server-client ha di conseguenza
generato una asimmetria nel traffico e nei
meccanismi di accesso alla rete
• Gli ISP dimensionano le loro reti di accesso per
gestire traffico asimmetrico
• Molte moderne tecnologie di accesso,
specialmente ad alta capacità, sono asimmetriche
(ADSL, HFC/Cable Modem)
• Portare i contenuti ai bordi pone quindi problemi
agli ISP: la loro rete deve lavorare in maniera
imprevista
Pag. 2
Tecnologie e Applicazioni Peer-to-Peer
7
Internet: una rete asimmetrica
• All'asimmetria nella rete di accesso si aggiungono i
problemi di raggiungibilità dei client
• Firewall
– l'ideale di Internet di "tutti si collegano direttamente con tutti"
ha dovuto fare i conti con la dura realtà dei problemi di
sicurezza, per cui la maggior parte dei sistemi ormai si trova
dietro firewall che filtrano e bloccano i servizi e le connessioni
dall'esterno
• Indirizzi IP Dinamici o NAT
– gli ISP assegnano ai loro clienti indirizzi IP dinamici, che
cambiano di connessione in connessione, oppure mascherano
completamente il collegamento tramite NAT
8
Architetture di rete
• Si possono distinguere tre categorie di
applicazioni P2P:
– sistemi coordinati centralmente, nei quali la
comunicazioni tra peer è resa possibile dalla
consultazione di un server centralizzato
– sistemi gerarchici, nei quali la comunicazione tra peer
è risolta attraverso coordinatori strutturati
gerarchicamente
– sistemi decentrati, nei quali la comunicazione tra peer
avviene senza alcuna coordinazione centrale
9
Sistemi centralizzati
• Nei sistemi P2P centralizzati si prevede
l'esistenza di uno o più server che sono in grado
di coordinare l'attività dei peer
• Esempi
– Instant Messaging
– Napster
– Distributed Computing
• Implementano la forma più debole di relazione
tra peer
Pag. 3
Tecnologie e Applicazioni Peer-to-Peer
10
Instant Messaging
• I sistemi di instant messaging più diffusi (ICQ,
AIM, MSN Messenger) sono in genere regolati
dall'accesso ad un servizio centrale
• Però spesso
– identificano l'utente tramite pseudonimo e ne
registrano la posizione dell'utente senza far uso di
DSN, permettendo quindi connettività generica e
mobilità
– permettono agli utenti di comunicare direttamente,
senza passare per il server, usato solo come 'fallback'
(ICQ)
11
Napster
• Napster è un sistema di file-sharing orientato a
file MP3, con directory centralizzata
• I client, alla connessione al sistema, registrano le
risorse che sono disposti a condividere
• I server supporta funzioni di ricerca sugli indici
raccolti, fornendo l'elenco dei client in possesso
del file cercato
• Lo scambio dei file avviene tramite il
collegamento diretto tra i due client coinvolti
• Il server possiede solo l'indice, non i file
scambiati
12
Distributed Computing
• I PC che costituiscono i client ai bordi della rete
hanno ormai raggiunto una potenza di calcolo
notevole e sono spesso sottoutilizzati
• Si cerca di sfruttare i tempi morti di utilizzo dei
PC per effettuare parte di calcoli complessi e ma
frazionabili in sottoproblemi
– SETI@home
– Distributed.net
– Folding@home
Pag. 4
Tecnologie e Applicazioni Peer-to-Peer
13
Distributed Computing
• Un sistema centralizzato distribuisce porzioni
del problema ai client, che le elaborano durante i
loro tempi morti (screensaver)
• I client sono tipicamente off-line e solo quando
hanno terminato l'elaborazione contattano
nuovamente il server per restituire i risultati ed
eventualmente ricevere nuovo lavoro
14
Sistemi gerarchici
• In questi sistemi i coordinatori sono organizzati
in livelli gerarchici
• I peer sono organizzati in gruppi e comunicano
direttamente tramite il coordinatore locale
• Peer di gruppi diversi possono comunicare
tramite i coordinatori di livello gerarchico
superiore ma l'informazione scambiata può
essere spinta verso il bordo per velocizzare le
future comunicazioni
• Esempi: DNS, Squid Web proxy cache
15
Sistemi decentrati
• In questi sistemi non esiste un sistema di
coordinamento centralizzato, anche se possono
esistere dei nodi di riferimento
• La comunicazione avviene sempre direttamente
tra peer, per cui l'applicazione eseguita funziona
contemporaneamente da client, da server e da
nodo di commutazione
• Siamo di fronte a una rete di overlay a livello
Applicazione
Pag. 5
Tecnologie e Applicazioni Peer-to-Peer
16
Sistemi decentrati
• Caratteristiche comuni
– numero di nodi variabile: i nodi possono entrare nel
sistema e abbandonarlo in qualsiasi momento
– supporto per la ricerca dell'informazione: vengono
definite dal sistema stesso le modalità di ricerca dei
dati
– ridondanza dell'informazione: il sistema può
mantenere copie multiple dei dati per sicurezza o per
permettere la disponibilità dei dati anche in assenza
del fornitore originario o del proprietario
– scalabilità e resistenza a guasti o attacchi
17
Sistemi decentrati
• L'utilizzo tipico di tali sistemi è quello di servizi
di file sharing o di storage distribuito.
• La stessa infrastruttura può essere usata per
supportare 'distribute computing' decentrato
• Le capacità di storage distribuito, con funzioni di
duplicazione, frammentazione e cifratura dei
dati, permettono la realizzazione di sistemi
'Eternity Service' resistenti a tentativi di
censura
18
Gnutella
•
•
•
•
•
File sharing distribuito peer-to-peer
Potenti funzionalità di ricerca
Livello di anonimato per gli utenti molto basso
Scalabilità limitata (ma non eccessivamente)
Client, server e rete sono la stessa parte
dell'applicazione
Pag. 6
Tecnologie e Applicazioni Peer-to-Peer
19
Gnutella
• Funzionamento
– l'utente si rivela ai nodi Gnutella nelle sue vicinanze, creando un
certo numero di collegamenti ed entrando nella rete
(eventualmente con file da condividere)
– l'utente che vuole cercare una risorsa chiede ai suoi vicini
– chi riceve una richiesta:
• verifica se possiede la risorsa in questione (nel qual caso comunica la
sua disponibilità al nodo richiedente)
• propaga comunque la richiesta a tutti i suoi vicini
– se la risorsa esiste nella rete, l'utente riceverà una serie di
risposte positive riportanti la sua locazione
– l'utente preleva la risorsa direttamente da una delle locazioni
disponibili
20
Gnutella
• I messaggi di un nodo Gnutella sono diffusi in broadcast
tra i nodi adiacenti tramite connessioni TCP
• I messaggi sono identificati da un UUID univoco di 128
bit per prevenire la ritrasmissione multipla del medesimo
messaggio da parte dei nodi e non contengono l'indirizzo
IP di generazione (anonimato nelle ricerche)
• La vita dei messaggi è controllata da un campo TTL
(time-to-live), tipicamente inizializzato a 7 hop e
decrementato ad ogni nodo attraversato fino a
raggiungere 0
21
Gnutella
• I messaggi di risposta non sono trasmessi in broadcast
ma sono instradati lungo il percorso a ritroso in base
all'UUID della richiesta
• Solo il primo nodo coinvolto nella richiesta conosce
l'indirizzo IP del nodo che l'ha generata, quindi l'uso
dell'UUID è l'unico modo per raggiungerlo
• In caso di traffico eccessivo, i nodi Gnutella scartano
semplicemente i messaggi
Pag. 7
Tecnologie e Applicazioni Peer-to-Peer
22
Gnutella
• Gnutella lascia la massima libertà ai nodi di decidere
come interpretare i messaggi di richiesta e che tipo di
risposta fornire
• In linea di principio Gnutella potrebbe costituire un
motore di ricerca distribuito
• Gnutella non cerca di garantire pienamente l'anonimato
dei partecipanti:
– le ricerche sono anonime (messaggi identificati dal solo UUID)
– il collegamento diretto tra peer non è anonimo, perché il nodo che
risponde deve rivelare la propria identità e lo stesso accade al
nodo richiedente quando crea il collegamento per il download
della risorsa
23
Gnutella
• Problemi
– Anonimato: la mancanza di anonimato si può prestare
ad abusi (Wall of Shame)
– Scalabilità: il broadcast dei messaggi scala male con
l'aumentare della connettività e alcune
implementazioni di Gnutella ne fanno abuso
– Host Cache e host catcher possono provocare
localizzazione del traffico e degrado delle prestazioni
per la scelta di vicini non adeguati
– Disparità di traffico e di prestazioni tra nodi ad alta
capacità e nodi con risorse più limitate
24
Gnutella: gli eredi
• Dal punto di vista del successo di pubblico e di
utilizzo, Gnutella può essere considerato un
sistema un po' vecchio
• Sono apparsi sulla scena già diversi eredi:
eDonkey, KaZaA, DirectConnect
• Sono tutti sistemi di file sharing con supporto
per l'identificazione delle risorse da
condividere, il download parallelo da diverse
sorgenti e il resume di download da precedenti
sessioni
Pag. 8
Tecnologie e Applicazioni Peer-to-Peer
25
Freenet
• File storing (e sharing) distribuito peer-to-peer
• Focalizzato a
– prevenire la censura dei documenti
– fornire anonimato agli utenti
– memorizzare e distribuire efficientemente i
documenti
– proteggere i gestori dei nodi da eventuali accuse sul
contenuto
• Buona scalabilità
• Funzionalità di ricerca carenti
26
Freenet
• L'utente che vuole cercare un documento effettua una
richiesta ad un nodo di fiducia (eventualmente il suo)
• Se il nodo non possiede il documento, la richiesta viene
rediretta ad un nodo adiacente che si ritiene possa avere
il documento
• La richiesta viene propagata finché il documento non
viene trovato oppure il TTL scade
• Il documento viene spedito al richiedente percorrendo a
ritroso la strada fatta dal messaggio di richiesta
• I nodi coinvolti nella richiesta memorizzano il documento,
così richieste future saranno soddisfatte prima e il
documento può risultare presente nella rete in più copie
27
Freenet
• Ogni richiesta possiede un ID unico che permette di
evitare loop
• Un documento può essere inserito nel sistema dopo aver
verificato che non esista già: l'inserimento avviene
trasmettendo il documento ai nodi che costituiscono il
percorso del messaggio di risposta
• Ogni nodo dedica pertanto parte del suo spazio a
mantenere non solo i propri documenti ma anche copie di
altri documenti contenuti nella rete
• Per garantire l'anonimato e per ridurre le possibilità di
censura i documenti sono criptati e ogni nodo non può
conoscere il contenuto dei documenti in suo possesso
Pag. 9
Tecnologie e Applicazioni Peer-to-Peer
28
Freenet
• La memorizzazione e la ricerca di documenti sono basate
sull'uso di chiavi
• Ogni nodo possiede uno stack che contiene i dati con
associati una chiave e l'indirizzo del nodo dal quale quei
dati sono stati ricevuti
• Solo i documenti cui si è fatto accesso più di recente
sono memorizzati nel nodo in cima allo stack: da un certo
livello in poi si memorizzano solo le chiavi e gli indirizzi
• Le chiavi sono l'elemento cardine per l'instradamento: se
la chiave del documento cercato non è tra quelle
conosciute, la richiesta viene spedita al nodo con la
chiave "più vicina" secondo una particolare metrica
29
Freenet
• Il risultato è una ricerca mirata del documento, con la
propagazione della richiesta nella direzione più probabile
di localizzazione
• Il fatto che la ricerca debba essere mirata al documento
impedisce però la flessibilità e la potenza di sistemi come
Gnutella
• Un altro problema di Freenet è legato al fatto che i
documenti sono gestiti tramite uno stack controllato
dalla frequenza di accesso: documenti poco richiesti
possono scomparire dalla rete se non reinseriti
30
Freenet: i cugini
• Esistono in fase di studio numerosi sistemi di file storing
che condividono con Freenet l'uso di chiavi e funzioni di
hashing per instradare le richieste: Chord, OceanStore,
Omaha
• Questi sistemi ottimizzano l'utilizzo delle chiavi per
garantire il recupero del documento se esiste nel sistema
(cosa che Freenet non è in grado di fare)
• Rinunciando ai vincoli stringenti di anonimato si prevede
di implementare file system totalmente distribuiti (che
andrebbero a costituire l'ossatura di un Internet-scale
Operating System)
Pag. 10
Tecnologie e Applicazioni Peer-to-Peer
31
File Storage
• Alcuni sistemi peer-to-peer sono specializzati nel fornire
file storage a lungo o medio termine in grado di garantire
l'anonimato e di proteggere i documenti dalla censura
(Publius, Free Haven)
• L'integrità dei documenti nello scenario dinamico tipico
del peer-to-peer viene ottenuta l'applicazione di funzioni
di sharing: l'informazione viene divisa in n parti
codificate in maniera tale che ne sono sufficienti k
qualsiasi per poter ricostruire i dati originari
• All'uso delle funzioni di sharing vengono naturalmente
abbinate funzioni di hashing (MD5, SHA-1) e di cifratura
per garantire l'integrità e la segretezza dei dati
32
Web Services: XML e P2P
• L'approccio peer-to-peer risulta efficace non solo nelle
comunicazioni tra persone, ma anche nella comunicazione
tra applicazioni, realizzato sul bordo della rete (sulla
rete di overlay) così come esiste all'interno
• Esistono diverse direzioni di studio:
– Semantic Web: l'utilizzo di XML ed RDF e la definizione di
ontologie (relazioni tassonomiche tra le informazioni) sono
integrati tramite l'uso di agenti che non solo sono in grado di
cercare e costruire nuove informazioni, ma anche di farle
condividere con altri utenti
– Web Services: sono definiti protocolli XML di comunicazione tra
applicazioni che, appoggiandosi su HTTP, mettono in relazione i
peer per permettere scambio di dati tra le applicazioni (Simple
Object Access Protocol -SOAP- e tecnologie correlate)
33
Indici di prestazione
• Nella realizzazione e implementazione di una rete di
overlay a livello applicazione occorre prestare notevole
attenzione ai requisiti di efficienza e di funzionalità
• Due indici di particolare interesse sono la scalabilità e la
resistenza ai guasti
• La scalabilità può essere espressa dal numero medio di
nodi contattati in ogni ricerca: la situazione ottimale è
quella di un grafo connesso in maniera totalmente
casuale, nel quale tale numero è O(logk N)
• La resistenza ai guasti indica invece la capacità della rete
a funzionare in maniera adeguata anche se gran parte dei
nodi scompare
Pag. 11
Tecnologie e Applicazioni Peer-to-Peer
34
Scalabilità
• Il grafo costituito dai nodi di una rete P2P è in generale
abbastanza casuale da avere la distanza media tra due
nodi di tipo logaritmico, pur mantenendo un elevato grado
di aggregazione (per cui esistono gruppi di nodi molto
connessi tra loro)
• In Freenet la ricerca di tipo lineare lungo il percorso
stabilito dalle chiavi rende il numero medio di nodi
attraversati per la ricerca equivalente alla distanza
media tra i nodi e quindi logaritmico
• In Gnutella la ricerca è condotta in broadcast lungo tutti
i collegamenti disponibili e senza fermarsi quando la
risorsa è stata trovata, portando ad una dipendenza
lineare dal numero dei nodi
35
Metadata
• Essendo la ricerca una delle funzioni chiave dei
sistemi di file sharing P2P, i metadata possono
fornire un notevole aiuto nell'identificazione
delle risorse
• RDF (Resource Description Framework) e Dublin
Core sono i due sistemi di riferimento per i
metadata: entrambi usano XML e i loro
namespace sono ben noti
• L'uso di metadata può risultare problematico in
sistemi di storing che cercano di garantire
l'anonimato, come in Freenet
36
Requisiti sociali
• Sono diversi i requisiti 'sociali' necessari perché
un sistema P2P sia efficiente e bilanciato
• Tre requisiti fondamentali:
– Fiducia (Trust)
– Responsabilità (Accountability)
– Reputazione (Reputation)
• Se non è in grado di garantire o richiedere
questi requisiti il sistema rischia di degenerare,
diventando preda dell'egoismo degli utenti
Pag. 12
Tecnologie e Applicazioni Peer-to-Peer
37
Fiducia
• Un requisito fondamentale nella comunicazione in
Internet e ancor più in un sistema P2P è la fiducia
• Spesso nelle comunicazioni tradizionali si crea una
struttura di fiducia per cui siamo relativamente sicuri
che le persone coinvolte non agiscano contro il nostro
interesse (ad esempio un e-commerciante non usi la mia
carta di credito per altri scopi o venda i miei dati
personali a qualcuno)
• Questa fiducia è ottenuta spesso tramite la garanzia di
terze persone di cui possiamo pensare di fidarci: ad
esempio, nell'e-commerce pensiamo di essere sicuri che
un sito sia proprio quello che dice tramite la sua
certificazione
38
Fiducia
• La fiducia è spesso rafforzata dalla reputazione della
controparte, la quale ha interesse a non tradire la nostra
fiducia per non vedere degradata la sua reputazione,
soprattutto se esiste un sistema di attribuzione della
responsabilità
• Come autore posso rafforzare la fiducia in me (aumentando
la mia reputazione) firmando sempre digitalmente i miei
documenti e garantendone l'integrità: ho naturalmente
bisogno di qualcuno che garantisca la mia identità
• Come utente o nodo della rete, posso ridurre i rischi di una
fiducia mal riposta usando canali di comunicazione criptati
e richiedendo l'uso di meccanismi di 'accountability'
39
Accountability
• Può essere tradotto in termini approssimativi
"responsabilità"
• Rappresenta la capacità di rendere conto delle proprie
azioni nel sistema, in maniera tale che queste possano
essere considerate adeguate alle risorse richieste
• Ad esempio, in un sistema di file sharing o distributed
computing, si può richiedere che le risorse 'costino'
qualcosa, per cui chi non contribuisce significativamente
non è in grado di sfruttare il sistema
• Vogliamo evitare i "portoghesi" (free riders), o quanto
meno far pagar loro il biglietto se non contribuiscono
Pag. 13
Tecnologie e Applicazioni Peer-to-Peer
40
Micropagamenti
• Un metodo tradizionale di accountability in una
situazione di anonimato è legato alla richiesta di
micropagamenti
• Due tipi di moneta:
– risorse non riutilizzabili (Proof of Work)
– risorse riutilizzabili (digital cash)
• Chi richiede una risorsa deve essere disposto a
'spendere qualcosa' o in termini di CPU (risolvendo
qualche operazione complicata) o in termini di una risorsa
quantificabile (spazio su disco, digital cash)
• Questo può servire a proteggere da free-raider,
spammer o attacchi di tipo Denial-of-Service
41
Reputazione
• Quando gli utenti non sono completamente anonimi,
l'attribuzione di responsabilità non può venire
completamente separata da un sistema di reputazione
che possa rispecchiare le caratteristiche e il
comportamento dell'utente (anche se questo si nasconde
dietro uno pseudonimo)
• Questo è particolarmente vero per scambi tra i sistemi:
se un peer 'paga' per una risorsa che gli deve essere
passata (ad esempio lo share di un file in un sistema di
storing), vuole potersi lamentare se il contratto non è
stato rispettato, degradando la reputazione del colpevole
ed eventualmente spingendo gli altri a non fidarsi più di
lui
42
Reputazione
• Una modalità tipica di gestione della reputazione è
attraverso un sistema di valutazione (scoring) che possa
tener traccia delle prestazioni della persona
• Il sistema di punteggio ottimale deve:
–
–
–
–
–
–
–
indicare l'accuratezza (confidenza) del punteggio
essere polarizzato sul comportamento recente
efficiente
robusto nei riguardi di possibili attacchi
garantire la riservatezza del voto
comprensibile
verificabile
• Occorre scegliere l'adeguato trade-off tra questi
requisiti apparentemente contrastanti
Pag. 14