UDP Broadcast или IP Multicast?

Если вам нужно было реализовать сетевую трансляцию, вы бы использовали широковещательную рассылку UDP или многоадресную передачу IP в новом приложении? Зачем?

Каковы преимущества и недостатки, с которыми вы столкнулись с любым из этих методов? (Особенно в отношении проблем с VPN, различными подсетями, различными маршрутизаторами и т.д.)

Ответ 1

У многоадресной рассылки есть недостаток, что она не очень хорошо поддерживается маршрутизаторами и NAT. Если все ваши клиенты находятся в одной сети с помощью только простых мостов, многоадресная рассылка работает отлично и позволяет избежать накладных расходов на широковещательную адресацию для машин, которые не входят в группу. Если маршрутизаторы поддерживают IGMP и правильно распространяют TTL, он может работать в локальных сетях. Были попытки сделать многоадресную рассылку через Интернет, например Mbone, с различными уровнями успеха. Большинство из них используют какой-то туннель, чтобы обойти мосты и несоответствующие маршрутизаторы.

Однако одно предостережение для многоадресных пакетов - это если есть какие-либо подключения WiFi точка доступа будет использовать самую медленную возможную скорость передачи битов для многоадресной рассылки пакетов и требует от всех клиентов клиентов, даже тех, кто не входит в группу многоадресной рассылки. Есть также недостатки для неучаствующих клиентов и времени автономной работы.

Ответ 2

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

Поэтому я бы не применял ни одного - я бы разрешил настройку широковещательного адреса.

Если пользователь настраивает что-то в диапазоне 224.0.0.0/4, то он многоадресный, иначе он будет транслироваться.

Ответ 3

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