Gnutella

Da Wikipedia, l'enciclopedia libera.

In informatica Gnutella è un network o protocollo di rete Peer to Peer dedicato al condivisione di file aperta e che dà vita all'omonima rete.

L'approccio è di tipo Peer to Peer puro, ovvero quello in cui non esiste il ruolo di directory da parte dei server (presente invece in programmi quali Napster o eMule); ogni peer (o nodo equivalente) "conosce" alcuni vicini, facendo sì che le richieste vengano propagate all'interno della comunità sfruttando la relazione di vicinanza. Per ovviare al problema che le richieste continuino a girare in circolo, viene normalmente indicato il numero massimo di "salti" (hop), che una richiesta può fare sui peer contigui a partire dal nodo che l'ha generata prima di essere terminata.

Storia[modifica | modifica sorgente]

Nonostante il nome contenga la parola GNU, essa non è parte del progetto GNU e per questo motivo la FSF, custode del progetto GNU, ha chiesto il cambiamento del nome. La seconda parte del nome deriva da Nutella, nome di una crema gianduia prodotta dall'azienda dolciaria italiana Ferrero, presumibilmente molto apprezzata dagli sviluppatori di questa rete.

La prima implementazione del protocollo è stata il programma Gnutella scritto da Justin Frankel e Tom Pepper per la Nullsoft all'inizio del 2000. Il programma fu distribuito un giorno solo, il 14 marzo 2000 e fu scaricato da migliaia di persone, grazie all'annuncio apparso su Slashdot. Il codice sarebbe stato rilasciato in seguito probabilmente sotto licenza GNU GPL. Il giorno dopo AOL, che aveva da poco acquisito la Nullsoft, bloccò la distribuzione del programma per motivi legali e diffidò la Nullsoft dal continuarne lo sviluppo. Nonostante questo, la rete Gnutella sopravvisse sostenuta dalle migliaia di copie scaricate il primo giorno, che continuavano a distribuire il programma. In pochi giorni poi il protocollo fu reingegnerizzato e nacquero nuovi programmi liberi in grado di accedere a questa rete.

Descrizione[modifica | modifica sorgente]

Gnutella è una rete completamente serverless, distribuita. I nodi sono trattati allo stesso modo, indipendentemente dalla banda e dal numero di file condivisi. Ogni nodo si occupa sia di fornire i file che di inviare e rispondere alle richieste di routing degli altri nodi, compito riservato ai reserve in una rete centralizzata. Ogni nodo, quindi, è sia un client sia un server: è definito a proposito servent.

Ciò consente una forte stabilità della rete, nella quale possono entrare e uscire continuamente nodi senza modificare le prestazioni.

Reti come Emule hanno invece dei server che contengono una tavola hash, ossia un elenco dei file e degli indirizzi IP dove sono scaricabili; in mancanza di questo diviene difficoltosa l'identificazione dei nodi di rete e particolarmente onerosa la fase di ricerca dei file. Gnutella invia messaggi a un elevato numero di nodi, a fronte di ogni ricerca effettuata, con un impegno di banda e di CPU nei vari nodi.

Un'estensione del protocollo Gnutella, Gnutella2, ha introdotto una differenziazione nei nodi, fra "peer" e "ultrapeer" o supernodi, utile per distribuire i carichi e ridurre le richieste di file e i continui invii di tavole hash.

I protocolli di cui è composta sono pubblici ed aperti. La sua funzione principale è la ricerca di file all'interno dei nodi della rete stessa, e il successivo trasferimento degli stessi al richiedente.

Gnutella è un tipico esempio di overlay network.

Applicazioni[modifica | modifica sorgente]

Esistono numerose applicazioni che si connettono a questa rete; le più popolari sono (in ordine alfabetico):

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

Telematica Portale Telematica: accedi alle voci di Wikipedia che parlano di reti, telecomunicazioni e protocolli di rete