In che modo i clienti torrent possono riassemblare e conservare i pezzi?


9

Mi chiedevo, come vengono archiviati e riassemblati i pezzi scaricati dai client torrent? Usano i metadati? Sembra che non sia così dal momento che uno è in grado di riprodurli se sono file a metà formati? Non ho idea di come sia fatto? Quindi, fondamentalmente, mi chiedo come sono organizzati i pezzi nel file scaricato? È solo dal primo all'ultimo o ci sono spazi di buffer in mezzo?


C'è un modo per scaricare metà dei brani scaricati dopo il controllo? La mia connessione è come il dialup ...... Quindi, per favore, aiutatemi.

Risposte:


19

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.


Wow, questa è una risposta molto completa .... ma non ho mai notato che accantona davvero un file da 1 GB? Sembra che cresca in modo incrementale?
Cenoc,

1
@Cenoc dipende dal client torrent, alcuni client pre-allocano, altri no, altri hanno preferenze aggiuntive da pre-allocare
Sathyajith Bhat

Interessante, quindi all'inizio è solo un file riempito con "0" e poi quando il file parzialmente scaricato viene controllato per la prima volta, viene confrontato con gli hash?
Cenoc,

1
È un contenitore vuoto per l'eventuale file completo e, quando ogni pezzo viene scaricato dal client, viene verificato rispetto all'hash e quindi inserito nella posizione appropriata nel contenitore fino al completamento del file completo.
geodave,

1
Come accennato da Sathya, dipende dal cliente. Alcuni pre-assegneranno uno spazio sul disco rigido per l'intero file; riserverà un sacco di spazio e altri programmi non saranno in grado di utilizzare quello spazio sull'unità, fino a quando il file non viene scaricato. Altri client bittorrent inseriranno i pezzi completati in una posizione di archiviazione temporanea per risparmiare spazio su disco, quindi assembleranno il file completo una volta scaricati tutti i pezzi. Dipende dalle impostazioni che scegli.
geodave,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.