Резюме
Как новый клиент может присоединиться к рою без трекера или знания хотя бы одного члена роя, с которым можно обмениваться сверстниками?
Ты не можешь Это невозможно.*
* (Если узел в вашей локальной сети уже не является узлом в DHT. В этом случае вы можете использовать механизм широковещания, такой как Avahi, для «обнаружения» этого узла и загрузки с него. Но как это сделал они загружаются сами? В конце концов, вы столкнетесь с ситуацией, когда вам нужно будет подключиться к общедоступному Интернету. А общедоступный Интернет предназначен только для одноадресной передачи, а не для многоадресной рассылки, поэтому вы застряли с использованием предварительно определенных списков пиров.)
Ссылки
Bittorrent DHT реализуется с помощью протокола, известного как Kademlia , который является частным случаем теоретической концепции распределенной хеш-таблицы .
экспозиция
С протоколом Kademlia, когда вы присоединяетесь к сети, вы проходите процедуру начальной загрузки , которая обязательно требует заранее знать IP-адрес и порт хотя бы одного узла, уже участвующего в сети DHT. Например, трекер, к которому вы подключаетесь, может быть узлом DHT. Как только вы подключитесь к одному узлу DHT, вы приступаете к загрузке информации из DHT, которая предоставляет вам информацию о подключении для большего количества узлов, и затем вы перемещаетесь по этой «графической» структуре для получения соединений со все большим и большим количеством узлов, которые могут обеспечить как подключение к другим узлам и данные полезной нагрузки (фрагменты загрузки).
Я думаю , что ваш фактический вопрос полужирный - в том, как присоединиться к сети Kademlia DHT , не зная никаких других членов - основана на ложном предположении.
Простой ответ на ваш вопрос, выделенный жирным шрифтом, - нет . Если вы вообще не знаете ЛЮБОЙ информации даже об одном хосте, который может содержать метаданные DHT, вы застряли - вы даже не сможете начать работу. Я имею в виду, конечно, что вы можете попытаться грубой силой обнаружить IP в общедоступном интернете с открытым портом, который транслирует информацию DHT. Но, скорее всего, ваш BT-клиент жестко запрограммирован на некоторый определенный статический IP или DNS, который преобразуется в стабильный узел DHT, который просто предоставляет метаданные DHT.
По сути, DHT только настолько децентрализован, как и механизм присоединения, и потому что механизм присоединения довольно хрупок (нет способа «вещать» через весь Интернет! Поэтому вам нужно выполнить индивидуальную передачу на отдельного предварительно назначенного хоста, чтобы получить DHT данные), Kademlia DHT на самом деле не децентрализован. Не в самом строгом смысле этого слова.
Представьте себе такой сценарий: тот, кто хочет остановить P2P, уходит и готовит атаку на все обычно используемые стабильные узлы DHT, которые используются для начальной загрузки. Как только они проводят свою атаку, они запускают ее на всех узлах одновременно. Wham ; каждый узел начальной загрузки DHT отключается одним махом. Что теперь? Вы застряли при подключении к централизованным трекерам для загрузки традиционных списков пиров из них. Ну, если они тоже нападают на трекеров, то вы действительно, действительнодо ручья. Другими словами, Kademlia и вся сеть BT ограничены ограничениями самого Интернета, в том числе конечное (и относительно небольшое) количество компьютеров, на которые вы должны были бы успешно атаковать или отключить сеть, чтобы предотвратить> 90%. пользователей от подключения к сети.
После того как все «псевдоцентрализованные» узлы начальной загрузки исчезли, внутренние узлы DHT, которые не являются начальной загрузкой, поскольку никто за пределами DHT не знает о внутренних узлах , становятся бесполезными; они не могут принести новые узлы в DHT. Таким образом, поскольку каждый внутренний узел со временем отключается от DHT, либо из-за того, что люди выключают свои компьютеры, перезагружаются для обновлений и т. Д., Сеть разрушается.
Конечно, чтобы обойти это, кто-то может развернуть пропатченный клиент BitTorrent с новым списком предварительно определенных стабильных узлов DHT или адресов DNS и громко объявить сообществу P2P, чтобы использовать этот новый список. Но это может превратиться в ситуацию, когда агрессор (пожиратель узлов) сам будет постепенно загружать эти списки и нацеливаться на новые смелые загрузочные узлы, а затем переводить их в автономный режим.