Как работает «Force Re-check»?

7

Я давно пользуюсь uTorrent. Я использовал его функцию «перепроверка силы» бесчисленное количество времени. Каждый раз меня удивляет, как uTorrent успешно определяет, какие части файла были загружены, а какие еще не загружены. Он проверяет их, даже если вы не подключены к Интернету; поэтому я предполагаю, что он не загружает никаких данных из интернета для этой проверки.

Не могли бы вы объяснить, как работает эта функция «принудительной проверки»? Я думаю, что хеш для каждого куска хранится в файле .torrent; но я не уверен, это всего лишь предположение. Я поискал в Google по ключевым словам "torrent file format", чтобы найти формат файлов .torrent, но вместо этого он дал много результатов поиска через торрент. Так что Google на этот раз не мой друг. Пожалуйста, объясни мне это.

hkBattousai
источник
1
Ваше предположение верно.
David Schwartz

Ответы:

4

Насколько я понимаю, торрент-файл содержит хэш для каждого фрагмента загружаемого вами файла. Он просто проверяет хеш-значения для каждого фрагмента, который, по вашему мнению, у вас есть, на основе контрольного списка. Как и при загрузке торрента, любая часть, которая не соответствует, отбрасывается.

Более подробно, основываясь на спецификации bittorrent у вас есть загруженный файл, «длина отрезка» и «кусочки». Длина фрагмента - это размер каждого фрагмента, а фрагменты - просто сумма sha1 каждого фрагмента, добавляемая к предыдущему фрагменту для формирования длинной строки.

Для упрощения предположим, что вы предварительно распределили файл, и у вас в основном имеется большой «дополненный» файл, равный по длине исходному файлу. Во-первых, на основе длины фрагмента программа получает первые n бит файла и выполняет суммирование SHA1. Затем он сравнивает сумму файла SHA1 с соответствующей частью «частей». Если они совпадают, у нас все хорошо. Иначе, это помечено как бесполезное и отброшено.

Journeyman Geek
источник
За исключением того, что при загрузке через HTTP / FTP целостность обычно не проверяется автоматически (если у вас нет специальной программы исправления, которая автоматически запускает хэш и сравнивает его с ожидаемым хешем). Кроме того, если хеш не подходит для обычной загрузки, вы должны отбросить весь файл , а не просто часть этого.
allquixotic
о, мы принимаем битторрент из вопроса, не так ли?
Journeyman Geek
Вы отредактировали свой ответ ... оригинальный ответ сказал что-то вроде "так же, как загрузки"
allquixotic
Я имел в виду торрент-загрузки и плохие куски - я добавил только в двух последних абзацах, потому что я не был доволен оригинальным ответом
Journeyman Geek