7

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

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

1 ответ1

4

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .