Is multicasting necessary for DDS based communication ?

4 posts / 0 new
Last post
Offline
Last seen: 5 years 6 months ago
Joined: 07/23/2018
Posts: 20
Is multicasting necessary for DDS based communication ?

I have a configuration where 3 applications run on 3 different Virtual Machine's and they must communicate via DDS i.e. RTPS protocol.
It is not possible at our end to allow multicasting for the MS AZURE VM and our network.
Here are some questions :

1. Is it still possible to communicate via DDS ?
2. If yes, through UNICAST i.e. peer to peer connection ?
3. Is using DDS communication beneficial in this case if i already have the option of basic UDP socket programming ?
4. Could you think of any restrictions/ further problems in using DDS for such a configuration ?

Offline
Last seen: 2 months 2 weeks ago
Joined: 02/11/2016
Posts: 144

Hey,

By deafult, RTI Connext DDS uses multicast only in the participant discovery phase (that is, only one message is sent through multicast per participant every 30 seconds).

So by default one would use unicast for most of the work.

Now to answer your questions:

1. Yes, I know of two ways

1.1. Using discovery peers to make sure all nodes know each other (this can be hard to manage as nodes are added and perhaps removed)

1.2. (as of 5.3?) Using discovery peers to make sure all nodes know the Cloud Discovery Service (you have to set up a Cloud Discovery Service, which is a service that is available with RTI Connext DDS 5.3+)

2. Yes, if multicast is unavailable (and naturally shmem and IPC are also unavailable), unicast seems like the way to go

3. RTI Connext DDS offers much more than just basic UDP which can be very useful for a lot of purposes but may be cumbersome if you really just need to send data unreliably between three endpoints

4. As a client of RTI I can attest to the great benefits it gives in many cases. That being said, I'm uncertain what your use-case is so it's hard to say if the learning curve is worth the benefits your use-case may get from using RTI Connext DDS.

 

So what's the use-case? what is the "roadmap"?

 

Hope this helpd,

Roy.

Offline
Last seen: 5 years 6 months ago
Joined: 07/23/2018
Posts: 20

Hi Roy,

Thanks for the quick advise.

The use case is as follows:

I am integrating ROS2, a machine learning algorithm and my simulation tools using DDS. All 3 would be on seperate VM. Multicast is disabled. So I am not sure if DDS is the right way to go or not.

Offline
Last seen: 2 months 2 weeks ago
Joined: 02/11/2016
Posts: 144

Hey,

So on the one hand it seems you don't need anonymous publish subscribe.

On the other hand I'm assuming you need reliable, low-latency messaging that works well on ROS, a simulation tool, and some machine learning algorithm (presumably using python).

For this scenario I would say that RTI Connext DDS could be a good fit since it does well with reliable low latency communication and does well for interoperability across the mentioned platforms (I'm uncertain what you use to write your simulation but with RTI you have a lot of options).

Good luck,

Roy.