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

редактировать
Формат файла, связанный с BitTorrent

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

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

Торрент-файлы обычно именуются с расширением «.torrent».

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

Торрент-файлы
Расширение имени файла .torrent
Тип интернет-носителя application / x-bittorrent
Стандартный BEP-0003
Содержание
  • 1 Фон
  • 2 Структура файла
  • 3 Расширения
    • 3.1 Проект расширений
      • 3.1.1 Распределенные хеш-таблицы
      • 3.1.2 Несколько трекеров
      • 3.1.3 Семена HTTP
      • 3.1.4 Частные торренты
      • 3.1.5 Деревья Меркла
  • 4 Примеры
    • 4.1 Один файл
    • 4.2 Несколько файлов
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
Предпосылки

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

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

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

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

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

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

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

  • анонс- URL трекера
  • info- соответствует словарю, ключи которого зависят от того, используется ли один или несколько файлов:
    • files- список словарей для каждого соответствующий файлу (только при совместном использовании нескольких файлов). Каждый словарь имеет следующие ключи:
      • length- размер файла в байтах.
      • path- список строк, соответствующих именам подкаталогов, последний из которых является фактическим именем файла
    • length- размер файла в байтах (только когда один файл является общим)
    • name- предполагаемое имя файла, в котором файл должен быть сохранен (если один файл) / предлагаемое имя каталога, в котором файлы должны быть сохранены (если несколько файлов)
    • длина куска- количество байтов в куске. Обычно это 2 КиБ = 256 КиБ = 262 144 Б.
    • частей- хэш-список, то есть конкатенация хешей SHA-1 каждой части. Поскольку SHA-1 возвращает 160-битный хэш, частейбудет строкой, длина которой кратна 20 байтам. Если торрент содержит несколько файлов, части формируются путем объединения файлов в том порядке, в котором они появляются в словаре files(т. Е. Все части в торренте имеют полную длину, за исключением последней части, которая может быть короче).

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

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

Расширениях

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

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

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

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

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

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

{#... 'nodes': [["", ], ["", ],...], #...}

Например,

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

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

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

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

Новый ключ, announce-list, помещается в самый верхний словарь (т. Е. С announceи info)

{#... 'announce-list': [[''] ['']], #...}

начальные значения HTTP

BEP-0017 расширяет BitTorrent для поддержки начальных значений HTTP.

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

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

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

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

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

{#... 'private': 1, #...}

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

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

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

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

{#... 'info': {#... 'root hash': , #...}, #...}
Примеры

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

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

{'объявить': 'http://bttracker.debian.org:6969/announce', ' info ': {' length ': 678301696,' name ':' debian-503-amd64-CD-1.iso ',' piece length ': 262144,' piece ': }}

Примечание: штукздесь будет значение 51 КиБ (⌈ lengthpiecelength ⌉ × 160 = 414080 бит {\ displaystyle {\ color {Blue} \ left \ lceil {\ color {Black} {\ frac {\ mathtt {length}} {\ mathtt {piece \ length}}}} \ right \ rceil} \ times 160 = 414080 \ \ mathrm {bits}}{\ displaystyle {\ color {Blue} \ left \ lceil {\ color {Black} {\ frac {\ mathtt {length}} {\ mathtt {piece \ length}}}} \ right \ rceil} \ times 160 = 414080 \ \ mathrm {bits}} ).

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

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

{'announce': 'http://tracker.site1.com/announce', 'info': {'files': [{'length': 111, 'path': ['111.txt']}, {'length': 222, 'path': ['222.txt']}], 'name': 'directoryName', «длина части»: 262144, «штук»: }}
См. также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-11 07:54:11
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте