Схема магнитного URI
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Magnet — это схема URI , определяющая формат магнитных ссылок , фактический стандарт для идентификации файлов ( URN ) по их содержимому с помощью криптографического хеш-значения , а не по их местоположению.
Хотя магнитные ссылки могут использоваться в различных контекстах, они особенно полезны в одноранговых сетях обмена файлами, поскольку позволяют обращаться к ресурсам без необходимости постоянно доступного хоста и могут быть созданы любым, кто уже имеет файл, без необходимости выдачи их центральным органом. Это делает их популярными для использования в качестве «гарантированных» поисковых запросов в сообществе обмена файлами , где каждый может распространить магнитную ссылку, чтобы гарантировать, что ресурс, полученный по этой ссылке, является тем, который предназначен, независимо от того, как он получен.
История
[ редактировать ]Стандарт Magnet URI был разработан Bitzi в 2002 году, отчасти как «независимое от поставщика и проекта обобщение» ed2k:
и freenet:
Схемы URI, используемые eDonkey2000 и Freenet соответственно, и стараются IETF URI максимально точно следовать официальным стандартам . BitTorrent представил btmh:
протокол в 2020 году в рамках изменений BitTorrent v2. [1]
Формат
[ редактировать ]Магнитные URI состоят из серии одного или нескольких параметров, порядок которых не имеет значения, отформатированных так же, как строки запроса , которые обычно завершают URL-адреса HTTP .
Поддерживаются следующие параметры: [2] [3]
Параметр | Имя | Описание |
---|---|---|
хт | Точная тема | URN, файла содержащий хэш . Это наиболее важная часть магнитной ссылки, которая используется для поиска и проверки указанного файла. URN зависит от протокола, поэтому URN хэша файла в btih (BitTorrent) будет полностью отличаться от URN хэша файла для ed2k.
|
дн | Отображаемое имя | Имя файла, которое будет отображаться пользователю для удобства. |
XL | Точная длина | Размер файла, в байтах |
тр | Адресный трекер | трекера URL-адрес ; используется для получения ресурсов для загрузок BitTorrent без необходимости поддержки DHT . [3] Значение должно быть закодировано в URL.
|
WS | Веб-сид | Полезные данные передаются через HTTP(S) |
как [ нужна ссылка ] | Приемлемый источник | Относится к прямой загрузке с веб-сервера. Рассматривается только как запасной источник на случай, если клиент не может найти и/или загрузить связанный файл в поддерживаемых им P2P-сетях.
|
хз [ нужна ссылка ] | точный источник | Либо источник загрузки HTTP (или HTTPS, FTP, FTPS и т. д.) для файла, на который указывает магнитная ссылка, либо адрес источника P2P для файла, либо адрес концентратора (в случае DC++ ), к которому клиент пытается подключиться напрямую, запрашивая файл и/или его источники. Это поле обычно используется клиентами P2P для хранения источника и может включать хэш файла. |
КТ [ нужна ссылка ] | Ключевое слово Тема | Указывает строку ключевых слов для поиска в P2P-сетях, а не конкретный файл.
|
тонна [ нужна ссылка ] | Тема манифеста | Ссылка на метафайл, содержащий список магнето (MAGMA — MAGnet MAnifest ); т.е. ссылка на список ссылок
|
так [4] | Выбрать только | Перечисляет конкретные файлы, которые торрент-клиенты должны загрузить, [5] указывается как отдельные индексы файлов или диапазоны (включительно).
|
x.pe | Вглядеться | Указывает фиксированные адреса одноранговых узлов для подключения. Используется для начального обнаружения пиров при отсутствии (например) трекеров или DHT . [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
), чтобы разрешить торренты, которые могут участвовать в роях как v1, так и v2. [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)]
[ нужна ссылка ]
Клиенты
[ редактировать ]Клиент | дн | XL | хт | тр | хз | как | КТ | тонна | WS |
---|---|---|---|---|---|---|---|---|---|
Амулет | Да | Да | urn:ed2k: | Нет | Unknown | Unknown | Unknown | Unknown | Unknown |
АпексDC++ | Да | Да | urn:bitprint: urn:tree:tiger: | Нет | дчуб: [Примечание 1] | дчуб: [Примечание 1] | Нет | Нет | Unknown |
БитКомет | Да | Да | urn:btih: | Да | Да 1.76 | Нет | Нет | Нет | Да 1.74 [9] |
Укуси его | Да | Нет | urn:btih: | Да | Нет | Нет | Нет | Нет | Unknown |
Потоп | Да | Нет | urn:btih: | Да | Нет | Нет | Нет | Нет | Unknown |
Ледяной холодDC++ | Да | Да | urn:tree:tiger: urn:bitprint: urn:btih: [Примечание 2] urn:btmh: [Примечание 2] | Нет | дчуб: [Примечание 1] адк: [Примечание 3] рекламные объявления: [Примечание 4] | дчуб: [Примечание 1] | Да | Нет | Unknown |
ФлайлинкDC++ | Да | Да | urn:tree:tiger: urn:bitprint: urn:btih: | Нет | дчуб: [Примечание 1] адк: [Примечание 3] рекламные объявления: [Примечание 4] | дчуб: [Примечание 1] | Да | Нет | Unknown |
GTK-gnutella | Да | Да | urn:sha1: | Нет | http: толкать: | Да | Да | Нет | Unknown |
КТоррент | Да | Нет | urn:btih: | Да | Нет | Нет | Нет | Нет | Unknown |
ИзвестьПроволока | Да | Да | urn:sha1: | Нет | http: урна:руководство : | Unknown | Нет | Нет | Unknown |
МоноТоррент | Да | Да | urn:btih: | Да | Нет | Да | Нет | Нет | Unknown |
µТоррент | Да | Нет | urn:btih: | Да | Нет | Нет | Нет | Нет | Да |
qBittorrent | Да | Нет | urn:btih: urn:btmh: | Да | Unknown | Unknown | Нет | Нет | Unknown |
Поделиться | Да | Да | urn:bitprint: urn:btih: urn:ed2k: urn:md5: urn:sha1: urn:tree:tiger: | Да [Примечание 5] | http: FTP: | http: FTP: (Тот же приоритет, что и xs) | Да | Нет | Unknown |
Тиксати | Да | Да | urn:btih: | Да | Да | Да | Unknown | Unknown | Да |
Передача инфекции [2] [10] | Да | Нет | urn:btih: | Да | Нет | Нет | Нет | Нет | Да [11] |
Vuze | Да | Да | urn:btih: urn:sha1: | Да | Да 5.7.5.0 | Да 5.7.5.0 | Нет | Нет | Да |
См. также
[ редактировать ]- БитТоррент
- Бернбит
- схемы URI ed2k
- Межпланетная файловая система
- Металинк
- Именованные сети передачи данных
- Пиринговый
Пояснительные примечания
[ редактировать ]- ^ Перейти обратно: а б с д и ж dchub://[хабпорт]:[хабпорт]
- ^ Перейти обратно: а б Передает ссылку на внешнее программное обеспечение
- ^ Перейти обратно: а б adc://[хабпорт]:[хабпорт]
- ^ Перейти обратно: а б adcs://[хабпорт]:[хабпорт]
- ^ Начиная с версии 2.5.1.0
Ссылки
[ редактировать ]- ^ «БитТоррент v2» . БитТоррент. Архивировано из оригинала 30 октября 2020 года . Проверено 7 сентября 2020 г.
- ^ Перейти обратно: а б "magnet-test.c в транке/libtransmission; Редакция 9531" . Передача инфекции. Архивировано из оригинала 17 февраля 2012 г. Проверено 4 февраля 2012 г.
- ^ Перейти обратно: а б с д «Предложение по улучшению BitTorrent 9: Расширение для одноранговых узлов для отправки файлов метаданных» . 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 в Magnet URI для добавления веб-сида» . биткомет . Архивировано из оригинала 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
- RHash на SourceForge , с открытым исходным кодом , который может рассчитывать магнитные ссылки. инструменте командной строки