Como os clientes de torrent remontam e armazenam peças?


9

Fiquei me perguntando, como as peças baixadas pelos clientes de torrent são armazenadas e remontadas? Eles usam metadados? Parece que não é esse o caso, pois é possível reproduzi-los se forem arquivos meio formados? Eu não tenho idéia de como isso é feito? Então, basicamente, estou perguntando como estão organizadas as peças no arquivo baixado? É apenas do primeiro ao último, ou existem espaços de buffer no meio?


Existe alguma maneira de baixar peças baixadas pela metade após verificar novamente?. Minha conexão é como discada ...... Então, por favor, ajude.

Respostas:


19

Bem-vindo ao maravilhoso mundo de Torrents! Existem algumas partes que compõem o protocolo Bittorrent: você possui seu arquivo, legalthing.iso e deseja distribuí-lo para o maior número possível de pessoas. Então você cria um arquivo "torrent", que descreve legalthing.iso, e distribui o arquivo torrent através de um site ou de qualquer outra maneira que desejar. O arquivo torrent pode apontar diretamente para o seu computador (e você estaria agindo como a semente) ou o arquivo torrent pode apontar para um "rastreador", que é um servidor que conecta "sementes" (usuários com todo o legal.iso) arquivo já) e "pares" (usuários que estão baixando ativamente o arquivo).

Aproximando-se da sua pergunta agora. O arquivo em si, legalthing.iso, é criptografado em hash para que cada pessoa que leia o arquivo torrent e comece a baixar legalthing.iso possa verificar cada peça no hash e garantir que não esteja baixando uma peça que foi modificada a partir do original. Peças que falham nas verificações de hash são descartadas.

Agora finja que você é um computador que está baixando um arquivo usando o Bittorrent. O protocolo pode funcionar de duas maneiras: você faz o download de partes aleatórias do arquivo ou faz o download das partes mais raras primeiro. Essa última abordagem é aumentar a "saúde" geral (disponibilidade) do torrent.

Então, o que há no arquivo torrent real? Ele varia de acordo com o cliente usado para fazê-lo, mas geralmente contém uma seção "anunciar", que é o endereço do rastreador que você está usando, e uma grande lista enorme de todas as partes do arquivo que você deseja baixar. Cada peça tem um tamanho uniforme (32 kb, 512kb, 4mb, realmente qualquer tamanho que você quiser) e cada peça tem um hash associado a ela. Toda vez que um ponto obtém uma peça, ele compara o hash dessa peça (usando o código SHA-1) com o hash listado no arquivo torrent. É assim que as peças são boas.

Como o arquivo torrent lista cada parte do arquivo que você está baixando, toda vez que o cliente faz o download de uma peça com êxito e faz o hash, ele a grava na posição correta no disco rígido do arquivo. É por isso que, se você baixar um arquivo de 1 GB, o cliente reservará um espaço vazio no disco com 1 GB de tamanho, para acomodar as partes de torrent que você fará o download.

Agora, alguns reprodutores de vídeo e outros visualizadores de arquivos podem lidar com arquivos "corrompidos". é claro, um torrent baixado pela metade não está corrompido, mas faltam partes e, para um programa como o VLC, parece quebrado. Portanto, o VLC fará o melhor possível para reproduzir quaisquer dados que encontrar, e é por isso que eles podem ser baixados parcialmente.

Existem muitos aspectos mais complicados (google DHT, buffer de gravação em torrent, todo esse material divertido), mas esse é o básico de como o Bittorrent funciona.


Uau, essa é uma resposta muito completa .... mas eu nunca percebi que isso realmente deixou de lado um arquivo de 1 GB? Parece que cresce de forma incremental?
Cenoc 08/12/19

1
@Cenoc depende do cliente torrent, alguns clientes pré-alocar, alguns não, alguns têm um preferências adicionais para pré-alocar
Sathyajith Bhat

Interessante, então, a princípio, é apenas um arquivo preenchido com '0' e, quando o arquivo parcialmente baixado é verificado pela primeira vez, ele é comparado com os hashes?
Cenoc 08/12/19

1
É um contêiner vazio para o arquivo completo final e, à medida que cada peça é baixada pelo cliente, é comparada com o hash e, em seguida, colocada no local apropriado no contêiner até que o arquivo completo esteja completo.
geodave

1
Como Sathya mencionou, isso depende do cliente. Alguns pré-alocam um espaço no disco rígido para o arquivo inteiro; ele reservará muito espaço e outros programas não poderão usar esse espaço na unidade até que o arquivo seja baixado. Outros clientes bittorrent colocam as peças concluídas em um local de armazenamento temporário para economizar espaço em disco e montam o arquivo completo assim que todas as peças tiverem sido baixadas. Depende de quais configurações você escolhe.
Geodave
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.