Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

DDS configuration with multicast and unicast

I am still trying to understand DDS and its concepts. I have a configuration where 2 laptops run dds based application. My environment does not permit multicast so I decided to go for peer to peer connection(unicast). To bring both the laptops in the same network, I connected them using ethernet cable (Not sure if it was necessary or not).

Now I did not change anything in the QoS i.e. i did not do any settings for unicasting. But now my applications are communicating with each other.

Question :

  1. How are the participants being discovered ? Multicasting ? as I did not do any settings for unicasting.
  2. Was it necessary to bring them under one network i.e. connect with ethernet cable if I wanted to use unicasting ?

EDIT :

Configuration is as follows :

  • First laptop : Windows OS : Native DDS based application : Publisher : Multicast not allowed.
  • Second Laptop : Linux : ROS2 based subscriber : Multicast no problem
like image 574
Vishal Rawat Avatar asked Oct 29 '25 22:10

Vishal Rawat


1 Answers

Out of the box, DDS is required to support Multicast and Unicast Discovery. Anonymous connections are handled through multicast. If you know the IP address of the recipient, you can manually configure those addresses into the unicast discovery list (each vendor will have their own way to name/process this list).

"Multicast is not permitted on our network", in most cases, means that your IT department has turned off multicast packet forwarding at the switch (or the switches) that define the fabric that is your network.

The as-shipped, standard-compliant DDS configuration, however, has no knowledge of this local policy (how could it?). If you haven't changed the configuration in line with your local policies, the DDS Participants are still going to try to connect via Multicast, because you haven't turned it off.

If the DDS-using machines are connected to the same hub, or to an unmanaged switch (defined here as one that your IT department doesn't care about, or is misconfigured), and the network topology does not cross a managed switch, and they are using the default configuration, and they find each other, then they are using Multicast anonymous discovery.

Figure out how to configure your DDS implementation, to add the unicast ip addresses of the machines that need to communicate. Because discovery is usually only needed in one direction (if A discovers B, then it is true that B has discovered A, assuming neither A nor B are configured to ignore the other[1]).

Once you have configured for unicast discovery, you can configure for no-multicast. If the machines are on IP hopping networks (WiFi, etc) it will be difficult unless the DDS implementation understands multipathing. Talk to the vendor to see if this is the case.

[1] DDS is nothing if not overly configurable.

like image 95
rip... Avatar answered Nov 02 '25 17:11

rip...