stringtranslate.com

Схема магнитного URI

Округленный значок магнита, использованный в The Pirate Bay.

Magnet — это схема URI , определяющая формат магнитных ссылок , фактический стандарт идентификации файлов ( URN ) по их содержимому с помощью криптографического хеш-значения , а не по их местоположению.

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

История

Стандарт 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]
Хэш тигрового дерева (TTH)
Эти хеши используются, среди прочего, в Direct Connect и G2 (Gnutella2).
xt=urn:tree:tiger:[ TTH Hash (Base32) ]
Алгоритм безопасного хеширования 1 (SHA-1)
Эти хеш-суммы используются в gnutella и G2 (Gnutella2).
xt=urn:sha1:[ SHA-1 Hash (Base32) ]
BitPrint
Такие хеш-суммы состоят из хеша SHA-1, за которым следует хэш TTH, разделенный точкой; они используются на gnutella и G2 (Gnutella2).
xt=urn:bitprint:[ SHA-1 Hash (Base32) ].[ TTH Hash (Base32) ]
Хэш ED2K (eDonkey2000)
Эти хеш-суммы используются на eDonkey2000 .
xt=urn:ed2k:[ ED2K Hash (Hex) ]
Усовершенствованный интеллектуальный обработчик коррупции (AICH)
Не формальные URN для ссылок Magnet, такие хеш-суммы используются eDonkey2000 для восстановления и контроля целостности загружаемых и уже загруженных файлов.
xt=urn:aich:[ aich Hash (Base32) ]
Казаа хеш
Эти хэш-суммы, используемые в FastTrack , уязвимы для атак на коллизии хэшей .
xt=urn:kzhash:[ Kazaa Hash (Hex) ]
Хэш информации BitTorrent (BTIH)
Это хеш- суммы SHA-1 в шестнадцатеричном коде разделов «информация» метафайлов BitTorrent , которые используются BitTorrent для идентификации загружаемых файлов или наборов файлов. Для обратной совместимости с существующими ссылками клиенты также должны поддерживать версию хеша в кодировке Base32 . [3]
xt=urn:btih:[ BitTorrent Info Hash (Hex) ]
Некоторым клиентам требуется 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) ]
Дайджест сообщения 5 (MD5)
Поддерживаемые G2 (Gnutella2), такие хеши уязвимы для атак на коллизии хэшей .
xt=urn:md5:[ MD5 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 ]
xs=http://192.0.2.27:6346/uri-res/N2R?urn:sha1:FINYVGHENTHSMNDSQQYDNLPONVBZTICF
Ссылка на концентратор DirectConnect для поиска источников файла.
Этот тип ссылки немедленно подключает клиента DirectConnect к соответствующему концентратору.
xs=dchub://[hub address]:[hub port]
Ссылка на веб-кеш исходного кода файла на Gnutella2.
В этом случае включенная ссылка указывает не на IP-адрес клиента или прямой источник, а на кэш источника, в котором хранятся IP-адреса других клиентов, обращающихся к нему для загрузки того же файла. Как только клиент подключается к кешу, ему предоставляются IP-адреса для альтернативных источников, а его собственный IP-адрес сохраняется в кеше и пересылается следующему, подключающемуся к кешу. Эта система работает аналогично трекеру BitTorrent .
xs=http://cache.freebase.be/[ SHA-1 hash ]
Ссылка на источник eD2k
xs=ed2kftp://[client address]:[client port]/[ed2k hash]/[file size]/

Формат дополнения (х.)

Для экспериментальных и самодополняющих неформальных вариантов x.можно использовать префикс, за которым следует выбранная суффиксная буква. Эти имена гарантированно никогда не будут стандартизированы.

x.[name of the new parameter]=[data of the new parameter (URL encoded)][ нужна цитата ]

Клиенты

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

Заметки с пояснениями

  1. ^ abcdef dchub://[hubaddress]:[hubport]
  2. ^ ab Передает ссылку на внешнее программное обеспечение
  3. ^ ab adc://[hubaddress]:[hubport]
  4. ^ ab adcs://[hubaddress]:[hubport]
  5. ^ Начиная с версии 2.5.1.0

Рекомендации

  1. ^ "БитТоррент v2" . БитТоррент. Архивировано из оригинала 30 октября 2020 года . Проверено 7 сентября 2020 г.
  2. ^ ab "magnet-test.c в транке/libtransmission; редакция 9531". Передача инфекции. Архивировано из оригинала 17 февраля 2012 г. Проверено 4 февраля 2012 г.
  3. ^ abcd «Предложение 9 по улучшению BitTorrent: расширение для одноранговых узлов для отправки файлов метаданных». bittorrent.org (опубликовано 31 января 2008 г.). 26 марта 2017 г. Архивировано из оригинала 10 октября 2022 г. Проверено 4 ноября 2022 г.
  4. ^ "libtorrent/magnet_uri.cpp по адресу 64817e0e8793d0875fc10245de52ffb2540a223d · arvidn/libtorrent". libtorrent . Архивировано из оригинала 04.11.2022 . Получено 4 ноября 2022 г. - через GitHub .
  5. ^ «Предложение по улучшению BitTorrent 53: расширение Magnet URI — выберите определенные индексы файлов для загрузки» . BitTorrent.org . 06.06.2017. Архивировано из оригинала 10 октября 2022 г. Проверено 4 ноября 2022 г.
  6. ^ "bep_0005.rst_post". bittorrent.org . Проверено 12 мая 2022 г.
  7. ^ "БитТоррент v2" . libbittorrent.org . libbittorrent. 07.09.2020. Архивировано из оригинала 22 октября 2022 г. Проверено 5 ноября 2022 г.
  8. Чапвеске, Джастин (29 ноября 2001 г.). «HTTP-расширения для сети, адресуемой по содержимому». www-разговор . W3C. Архивировано из оригинала 28 июля 2011 года . Проверено 7 ноября 2010 г.
  9. ^ «Улучшение ядра v1.74: поддержка параметра ws в URI Magnet для добавления веб-сида» . биткомет . Архивировано из оригинала 10 апреля 2021 г. Проверено 7 апреля 2021 г.
  10. ^ «magnet.c в транке/libtransmission; редакция 9979» . Передача инфекции. Архивировано из оригинала 17 февраля 2012 г. Проверено 4 февраля 2012 г.
  11. ^ "magnet.c в libtransmission: Commit 5c3fd1b5ccc3a8c4ab68e2c56861df31dd1c720a" . Передача инфекции. Архивировано из оригинала 04 сентября 2021 г. Проверено 4 сентября 2021 г.

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