Lezione 5 Gnutella Sistemi di elaborazione dellinformazione Modulo
Lezione 5 – Gnutella Sistemi di elaborazione dell’informazione Modulo 3 - Protocolli applicativi Unità didattica 2 - Telnet, FTP e altri Ernesto Damiani
Gnutella • 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. ). (1)
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. 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 P 2 P.
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) • 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. FINE
- Slides: 7