Peer To Peer (o quasi) P2P (o quasi): Gennaro Cordasco

  • Published on
    01-May-2015

  • View
    212

  • Download
    0

Embed Size (px)

Transcript

<ul><li> Slide 1 </li> <li> Peer To Peer (o quasi) P2P (o quasi): Gennaro Cordasco </li> <li> Slide 2 </li> <li> Cosa vuol dire Peer to Peer (P2P)? 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 per risorse e servizi intendiamo: scambio di informazioni, cicli di CPU, spazio sul disco ); 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; Per migliorare la scalabilit sono nati i cosiddetti protocolli P2P di seconda generazione che supportano DHT (Distributed Hash Table); P2P (o quasi) </li> <li> Slide 3 </li> <li> DHT Routing La scalabilit di un protocollo direttamente legata allefficienza dellalgoritmo usato per il routing; In questo senso sostanzialmente gli obiettivi sono due: Minimizzare il numero di messaggi necessari per fare lookup; Minimizzare, per ogni nodo, le informazioni relative agli altri nodi; I vari DHT conosciuti differiscono proprio nel routing; </li> <li> Slide 4 </li> <li> P2P (o quasi) DHT Routing: Lookup Trovare lindirizzo IP del nodo responsabile di una determinata chiave; Obiettivi: Minimizzare la dimensione dello spazio richiesto ai nodi per memorizzare le tabelle di routing; Minimizzare il numero di hop necessari per il Lookup; Fornire un servizio fidato anche con Peer inaffidabili; Resistere ad attachi di tipo Denial of Service; </li> <li> Slide 5 </li> <li> P2P (o quasi) DHT: Routing(Sommario) Esistono un bel po di soluzioni; (Ce ne sono altre!!!) Le prestazioni sono pi o meno uguali (in teoria); La domanda da porsi per Il gioco vale la candela ; Ip address </li> <li> Slide 6 </li> <li> P2P (o quasi) Hybrid Centralized index, P2P file storage and transfer Super-peer A pure network of hybrid clusters Pure functionality completely distributed P2P(quasi): Classificazione </li> <li> Slide 7 </li> <li> P2P (o quasi): errata corrige Viceroy Network vs Butterfly In una Viceroy Network a r dimensioni due nodi u= e v= sono connessi se: w = w; (archi diretti non mostrati); w = (w+2 r-i )mod 2 r. In una butterfly a r dimensioni due nodi u= e v= sono connessi se: w = w; (archi diretti non mostrati); w e w differiscono esattamente nelli-esimo bit. </li> <li> Slide 8 </li> <li> Gennaro Cordasco P2P: unapplicazione </li> <li> Slide 9 </li> <li> Tanto per intenderci(1) P2P: unapplicazione Le applicazioni P2P sono costituite da tre fasi principali: boot; (nessuno o quasi fa boot P2P) lookup; (pochi sono P2P, alcuni usano SuperPeer) scambio di file; (sono tutti P2P) </li> <li> Slide 10 </li> <li> P2P: unapplicazione Parleremo di applicazioni: P2P pure se: le fasi di boot, lookup e scambio di file sono P2P;(forse Overnet?) P2P se: le fasi di lookup e scambio di file sono P2P; la fase di boot utilizza qualche SERVER; (Gnutella, Freenet) P2P Ibride se: la fase di scambio dei file P2P; la fase di boot utilizza qualche SERVER; nella fase di lookup vengono usati Peer particolari: Hub (Direct Connect) SuperPeer, Ultra Peer(Gnutella2) Supernodo (KaZaA) NodoRandezVous (JXTA) MainPeer (EDonkey) Server (WinMX) Tanto per intenderci(2) </li> <li> Slide 11 </li> <li> P2P: unapplicazione Gnutella: un po di informazioni; Gnutella: vantaggi e svantaggi; Gnutella2; Overnet !!!P2P PURO!!! Sommario </li> <li> Slide 12 </li> <li> P2P: unapplicazione 14 / 03 / 2003 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; Gnutella(1) </li> <li> Slide 13 </li> <li> P2P: unapplicazione Gnutella un protocollo P2P; 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: Single point of failure; Gnutella non P2P Puro!!!; La Ricerca di un file usa il flooding (non scalabile): controllo dei cicli; TTL per evitare di congestionare la rete; Gnutella </li> <li> Slide 14 </li> <li> P2P: unapplicazione PING Notifica a un Peer la propria esistenza; PONG Reply to a PING (contiene alcune informazioni sulla rete); QUERY Cerca un file nella rete (Sulla base di una determinata chiave); RESPONSE(QUERY HIT) Risposta a una query (contiene la locazione del file); GET Permette di richiedere un file; PUSHREQUEST Permette di scavalcare i firewall; Il protocollo Gnutella (v0.4) Boot Lookup Scambio </li> <li> Slide 15 </li> <li> P2P: unapplicazione Gnutella Search Example C A BD E As query (e.g., X) Cs query hit Es query hit X X GET X.mp3 X </li> <li> Slide 16 </li> <li> P2P: unapplicazione Gnutella: Flooding </li> <li> Slide 17 </li> <li> New Protocol; A new data trasport architecture; New base services, including search: Gnutella Addressing System (GAS); An implementation standard; P2P: unapplicazione Gnutella2: Concetti </li> <li> Slide 18 </li> <li> Lobbiettivo della lookup in Gnutella trovare tutti i peer che dispongono di un determinato oggetto (non ci sono limitazioni sul tempo); Lobbiettivo della lookup in Gnutella2 trovare, nel minor tempo possibile, almeno un peer (se c) che dispone di un determinato oggetto; una volta trovata unistanza delloggetto desiderato possibile scegliere se fermarsi o continuare la ricerca; Labilit di trovare almeno unistanza di un oggetto molto importante, altrimenti non sono possibili altre azioni; Bisogna trovare un modo per tenere sotto controllo la ricerca; P2P: unapplicazione Gnutella2: meglio un uovo oggi. </li> <li> Slide 19 </li> <li> Esistono tre approcci per controllare la ricerca; Random walker approach;(il nodo che origina la query ne controlla lesecuzione e in ogni istante pu decidere se continuare o abortire la ricerca). Random or crawling mesh approach;(il nodo che origina la query iterativamente contatta alcuni nodi della rete, finch non si verifica una determinata condizione). Guided mesh approach;(DHT) P2P: unapplicazione Gnutella2: Ricerca(1) Gnutella2 Future </li> <li> Slide 20 </li> <li> Su una rete pubblica di grandi dimensioni non possibile effettuare direttamente la ricerca di un oggetto: ci sono troppi nodi da contattare; il costo per mettersi in contatto con un nodo troppo alto paragonato alla probabilit di successo su quel nodo; la maggior parte dei nodi non dispongono di risorse sufficienti per far fronte a un numero notevole query; non tutti i nodi si possono contattare direttamente (es. firewall); P2P: unapplicazione Gnutella2: Ricerca(2) </li> <li> Slide 21 </li> <li> Soluzione? P2P Ibrido: Gnutella2 organizza i nodi in un sistema gerarchico a due livelli dove i nodi ad alta capacit chiamati Hub rispondono alle query per le proprie foglie; La restizione della rete agli Hub P2P; Hub vantaggi: Viene ridotto il numero totale dei nodi da contattare; Un Hub contiene informazioni relative a tanti oggetti, quindi maggiore la probabilit che una query trovi unistanza di un oggetto; E possibile avere informazioni su nodi down; P2P: unapplicazione Gnutella2: Ricerca(3) Nodo Hub </li> <li> Slide 22 </li> <li> P2P: unapplicazione Gnutella2: Ricerca(4) Per evitare che questo sistema degeneri in un sistema centralizzato viene limitato il numero di leaves per ogni hub;(circa 150) La comunicazione fra leaves e hub diretta; Problema Inter-Hub Communication; </li> <li> Slide 23 </li> <li> Ogni hub conosce solo i propri vicini; Quando un hub riceve una query dal nodo di origine, oltre a elaborarla, la inoltra ai propri vicini che non la inoltrano ulteriormente; (in pratica TTL = 2) Ad esempio se la ricerca viene inviata ad un hub che ha 5 vicini in un solo passo (con una query) vengono analizzate le foglie relative a 6 hub; Linsieme dei nodi raggiunto in un passo viene chiamato cluster; Nodo Hub P2P: unapplicazione Gnutella2: Inter-Hub Communication(1) </li> <li> Slide 24 </li> <li> Quando un nodo richiede la ricerca di un oggetto al proprio hub: Viene ricercato lelemento nel proprio cluster; Viene ricercato lelemento nei cluster vicini(a distanza 1) pi qualche cluster lontano scelto a caso; Viene ricercato lelemento nei cluster vicini dei vicini (a distanza 2) pi qualche cluster lontano scelto a caso; Nodo Hub P2P: unapplicazione Gnutella2: Inter-Hub Communication(2) </li> <li> Slide 25 </li> <li> Non possibile per ogni hub mantenere la lista di tutti gli hub; (Non scalabile); La lista dei cluster a distanza i+1 ottenuta in risposta alla ricerca effettuata sui cluster a distanza i; Le risposte contengono inoltre altre informazioni utili per le statistiche (es. numero di nodi presenti nel cluster); P2P: unapplicazione Nodo Hub Gnutella2: Inter-Hub Communication(3) </li> <li> Slide 26 </li> <li> P2P: unapplicazione Ogni hub mantiene la lista degli hub vicini (direttamente connessi) pi una cache di hub lontani aggiornata di tanto in tanto; Viene mantenuta una done list; Le ricerche allinterno del cluster sono fatte usando TCP; Le ricerche fra cluster sono fatte usando UDP; TCP SEARCH UDP SEARCH Nodo Hub Gnutella2: Inter-Hub Communication(4) </li> <li> Slide 27 </li> <li> P2P: unapplicazione Gnutella2: Inter-Hub Communication(Esempio) cluster try list </li> <li> Slide 28 </li> <li> P2P: unapplicazione Ogni hub deve mantenere quindi: la lista dei propri vicini; una lista di hub lontani(da aggiornare di tanto in tanto); una done list (i nodi a cui abbiamo inviato una query pi i loro vicini); una try list; (i vicini dei vicini dei nodi a cui abbiamo inviato una query); Nodo Hub Gnutella2: Inter-Hub Communication(5) per ogni query </li> <li> Slide 29 </li> <li> Slide 30 </li> <li> Gnutella2: Boot Come fa un nuovo nodo a connettersi alla rete? E necessario conoscere almeno un host attivo; Chi mantiene la lista degli host attivi? un Server; (Gnutella) tanti Server; (Gnutella2) Idee!!! </li> <li> Slide 31 </li> <li> Overnet Sistema P2P per il file sharing sviluppato dalla MetaMachine; Non ci sono server; (P2P puro) Usano DHT(Distribuited Hash Table) con ID a 128 bit; Purtroppo non Open Source; </li> <li> Slide 32 </li> <li> Overnet:boot Ogni nodo mantiene una cache dei nodi connessi alla rete; Durante la fase di boot il nodo tenta di connettersi ai nodi presenti nella cache; Se questa fase non ha successo viene richiesto lindirizzo di un nodo on-line;(A regime non capita praticamente mai) In ogni caso stato creato un canale IRC per mantenere queste informazioni; </li> <li> Slide 33 </li> <li> Slide 34 </li> <li> Risorse www.gnutella.com www.gnutella2.com www.shareaza.com www.overnet.com www.openp2p.com </li> </ul>

Recommended

View more >