Торрент-файл - Torrent file

в BitTorrent система распространения файлов, торрент файл или файл метаинформации это компьютерный файл который содержит метаданные о файлах и папках, которые будут распространяться, а также обычно список сетевых расположений трекеры, которые представляют собой компьютеры, которые помогают участникам системы находить друг друга и формировать эффективные группы рассылки, называемые рои.[1] Торрент-файл не содержит контента для распространения; он содержит только информацию об этих файлах, такую ​​как их имена, структура папок, и размеры, полученные через криптографические хеш-значения для проверки целостности файла. Период, термин торрент может относиться либо к файлу метаданных, либо к загруженным файлам, в зависимости от контекста.

Торрент-файл действует как оглавление (индекс), который позволяет компьютерам находить информацию с помощью клиента Bittorrent. В торрент-файле указываются адреса компьютеров, которые могут отправлять части запрошенного файла. С помощью торрент-файла можно скачивать небольшие части исходного файла с компьютеров, которые его уже скачали. Эти «одноранговые узлы» позволяют загружать файл в дополнение к файлу или вместо него. основной сервер.

Торрент-файлы обычно называются расширение ".torrent".

Сами торрент-файлы и метод использования торрент-файлов были созданы для облегчения нагрузки на центральные серверы, так как вместо отправки файла для запроса он может использовать краудсорсинг полосы пропускания, необходимой для передачи файлов, и сократить время, необходимое для скачивать большие файлы. Многие бесплатные / бесплатные программы и операционные системы, такие как различные Дистрибутивы Linux и GIMP, предлагают вариант загрузки через торрент для пользователей, которым нужны вышеупомянутые преимущества. Другие большие загрузки, такие как медиафайлы, также часто передаются через торрент.

Торрент-файлы
Расширение имени файла
.torrent
Тип интернет-СМИ
приложение / x-bittorrent
СтандартBEP-0003[1]

Задний план

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

Каждый распространяемый файл разделен на небольшие информационные блоки называется шт. Скачивающие узлы достигают высокой скорости загрузки, запрашивая одновременно несколько частей с разных компьютеров в рое. После получения эти части обычно сразу же становятся доступными для загрузки другими участниками роя. Таким образом, нагрузка на сеть распределяется между загрузчиками, а не концентрируется на центральном распределительном узле или кластере. Пока все части доступны, партнеры (загрузчики и загрузчики) могут приходить и уходить; ни одному одноранговому узлу не нужно иметь все блоки или даже оставаться подключенным к рою, чтобы распространение продолжалось среди других одноранговых узлов.

Небольшой торрент-файл создается для представления файла или папки для совместного использования. Торрент-файл действует как ключ к началу загрузки фактического контента. Кто-то, заинтересованный в получении общего файла или папки, сначала получает соответствующий торрент-файл, либо напрямую загружая его, либо используя магнитная ссылка. Затем пользователь открывает этот файл в BitTorrent-клиенте, который автоматизирует остальную часть процесса. Для того, чтобы узнать местонахождение одноранговых узлов в Интернете, которые могут делиться частями, клиент подключается к трекерам, указанным в торрент-файле, и / или достигает аналогичного результата с помощью распределенные хеш-таблицы. Затем клиент подключается напрямую к одноранговым узлам, чтобы запрашивать части и иным образом участвовать в рое. Клиент может также сообщать о прогрессе трекерам, чтобы помочь трекеру с рекомендациями коллег.

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

Файловая структура

Торрент-файл содержит список файлов и метаданные целостности обо всех частях, а также может содержать список трекеров.

Торрент-файл - это закодированный толковый словарь со следующими ключами (ключи в любом закодированном словаре лексикографически упорядоченный ):

  • объявить- URL трекера
  • Информация—Это соответствует словарю, ключи которого зависят от того, является ли один или несколько файлов общими:
    • файлы- список словарей, каждый из которых соответствует файлу (только при совместном использовании нескольких файлов). В каждом словаре есть следующие ключи:
      • длина- размер файла в байтах.
      • дорожка- список строк, соответствующих именам подкаталогов, последняя из которых является фактическим именем файла
    • длина- размер файла в байтах (только при совместном использовании одного файла)
    • имя- предполагаемое имя файла, в котором файл должен быть сохранен (если файл один) / предлагаемое имя каталога, в котором файлы должны быть сохранены (если несколько файлов)
    • длина куска- количество байтов в штуке. Обычно это 28 КиБ = 256 КиБ = 262144 Б.
    • шт—А список хешей, т.е. конкатенация каждой части SHA-1 хэш. Поскольку SHA-1 возвращает 160-битный хеш, шт будет строкой, длина которой кратна 20 байтам. Если торрент содержит несколько файлов, части формируются путем объединения файлов в том порядке, в котором они появляются в файлы словарь (т.е. все части в торренте имеют полную длину, за исключением последней части, которая может быть короче).

Все струны должны быть UTF-8 закодировано, кроме шт, который содержит двоичные данные.

Торрент однозначно идентифицируется infohash, а SHA-1 хэш, рассчитанный по содержимому Информация словарь в форме Bencode. Изменения в других частях торрента не влияют на хеш. Этот хеш используется для идентификации торрента для других одноранговых узлов через DHT и для трекера. Он также используется в магнитные ссылки.

Расширения

Торрент-файл также может содержать дополнительные метаданные, определенные в расширениях спецификации BitTorrent.[2] Они известны как «Предложения по расширению BitTorrent». Примеры таких предложений включают метаданные для указания того, кто и когда создал торрент.

Проект расширений

Эти расширения рассматриваются для стандартизации.

Распределенные хеш-таблицы

BEP-0005[3] расширяет BitTorrent для поддержки распределенные хеш-таблицы.

Торрент-словарь без трекера не имеет объявить ключ. Вместо этого торрент без трекера имеет узлы ключ:

{  # ...  'узлы': [["<хост>", <port>], ["<хост>", <port>], ...],  # ...}

Например,

  'узлы': [["127.0.0.1", 6881], ["your.router.node", 4804]],

Спецификация рекомендует, чтобы узлы «должен быть установлен на K ближайших узлов в таблице маршрутизации клиента, генерирующего торрент. В качестве альтернативы, ключ может быть установлен на заведомо исправный узел, такой как тот, которым управляет человек, генерирующий торрент».

Несколько трекеров

BEP-0012[4] расширяет BitTorrent для поддержки нескольких трекеров.

Новый ключ, список объявлений, помещается в самый верхний словарь (т.е. с объявить и Информация)

{  # ...  "список объявлений": [['']['']],  # ...}

HTTP-семена

BEP-0017[5] расширяет BitTorrent для поддержки семян HTTP.

Новый ключ, httpseeds, помещается в самый верхний список (т.е. с объявить и Информация). Значение этого ключа представляет собой список веб-адресов, по которым можно получить торрент-данные:

{  # ...  'httpseeds': ['http://www.site1.com/source1.php', 'http://www.site2.com/source2.php'],  # ...}

Частные торренты

BEP-0027[6] расширяет BitTorrent для поддержки частных торрентов.

Новый ключ, частный, помещается в Информация толковый словарь. Значение этого ключа равно 1, если торрент частный:

{  # ...  'частный': 1,  # ...}

Приватные торренты должны использоваться с трекером; децентрализованные методы, такие как DHT, PeX, ЛСД отключены для поддержания централизованного управления. Частный торрент можно отредактировать вручную, чтобы удалить частный флаг, но это изменит информационный хэш, образуя отдельный «рой» пиров.

Деревья Меркла

BEP-0030[7] расширяет BitTorrent для поддержки Деревья Меркла. Цель состоит в том, чтобы уменьшить размер файла торрент-файлов, что снижает нагрузку на тех, кто обслуживает торрент-файлы.

Торрент-файл, использующий деревья Меркла, не имеет шт ключ в Информация список. Вместо этого у такого торрент-файла есть root_hash ключ в Информация список. Значение этого ключа является корневым хешем хэша Меркла:

{  # ...  'Информация': {    # ...    кореньхэш: <binary SHA1 hash>,    # ...  },  # ...}

Примеры

Отдельный файл

Вот что такое дескодированный торрент-файл (с длина куска 256 KiB = 262144 байта) для файла debian-503-amd64-CD-1.iso (размер которого составляет 678 301 696 байт) может выглядеть так:

 {     'объявить': 'http://bttracker.debian.org:6969/announce',     'Информация':     {         'длина': 678301696,         'имя': 'debian-503-amd64-CD-1.iso',         'кусокдлина ': 262144,         'шт': <binary SHA1 hashes>     } }

Заметка: шт здесь будет значение 51 КиБ ( ).

Несколько файлов

Вот что такое дескодированный торрент-файл (с длина куска 256 KiB = 262144 B) для двух файлов, 111.txt и 222.txt, может выглядеть так:

 {     'объявить': 'http://tracker.site1.com/announce',     'Информация':     {         'файлы':         [             {'длина': 111, 'дорожка': ['111.txt']},             {'длина': 222, 'дорожка': ['222.txt']}         ],         'имя': 'directoryName',         'кусокдлина ': 262144,         'шт': <binary SHA1 hashes>     } }

Смотрите также

использованная литература

  1. ^ а б «BEP-0003: Спецификация протокола BitTorrent». Bittorrent.org. Получено 2009-10-22.
  2. ^ «BEP-0000: Указатель предложений по расширению BitTorrent». Bittorrent.org. Получено 2009-10-22.
  3. ^ "BEP-0005: Протокол DHT". Bittorrent.org. Получено 2009-10-22.
  4. ^ «BEP-0012: Расширение метаданных для нескольких трекеров». Bittorrent.org. Получено 2009-10-22.
  5. ^ "BEP-0017: HTTP-заполнение". Bittorrent.org. Получено 2009-10-22.
  6. ^ "BEP-0027: Частные торренты". Bittorrent.org. Получено 2009-10-22.
  7. ^ "BEP-0030: расширение хэша Меркла торрента". Bittorrent.org. Получено 2009-10-22.

внешние ссылки