Ernesto Damiani Lezione 5 – Gnutella Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 2 - Telnet, FTP e altri
Gnutella (1) La lacuna di Napster è che esiste un’unica fonte per l’indice. L’ idea di base di Gnutella è distribuire il metodo per trovare i dati. –Consente molte architetture interessanti. –Alcuni progetti di ricerca importanti sono in fase di sviluppo (Chord, Klymena ecc.).
Gnutella (2) È un protocollo di ricerca distribuita con un modello decentralizzato. –I client possono immettere o visualizzare i risultati delle query. –I client possono inviare o richiedere i dati. –I client accettano le query e rispondono con risorse prese dal loro datastore locale. Fornisce un sistema molto affidabile.
Protocollo Definisce il metodo di comunicazione tra peer. –Una serie di descrittori usati per comunicare i dati. –Una serie di regole per governare lo scambio tra client di descrittori. –Ping Ricerca host su una rete. –Pong È la risposta a Ping. Include i metadati e l’indirizzo del peer. –Query Meccanismo di ricerca. –Queryhit È la risposta a Query. Include le informazioni necessarie per otttenere i dati. –Push Meccanismo che consente ai client posti dietro firewall di far parte della rete P2P. Descrittori
Collegamento Un client Gnutella (detto peer o servent) si collega alla rete stabilendo una connessione con un altro peer sulla rete. Il modo per trovare un altro peer non fa parte delle specifiche di Gnutella.
Protocollo Gnutella (1) Il nuovo peer crea la connessione al peer Gnutella che ha trovato e quindi diventa parte della rete. –Il peer remoto può rifiutare la richiesta di connessione. –Il nuovo peer, una volta collegato, può inviare/ricevere i descrittori. Vengono inviati poi ping/pong per stabilire la rete. –Nessuna specificazione sulla frequenza. –I dati provenienti dalla rete possono essere memorizzati in una cache locale.
Protocollo Gnutella (2) FINE L’instradamento dei messaggi viene eseguito tramite flooding. –I descrittori ping/query sono inviati a tutti i client direttamente connessi. –I descrittori ping/queryhit sono rimandati indietro lungo lo stesso percorso. –Si usa un meccanismo TTL per limitare la distanza (horizon). Download di file avviene tramite protocollo HTTP/1.0.