How does domain participant discovery others if we disable multicast

6 posts / 0 new
Last post
Offline
Last seen: 5 years 2 months ago
Joined: 04/16/2015
Posts: 11
How does domain participant discovery others if we disable multicast

I have read this link:https://community.rti.com/kb/how-do-i-configure-rti-data-distribution-service-not-use-multicast. It provides a way to disable multicast on a participant. I wander how participant discover other domains without mulitcast?

rip
rip's picture
Offline
Last seen: 4 days 7 hours ago
Joined: 04/06/2012
Posts: 321

It's "wonder", not "wander".  To wander means to walk aimlessly without a goal or destination in mind.

A Participant is afiliated 1:1 with a Domain, it is not possible for a Participant to discover other domains.  Every application that is participating on the DDS bus will have 1 or more Participants.  These Participants will discover each other (assuming they are on the same Domain) via multicast well-known-ports.  If you disable multicast for discovery, you have to set the initial peers list for the Participant, so that it knows which unicast IP addresses it should target for discovery (by sending an initial discovery packet to that IP address, addressed to the same well-known-port).

Participant ID:0 on Domain ID:0 on a given node will select port 7400 for the well-known-port according to the algorithm.  If multicast is enabled, it will send to 239.255.0.1:7400, and if unicast locator IP address(es) are supplied, it will send to {each address}:{an algorithimically determined port}. 

Shared memory transports and other (TCP/IP, etc) transports are not standardized across the terrain, so for example one vendor's SHMEM transport will not connect to other vendors' SHMEM transports.  In this case, you have to use the (standards' based) UDP/IP transports.

All of this is described in chapter 14 of the documentation.

Offline
Last seen: 5 years 2 months ago
Joined: 04/16/2015
Posts: 11

Thanks for your explaination. I have read the chapter 14 but it doesn't mention the address 239.255.0.1:7400. For the user data transfer, which port number will be used? 

rip
rip's picture
Offline
Last seen: 4 days 7 hours ago
Joined: 04/06/2012
Posts: 321

The 239.255 address is the default multicast address, as defined by the standard.  "Multicast Address" == 239.255.0.1 unless otherwise altered by user configuration.

It will use the ports for user data, as determined by the algorithm described both in the standard and in the documentation.

If you are wondering why I am not giving you the port number explicitly, it is because you haven't supplied the necessary givens for me to calculate it.

There is an excel spreadsheet, under the Downloads link to the left,  the sub-heading "utilities", that computes the port numbers based on the information you supply, in accordance with the algorithm.

 

 

Offline
Last seen: 5 years 2 months ago
Joined: 04/16/2015
Posts: 11

I am running the runPub.cmd of Hello_simple under ndds example directory on Windows. Based on the excel sheet, it uses 4 ports 7400,7401, 7410 and 7411. But I got below ports when run netstat command.  I didn't configure anything on this example. Why does it open below 5 ports? The last two seems strange.

UDP 0.0.0.0:7400 *:* 5780
UDP 0.0.0.0:7410 *:* 5780
UDP 0.0.0.0:7411 *:* 5780
UDP 0.0.0.0:57962 *:* 5780
UDP 0.0.0.0:57963 *:* 5780

 

rip
rip's picture
Offline
Last seen: 4 days 7 hours ago
Joined: 04/06/2012
Posts: 321

See the long response in this other thread. 

https://community.rti.com/forum-topic/how-understand-number-ports-used-dds-context-application