Questão Como funciona a "Re-Check"?


Eu tenho usado o uTorrent por um longo tempo. Eu usei seu recurso de "força de verificação" inúmeras vezes. Toda vez que me surpreende como o uTorrent detecta com sucesso quais partes do arquivo foram baixadas e quais partes ainda precisam ser baixadas. Ele os verifica mesmo se você não estiver conectado à internet; então presumo que não faça download de dados da internet para fazer essa verificação.

Você pode, por favor, me explicar como funciona esse recurso de "reavaliar a força"? Eu acho que um hash para cada pedaço é mantido no arquivo .torrent; mas não tenho certeza, é apenas um palpite. Eu procurei no Google com palavras-chave "formato de arquivo torrent" para encontrar o formato de arquivo de arquivos .torrent, mas em vez disso, ele retornou um monte de resultados de pesquisa de torrent. Então o Google não é meu amigo dessa vez. Por favor, explique para mim.


5


origem


Seu palpite está correto. - David Schwartz


Respostas:


Pelo que entendi, o arquivo torrent contém um hash para cada parte do arquivo que você está baixando. Ele simplesmente verifica os hashes para cada peça que você acha que tem, contra a lista de verificação. Assim como quando você faz o download de um torrent, qualquer parte que não corresponda é descartada.

Mais detalhadamente, baseado na especificações bitorrent você tem o seu arquivo baixado, 'pedaço de comprimento' e 'pedaços'. O comprimento da peça é o tamanho de cada peça, e as peças são simplesmente a soma sha1 de cada peça, anexada à peça anterior para formar uma longa cadeia.

Para simplificar as coisas, vamos supor que você pré-alocou o arquivo e, basicamente, você tem um grande arquivo 'preenchido' de tamanho igual ao seu arquivo de origem. Primeiro, baseado no comprimento da peça, o programa obtém os primeiros n bits do arquivo e faz uma soma SHA1. Em seguida, compara a soma SHA1 do arquivo com a parte correspondente de 'partes'. Se eles combinam, estamos bem. Mais, é marcado como não bom e descartado.


3



Exceto que quando você faz o download via HTTP / FTP, a integridade não é geralmente verificada automaticamente (a menos que você tenha um programa de correção personalizado que execute automaticamente um hash e compare-o com o hash esperado). Além disso, se o hash não corresponder a um download normal, você terá que descartar arquivo inteironão apenas um pedaço dele. - allquixotic
oh, estamos assumindo bittorrent da questão não é? - Journeyman Geek♦
você editou sua resposta ... a resposta original dizia algo como "apenas como downloads" - allquixotic
Eu quis dizer downloads de torrent e pedaços ruins - eu só adicionei nos dois últimos parágrafos porque eu não estava feliz com a resposta original - Journeyman Geek♦