? Peer To Peer (P2P) Kademlia pastry can jxta napster fiorana

Slides:



Advertisements
Presentazioni simili
Indirizzamento LAN e ARP
Advertisements

I bridge Standard IEEE 802.1D.
Strutture dati per insiemi disgiunti
di Architetture Peer to Peer per la Gestione di Database Distribuiti
DNS: Il Servizio Directory di Internet
4-1 Mobilità in Internet Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights.
Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Alberi binari di ricerca
Middleware per MANET WP3 Alessandro Ghioni
1: Introduction1 Condivisione file P2P r Allinizio del 2004 P2P era responsabile di un volume di traffico maggiore a qualunque altra applicazione Internet.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Peer To Peer (o quasi) Gennaro Cordasco.
Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco Gennaro Cordasco
Lezione 5. Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi Abbiamo detto abbastanza KoordeNeighbor of Neighbor routing (NON)
Ancora esercizi!!! Chernoff Bound allora
Sistemi P2P avanzati Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco – –
Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi Abbiamo detto abbastanza KoordeNeighbor of Neighbor routing (NON)
Autori: I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT and Berkeley Chord: A Scalable Peer-to-peer Lookup Service for Internet.
Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)
Sistemi P2P avanzati Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco – –
Lezione 5 Domande: Laverage path length di Chord con 2^b identificatori e N=2^b nodi è (giustificare la risposta) Laverage path length di Chord con 2^b.
Domande Consideriamo un grafo di de bruijn con base k, ed N = k^b nodi, quale delle seguenti affermazioni è vera (giustificare la risposta) Il grado di.
LA RETE GNUTELLA e il P2P (Prima parte)
Routing Gerarchico Gli algoritmi proposti non sono pratici:
Concetti introduttivi
Reti di Calcolatori IL LIVELLO RETE.
P2P (o quasi): Peer To Peer (o quasi) Gennaro Cordasco.
Sistemi P2P avanzati Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco – –
Sistemi P2P avanzati Lezione 3 Chord seconda parte.
Sistemi P2P Facciamo un piccolo test Quanti successori ha un nodo nel protocollo Chord? (m) (1) (log N) (nessun prec.) Aumentando il numero di identificatori.
Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)
Sistemi P2P Facciamo un piccolo test Quanti successori ha un nodo nel protocollo Chord? (m) (1) (log N) (nessun prec.) Aumentando il numero di identificatori.
JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.
Sistemi Peer To Peer (P2P)
ADSL VOIP Voice Over IP.
Presentazione del progetto di: Reti di calcolatori L-S Matteo Corbelli.
Reti L-S 2005 Servizio per la ricerca distribuita basato sul protocollo Rossi Daniele
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Corso di Informatica per Giurisprudenza Lezione 7
UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA STUDIO, SIMULAZIONE E VALUTAZIONE DI UN ALGORITMO V2V PER LO.
Elementi di Informatica di base
Strutture dati per insiemi disgiunti
COMUNICAZIONE ONLINE, RETI E VIRTUALITA MATTEO CRISTANI.
Reti Insieme di computer e di altri dispositivi che comunicano tra loro per condividere i dati, le applicazioni e lhardware Modulo 1.
COMUNICAZIONE ONLINE, RETI E VIRTUALITA MATTEO CRISTANI.
Modulo 2 - U.D. 3 - L.4 Ernesto Damiani - Sistemi di eleborazione dell'informazione.
Modulo n – U.D. n – Lez. n Nome Cognome – titolo corso.
Reti di calcolatori 14 novembre 2003 INFORMATICA GENERALE Scienze per Operatori dei Servizi Giuridici Anno Accademico
Informatica Lezione 9 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
FairPeers Progettazione ed implementazione di un servizio di file management tramite Pastry.
L’architettura a strati
Dischi in RAID  Redundant Array of Independent Disk Configurazione che permette di combinare più dischi secondo obiettivi di performance e ridondanza.
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Tipi e topologie di LAN Lezione 2.
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
Reti di computer Condivisione di risorse e
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 4 -Gestione degli indirizzi Ernesto Damiani Lezione 1 – Assegnazione.
Infrastruttura per la gestione distribuita di un sistema di prenotazione Progetto di: Fabio Fabbri Matricola
Overlay network strutturate per applicazioni peer to peer Lorenzo Castelli.
Servizi Internet Claudia Raibulet
Prof. ing. Paolo Bidello AA 2005/2006 Laboratorio Informatico Promemoria degli argomenti: Reti locali (LAN)
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 2 -Telnet, FTP e altri Ernesto Damiani Lezione 4 – Napster e.
Ernesto Damiani Lezione 5 – Gnutella Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 2 - Telnet, FTP e altri.
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Raccogliere informazioni ALCUNE DOMANDE FONDAMENTALI È stato modificato qualche componente HW o SW? Il sintomo si presenta regolarmente o ad intermittenza?
Algoritmi di routing statici (pag.72) UdA2L4 Questi algoritmi, sono eseguiti solamente all'avvio della rete, e le decisioni di routing a cui essi pervengono.
Transcript della presentazione:

? Peer To Peer (P2P) Kademlia pastry can jxta napster fiorana united devices freenet ? Koorde aim open cola Kelips ocean store netmeeting farsite gnutella icq morpheus ebay Viceroy limewire bearshare seti@home uddi grove jabber popular power kazaa folding@home tapestry process tree mojo nation chord Gennaro Cordasco

Sommario Introduzione Classificazione Storia ed Esempi Concetto di Scalabilità Distributed Hash Table (DHT) Chord

Sommario(2) Open Questions Applicazioni Capacità di far fronte ai fallimenti Routing Hot Spots Incorporating Geography Extreme Heterogeneity Sicurezza Applicazioni WinMx Kazaa Overnet Freenet

nessuno è indispensabile Cosa vuol dire Peer to Peer (P2P)? Tutti sono utili ma... nessuno è indispensabile 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 …); I sistemi P2P possiedono molti aspetti tecnici interessanti: controllo decentralizzato; adattabilità; si organizzano e si gestiscono da soli;

DHT Utilità P2P is as P2P does :-) File sharing system; File storage system; Distributed file system; Redundant storage; Availability; Performance; Permanence; Anonymity; Chat service; P2P is as P2P does :-)

P2P: Classificazione Le applicazioni P2P sono costituite da tre fasi principali: Boot: permette a un peer di trovare la rete e di connettersi ad essa; (nessuno o quasi fa boot P2P) Lookup: permette ad un peer di trovare il gestore/responsabile di una determinata informazione; (pochi sono P2P, alcuni usano SuperPeer) Scambio di file; (sono tutti P2P)

P2P: Classificazione(2) Parleremo di applicazioni: P2P pure se: le fasi di boot, lookup e scambio di file sono P2P; P2P se: le fasi di lookup e scambio di file sono P2P; la fase di boot utilizza qualche SERVER; P2P Ibride se: la fase di scambio dei file è P2P; nella fase di lookup vengono usati Peer particolari: Hub (Direct Connect) SuperPeer , Ultra Peer(Gnutella2) Supernodo (KaZaA) NodoRandezVous (JXTA) MainPeer (EDonkey) Server (WinMX)

P2P: Classificazione(2) Consideriamo solo l’operazione lookup: Lookup Centralizzato Indice centralizzato; Lookup Decentralizzato Indice completamente distribuito; Lookup Ibrido Più sistemi centralizzati collegati in un sistema decentralizzato; In tutti e tre questi sistemi il trasferimento e la memorizzazione dei file è P2P;

E' un sistema P2P con lookup centralizzata Un po’ di storia Proposti già da oltre 30 anni; Sviluppati nell’ultimo decennio; L’interesse verso questo tipo di protocolli è aumentato con la nascita dei primi sistemi per file-sharing (Napster (1999), Gnutella(2000)); Nel 2000, 50 milioni di utenti hanno scaricato il client di Napster; Napster ha avuto un picco di traffico di circa 7 TB in un giorno; E' un sistema P2P con lookup centralizzata

Un po’ di storia(2) L’eredità di Napster è stata raccolta da Gnutella; Il 14 / 03 / 2000 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; …

E' un sistema P2P con lookup decentralizzata Un po’ di storia(2) GET X.mp3 X X 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; C A E' un sistema P2P con lookup decentralizzata B D E A’s query (e.g., X) C’s query hit E’s query hit X

Gnutella: Flooding Non è scalabile

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; I protocolli usati da Napster e Gnutella non sono scalabili; Per migliorare la scalabilità sono nati i cosiddetti protocolli P2P di seconda generazione che supportano DHT (Distributed Hash Table); Alcuni esempi di questi protocolli sono: Tapestry, Chord, Can, Viceroy, Koorde, kademlia,kelips …;

Scalabilità(2) Messaggi necessari per trovare una chiave Anello La scalabilità di un protocollo è direttamente legata all’efficienza dell’algoritmo usato per il routing (lookup); 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; Chord e altri n -1 Grafo Totalmente connesso O(log n) 1 1 O(log n) n -1 Dimensione tabella di routing n è il numero dei peer;

P2P di seconda generazione e DHT A ogni file e ad ogni nodo è associata una chiave; La chiave viene di solito 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. IP Address

Conoscono la struttura della tabella; P2P di seconda generazione e DHT Tutti i nodi del sistema condividono una tabella hash; Conoscono la struttura della tabella; Ma non conoscono il responsabile di una determinata entry; Id = 5, Nodo? ID 1 2 3 4 5 6 … 2m Nodo x Nodo y Nodo z …

DHT: Chord Le chiavi sono mappati su un array circolare costituito da 2m identificatori; Il nodo responsabile di una determinata chiave è il primo nodo che la succede in senso orario; Ogni nodo x di Chord mantiene due insiemi di vicini: Il primo contiene gli m successori del nodo x più il predecessore. Questo insieme viene usato per dimostrare la correttezza del Routing; Un insieme m nodi costituito dai responsabili delle chiavi distanziate esponenzialmente dal nodo x, vale a dire l’insieme delle chiavi che si trovano a distanza 2i da x dove 0  i  m-1. Questo insieme viene usato per dimostrare l’efficienza del Routing; m=3

DHT: Chord(2) m=6 Successors Predecessor Nodo 1 indice Nodo 1 14 2 21 32 5 38 6 42 3 24 ID Resp. 8+1=9 14 8+2=11 8+8=16 21 8+16=24 24 8+32=40 42 8+4=12 Predecessor Nodo 1 m=6

DHT: Chord(3) Le informazioni che il nodo deve mantenere sugli altri nodi sono m + m + 1 = 2m +1 (O(log N) WHP); Il numero di messaggi necessari per fare lookup è m (O(log N) WHP); L’algoritmo di routing effettua a ogni step il passo più grande che riesce a fare; 000 110 111 001 110 010 Il costo che si paga quando un nodo lascia o si connette alla rete è di O(log2N) messaggi WHP; L’algoritmo in pratica simula un Ipercubo, inoltre si comporta molto bene in un sistema dinamico. 101 011 100

DHT: Capacità di far fronte ai fallimenti Cosa succede se un nodo cade? I dati presenti nel nodo possono essere recuperati solo se ci sono duplicati. Il routing continua a funzionare? Con quale efficienza? Quanto costa una procedura per ripristinare tutti i link? Chi chiama questa procedura? (vale a dire chi si accorge che un nodo non è attivo).

DHT: Routing Hot Spots Se una chiave è richiesta più spesso, il responsabile della chiave e anche i suoi vicini potrebbero sovraccaricarsi; Per ovviare al problema si possono usare meccanismi di caching e di duplicazione; Diverso è il problema relativo ai nodi che si sovraccaricano per il traffico generato dalle lookup; Questo tipo di traffico è abbastanza difficile da individuare e da gestire;

DHT: Incorporating Geography Finora abbiamo misurato le prestazioni del routing contando il numero di hop necessari a individuare il responsabile di una chiave; Sarebbe utile, inoltre, minimizzare la latenza del singolo hop; s t s t

DHT: Incorporating Geography(2) Alcune tecniche: Geographic Layout: Usare un algoritmo per attribuire le chiavi ai nodi in modo che nodi “fisicamente” vicini abbiano identificatori simili. (Controindicazioni: Bilanciamento del carico, Routing Hot Spots e Sicurezza); PNS(Proximity neighbor selection) La scelta dei vicini non dipende solo dalla distanza fra i nodi sulla rete di overlay ma è influenzata anche dalle distanze reali. PRS(Proximity routing selection) Durante la ricerca l’algoritmo di routing non sceglie il successivo step basandosi solo sulla distanza fra i nodi nella rete di overlay; considera anche la distanza effettiva fra i nodi (in termini di RTT);

DHT: Incorporating Geography(3) Osservazioni: PRS e PNS sono i sistemi più usati,(sembra che PNS offre prestazioni migliori di PRS); PRS e PNS partono dal presupposto che è possibile conoscere il RTT con ogni altro nodo (non è fattibile, ma è possibile ottenere delle stime a un costo relativamente basso);

Incorporating geography: Chord Chord e PRS: L’algoritmo di routing non va semplicemente al nodo più vicino sulla rete di overlay, ma ad esempio potrebbe considerare i due nodi più vicini e scegliere quello con RTT minore; Le path-lenght si allungano ma rimangono O(log n); In particolare: ad ogni passo la distanza fra il nodo destinazione e il nodo corrente si riduce da  a 3/4  Nel caso peggiore la path lenght è quindi log4/3 n. 000 110 111 001 110 010 101 011 100

Incorporating geography: Chord Chord e PNS: La finger table viene riempita considerando anche il RTT: l’i-esimo finger del nodo  non è semplicemente il ‘‘responsabile’’ della chiave +2i ma è il nodo più vicino(RTT) fra i nodi ‘‘responsabili’’ delle chiavi nell’intervallo [+2i-1, +2i ]. Anche in questo caso le path-lenght si allungano ma rimangono O(log n) (dimostrazione analoga alla precedente). Anche usando simultaneamente PRS e PNS la lunghezza asintotica delle path non varia; 000 111 001 110 010 101 011 100

DHT: Extreme Heterogeneity I nodi connessi a questo tipo di reti sono eterogenei (Es. capacità di calcolo e banda); E’ possibile progettare algoritmi di routing che considerino anche questa eterogeneità; La tecnica più diffusa per risolvere questo problema consiste nel considerare dei nodi virtuali tutti con le stesse capacità e assegnare a ogni nodo reale un numero di nodi virtuali proporzionale alle proprie capacità;

DHT: Sicurezza E’ possibile realizzare un protocollo P2P che resiste ad attacchi di tipo denial of service; E’ necessario replicare i dati; E’ importante usare funzioni hash “One Way” (per i dati e per i nodi); E’ importante osservare che tutte le dimostrazioni relative alla sicurezza dei vari algoritmi incontrati finora si basano sul fatto che le chiavi vengono associate ai files in modo casuale (quasi tutti gli algoritmi usano SHA);

P2P(quasi): Direct Connect (DC++) Usa una serie di hub (server) che mantiene le informazioni relative a un gruppo di utenti; Una volta connessi ad un hub si condivide file solo con i nodi connessi a tale hub; E’ possibile connettersi a più hub contemporaneamente; Gli hub sono connessi tra loro ma non si scambiano informazioni relative alla ricerca di una determinata chiave (Sono tanti piccoli Napster); La lista degli hub attivi viene mantenuta da tutti gli hub e aggiornata periodicamente dagli altri hub mediante messaggi del tipo “I am here”; P2P ibrido

P2P(quasi): WinMx E’ basato su una rete di Server (circa 50) chiamata OpenNap nata subito dopo che è stato chiuso il Server di Napster; Viene usata anche da NapMx; In WinMx viene fatta una distinzione fra nodi di connessione primaria: direttamente connessi ai server; sono usati anche per il Routing; e nodi di connessione secondaria: connessi solo ai nodi di connessione primaria; non si occupano di Routing; P2P ibrido

P2P(quasi): KaZaA Viene usata una rete proprietaria; In KaZaA viene fatta una distinzione fra nodo e Supernodo(server): Ogni nodo semplice collabora con il proprio Supernodo; I Supernodi collaborano tra loro e con i propri sottonodi; Come sono connessi i Supernodi? P2P ibrido

Gnutella2: meglio un uovo oggi…. L’obbiettivo della lookup in Gnutella è trovare tutti i peer che dispongono di un determinato oggetto (non ci sono limitazioni sul tempo); L’obbiettivo della lookup in Gnutella2 è trovare, nel minor tempo possibile, almeno un peer (se c’è) che dispone di un determinato oggetto; una volta trovata un’istanza dell’oggetto desiderato è possibile scegliere se fermarsi o continuare la ricerca; L’abilità di trovare almeno un’istanza di un oggetto è molto importante, altrimenti non sono possibili altre azioni; Bisogna trovare un modo per tenere sotto controllo la ricerca;

Gnutella2: Ricerca…(1) Esistono tre approcci per controllare la ricerca; Random walker approach;(il nodo che origina la query ne controlla l’esecuzione 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) Gnutella2 Future

Gnutella2: Ricerca…(2) 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);

Gnutella2: Ricerca…(3) 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 un’istanza di un oggetto; E’ possibile avere informazioni su nodi down; Nodo Hub

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;

Gnutella2: Inter-Hub Communication(1) Nodo Hub 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; L’insieme dei nodi raggiunto in un passo viene chiamato cluster;

Gnutella2: Inter-Hub Communication(2) Nodo Hub Quando un nodo richiede la ricerca di un oggetto al proprio hub: Viene ricercato l’elemento nel proprio cluster Viene ricercato l’elemento nei cluster vicini(a distanza 1) più qualche cluster lontano scelto a caso; Viene ricercato l’elemento nei cluster vicini dei vicini (a distanza 2) più qualche cluster lontano scelto a caso; …

Gnutella2: Inter-Hub Communication(3) Nodo Hub 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); …

Gnutella2: Inter-Hub Communication(4) Nodo Hub 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 all’interno del cluster sono fatte usando TCP; Le ricerche fra cluster sono fatte usando UDP; UDP SEARCH TCP SEARCH

Gnutella2: Inter-Hub Communication(Esempio) try list cluster

Gnutella2: Inter-Hub Communication(5) Nodo Hub 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); per ogni query

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, Napster) tanti Server; (Gnutella2) nessun Server.()

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;

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 l’indirizzo di un nodo on-line;(A regime non capita praticamente mai) In ogni caso è stato creato un canale IRC per mantenere queste informazioni;

P2P(file-storage-service): FreeNet Ogni nodo mette a disposizione un po’ di spazio; Le operazioni possibili sono get e put di un file; Per aggiugere un nuovo file si invia un send message nella rete e un identificatore GUID (Global Unique Identifier) in base al quale il file viene memorizzato in un insieme di nodi (Data Partition); Per recuperare un file basta inviare un messaggio di richiesta contenente il GUID del file; Servizi aggiuntivi: Persistenza; Anonimia; P2P Puro

P2P: FreeNet(Routing) E’ tutt’altro che efficiente;

Riferimenti http://www.pdos.lcs.mit.edu/chord/ http://www.napster.com/ http://www.gnutella .com/ http:// www.gnutella2.com/ http:// www.shareaza.com/ http://www.overnet.com/ http:// www.openp2p.com/ S. Ratnasamy, S. Shenker, and I. Stoica. “Routing algorithms for DHTs: Some open questions”. In In 1st International Peer To Peer Systems Workshop (IPTPS02). I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F. Kaashoek, F. Dabek, H. Balakrishnan, “Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications”. In IEEE/ACM Trans. on Networking, 2003.