Как DHT в клиенте Bittorent получает "bootstrapped"?


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

8 64

8 ответов:

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

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

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

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

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

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

Как bootstrapping peers

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

  • Torrent File: некоторые торрент файлы добавьте 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-способные сверстники, вам потребуется загрузить торрент-трекер, чтобы он мог, надеюсь, связаться с несколькими хорошими 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)

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