Отправка многоадресных пакетов через Интернет в Java

Я хочу разработать веб-приложение, которое отправляет пакеты клиентам в JAVA с использованием протокола UDP.

Мне нужно отправлять пакеты каждому клиенту напрямую.

Java предоставляет класс под названием MulticastSocket, который расширяет UDP. Это может отправлять пакеты нескольким клиентам по сети.

Но это просто происходит в локальной сети, а не в «Интернете».

Есть ли способ отправить многоадресный пакет через Интернет? Если возможно, объясните это и объясните, как я могу реализовать это на Java.

Я нашел несколько протоколов, таких как IGMP... но я думаю, что он разработан в MulticastSocket.


person Alireza Akhoundi    schedule 16.06.2017    source источник
comment
Я уверен, что на стороне клиента необходимо будет добавить исключение брандмауэра. возможно, вам нужен многоадресный маршрутизатор для отправки многоадресных пакетов.   -  person Tim Strawbridge    schedule 16.06.2017
comment
@ Тим, но я никогда не мог понять, как я могу отправить многоадресный пакет через Интернет. Потому что IP-адрес группы многоадресной рассылки должен быть класса D, и я думаю, что этот IP-класс недоступен из Интернета!   -  person Alireza Akhoundi    schedule 16.06.2017
comment
Не могли бы вы поделиться своим решением, найденным на www.iana.org? Спасибо   -  person ehe888    schedule 25.02.2018


Ответы (1)


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

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

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

Существовала экспериментальная многоадресная магистраль Интернета под названием MBONE, однако я не думаю, что она используется. больше.

Так что нет, вы не можете отправлять многоадресную рассылку через общедоступный Интернет, независимо от языка.

person dbush    schedule 19.06.2017
comment
Эй, братан, спасибо за твой ответ. Я нашел свое решение на www.iana.org, спасибо! - person Alireza Akhoundi; 21.06.2017