BitTorrent: scopriamo come funziona il più popolare software peer-to-peer

bittorrent

BitTorrent, il più popolare software per la condivisione tramite web di contenuti in formato digitale, è molto più di un semplice programma da installare e utilizzare liberamente. E' infatti un vero e proprio protocollo, la logica evoluzione di illustri predecessori quali Napster e Gnutella, in grado di muovere ogni giorno percentuali a due cifre di traffico internet. Scopriamo in dettaglio come è fatto e i suoi campi di utilizzo.

Secondo un autorevole studio condotto nel 2012 sull'utilizzo della banda Internet, si stima che BitTorrent da solo consumi il 12% dell'intera banda Internet disponibile nel Nord America, e il 36% della banda Internet disponibile nelle regioni asiatiche. Cifre da capogiro, basate su dati attendibili, ma ristrette solo ad alcune aree geografiche e ad alcuni tipi di provider. Dati più realistici collocano il sistema P2P su livelli ben più elevati, con circa il 35% di utilizzo dell'intero traffico Internet mondiale, e oltre il 50% del traffico consumato dalle sole reti peer-to-peer. Non male per un'applicazione progettata nel 2002 dall'allora ventisettenne Bram Cohen.

Si stima che ad oggi BitTorrent possa contare su 160 milioni di client installati, di cui 100 milioni sono attivi.

Se da un lato queste cifre confermano la popolarità e la fama acquisite da BitTorrent tra gli utenti del file sharing, numerose sono state le critiche e i "nemici" che questa applicazione ha creato attorno a sè. BitTorrent è infatti notoriamente utilizzato per lo scambio e la condivisione di materiale e contenuti digitali soggetti a copyright, uno strumento quindi utilizzato anche nel settore della "pirateria". BitTorrent, pur essendo nato ed espressamente sviluppato per distribuire contenuti legittimi, si presta infatti ad essere utilizzato anche per distribuire su larga scala materiale coperto da diritti d'autore. Le case cinematografiche e musicali hanno quindi sempre considerato BitTorrent come un potenziale "nemico". In realtà, come vedremo, si tratta di uno strumento tanto sofisticato quanto semplice ed efficiente, un protocollo peer-to-peer decentralizzato in grado di offrire delle prestazioni molto elevate. Scopo di questo articolo è proprio quello di spezzare una lancia in favore di questo strumento P2P, dimostrando che non si tratta soltanto di un eccellente mezzo utilizzato dalla pirateria, ma di un sofisticato strumento con numerose applicazioni "legali".

In precedenza si è accennata una caratteristica fondamentale di BitTorrent, cioè quella di essere uno strumento decentralizzato (contrapposto ai "tradizionali" metodi centralizzati di download basati sui protocolli HTTP e FTP). E' questo un elemento chiave, forse il principale punto di forza di questa tecnologia, intendendo con ciò la possibilità di distribuire grandi quantità di dati senza necessariamente disporre del relativo spazio fisico e della relativa ampiezza di banda. Per le organizzazioni che per esigenze professionali, devono rendere disponibili per il download intere applicazioni o file di grosse dimensioni (più avanti vedremo chi sono alcune di queste organizzazioni), la decentralizzazione è una vera e propria manna, la soluzione efficiente e "risparmiosa" al tempo stesso.

BitTorrent: come funziona

Quando si accede a una comune pagina Internet, proprio come quella che state leggendo in questo momento, ciò che avviene è molto semplice: il dispositivo collegato alla rete (sia esso un PC, un tablet, oppure uno smartphone) apre anzitutto una connessione verso il server web, e successivamente scarica i dati presenti sulla pagina direttamente dal server (per semplicità, non considereremo in questa sede il caso dei sistemi cloud). Ogni singolo utente che accede alla stessa pagina, scarica perciò gli stessi dati dallo stesso server "centrale". La maggior parte del traffico presente sul web funziona proprio secondo questo meccanismo. Questo concetto è sintetizzabile nell'immagine seguente, nella quale i singoli utenti si collegano (accedono) ai contenuti presenti sul server centrale:

Con BitTorrent, trattandosi di un protocollo peer-to-peer, le cose avvengono in modo diverso. Anzitutto i computer che utilizzano BitTorrent si dice che fanno parte di uno "sciame" (swarm in inglese, è una delle parole chiave da ricordare quando si parla di BitTorrent), e come tali essi sono in grado di downloadare e uploadare lo stesso file torrent, scambiandosi i dati tra di loro senza la necessità di un server centrale.

Per entrare a far parte di uno sciame BitTorrent, un computer deve anzitutto caricare un file torrent (normalmente è un file con estensione .torrent) tramite il client installato sul computer stesso (il client per il sistema operativo desiderato è scaricabile a questo indirizzo). Il client contatta poi il "tracker" specificato nel file .torrent.

Che cos'è un tracker? Un tracker è un particolare tipo di server il cui compito (come dice il nome stesso) è quello di tenere traccia di tutti i client collegati, condividendo tra di essi i rispettivi indirizzi IP. In questo modo, perciò, i vari client appartenenti allo stesso swarm possono comunicare tra di loro. Una volta connesso, ciascun client comincia a scaricare piccole parti dei file che compongono il torrent, copiandole in locale. Non appena queste piccole porzioni dei file sono disponibili, esse vengono uploadate agli altri client dello stesso swarm. Secondo questo meccanismo, perciò, ogni client dello stsso swarm esegue contemporaneamente sia il download che l'upload dello stesso torrent. Questo fattore è cruciale per l'ottenimento di elevate velocità di download.

Un aspetto importante da osservare è che i client non scaricano direttamente dal tracker: il tracker ha solo la funzione di tenere traccia dei client BitTorrent appartenenti allo swarm, ma non partecipa al download o all'upload dei dati (come vedremo, questo aspetto ha un'importanza fondamentale sul piano legale).

Vediamo ora di introdurre altri due termini chiave, da aggiungere al nostro glossario BitTorrent: leechers e seeders. I leechers (detti comunemente anche peers) sono semplicemente gli utenti che stanno scaricando un certo torrent, e rimarranno tali fino al completamento del download dell'intero torrent (il quale, a sua volta, può essere composto da uno o più file). L'etimologia di questo termine è abbastanza ovvia, tenendo presente che in inglese leech significa sanguisuga. I seeders, viceversa, sono gli utenti che hanno già completato il download dell'intero torrent, e lo stanno condividendo con gli altri membri dello swarm affinchè anche essi possano completare lo scaricamento. Seed in inglese significa seme, e i seeders sono infatti gli utenti che pongono le basi affinchè il processo di download degli altri appartenenti allo swarm si completi (sono coloro che fanno "germogliare" l'intero processo). Il requisito fondamentale e imprescindibile affinchè tutto il meccanismo stia in piedi è che in ogni swarm vi sia almeno un seeder, cioè almeno un utente che abbia una copia completa del torrent. Non solo, il seeder dovrebbe anche essere il primo utente che entra nello swarm. Se in uno swarm manca il seeder, nessun utente riuscirà a completare il download.

Questo post non vuole essere una guida completa, nè tanto meno un manuale d'uso, per BitTorrent. E' importante tuttavia far notare come, agendo sulle opzioni di BitTorrent, sia possibile selezionare la banda massima da assegnare al download e all'upload. Molti utenti, ad esempio, scelgono deliberatamente di ridurre anche sensibilmente i valori di upload, oppurre chiudono immediatamente il client una volta completato il download (non partecipano quindi attivamente come seeders). Queste scelte, anche se rispettabili, vanno contro i principi della filosofia dei protocolli peer-to-peer: far sì che tutti gli utenti dello swarm possano downloadare l'intero torrent nel minor tempo possibile. Il client BitTorrent, ad esempio, premia gli utenti che destinano un'ampia banda per l'upload e che partecipano come seeders. Come li premiano? Semplicemente preferendoli rispetto agli altri, assegnando cioè loro una maggiore banda di download. Ciò rende il download dello stesso torrent o di altri torrent molto più rapido.

I singoli file appartenenti a un torrent, come detto in precedenza, non vengono scaricati in modo atomico, ma piuttosto vengono scaricati in piccole parti, con dimensioni che variano da pochi kilobyte a qualche megabyte. E' importante sottolineare che queste parti non vengono scaricate in modo sequenziale, ma seguendo una serie di regole logiche. Ad esempio, si tende a scaricare per prime le parti considerate più "rare" (quelle cioè detenute dal minor numero di peers dello swarm). In questo modo si evita che verso la fine del download, questo arrivi a una situazione di "quasi stallo", dovuta alla difficoltà di reperire proprio queste parti più rare.

Torrent senza tracker

L'utilizzo esteso dei sistemi di condivisione dei file di tipo P2P, come Napster, Gnutella e Freenet, ha richiesto sempre più nel corso degli ultimi anni un approccio di tipo decentralizzato. Napster, ad esempio, aveva il difetto di richiedere un servizio centralizzato, vulnerabile sul piano della sicurezza. Gnutella si basava invece sul "query flooding", cioè sull'invio di messaggi di richiesta a tutti i nodi della rete. Un meccanismo come il flooding non è certamente adatto a reti molto ampie, e poco adatto al file sharing. Per risolvere questi tipi di problematiche era perciò necessario sviluppare qualcosa di nuovo, come ad esempio la tecnica DHT, che ora illustreremo brevemente. La recente evoluzione della tecnologia peer-to-peer che sta dietro BitTorrent ha visto la nascita dei cosiddetti torrent "trackerless", cioè privi di tracker. In precedenza abbiamo visto qual'è l'importanza e il ruolo svolto dai trackers. Lo svantaggio di questo sistema, se così si può dire, è che richiede ancora la presenza di un oggetto centralizzato: il tracker stesso. Nell'ottica di perseguire proprio una completa decentralizzazione, è nato il sistema torrent di tipo trackerless. In questo sistema, i client BitTorrent comunicano tra di loro senza la necessità di ricorrere a un server centrale. A questo scopo, i client utilizzano una tecnologia basata sulla Distributed Hash Table (DHT), in cui ogni client dello swarm agisce come un nodo DHT. Con questo sistema ogni client deve scegliere un torrent di tipo "magnet link" (altro termine chiave), e in virtù di ciò contatterà i nodi dello swarm più vicini, i quali a loro volta contatteranno altri nodi, sino a che si riusciranno ad ottenere tutte le informazioni relative al torrent. Ogni nodo diventa quindi una sorta di tracker, e l'informazione viene distribuita anzichè essere centralizzata. Si ottiene in questo modo il massimo livello di decentralizzazione.

BitTorrent e la pirateria

Ci preme sottolineare che BitTorrent non va confuso con la pirateria, e non va pertanto considerato come un sinonimo di pirateria. Numerosi sono gli esempi che avvalorano questa tesi. Anzitutto dobbiamo ricordare il caso della società Blizzard, uno dei principali player nel settore dei videogame. Blizzard utilizza una versione custom di BitTorrent per distribuire gli aggiornamenti di alcuni suoi famosi videogiochi (World of Warcraft, StarCraft II, e Diablo 3). In questo modo tutti gli utenti possono beneficiare di maggiori velocità di download, grazie alla condivisione delle rispettive bande di upload, altrimenti non utilizzate. I vantaggi sono ovviamente anche per la Blizzard stessa, che può risparmiare sull'ampiezza di banda da rendere disponibile per l'upgrade dei propri prodotti. WikiLeaks utilizza anch'essa BitTorrent per distribuire le proprie informazioni, alleviando in questo modo l'utilizzo di banda dei server. Altri esempi di utilizzo legale di BitTorrent sono rappresentati dalla distribuzione di podcast, come anche di intere distribuzioni Linux (Red Hat Linux ad esempio) e progetti open-source. La Warner Home Video ha inoltre siglato un accordo con la società BitTorrent Inc. per la commercializzazione di film sul web tramite il sistema P2P sviluppato dalla stessa società. L'obiettivo di questa scelta è duplice: da un lato, proponendo contenuti di elevata qualità a un prezzo competitivo si vuole scoraggiare la pirateria (dove, tra l'altro, la qualità è spesso scadente), e dall'altro si possono ridurre le spese relative all'utilizzo della banda Internet e allo spazio richiesto per lo storage dei contenuti.

BitTorrent - aspetti legali

Non poteva mancare in questo articolo un cenno agli aspetti legali, relativi sia alla tecnologia su cui si basa BitTorrent, che al suo utilizzo. Possiamo suddividere questi aspetti su quattro livelli:

  • il protocollo - si tratta della tecnologia sulla quale è appoggiato BitTorrent, e a questo livello non esiste alcuna legge che vieti questo tipo di protocollo o il file-sharing in sè
  • il client BitTorrent - si tratta dell'applicazione che chiunque può scaricare e installare sul proprio PC. Anche in questo caso non esiste alcuna legge contro di essa.
  • file torrent (.torrent, detto anche "metafile") - è il mezzo tramite il quale scaricare un torrent, l'input quindi del client BitTorrent. Questo livello, dal punto di vista legale, viene definito come un'area "grigia", dove si può essere, a seconda dei casi, dalla parte della legalità o della illegalità.
  • i contenuti scaricati tramite file torrent - qui il discorso è molto semplice: se i contenuti scaricati sono coperti da copyright e il download non è autorizzato, si sta eseguendo un'azione illegale. Stesso discorso vale, parimenti, anche per l'upload di contenuti protetti

Nel corso degli anni sono state anche intraprese delle azioni legali volte a contenere il fenomeno della pirateria, come ad esempio la chiusura di noti siti che ospitavano file .torrent, come ad esempio Finreactor, Suprnova.org, EliteTorrents.org. Emblematico il caso del sito svedese ThePirateBay.org il quale, pur essendo stato oggetto di svariate azioni e cause legali, con minacce di chiusura del sito stesso, è riuscito a mantenersi in vita. Per sfuggire alle possibili conseguenze delle molteplici azioni legali in cui era coinvolto, il sito si è spostato dal dominio originario (.org) al dominio .is (Islanda) e proprio recentemente al dominio .sx (facente capo all'Isola di Saint Martin, gruppo delle Piccole Antille). La "guerra" personale di TPB (acronimo di The Pirate Bay) non è finita, probabilmente ne vedremo ancora delle belle...

 

Quello che hai appena letto è un Articolo Premium reso disponibile affinché potessi valutare la qualità dei nostri contenuti!

 

Gli Articoli Tecnici Premium sono infatti riservati agli abbonati e vengono raccolti mensilmente nella nostra rivista digitale EOS-Book in PDF, ePub e mobi.
volantino eos-book1
Vorresti accedere a tutti gli altri Articoli Premium e fare il download degli EOS-Book? Allora valuta la possibilità di sottoscrivere un abbonamento a partire da € 2,95!
Scopri di più

12 Comments

  1. Tiziano.Pigliacelli Tiziano.Pigliacelli 12 settembre 2013
  2. Giorgio B. Giorgio B. 12 settembre 2013
  3. Giorgio B. Giorgio B. 12 settembre 2013
  4. slovati slovati 12 settembre 2013
  5. slovati slovati 12 settembre 2013
  6. Giorgio B. Giorgio B. 13 settembre 2013
  7. Giorgio B. Giorgio B. 13 settembre 2013
  8. slovati slovati 13 settembre 2013
  9. Tiziano.Pigliacelli Tiziano.Pigliacelli 14 settembre 2013
  10. IvanScordato Ivan Scordato 3 ottobre 2013
  11. IvanScordato Ivan Scordato 3 ottobre 2013
  12. IvanScordato Ivan Scordato 3 ottobre 2013

Leave a Reply

Raspberry Pi 3 GRATIS! (Win10 compatibile)

Fai un abbonamento Platinum (EOS-Book + Firmware), ricevi in OMAGGIO la RASPBERRY 3, inviaci il tuo progetto e OTTIENI IL RIMBORSO