Как получить первого пира по торрент-магнитной ссылке?

Я пытался понять технологию торрент-магнита, но не могу понять, как вы подключаетесь к первому узлу при открытии магнитной ссылки.

Когда вы получаете магнитную ссылку, как показано ниже, она не содержит исходного однорангового узла - только BitTorrent Info Hash (btih) и имя файла.

magnet:?xt=urn:btih:bbb6db69965af769f664b6636e7914f8735141b3&dn=ubuntu-12.04-desktop-i386.iso

Согласно BitTorrent и магниты: как они работают? (MakeUseOf)

Если вы нажмете магнитную ссылку, в которой не указан трекер (tr) , первый одноранговый узел будет найден с помощью DHT. Когда у вас есть коллега, тоже вступает в силу обмен.

В статье DHT в Википедии не указано, как найти однорангового узла, но в Статья Кадемлии (на которой основан BitTorrent DHT), в ней говорится

Узел, который хотел бы присоединиться к сети, должен сначала пройти процесс начальной загрузки. На этом этапе присоединяющийся узел должен знать IP-адрес и порт другого узла - узел начальной загрузки (полученный от пользователя или из сохраненного списка), который уже участвует в сети Kademlia. .

Но откуда он знает этот узел? Я не вижу адреса или чего-либо еще в магнитной ссылке. Поскольку он децентрализован (без трекера), я бы не ожидал, что он заранее знает узел. Или DHT на самом деле не децентрализован?


person kba    schedule 04.03.2013    source источник


Ответы (1)


По большей части, когда вы запускаете клиент BitTorrent, загрузитесь с:

  1. узлы из вашего последнего сеанса, которые были сохранены на диск
  2. другие сверстники, которые у вас есть в любом из роев, в которых вы участвуете

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

Затем вы можете нажать router.utorrent.com:6881. Я считаю, что Transmission, Azureus и Bitcomet работают с похожими маршрутизаторами и, возможно, с другими клиентами.

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

ОБНОВЛЕНИЕ: вы можете запустить свою собственную машину начальной загрузки DHT, здесь исходный код.

person Arvid    schedule 17.03.2013
comment
Разве узел начальной загрузки, например, dht.transmission.com, не должен быть просто трекером? Насколько я понимаю, он должен отслеживать список пиров для каждого информационного хэша - именно это и делает трекер. - person Kar; 28.11.2014
comment
узлы начальной загрузки отличаются от трекеров BitTorrent. Они не хранят списки пиров для каждого информационного хэша, они хранят единственный список узлов. Протокол DHT также отличается от протокола трекера. - person Arvid; 30.11.2014