Как Bittorrent-клиент изначально обнаруживает своих коллег?

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

Сегодняшняя сессия вопросов и ответов приходит к нам благодаря SuperUser – подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.

Вопрос

У читателя SuperUser у Стива В. был очень специфический вопрос о системе Distributed Hash Table (DHT) в рамках протокола BitTorrent:

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

Я понимаю идею трекера: клиенты подключаются к центральному серверу, который поддерживает список пиров в рое.

Я также понимаю идею взаимного обмена: клиенты, уже находящиеся в рое, отправляют полный список своих пиров друг другу. Если обнаружены новые одноранговые узлы, они добавляются в список.

У меня вопрос, как работает DHT? То есть, как новый клиент может присоединиться к рою без трекера или знания хотя бы одного члена роя, с которым можно обмениваться сверстниками?

(Примечание: простые объяснения лучше.)

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

Ответ

Участник SuperUser Allquixotic предлагает подробное объяснение:

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

Вы не можете. Это невозможно. *

* (если узел в вашей локальной сети уже не является узлом в DHT. В этом случае вы можете использовать механизм вещания, такой как Avahi, для «Обнаружить» этого партнера и начать с него загрузку. Но как они загрузились сами? В конце концов, вы столкнетесь с ситуацией, когда вам нужно подключиться к общедоступному Интернету. И общедоступный Интернет одноадресный. только не многоадресная, поэтому вы застряли с использованием заранее определенных списков пиров.)

Рекомендации

Bittorrent DHT реализуется с помощью протокола, известного как Kademlia, который является частным случаем теоретической концепции распределенной хеш-таблицы.

экспозиция

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

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

Простой ответ на ваш вопрос, выделенный жирным шрифтом, гласит: вы не . Если вы вообще не знаете ЛЮБОЙ информации даже об одном хосте, который может содержать метаданные 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, чтобы использовать этот новый список. Но это может превратиться в ситуацию «удар-моль», когда агрессор (пожиратель узлов) будет постепенно загружать эти списки самостоятельно и нацеливаться на новые смелые загрузочные узлы, а затем переводить их в автономный режим.

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

Есть что добавить к объяснению? Звук выключен в комментариях. Хотите узнать больше ответов от других опытных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь.

Оцените статью
TutoryBird.Ru
Добавить комментарий