JGroups: объясните mcast_addr для чайников - PullRequest
1 голос
/ 28 мая 2020

Использование следующей команды для прослушивания сообщений MCast.

java -cp $CLASSPATH:./jgroups-all.jar org.jgroups.tests.McastReceiverTest -mcast_addr 228.1.1.1 -port 55555

Исходя из этого образа, 228.1.1.1 должен быть допустимым IP-адресом для многоадресной рассылки.

enter image description here

Теперь вопросы ...

1 - С точки зрения непрофессионала, что такое mcast_addr? Является ли mcast_addr по существу виртуальным именем (настроенным как формат IP-адреса) для машин группы, которые отправляют сообщения друг другу? Итак, вместо того, чтобы mcast_addr быть чем-то вроде «MyConferenceRoom1», я называю его «228.1.1.1»?

2 - Если 3 машины использовали один и тот же mcast_addr, все они могут использовать разные параметры -port?

3 - Немного преувеличение, но если бы я написал программу, которая повторяла бы все mcast_addr 288.xxx, мог бы я по сути подслушивать чужие сообщения?

1 Ответ

1 голос
/ 02 июня 2020
  1. С точки зрения непрофессионала, mcast_addr подобен радиочастоте, за исключением того, что вам нужно присоединиться к ней, прежде чем вы сможете слушать (неверно для net без перехода на маршрутизатор). Чаще всего также используется порт, но вы можете рассматривать его как часть частоты.

Итак, вместо того, чтобы mcast_addr быть чем-то вроде «MyConferenceRoom1», я называю его «228.1.1.1»?

Да, именно так.

Да, но для сверхбольших объемов фильтрация нежелательных сообщений будет происходить выше по стеку IP, что может снизить производительность. Обычно вы хотите разделить классы трафика c в группе многоадресной рассылки по причинам, описанным ниже.

Да, разрешение не встроено в это в уровень IP. Вы можете столкнуться с маршрутизаторами, которые не играют, это одна из причин, по которой вам нужно присоединиться к группе многоадресной рассылки перед прослушиванием:

+--------+    +--------+    +----------+
| Sender | -> | Router | -> | Listener |
+--------+    +--------+    +----------+

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

Теперь при создании образа имеется сеть подсетей, в которой между отправителем и получателем может быть 2 маршрутизатора:

+--------+    +----------+    +------------+
| Sender | -> | Router A | -> | Listener 1 |
+--------+    +----------+    +------------+
                    |
                    V
              +----------+    +------------+
              | Router B | -> | Listener 2 |
              +----------+    +------------+

Если Listener 1 присоединяется к 224.1.2.3 и Listener 2 присоединяется к 228.1.1.1, они не будут видеть трафик друг друга c. Этот механизм предотвращает переполнение сети многоадресными сообщениями, которые мало кому интересны. Listener 2, безусловно, может попытаться присоединиться к 224.1.2.3, но маршрутизатор решает, следует ли это разрешить.

В корпоративных настройках маршрутизаторы обычно настроены на блокировку многоадресного трафика c, отличного от su bnet, поскольку в этом случае маршрутизаторы обычно не задействованы.

Как упоминалось ранее, если вы разделяете классы трафика c на порте, маршрутизаторы не смогут выполнять свою работу так же эффективно, поскольку они обычно не заботятся о порте.

...