la teoria dei sistemi complessi per modelLare reti p2p

P2p
la teoria dei sistemi complessi per
modelLare reti p2p
1
Peer to Peer
Per P2P si intende:
un sistema decentralizzato
un sistema auto-organizzato
un sistema nel quale i nodi mantengono
indipendenza e autonomia
Spesso però la cosa si riduce al fatto che i nodi
possono avere sia funzione di client che di server
Reti P2P Tradizionali
Napster
BOOT: autenticandosi a un server
centralizzato
LOOKUP: inviando una query al server
centralizzato che mantiene un indice dei
nodi connessi e delle loro risorse
SCAMBIO RISORSE: aprendo una
connessione nodo a nodo
Reti P2P Tradizionali
Gnutella
BOOT: autenticandosi a un server
centralizzato, o pingando la rete
LOOKUP: attraverso un processo di flooding
limitato da un TTL
SCAMBIO RISORSE: aprendo una
connessione nodo a nodo
Gnutella
Problemi
Napster
single point of failure
colli di bottiglia
responsabilità legale centrelizzata
Gnutella
scarsa scalabilità
alta probabilità di avere query non risposte
DHT
Chord
BOOT: si ottiene un collocazione all’interno di
uno spazio continuo e si acquisiscono le risorse
attigue a quello spazio
LOOKUP: con una tabella che conosce un
numero logaritmico di nodi si effettuano query
in tempo logaritmico
SCAMBIO DATI: aprendo una connessione nodo
a nodo
DHT
Decentralizzazione: non esistono superpeer;
Raggiungibilità: le risorse devono essere
disponibili anche se il sistema è in un continuo
stato di evoluzione;
Scalabilità: le operazioni fondamentali (lookup)
devo crescere di complessità in modo contenuto al
crescere delle dimensioni della rete;
Carico Bilanciato: il carico di lavoro (la quantità di
risorse mantenute, il numero di query processate)
dai nodi deve essere bilanciato.
DHT
A ogni file e ad ogni nodo è associata una chiave:
la chiave viene 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
L’unica operazione che un sistema DHT deve
fornire è lookup(key), la quale restituisce l’identità
del responsabile di una determinata chiave
DHT
Le chiavi sono mappati su un array circolare
costituito da 2m identificatori
Il nodo responsabile di una determinata chiave k
è il primo nodo che la succede in senso orario
sucessor(k)
DHT
DHT
Per ottenere un lookup più scalabile bisogna
aggiungere informazione;
Ogni posizione i dell’indice contiene il nodo
successore delle chiavi n + 2 i-1
Se richiesta una chiave k si inoltrerà al più alto
predecessore
I nodi hanno una conoscenza parziale e
distribuita della rete
DHT
DHT
Scalabilità
Messaggi necessari per
trovare una chiave! Anello!
•! La scalabilità di un protocollo Chord
è direttamente
legata
e
all’efficienza dell’algoritmo
usatoaltri
per! il routing
(lookup);!
n -1!
Grafo
" ! In questo senso, sostanzialmente gli obiettivi
sono due:!
Totalmente
O(log n)!!
connesso!
!! Minimizzare il numero di messaggi necessari per fare
1!
lookup;!
1! O(log n)!! n -1!
!! Minimizzare, per ogni nodo, le informazioni relative
n è il agli
numero
dei
altri nodi;!
Dimensione tabella di
peer;!
! nel routing;!
•! I vari DHT conosciuti differiscono routing
proprio
Problemi
Per quanto si risolvano i problemi di
scalabilità, di raggiungibilità, e di
bilanciamento del carico c’è ancora qualche
cosa che non segue la filosofia P2P
Infatti i nodi non hanno autonomia: vengono
assegnate d’autorità le risorse (privacy overhead per gestire lo scambio)
Nuove direzioni
L’idea di base è di riconoscere che le reti
P2P sono organizzate come reti sociali e
sistemi complessi
Studiare i loro protocolli in modo da
sfruttare le leggi statistiche che li regolano
Perclation Theroy
Una teoria che aiuta
nel definire il punto
critico di un sistema
Un grafo con nodi
(sites) e archi diretti
(bonds)
Perclation Theroy
Chiamata p la
probabilità di aprire
un bond, e 1-p di non
aprire
Si osserva che
all’aumentare di p
aumenta il numero di
cluster (site connessi)
nel grafo
Perclation Theroy
Chiamata p la
probabilità di aprire
un bond, e 1-p di non
aprire
Si osserva che
all’aumentare di p
aumenta il numero di
cluster (site connessi)
nel grafo
Perclation Theroy
Chiamata p la
probabilità di aprire
un bond, e 1-p di non
aprire
Sopra un certa soglia
critica si osserva il
formarsi di giant
cluster
Flooding Probabilistico
Nel caso delle reti p2p
qual è la soglia critica
In con quale p la
probabilità che se i e
connesso a j è
connesso anche ad
almeno un altro nodo
Flooding Probabilistico
Nel protocollo Gnutella
se un nodo invia una
query questa è
inoltrata a tutti i
vicini, ad ogni passo il
TTL è decrementato
fino a che raggiunge lo
zero
Flooding Probabilistico
Nel protocollo Gnutella
se un nodo invia una
query questa è
inoltrata a tutti i
vicini, ad ogni passo il
TTL è decrementato
fino a che raggiunge lo
zero
Flooding Probabilistico
Nel protocollo Gnutella
se un nodo invia una
query questa è
inoltrata a tutti i
vicini, ad ogni passo il
TTL è decrementato
fino a che raggiunge lo
zero
Flooding Probabilistico
Nel protocollo Gnutella
p=1
Diminuendo p alcuni
percorsi vengono
eliminati
Flooding Probabilistico
Nel protocollo Gnutella
p=1
Diminuendo p alcuni
percorsi vengono
eliminati
A ogni passo p può
essere decrementato
fino a raggiungere 0
Flooding Probabilistico
Considerando che le reti P2P seguono una legge di
potenza: ci sono pochi nodi molto connessi e molti
nodi poco connessi
Si è calcolato che il punto critico si può ottenere con
p = 0,01
Ovviamente in condizioni diverse di rete (esempio
reti formatesi da poco) la legge di potenza non
varrebbe
Piccolo Mondo
I. Si crea un mapping tra
nodi e chiavi
II. Si organizzano le chiavi in
uno spazio continuo
costruito in base alla loro
distanza
III.Si costruisce una rete
collegando i nodi che
hanno chiavi collegate
Piccolo Mondo
Piccolo Mondo
In questo modo ogni nodo è responsabile solo delle sue
risorse
Deve mantenere un indice solo dei suoi vicini (chiavi
possedute e indirizzo IP)
Il sistema di lookup funziona se esiste una funzione di
similarità tra chiavi. Le query sono inoltrate al vicino
che possiede un contenuto più simile
Piccolo Mondo
Piccolo Mondo