Benvenuti nel meraviglioso mondo di Torrents! Ci sono alcuni pezzi che compongono il protocollo Bittorrent: hai il tuo file, legalthing.iso e vuoi distribuirlo a quante più persone possibile. Quindi crei un file "torrent" che descrive legalthing.iso e distribuisci il file torrent attraverso un sito Web o in qualsiasi altro modo ti piaccia. Il file torrent può puntare direttamente al tuo computer (e ti comporteresti come seed) oppure il file torrent può puntare a un "tracker", che è un server che collega "seed" (utenti con l'intero legalthing.iso file già) e "peer" (utenti che stanno scaricando attivamente il file).
Avvicinati alla tua domanda ora. Il file stesso, legalthing.iso, è crittografato in modo crittografico in modo che ogni persona che legge il file torrent e inizia a scaricare legalthing.iso possa controllare ogni pezzo rispetto all'hash e assicurarsi che non stiano scaricando un pezzo che è stato modificato dall'originale. I pezzi che non superano i controlli hash vengono scartati.
Adesso fai finta di essere un computer che scarica un file, usando Bittorrent. Il protocollo può funzionare in due modi: o scaricherai pezzi casuali del file o scaricherai prima i pezzi più rari. Quest'ultimo approccio è quello di aumentare la "salute" generale (disponibilità) del torrent.
Quindi cosa c'è nel file torrent attuale? Varia in base al client utilizzato per crearlo, ma generalmente contiene una sezione "annuncio" che è l'indirizzo del tracker che stai utilizzando e un grande elenco di tutti i pezzi del file che vuoi scaricare. Ogni pezzo ha una dimensione uniforme (32 kb, 512kb, 4mb, qualsiasi dimensione ti piaccia) e ogni pezzo ha un hash associato. Ogni volta che un peer ottiene un pezzo confronta l'hash per quel pezzo (usando il codice hash SHA-1) con l'hash elencato nel file torrent. È così che capisce che i pezzi sono buoni.
Poiché il file torrent elenca ogni pezzo del file che stai scaricando, ogni volta che il tuo client scarica correttamente un pezzo e lo esegue l'hashing, lo scrive nella posizione corretta sul disco rigido all'interno del file. Ecco perché se scarichi un file da 1 GB, il client metterà da parte un blocco di spazio vuoto sul disco che ha dimensioni di 1 GB, per ospitare i pezzi torrent che scarichi.
Ora alcuni lettori video e altri visualizzatori di file possono gestire file "corrotti". ovviamente, un torrent scaricato a metà non è corrotto, ma manca dei pezzi e ad un programma come VLC sembra solo rotto. Quindi VLC farà del suo meglio per riprodurre qualunque dato riesca a trovare ed è per questo che può essere riprodotto mentre è parzialmente scaricato.
Ci sono molti aspetti più complicati (google DHT, torrent write buffering, tutta quella roba divertente) ma questa è la base di come funziona Bittorrent.