BitTorrent, spesso abbreviato BT, è un protocollo di tipo peer-to-peer (P2P) finalizzato allo scambio ovvero alla distribuzione e condivisione di file nella Rete.
Esso è stato ideato per condividere file di grosse dimensioni senza doversi preoccupare dei server.
Spesso viene confuso con il programma “BitTorrent” quest’ultimo infatti è stato il primo client a supportare il protocollo BitTorrent entrambi sono stati sviluppati da Bram Cohen, un programmatore di San Francisco, nel 2002. In precedenza, Cohen aveva scritto “Moyonation”, un programma che frammentava i file e li inviava via web.
È scritto in linguaggio Python e fu originariamente distribuito sotto Licenza MIT. Dalla versione 4.0.0 del 7 marzo 2005 la licenza è cambiata in BitTorrent Open Source License. Il software è disponibile per i sistemi operativi Microsoft Windows, Mac OS, Linux e Android.
A differenza degli altri sistemi di file sharing, l’obbiettivo del protocollo è di fornire un sistema per distribuire lo stesso file verso il maggior numero di utenti disponibile, essi possono sia scaricarlo (download) sia inviarlo ad altri (upload).
BitTorrent infatti fornisce un meccanismo in grado di coordinare il download e l’upload di molti computer contemporaneamente, ottenendo cosi il massimo beneficio possibile per tutti. Con questo sistema ogni nodo contribuisce alla diffusione del file, Aumentando l’ampiezza di banda (sia in download sia in upload).
Il file
BitTorrent permette di condividere qualsiasi tipo di file (di qualsiasi dimensione).
Il file originale (o la cartella) viene frammentato in tanti piccoli pezzi a dimensione fissa (scelta da chi ha creato il torrent), il fingerprint viene calcolato utilizzando l’algoritmo SHA1 e viene distribuito agli altri client per effettuare la verifica (o la richiesta come vedremo successivamente)
File .torrent
Per poter utilizzare questo sistema è necessario un file(.torrent) quest’ultimo è di ridotte dimensioni. Questo file svolge una funzione di catalogo in quanto all’interno è presente una lista contenente informazioni codificate mediante algoritmi di hashing, che descrivono i frammenti e permettono di verificare l’integrità di essi, in oltre contiene i tracker (che vedremo più avanti) e gli eventuali web seed (che vedremo più avanti).
La maggior parte di client BitTorrent è in grado sia di leggerli che di crearli.
Magnet
Oltre ai file(.torrent) per la condivisione di file possiamo utilizzare anche i magnet,
essi infatti a differenza dei .torrent non sono file bensì link (in questo formato:
magnet:?xt=urn:btih:hash(SHA1)&dn=title&tr=tracker
)
La differenza sta nel fatto che non contiene le informazioni sui frammenti infatti non appena sarà aggiunto il link (magnet) all’interno del nostro client quest’ultimo si occuperà di contattare i tracker (presenti nel magnet ed eventuali aggiunti da noi) per recuperare le informazioni sui frammenti.
La scelta di utilizzare i magnet viene adottata in situazioni dove magari la condivisione di file .torrent non è possibile.
Tracker
Nei paragrafi precedenti abbiamo parlato di tracker, ma cosa sono?
I tracker (anche chiamati server traccia) sono utilizzati per trovare i nodi che possiedono il file (come vederemo successivamente ci sono diversi tipi di nodi).
Alcuni tracker forniscono anche statistiche sul numero di trasferimenti ecc.
Alcuni client sono in grado di essere usati come tracker quindi se ad esempio io setto il mio client in tal modo e un altro client mi aggiunge farà richiesta al mio client per un determinato file.
Quando noi aggiungiamo un .torrent o apriamo un magnet il nostro client si occuperà di fare richiesta hai tracker per eventuali nodi, nell’ultimo caso (quindi con i magnet) il nostro client si occuperà anche di prelevare le informazioni sui frammenti.
Web Seed
Il Web seeding è la capacità del client BitTorrent di scaricare parti di torrent da una fonte HTTP.
Grazie ad esso se eventualmente non ci sono dei noti che seedanno (che condividono il file) il nostro client scaricherà da server web. Se eventualmente i nodi ci sono il client si occuperà di gestire il download sia dai nodi che dal web seed.
Nodi
All’interno della rete BitTorrent possiamo trovare diversi tipi di nodi:
- Seed o Seeder sono i nodi che dispongono di tutte le parti di un determinato file, e si occupano di condividerlo con chi non ha completato il file.
- Peer sono i nodi che non sono ancora in possesso di tutte le parti(o frammenti) e mentre scaricano quelle che gli mancano seedanno quelle che hanno (a chi non le ha)
- Leecher sono nodi che hanno uno share ratio tra i dati inviati e quelli scaricati basso, ossia scaricano tanto ma condividono poco, vengono anche chiamati leecher ovvero sanguisughe, in alcuni casi possono essere addirittura bannati in quanto comportamenti di questo tipo sono nocivi per i sistemi P2P
- Swarm (sciame) con questo termine s’indende il numero complessivo di seed e peer che condividono lo stesso file
Client
Il client è quel software in grado (in questo caso) di sfruttare il protocollo BitTorrent.
Un client BitTorrent si occupa di seguire tutte le regole e le funzionalità spiegate in precedenza, come detto prima primo client che è stato creato si chiama “BitTorrent” ma con il passare del tempo sono nati numerosissimi client ognuno che si adattano alle esigenze dei più svariati utenti.
Un po’ come le distro-linux bisogna testarli e vedere quale si adatta di più al nostro utilizzo. Consiglio vivamente di visitare la pagina wikipedia di comparazione dei client BitTorrent più famosi confrontati in base alle loro funzioni.
Ma i torrent sono illegali?
Dipende, il protocollo in se non lo è, ma come tutte le cose se viene utilizzato in modo sbagliato (magari per condividere Warez), in quel caso è illegale.
Se avete altre domande contattatemi su Gabrix. Invece se avete altre guide da consigliare scrivetele al nostro Profilo Ufficiale o al nostro Bot Ufficiale per Limitati.