Конфигурация DDS с многоадресной и одноадресной передачей - PullRequest
0 голосов
/ 30 августа 2018

Я все еще пытаюсь понять DDS и его концепции. У меня есть конфигурация, где на 2 ноутбуках запускается приложение на основе dds. Моя среда не позволяет многоадресную передачу, поэтому я решил использовать одноранговое соединение (одноадресная передача). Чтобы привести оба ноутбука в одну сеть, я подключил их с помощью кабеля Ethernet (не уверен, было ли это необходимо или нет).

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

Вопрос:

  1. Как обнаруживаются участники? Многоадресная рассылка? так как я не делал никаких настроек для одноадресной рассылки.
  2. Было ли необходимо объединить их в одну сеть, т.е. подключить с помощью кабеля Ethernet, если я хотел использовать одноадресную передачу?

РЕДАКТИРОВАТЬ:

Конфигурация выглядит следующим образом:

  • Первый ноутбук: ОС Windows: родное приложение на основе DDS: Издатель: Многоадресная рассылка не разрешена.
  • Второй ноутбук: Linux: подписчик на базе ROS2: многоадресная передача - не проблема

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Как обнаруживаются участники? Многоадресная рассылка? так как я не делал никаких настроек для одноадресной рассылки.

Я не могу ответить на этот вопрос с полной уверенностью, поскольку вы используете DDS как часть инфраструктуры ROS2, и я не знаю точных деталей того, как эти два настроены для взаимодействия друг с другом. Сказав это, из вашего описания кажется, что участники действительно используют многоадресную рассылку для обнаружения друг друга.

Лучший способ получить окончательный ответ - прослушать сеть - при условии, что у вас есть необходимые привилегии для этого. Например, вы можете использовать Wireshark, который поставляется с диссектором RTPS, который позволяет фильтровать сообщения RTPS. (RTPS - это имя стандартизированного проводного протокола DDS.) Проверьте адрес назначения и посмотрите, обнаруживаете ли вы какие-либо адреса в диапазоне многоадресной рассылки. Вы можете сделать это, запустив одно приложение на основе DDS. Он сразу же начнет объявлять себя по сети.

Было ли необходимо объединить их в одну сеть, т.е. подключить с помощью кабеля Ethernet, если я хотел использовать одноадресную передачу?

Если вы хотите использовать одноадресную передачу, вам необходимо знать IP-адреса или имена хостов всех одноранговых узлов. Пока эти равноправные узлы могут связываться друг с другом через UDP, все в порядке. Часто, но не всегда, ping сообщит вам, так ли это. Брандмауэры являются типичной причиной проблем.

Однако имейте в виду, что различные типы сетей имеют свои собственные специфические свойства, для которых вам, возможно, придется настроить свою конфигурацию. Например, через WiFi вероятность отбрасывания пакетов (особенно с пакетами данных) намного выше, чем при прямом соединении узлов с помощью провода. DDS позволяет настроить свой протокол, чтобы справиться с этим.

0 голосов
/ 30 августа 2018

Из коробки DDS требуется для поддержки Multicast и Unicast Discovery. Анонимные соединения обрабатываются через многоадресную рассылку. Если вам известен IP-адрес получателя, вы можете вручную настроить эти адреса в списке обнаружения одноадресной рассылки (у каждого поставщика будет свой способ присвоения имени / обработки этого списка).

«Многоадресная рассылка в нашей сети запрещена», в большинстве случаев означает, что ваш ИТ-отдел отключил переадресацию многоадресных пакетов на коммутаторе (или коммутаторах), который определяет структуру вашей сети.

Стандартная поставляемая стандартная конфигурация DDS, однако, не знает об этой локальной политике (как это могло быть?). Если вы не изменили конфигурацию в соответствии с вашими локальными политиками, участники DDS все еще попытаются подключиться через многоадресную рассылку, поскольку вы ее не отключили.

Если машины, использующие DDS, подключены к одному и тому же концентратору или к неуправляемому коммутатору (определенному здесь как тот, который ваш ИТ-отдел не заботит или неправильно настроен), и топология сети не пересекает управляемый коммутатор, и они используют конфигурацию по умолчанию, , и они находят друг друга , затем они используют многоадресное анонимное обнаружение .

Выясните, как настроить реализацию DDS, чтобы добавить индивидуальные IP-адреса машин, которые должны обмениваться данными. Поскольку обнаружение обычно требуется только в одном направлении (если A обнаруживает B, то верно, что B обнаружил A, предполагая, что ни A, ни B не настроены на игнорирование другого [1]).

После настройки одноадресного обнаружения вы можете настроить отсутствие многоадресной рассылки. Если машины находятся в сетях со скачкообразной перестройкой IP (WiFi и т. Д.), Будет сложно, если реализация DDS не понимает многолучевое распространение. Поговорите с продавцом, чтобы узнать, так ли это.

[1] DDS - ничто, если не слишком настраиваемо.

...