Разрешается ли запускать несколько различных узлов DHT за одной и той же парой ip:port в магистральном DHT?


Можно ли запускать несколько различных узлов DHT за одной и той же парой ip:port в магистральном DHT? И какой узел должен ответить на сообщение запроса DHT? Все или один из них?

Заранее благодарю вас.

1 4

1 ответ:

Короткий ответ: один из них. Ожидается, что каждый запрос даст один ответ.

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

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

В качестве дополнительного замечания, Azureus имеет определенные функции безопасности в своем DHT, чтобы смягчить атаки, когда атакующий владеет определенной областью пространства идентификаторов узлов, ограничивая, какие идентификаторы узлов вы можете запускать на любом заданном IP-адресе. Есть предложение сделать нечто подобное для магистрального DHT (предложенного мной) DHT Security extension. С чем-то вроде этого развернутого, вы будете ограничены в том, сколько узлов вы можете запустить за a один IP-адрес.