Как DHT в клиенте Bittorent получает"загрузочный"?

Если у меня есть торрент без каких-либо трекеров в нем, и я только что начал клиент bittorent, поэтому у меня еще нет сверстников...как я знаю, с кем сначала связаться в DHT? Кажется, мне нужно знать хотя бы один узел в DHT, чтобы начать работу....

8 ответов


когда клиент BitTorrent подключается к DHT, есть начальное место, куда он идет, чтобы найти сверстников. С оригинальным клиентом BitTorrent был url-адрес bitorrent.com это поможет начать. Я попытался найти ссылку, но не смог. После того, как вы установили связи с другими клиентами, вы можете сделать announce в сети DHT, чтобы найти сверстников для торрента, который вы ищете.

вот ссылка спецификации BitTorrent что обсудить DHT.

trackerless торрент словарь делает нет ключа "объявить". Вместо этого trackerless torrent имеет ключ" узлы". Этот ключ должен быть установлен на K ближайшие узлы торрента создание таблицы маршрутизации клиента. Кроме того, ключ может быть установлен в известный хороший узел, такой как управляемый человеком, генерирующим торрент. Пожалуйста, не добавляйте автоматически "router.bittorrent.com" to torrent файлы или автоматически добавить это узел к таблицам маршрутизации клиентов.


узлы начальной загрузки основной DHT являются router.utorrent.com и CNAME к нему,router.bittorrent.com. Порт 6881.


график в нижней части этого проект мониторинга DHT сайт

  • dht.transmissionbt.com
  • router.utorrent.com
  • router.bittorrent.com

как загрузочные сверстники


в BiTTorrent у вас есть три основных варианта:

  • Торрент-Файл: некоторые торрент файлы добавьте nodes для вас, чтобы связать в DHT с (на самом деле, рекомендуется при создании торрент-файла)
  • Hardcoding: некоторые торрент-клиенты жестко кодируют несколько узлов начальной загрузки (например, те, которые упомянуты stk). Обычно ими управляют компании и организации с давно работающими серверами.
  • PEX / Peer Разговоры: обычно вы можете запросить узлы DHT у людей, с которых вы загружаете другие торренты (если ваши клиенты понимают язык друг друга. т. е. некоторые версии несовместимы).

Transmission использует жестко загрузочный узел для dht, если нет другого способа получить сверстников:

bootstrap_from_name( "dht.transmissionbt.com", 6881, bootstrap_af(session) );

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


клиент может узнать о других DHT-способных сверстниках через его взаимодействия с ними. Поддержка однорангового DHT рекламируется в его рукопожатии. Как только клиент обнаруживает по крайней мере один хороший, хорошо связанный DHT-узел, он может перемещаться по DHT, чтобы найти больше и ближе DHT-узлов. Он будет помнить эти узлы, называемые узлами в DHT-speak, между перезапусками программного обеспечения и поддерживать/обновлять список непрерывно во время его работы. В худшем случае, когда клиент не знает хорошо DHT-capable peers, это потребует от вас загрузить торрент на основе трекера, чтобы он мог, надеюсь, связаться с несколькими хорошими DHT-способными сверстниками, о которых он узнает через трекер.

обновление: Для первоначального списка одноранговых узлов DHT, как указывает @Seppo, торрент-клиент может использовать одно или несколько жестко закодированных DNS-имен для поиска адресов для известных одноранговых узлов, а также может включать жестко закодированный список одноранговых узлов в качестве окончательного запасного варианта. Одно ограничение DNS, однако, это не Порт информация предоставляется, поэтому обычно предполагается порт по умолчанию 6881, тогда как другие средства поддерживают одноранговые узлы, работающие на разных портах.


для сведения, всемирный потоп использует жестко закодированные узлы boostrap:

        self.session.add_dht_router("router.bittorrent.com", 6881)
        self.session.add_dht_router("router.utorrent.com", 6881)
        self.session.add_dht_router("router.bitcomet.com", 6881)

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