Обеспечение соседей с наименьшей задержкой в ​​одноранговой сети для узлов в Интернете

Как в одноранговой сети убедиться, что соседи каждого узла имеют наименьшую задержку? Существуют ли какие-либо системы в настоящее время в производстве, которые делают это? например Битторрент, блокчейны

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


person captain    schedule 30.05.2019    source источник
comment
На эту тему существует множество подходов и исследований. Можете ли вы сузить вопрос, возможно, добавив основную мотивацию? Что вы пытаетесь оптимизировать?   -  person the8472    schedule 31.05.2019


Ответы (2)


В неконтролируемой децентрализованной (без разрешения) среде. это было бы почти невозможно. большинство современных p2p-сетей основаны на малых сетях, что означает, что одноранговый узел подключен к небольшое ограниченное количество соседей. он использует соединения с этими одноранговыми узлами для распространения сообщений или поиска данных в сети. поскольку все одноранговые узлы связаны в такой сети, должен быть путь, соединяющий каждого однорангового узла в сети.

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

Кроме того, в децентрализованной среде это уменьшит случайность сети и может увеличить количество векторов атак, таких как атаки затмения.

В распределенной среде (а не без разрешений). (центры обработки данных, распределенные базы данных и т. д.) этого можно добиться более легко, поскольку вы можете отслеживать и контролировать все узлы, не беспокоясь о противнике. Редактировать: и да, в распределенной настройке DHT действительно можно использовать для уменьшения сетевой задержки или переходов для распространения сообщения или поиска данных.

person yosher lutski    schedule 11.06.2019

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

В статье описано несколько хитростей: Меньше секунды поиск в крупномасштабном оверлее на основе Kademlia. (полная текстовая версия здесь) .

Короче говоря:

  1. иметь близость к сверстникам с низким временем отклика. Чтобы предпочесть добавить их в таблицу маршрутизации, потенциально заменив существующие узлы с более высоким временем отклика.

  2. иметь сходство с «распределением» идентификаторов узлов в сегментах вашей таблицы маршрутизации. Если все это сделают, вы сможете приблизиться к цели на 3 бита за круговой обход, а не на 1 бит.

  3. Корзины таблицы маршрутизации ближе к «верху» (охватывающие половину, четверть, восьмую часть и т. д.) должны быть больше 8. iirc, в документе предлагается 128, 64, 32, 16 для верхних групп. Это также может уменьшить количество битов при поиске, сэкономив количество циклов.

Существуют ли какие-либо системы в настоящее время в производстве, которые делают это? например Битторрент, блокчейны

Да, по крайней мере, libtorrent и uTorrent реализуют это. Я ожидаю, что другие клиенты BitTorrent сделают то же самое.

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

Сетевые прыжки; не то, что я знаю о. Задержка; да. битторрент.

person Arvid    schedule 27.07.2019