Я думаю, вы упускаете точку UDP.Это не экономит время в том смысле, что сообщение быстрее доставляется к месту назначения, просто вы отправляете сообщение, и вам все равно, будет ли оно безопасно доставлено на другую сторону.На WAN - он, вероятно, не прибудет на другую сторону.UDP через сети проблематичен, так как он может быть выброшен любым маршрутизатором на пути, ограниченном по пропускной способности - для него нет гарантии доставки.
Я бы не советовал использовать UDP вне топологии в разделеваш контроль.
Что касается P2P против направленных сокетов - вопрос в том, что вам нужно для перемещения.Вам нужна двусторонняя / разнонаправленная связь между всеми узлами, или вы говорите с одним сервером со всех узлов?
Вы упомянули многоадресную рассылку - это будет означать, что у вас есть какой-то централизованный источник данных, который передает информациюи все остальные слушают - в этом случае нет никакой выгоды для P2P, и многоадресная передача, как протокол UDP, может не работать хорошо в нескольких сетях.Но вы можете использовать TCP-соединения с каждым из узлов и выполнять многоадресную рассылку самостоятельно, а не через IGMP.Вы можете (и должны) использовать многопоточные и неблокирующие сокеты, если вас беспокоит отправка блокирующих вас, и, конечно, вы можете использовать настройки QoS, чтобы «попросить» маршрутизаторы протолкнуть ваши сокеты.