Насколько вы обеспокоены эффективностью?В качестве нижней границы кто-то должен отправить пакет всем N
узлам в сети, чтобы распространить обновление на все узлы.
Самый наивный подход - просто переслать каждое сообщение всем записям в вашей таблице маршрутизации.,Это не сработает, поскольку это, очевидно, приводит к пересылке штормов.
Второй наиболее наивный подход заключается в пересылке обновлений, то есть более новых данных.Это приведет к N * log(N)
трафику.
Если все ваши узлы являются доверенными, и вас не волнует последний показатель эффективности, вы уже можете остановиться здесь.
Если узлы не являются довереннымивам понадобится механизм для ограничения того, кто может отправлять обновления, и для проверки пакетов.
Если вы также заботитесь об эффективности, вы можете добавить рандомизированный откат до пересылки и отслеживания, какая запись таблицы маршрутизации уже имеет, какая версия для удаления ненужных попыток пересылки.
Если вы не хотите сплетничать со всей сетью, а только с ее подмножеством, вы можете реализовать подсети, к которым могут присоединиться заинтересованные узлы, т.е. подписаться на них. Предложение по улучшению Bittorrent 50 описывает такой подход.