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