Como obter a ordem exata das peças baixadas pelo cliente bittorrent?

0

Para saber mais sobre o download de torrent, usei wireshark para capturar os pacotes transferidos durante o download. Consegui descobrir que um arquivo é dividido em várias partes provenientes de pares diferentes. Além disso, uma única peça foi transmitida como muitos pedaços diferentes de tamanho igual. O ID da peça e o comprimento são as informações disponíveis para identificar os pedaços.

Consegui obter identificações de partes diferentes transferidas. Mas agora como posso reorganizar essas peças na ordem correta? A peça id tem algum significado a esse respeito?

Além disso, Como os clientes de torrent remontam e armazenam peças? informa sobre valores de hash. De onde posso obter esses valores dos pacotes capturados usando wireshark?

    
por Jackzz 29.11.2014 / 11:18

2 respostas

0

O id da peça tem significância no rearranjo das peças. Para ter certeza, criei minha própria torrente de um pequeno arquivo e o dividi em 10 partes. Então baixei o mesmo torrent de outro sistema e anotei a ordem em que as peças foram baixadas. Ao mesmo tempo eu capturei os pacotes usando wireshark. Depois que o download foi concluído, verifiquei as mensagens have transmitidas pelo cliente e os ids das peças nas mensagens estavam na mesma ordem em que foram baixados. Como não estou preocupado com os valores de hash agora, isso resolve minha questão.

    
por 31.12.2014 / 03:10
0

Ok, vamos simplificar as coisas.

Digamos que você tenha uma torrente de 100 MB. Você pode dividir isso em 100 peças de 1mb (numeradas de 0 a 99), mas não precisa ser 1mb, pode ser tão pequeno quanto 64kb ou tão grande quanto 16mb, e geralmente é (mas nem sempre) -poder. Cada uma dessas peças é composta de pedaços. Cada pedaço é 16kb. Um pedaço é a menor quantidade de dados que um cliente de torrent lida (com um pedaço de 1mb há 64 pedaços).

Um cliente pode solicitar qualquer pedaço, de qualquer peça, de qualquer par que tenha anunciado que tenha essa peça.

Uma vez que o cliente tenha todos os pedaços de uma peça, então verificará essa peça combinada com o hash SHA1 da peça que está no arquivo torrent (para responder ao último bit). Se for aprovado, será salvo e marcado como "tem" para que outras pessoas peçam, caso contrário, ele será descartado.

Então, sim, sem saber o id da peça, como você vai saber de que peça é, então como agrupá-lo com o restante da peça, e então executá-lo contra o hash e salvá-lo?

    
por 31.12.2014 / 01:23