Jump to content

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

Торрент-файлы
Расширение имени файла
.торрент
Тип интернет-СМИ
приложение/x-bittorrent
Стандартный БЭП-0003 (v1), [1] БЭП-0052 (v2) [2]

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

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

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

Предыстория [ править ]

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

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

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

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

Структура файла [ править ]

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

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

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

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

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

BitTorrent v2 [ править ]

Протокол BitTorrent v2 (BEP-0052) представляет новое определение торрент-файла. [2] Базовая структура:

  • анонс — URL трекера
  • info — это соответствует словарю, ключи которого зависят от того, используется ли общий доступ к одному или нескольким файлам:
    • name — предлагаемое имя каталога, в котором будут сохранены файлы.
    • длина фрагмента — количество байтов в фрагменте. Обычно это 2 8 КиБ = 256 КиБ = 262 144 Б. В v2 это должна быть степень 2.
    • мета-версия — номер «2».
    • дерево файлов — дерево словарей. Каждый ключ представляет имя каталога или имя файла. Файл
      • длина — размер файла в байтах (только если используется общий доступ к одному файлу)
      • корень фрагмента — для непустых файлов это корневой хеш дерева Меркла с коэффициентом ветвления 2, построенный из блоков файла размером 16 КБ.
  • Слои частей — словарь строк, содержащий новый тип корневых хэшей Меркла для каждой части.

Новый формат использует SHA-256 как для хэширования частей, так и для информационного хеша , заменяя неработающий хеш SHA-1 . Магнитная ссылка «btmh» будет содержать полный 32-байтовый хэш, тогда как для связи с трекерами и по DHT используется усеченная 20-байтовая версия, чтобы вписаться в старую структуру сообщения. [2] Можно создать торрент-файл только с обновленными новыми полями для торрента «v2» или со старыми и новыми полями для «гибридного» формата. Однако, поскольку торрент будет иметь разные информационные хэши в сетях v1 и v2, образуются два роя, и для их объединения потребуется специальная обработка со стороны клиента. [3]

Основной особенностью нового формата является применение деревьев Меркла , позволяющих индивидуально проверять и повторно загружать блоки размером 16 КБ. Каждый файл теперь всегда занимает целые размеры и имеет независимый корневой хэш Меркла, так что можно найти дубликаты файлов в несвязанных торрент-файлах любой длины. Размер файла не уменьшается (при условии, что размер фрагмента остается прежним; древовидная структура версии 2 позволяет использовать более крупные фрагменты с меньшими вредными последствиями), но Для магнитных ссылок требуется информационный словарь (только в торрентах v2). [3]

Расширения [ править ]

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

Принятые расширения [ править ]

Эти расширения были развернуты в одной или нескольких реализациях, а также доказали свою полезность благодаря последовательному и широкому использованию. Хотя они могут потребовать незначительных изменений, в основном они считаются завершенными и ждут только благословения Брэма Коэна , чтобы получить статус окончательного/активного процесса.

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

БЭП-0005 [5] расширяет BitTorrent для поддержки распределенных хэш-таблиц , в частности Mainline DHT .

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

{
  # ...
  'nodes': [["<host>", <port>], ["<host>", <port>], ...],
  # ...
}

Например,

  'nodes': [["127.0.0.1", 6881], ["your.router.node", 4804]],

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

Несколько трекеров [ править ]

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

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

{
  # ...
  'announce-list': [['<tracker1-url>']['<tracker2-url>']],
  # ...
}

HTTP-сиды [ править ]

БЭП-0019 [7] — одно из двух расширений, позволяющих использовать HTTP-семена в BitTorrent.

В BEP-0019 новый ключ url-list, помещается в самый верхний список. Клиент использует ссылки для сборки обычных URL-адресов HTTP — поддержка на стороне сервера не требуется. Эта функция очень часто используется проектами с открытым исходным кодом , предлагающими загрузку программного обеспечения. разумно выбирать и одновременно использовать зеркальные сайты Веб-сиды позволяют клиенту P2P или HTTP(S). Это позволит снизить нагрузку на серверы проекта и максимально увеличить скорость загрузки. MirrorBrain [ de ] автоматически генерирует торренты с веб-сидами.

Частные торренты [ править ]

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

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

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

Приватные торренты следует использовать с приватным трекером . Такой трекер ограничивает доступ к торрентам, которые он отслеживает, проверяя IP-адрес узла и отказываясь предоставить список узлов, если IP-адрес неизвестен. Сам пир обычно регистрируется на трекере через закрытое онлайн-сообщество; частный трекер обычно также хранит статистику передачи данных для использования в сообществе.

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

Черновики расширений [ править ]

Эти расширения рассматриваются на предмет стандартизации. Большинство из них уже широко приняты в качестве стандартов де-факто .

HTTP-сиды [ править ]

БЭП-0017 [9] расширяет BitTorrent для поддержки семян HTTP, которые позже стали чаще называть «веб-сидами», чтобы включать HTTPS .

В BEP-0017 новый ключ, httpseeds помещается в самый верхний список (т. е. с объявить и информация ). Значение этого ключа представляет собой список веб-адресов, по которым можно получить торрент-данные. Требуется специальная поддержка сервера. Он остается в статусе «Черновик».

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

Деревья Меркла [ править ]

БЭП-0030 [10] расширяет BitTorrent для поддержки деревьев Меркла (первоначально реализовано в Tribler ). Целью является уменьшение размера торрент-файлов, что снижает нагрузку на тех, кто обслуживает торрент-файлы.

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

{
  # ...
  'info': {
    # ...
    'root hash': <binary SHA1 hash>,
    # ...
  },
  # ...
}

BitTorrent v2 использует другой тип дерева Меркла. [3]

Примеры [ править ]

Один файл [ править ]

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

{
    'announce': 'http://bttracker.debian.org:6969/announce',
    'info':
    {
        'length': 678301696,
        'name': 'debian-503-amd64-CD-1.iso',
        'piece length': 262144,
        'pieces': <binary SHA1 hashes>
    }
}

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

Несколько файлов [ править ]

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

{
    'announce': 'http://tracker.example.com/announce',
    'info':
    {
        'files':
        [
            {'length': 111, 'path': ['111.txt']},
            {'length': 222, 'path': ['222.txt']}
        ],
        'name': 'directoryName',
        'piece length': 262144,
        'pieces': <binary SHA1 hashes>
    }
}

Гибрид, несколько файлов [ править ]

См. также [ править ]

Ссылки [ править ]

  1. ^ Jump up to: Перейти обратно: а б «BEP-0003: Спецификация протокола BitTorrent» . BitTorrent.org. Архивировано из оригинала 26 июля 2019 г. Проверено 22 октября 2009 г.
  2. ^ Jump up to: Перейти обратно: а б с "bep_0052.rst_post" . bittorrent.org . Архивировано из оригинала 12 ноября 2020 г. Проверено 9 февраля 2023 г.
  3. ^ Jump up to: Перейти обратно: а б с «БитТоррент v2» . Либторрент . Сентябрь 2020 г. Архивировано из оригинала 30 октября 2020 г. Проверено 9 февраля 2023 г.
  4. ^ «BEP-0000: Указатель предложений по улучшению BitTorrent» . BitTorrent.org. Архивировано из оригинала 11 февраля 2010 г. Проверено 22 октября 2009 г.
  5. ^ «BEP-0005: Протокол DHT» . BitTorrent.org. Архивировано из оригинала 13 февраля 2010 г. Проверено 22 октября 2009 г.
  6. ^ «BEP-0012: Расширение метаданных мультитрекера» . BitTorrent.org. Архивировано из оригинала 27 декабря 2012 г. Проверено 22 октября 2009 г.
  7. ^ "bep_0019.rst_post" . www.bittorrent.org .
  8. ^ «BEP-0027: Частные торренты» . BitTorrent.org. Архивировано из оригинала 24 марта 2013 г. Проверено 22 октября 2009 г.
  9. ^ «BEP-0017: HTTP-раздача» . BitTorrent.org. Архивировано из оригинала 13 декабря 2013 г. Проверено 22 октября 2009 г.
  10. ^ «BEP-0030: Расширение торрент-хеша Merkle» . BitTorrent.org. Архивировано из оригинала 14 сентября 2009 г. Проверено 22 октября 2009 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 2113c62f48880c7a830bf85f477cb4f7__1717963560
URL1:https://arc.ask3.ru/arc/aa/21/f7/2113c62f48880c7a830bf85f477cb4f7.html
Заголовок, (Title) документа по адресу, URL1:
Torrent file - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)