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?
bittorrent
Cenoc
fonte
fonte
Respostas:
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.
fonte