Хотя магнитные ссылки могут использоваться в различных контекстах, они особенно полезны в одноранговых сетях обмена файлами, поскольку позволяют обращаться к ресурсам без необходимости постоянно доступного хоста и могут быть созданы любым, кто уже имеет файл, без необходимости выдачи их центральным органом. Это делает их популярными для использования в качестве «гарантированных» поисковых запросов в сообществе обмена файлами , где каждый может распространить магнитную ссылку, чтобы гарантировать, что ресурс, полученный по этой ссылке, является тем, который предназначен, независимо от того, как он получен.
История
Стандарт Magnet URI был разработан Bitzi в 2002 году, отчасти как «независимое от поставщика и проекта обобщение» схем URI ed2k:и freenet:, используемых eDonkey2000 и Freenet соответственно, и попытка как можно точнее следовать официальным стандартам URI IETF . BitTorrent представил этот протокол в 2020 году как часть изменений BitTorrent v2. [1]btmh:
Формат
Магнитные URI состоят из серии одного или нескольких параметров, порядок которых не имеет значения, отформатированных так же, как строки запроса , которые обычно завершают URL-адреса HTTP .
Поддерживаются следующие параметры: [2] [3]
Стандарт также допускает экспериментальные параметры для конкретного приложения, которые должны начинаться с «x». [ нужна цитата ]
Точная тема (xt)
Параметр xt указывает URN для данного протокола p2p. Его цель — предоставить параметр поиска для поиска метаданных торрента. Это эффективно действует как замена файла .torrent, который сам содержит метаданные торрента, вместо этого поиск этих метаданных в сети p2p (с использованием URN). Каждый протокол обрабатывает URN уникальным образом; например, xt=urn:btih:FFC7E738EAA4CD4ECF51EC6FD669C6CDE2C281A8использует btih (протокол BitTorrent v1), поэтому клиент BitTorrent может взять хеш и найти метаданные торрента в BitTorrent DHT. [6] В случае DHT клиент выполняет поиск по набору заранее известных узлов и запрашивает метаданные для информационного хеша; эти узлы будут отправлять тот же запрос другим известным узлам, пока в конечном итоге не будет найден и возвращен рой.
xt также позволяет настроить группу. Можно включить несколько файлов, добавив к каждому параметру ссылки числовой номер, которому предшествует точка («.»). [ нужна цитата ]
magnet:?xt.1=[ URN of the first file]&xt.2=[ URN of the second file]
Не формальные URN для ссылок Magnet, такие хеш-суммы используются eDonkey2000 для восстановления и контроля целостности загружаемых и уже загруженных файлов.
Это хеш- суммы SHA-1 в шестнадцатеричном коде разделов «информация» метафайлов BitTorrent , которые используются BitTorrent для идентификации загружаемых файлов или наборов файлов. Для обратной совместимости с существующими ссылками клиенты также должны поддерживать версию хеша в кодировке Base32 . [3]
Некоторым клиентам требуется Base32 info_hash (например, Vuze ).
Хэш информации BitTorrent v2 (BTMH)
BitTorrent v2 заменяет устаревший хеш SHA-1 информационным хешем SHA-256 . Информационному хешу версии 2 присвоен новый префикс ( btmh), позволяющий использовать торренты, которые могут участвовать в роях как версии 1, так и версии 2 [7]
xt=urn:btmh:[1220: (v2 prefix) BitTorrent Info Hash (Hex) ]
Существует два типа ссылок для скачивания, которые Magnet-ссылка может включать в себя в качестве прямого или резервного источника.
«как» («приемлемый источник»)
Большинство клиентов рассматривают «as» как эквивалент токена «xs», когда дело доходит до приоритета, и игнорируют тайм-аут перед обращением к источникам «as», указанным в спецификациях.
Веб-URL с адресацией по содержимому
Этот тип ссылки на основе RFC 2168 используется gnutella , а также приложениями G2 . [8]
xs=http://[Client Address]:[Port of client]/uri-res/N2R?[ URN containing a file hash ]
Ссылка на концентратор DirectConnect для поиска источников файла.
Этот тип ссылки немедленно подключает клиента DirectConnect к соответствующему концентратору.
xs=dchub://[hub address]:[hub port]
Ссылка на веб-кеш исходного кода файла на Gnutella2.
В этом случае включенная ссылка указывает не на IP-адрес клиента или прямой источник, а на кэш источника, в котором хранятся IP-адреса других клиентов, обращающихся к нему для загрузки того же файла. Как только клиент подключается к кешу, ему предоставляются IP-адреса для альтернативных источников, а его собственный IP-адрес сохраняется в кеше и пересылается следующему, подключающемуся к кешу. Эта система работает аналогично трекеру BitTorrent .
Для экспериментальных и самодополняющих неформальных вариантов x.можно использовать префикс, за которым следует выбранная суффиксная буква. Эти имена гарантированно никогда не будут стандартизированы.
x.[name of the new parameter]=[data of the new parameter (URL encoded)][ нужна цитата ]
^ ab Передает ссылку на внешнее программное обеспечение
^ ab adc://[hubaddress]:[hubport]
^ ab adcs://[hubaddress]:[hubport]
^ Начиная с версии 2.5.1.0
Рекомендации
^ "БитТоррент v2" . БитТоррент. Архивировано из оригинала 30 октября 2020 года . Проверено 7 сентября 2020 г.
^ ab "magnet-test.c в транке/libtransmission; редакция 9531". Передача инфекции. Архивировано из оригинала 17 февраля 2012 г. Проверено 4 февраля 2012 г.
^ abcd «Предложение 9 по улучшению BitTorrent: расширение для одноранговых узлов для отправки файлов метаданных». bittorrent.org (опубликовано 31 января 2008 г.). 26 марта 2017 г. Архивировано из оригинала 10 октября 2022 г. Проверено 4 ноября 2022 г.
^ "libtorrent/magnet_uri.cpp по адресу 64817e0e8793d0875fc10245de52ffb2540a223d · arvidn/libtorrent". libtorrent . Архивировано из оригинала 04.11.2022 . Получено 4 ноября 2022 г. - через GitHub .
^ «Предложение по улучшению BitTorrent 53: расширение Magnet URI — выберите определенные индексы файлов для загрузки» . BitTorrent.org . 06.06.2017. Архивировано из оригинала 10 октября 2022 г. Проверено 4 ноября 2022 г.
^ "bep_0005.rst_post". bittorrent.org . Проверено 12 мая 2022 г.
^ "БитТоррент v2" . libbittorrent.org . libbittorrent. 07.09.2020. Архивировано из оригинала 22 октября 2022 г. Проверено 5 ноября 2022 г.
↑ Чапвеске, Джастин (29 ноября 2001 г.). «HTTP-расширения для сети, адресуемой по содержимому». www-разговор . W3C. Архивировано из оригинала 28 июля 2011 года . Проверено 7 ноября 2010 г.
^ «Улучшение ядра v1.74: поддержка параметра ws в URI Magnet для добавления веб-сида» . биткомет . Архивировано из оригинала 10 апреля 2021 г. Проверено 7 апреля 2021 г.
^ «magnet.c в транке/libtransmission; редакция 9979» . Передача инфекции. Архивировано из оригинала 17 февраля 2012 г. Проверено 4 февраля 2012 г.
^ "magnet.c в libtransmission: Commit 5c3fd1b5ccc3a8c4ab68e2c56861df31dd1c720a" . Передача инфекции. Архивировано из оригинала 04 сентября 2021 г. Проверено 4 сентября 2021 г.
Внешние ссылки
Проект Magnet-URI на SourceForge , раннее определение формата (последнее обновление 2002 г.)
CHK Бесплатная утилита контрольной суммы с поддержкой SHA1-Base32 и ED2K