В системе распространения файлов BitTorrent торрент-файл или файл метаинформации - это компьютерный файл, содержащий метаданные о файлах и папках, подлежащих распространению, а также обычно список сетевые расположения трекеров, которые представляют собой компьютеры, которые помогают участникам системы находить друг друга и формировать эффективные группы распределения, называемые роями. Торрент-файл не содержит контента для распространения; он содержит только информацию об этих файлах, такую как их имена, структура папок и размеры, полученные с помощью криптографических хеш-значений для проверки целостности файла. Термин торрент может относиться либо к файлу метаданных, либо к загруженным файлам, в зависимости от контекста.
Торрент-файл действует как оглавление (индекс), которое позволяет компьютерам находить информацию с помощью клиента Bittorrent. В торрент-файле указываются адреса компьютеров, которые могут отправлять части запрошенного файла. С помощью торрент-файла можно скачивать небольшие части исходного файла с компьютеров, которые его уже скачали. Эти «одноранговые узлы» позволяют загружать файл в дополнение к первичному серверу или вместо него..
Торрент-файлы обычно именуются с расширением «.torrent».
Сами торрент-файлы и метод использования торрент-файлов были созданы, чтобы облегчить нагрузку на центральные серверы, так как вместо отправки файла для запроса он может использовать краудсорсинг полосы пропускания, необходимой для передачи файлов, и сократить время, необходимое для загрузки больших файлов. Многие бесплатные / бесплатные программы и операционные системы, такие как различные дистрибутивы Linux и GIMP, предлагают возможность загрузки через торрент для пользователей, которым нужны вышеупомянутые преимущества. Другие большие загрузки, такие как медиафайлы, также часто передаются через торрент.
Расширение имени файла | .torrent |
---|---|
Тип интернет-носителя | application / x-bittorrent |
Стандартный | BEP-0003 |
Как правило, доступ в Интернет является асимметричным, поддерживая более высокие скорости загрузки, чем скорости загрузки, ограничивая полосу пропускания для каждой загрузки, а иногда и ограничивая полосу пропускания и периоды, когда системы недоступны. Это создает неэффективность, когда многие люди хотят получить один и тот же набор файлов из одного источника; источник всегда должен быть в сети и иметь огромную исходящую полосу пропускания. Протокол BitTorrent решает эту проблему за счет децентрализации распределения, используя возможность людей объединяться в сеть «одноранговая » между собой.
Каждый файл, подлежащий распространению, делится на небольшие информационные блоки, называемые частями. Скачивающие узлы достигают высокой скорости загрузки, запрашивая одновременно несколько частей с разных компьютеров в рое. После получения эти части обычно сразу же становятся доступными для загрузки другими участниками роя. Таким образом, нагрузка на сеть распределяется между загрузчиками, а не концентрируется на центральном распределительном узле или кластере. Пока доступны все части, партнеры (загрузчики и загрузчики) могут приходить и уходить; ни одному партнеру не нужно иметь все фрагменты или даже оставаться подключенным к рою, чтобы распространение продолжалось среди других одноранговых узлов.
Небольшой торрент-файл создается для представления файла или папки для совместного использования. Торрент-файл действует как ключ к началу загрузки фактического контента. Кто-то, кто заинтересован в получении общего файла или папки, сначала получает соответствующий торрент-файл, либо напрямую загружая его, либо используя магнитную ссылку . Затем пользователь открывает этот файл в BitTorrent-клиенте, который автоматизирует остальную часть процесса. Чтобы узнать расположение в Интернете одноранговых узлов, которые могут совместно использовать части, клиент подключается к трекерам, указанным в торрент-файле, и / или достигает аналогичного результата за счет использования распределенных хеш-таблиц. Затем клиент подключается напрямую к одноранговым узлам, чтобы запрашивать части и иным образом участвовать в рое. Клиент может также сообщать о прогрессе трекерам, чтобы помочь трекеру с рекомендациями коллег.
Когда у клиента есть все части, клиент BitTorrent собирает их в пригодную для использования форму. Они также могут продолжать делиться частями, повышая его статус до статуса сеялки, а не обычного пэра.
Торрент-файл содержит список файлов и метаданные целостности обо всех частях и, возможно, содержит список трекеров.
Торрент-файл - это закодированный словарь со следующими ключами (ключи в любом закодированном словаре лексикографически упорядочены ):
Все строки должны иметь кодировку 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': [[''] [' ']], #...}
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 КиБ ( ).
Вот что такое дескодированный торрент-файл (с 'длиной фрагмента'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, «штук»:}}