-
Buon decimo compleanno Gnutella
Circa dieci anni fa, esattamente il 14 marzo 2000, Justin Franklin ha rilasciato una piccola applicazione P2P, che grazie ad un annuncio apparso su Slashdot, fu scaricato da migliaia di persone. Alla fine del 2007, è stato il più popolare mezzo di condivisione file su Internet, con una quota di mercato stimata superiore al 40%.

Per capire il periodo in cui è nato il protocollo, basta pensare che Napster era stato citato tre mesi prima e si pensava che alla fine l’industria musicale avrebbe prevalso e disattivato il server, quindi un client, come Gnutella che consentiva connessioni P2P senza l'aiuto di alcun server centralizzato, fu accolto con molto favore. Inoltre Gnutella, a differenza di Napster, permetteva agli utenti di scambiare video e software, così come gli MP3, e quindi Gnutella fu considerato il prossimo passo nella condivisione di file P2P.
Il codice di Gnutella si sarebbe dovuto rilasciare in seguito sotto licenza GNU GPL, da qui il nome un misto fra GNU e Nutella, ma non è parte del progetto GNU, per cui la FSF, custode del progetto GNU ha chiesto il cambiamento del nome.
Inoltre poiché il client che era distribuito dalla Nullsoft, fu subito bloccato dall’AOL che aveva acquistato la Nullsoft, famosa per il suo player multimediale WinAmp, per motivi legali, e l’AOL diffidò anche la Nullsoft, vietandole di continuarne lo sviluppo.
Tuttavia i dettagli sul protocollo di Gnutella furono resi pubblici ed il programma subì processi di reingegnerizzazione e presto furono sviluppati nuovi client per accedere alla rete.
Lo sviluppo del protocollo Gnutella è attualmente guidata dallo Gnutella Developers Forum.
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, come detto ha una rete assolutamente decentralizzata, in cui i client diventano server ed i server client, ossia ogni nodo funziona sia da server che da client ed è definito servent. Questo garantisce una grossa stabilità alla rete al contrario dei protocolli che hanno bisogno di un server centralizzato e che non essendoci quello non funzionano più.
Anche Emule, infatti, ha dei server che contengono un elenco dei file e degli indirizzi IP dove questi sono scaricabili e senza di questi diviene più difficile la ricerca file. Comunque in emule si può usare anche la rete kad, serverless.
Tutte le comunicazioni sulla rete Gnutella classica, avvengono usando il protocollo TCP/IP non si fa uso del protocollo UDP.
Però dalla versione 0.6, Gnutella è divenuta una rete composita fatta di nodi leaf e nodi ultrapeers. I nodi leaf sono collegati a un piccolo numero di ultrapeers (tipicamente 3) mentre ogni ultrapeer è collegato a più di 32 altri ultrapeers. Un ultrapeer agisce, quindi, un poco come un proxy, verso la rete Gnutella per i leaf connessi ad esso. Questo riduce il numero di nodi coinvolti nella manipolazione e nella circolazione dei messaggi sulla rete Gnutella e allo stesso tempo riduce il traffico reale tra i vari nodi.
Oltretutto ora i risultati della ricerca vengono distribuiti tramite User Datagram Protocol (UDP) direttamente al nodo che ha avviato la ricerca, di solito un ultrapeer del nodo.
Inoltre Gnutella ha adottato una serie di altre tecniche, per ridurre il carico di traffico e rendere le ricerche più efficienti. I sistemi più notevoli sono Query Routing Protocol (QRP) e Dynamic query (DQ). Con QRP una ricerca raggiunge solo quei clienti che possono avere i file, così le ricerche dei file rari diventano enormemente più efficienti, e con DQ la ricerca si interrompe non appena il programma ha acquisito i risultati della ricerca.
Nel novembre 2002 Michael Stokes diede vita al protocollo Gnutella2, che si basa ampiamente sul protocollo UDP piuttosto che TCP per le ricerche, ma alcuni sviluppatori come quelli di LimeWire e BearShare, hanno sempre pensato che fosse solo una trovata pubblicitaria a buon mercato ed hanno continuato a chiamare il protocollo, al posto di Gnutella2, il “protocollo di Mike”.
Gnutella 2 è la rete principale usata dal programma Shareaza e da altri client compatibili.
Gnutella2, ha introdotto una differenziazione nei nodi,: ci sono due principali tipi di nodi, i nodi 'hubs' e i nodi 'leaves'. Lo scopo è di massimizzare il numero di leaves e di minimizzare il numero di hubs. I leaves mantengono una o due connessioni hub, mentre gli hub accolgono centinaia di leaves, e molti collegamenti ad altri hub. Quando si inizia una ricerca, il nodo ottiene una lista di hub e contatta gli hub nella lista, rilevando quali sono stati ispezionati, fino a quando la lista è esaurita, o un limite predefinito di ricerca è stato raggiunto. Questo permette all'utente di trovare un file molto diffuso facilmente senza carico della rete, mentre teoricamente c’è anche la possibilità per un utente, di trovare un unico file che si può trovare ovunque sulla rete.
Nonostante il fatto che due anni dopo che fu rilasciato Gnutella, nacque BitTorrent, che come sappiamo cominciò ad erodere il mercato di Gnutella, divenendo il protocollo poi più diffuso nel mondo P2P, ma attualmente è ritornata in auge la discussione sull’uso di un sistema serverless, ad esempio Frostwire ha introdotto dei sistemi per poter condividere i Torrent usando Gnutella.
Quindi un protocollo, tutt’altro che morto, ancora buon compleanno Gnutella.
-
-
21-03-2010 17: 07 Annunci Google
-
Chiedo scusa ma pensavo si parlasse della Nutella, la crisi d'astinenza dal cioccolato comincia a farsi sentire
-
Segnalibri