martedì 3 aprile 2012

Mille modi per condividere files.. e musica - Begins




La rete Internet ha permesso a tutti noi di condividere files.. e quindi anche (o forse soprattutto) musica. Come funzionano i protocolli e i programmi progettati per fare questo? Ma soprattutto, quali sono quelli che fino ad oggi sono stati sviluppati per funzionare meglio?
Questo è il primo di una breve rassegna di articoli con cui proverò a chiarire queste domande.

Cos'è il peer-to-peer?

Tutti sappiamo che per scaricare si usa eMule che è un client peer-to-peer, ma cosa significa? Partiamo dall'inizio.
Il modo più intuitivo per condividere un insieme di files è archiviarli tutti in un computer (server), a cui tutti (i client) possono accedere. Questo metodo è detto client-server ed è uno dei pilastri su cui si basa la rete (lo usiamo tutte le volte che scarichiamo una pagina web) ma non è l'ideale per i nostri scopi. Per condividere files bisogna che tutti possano trasmettere a tutti e ricevere da tutti.
Il metodo peer-to-peer (da pari a pari) si basa su una rete di client e nessun (o quasi) server:
  • permette a tutti di uploadare i propri files; 
  • è più veloce perché lo stesso files non deve essere downloadato da un solo nodo, può essere disponibile contemporaneamente in molti client; 
  • è più robusta perché non c'è un server centrale che può andare in panne; 
  • è economica perché non è necessario un server centrale potente e costoso. 

Gli esordi: Napster

Il file sharing nasce nel 1999 grazie al lavoro di un informatico, Shawn Fanning, e un imprenditore, Sean Parker, che insieme hanno creato Napster (come il nickname del suo programmatore, Shawn Fanning). Questo programma si basa su dei server centrali, su cui sono tabulati i files disponibili e gli utenti connessi che li posseggono e possono inviarli. Anche se sono presenti i server può comunque essere considerato peer-to-peer in quanto lo scambio vero e proprio avviene tra pari.
Troppo bello per essere vero, l'attività viene presto messa sotto processo e nel 2001 chiude per ripetuta violazione di copyright. E` proprio il server centrale il punto debole di tutte le reti di questo tipo, essendo fisicamente da qualche parte è possibile perseguire legalmente i suoi gestori. Una volta eliminato questo la rete non può più esistere.

Una rete peer-to-peer pura: GNUtella

Per ovviare ai problemi di Napster si pensa ad una rete serverless, gestita interamente dai client. Nel 2000 Nasce GNUtella (il cui nome non ha nulla a che vedere con il progetto GNU, ma sembra essere ispirata alla nota crema al gusto gianduia).
Questa nuova struttura permette di creare una rete robusta e stabile, che garantisce sempre una discreta disponibilità di banda per ogni client. Invece non è così semplice la ricerca dei files: manca un archivio centrale e la richiesta di un file deve essere trasmessa da un nodo all'altro, con un notevole spreco di potenza di calcolo e soprattutto banda passante.

GNUtella viene migliorato: FastTrack

Nel 2003 è stata sviluppato un nuovo protocollo per rimediare a questi difetti: FastTrack. Oltre ad alcuni miglioramenti minori, quali la possibilità di interrompere e riprendere un download o ricevere simultaneamente segmenti dello stesso files da client diversi, sviluppa il concetto di "supernodo" (già presente in GNUtella).
Tra tutti i client connessi alla rete quelli con maggior disponibilità di banda diventano automaticamente "supernodi", aiutano i client più lenti fornendo un indice dei files e una mappa della rete più agevolmente.

Il file sharing diventa un fenomeno gigante: eDonkey

Più tardi viene introdotta la rete eDonkey, che nel 2004 supera FastTrack come numero di utenti e presto diventa la più utilizzata rete di condivisione file in Internet. Si stima che a metà del 2005 la rete fosse composta da un numero di utenti variabile tra due e tre milioni che condividevano tra i 500 milioni e i due miliardi di file, con un numero di server variabile tra 100 e 200.
Questa rete si basa sul peer-to-peer ma si appoggia necessariamente su dei server centrali, presenta dei tratti distintivi innovativi come:
  • L'uso della funzione hash di tipo MD4, impiegata per calcolare un identificatore univoco, il checksum, caratteristico di ogni file condiviso. Questa operazione è indipendente dal nome dei files archiviati sui diversi computer, permette di raccogliere tutti i files identici per contenuto. 
  • La possibilità di condividere le parti già scaricate prima di aver terminato il download, particolare fondamentale per aumentare la velocità di distribuzione di files molto grandi. 
  • L'identificazione univoca e permanente degli utenti. 
  • La disponibilità sulla rete alcuni siti web contenenti grandi liste di checksum dei file condivisi, o di liste aggiornate dei server attivi. Per accedere a queste importanti risorse, che permettono di diminuire il tempo e la complessità della ricerca, si fa uso dei link ed2k
  • La presenza di una coda di attesa in ogni client, che gestisce le richieste di download da parte degli altri. La velocità con la quale si riesce a scalare la lista per riuscire poi a scaricare dipende anche dai propri "meriti" di buon uploader. 

Con la rete eDonkey si è ritornati a dipendere dai server: Kademlia

Kademlia è il miglior alleato della rete eDonkey, carente sull'aspetto della ricerca di files a causa dell'uso dei server centrali. Grazie a Kademlia la rete eDonkey è diventata molto potente, tanto che ognuno di noi ha usato spesso il programma eMule e fino a poco tempo fa era possibile reperire in questo modo ogni tipo di risorsa.
Questo protocollo sfrutta le tabelle di checksum ottenute con la crittografia MD4 ma le distribuisce su ogni client per massimizzare la velocità di ricerca files. Ogni client conosce le risorse presenti sui nodi vicini e può calcolare la loro distanza (relativa al numero di host intermedi), ma la sua conoscenza della rete degrada allontanandosi. Per questo è immediata la ricerca su host vicini (già tabulati localmente) ma è anche molto veloce la sequenza di passaggi necessari a trovare un files su host più lontani.

Ma oggi la situazione non è più questa, sono stati fatti molti progressi.
To be continued... ecco il link alla seconda parte: Mille modi per condividere files.. e musica - Oggi


Importante! In questo articolo ho parlato dei diversi metodi apparsi sul web che permettono di scambiare files con altri utenti, ho discusso dei punti di forza e dei difetti di ognuno e ho analizzato come si sono raggiunti gli standard attuali.
Ricordo in questo ultimo punto che la condivisione di files attraverso il web è assolutamente legale, tuttavia non è possibile (è perseguibile penalmente) condividere files su cui vale il diritto d'autore. Questa guida ha solo lo scopo informativo di studiare il fenomeno in questione ma non vuole fare propaganda alla condivisione di musica, video o quant'altro protetto da copyright.


Fonti: File sharing (wikipedia) oltre che ai link inseriti nel testo

Nessun commento:

Posta un commento