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 Messaggi necessari per trovare una chiave! Scalabilità Anello!! La scalabilità di un protocollo Chord è direttamente e legata all efficienza dell algoritmo n -1! usato altri! per il routing Grafo (lookup);! "! In questo senso, sostanzialmente gli obiettivi Totalmente sono due:! O(log n)! connesso!!! Minimizzare il numero 1! di messaggi necessari per fare lookup;! 1! O(log n)! n -1!!! Minimizzare, per ogni nodo, le informazioni relative n è il agli numero altri nodi;! dei peer;! Dimensione tabella di! I vari DHT conosciuti differiscono routing! proprio nel routing;!
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