Discovery Server - An enhanced discovery paradigm for DDS ecosystems

eProsima Fast DDS, as a Data Distribution Service (DDS) middleware implementation, offers the feature of dynamically discovering communication entities within a network. The DDS standard defines a Simple Discovery Protocol (SDP) to accomplish such a task, sharing the participants information using well known multicast addresses and ports. While this method has the advantage of out-of-the-box participant discovery, it has the disadvantage of scalability, since the number of exchanged packets increases exponentially as new participants are added to the system. Furthermore, it requires multicasting capabilities, which may not work reliably (such as for the case of WiFi communication [1]), or may not even be present at all. Therefore, eProsima Fast DDS implements the Discovery Server (DS) protocol, which is a new discovery mechanism based on a centralized communications model. In this, a core participant, referred to as a Server, handles all the information exchanged between participants on the network.

The following are the main features of eProsima Fast DDS Discovery Server.

  1. Improves the performance of DDS applications in large-scale and distributed networks by replacing the default mesh topology in DDS with an extended star topology. Each Participant is matched with a Server that it defines, becoming a Client of that Server. DS allows the deployment of multiple Servers with several Clients each, thus enabling communication between Clients on multiple Servers.
  2. The previous point leads to rapid scalability and deployment of new networks that are incorporated into an existing one. Several networks implementing DS can communicate by matching their Servers to each other. In this case, the Servers will exchange the information of their respective Clients. Once the Servers know the Clients of the other network, they send this information encapsulated to their own Clients. This reduces the data traffic in the DDS system.
  3. Persistence of network status by instantiating Backup Servers. These servers record the status of the network, i.e. save the address of the discovered Clients and foreing participants in a database. Thus, in the event of a server failure and recovery, the return to the pre-failure condition is almost immediate. It is also possible to restore the communication status by saving each sample sent by the Server.
  4. DS offers two mechanisms for quick and easy deployment of DDS applications using the Server-Client model. It relies on a GUID, which is a unique identifier of Server and Client entities.

a. Use the fast-discovery-server tool.
This is a mechanism to launch Servers that offers the user a higher configuration of these. This tool allows the user to instantiate a Server in a single command by defining its identifier, the IP-port address and whether it is a Backup Server. The following example will launch a Server with id 0 listening on WiFi (192.168.36.34) and Ethernet (172.20.96.1) local interfaces with UDP ports 8783 and 51083 respectively:

$ fast-discovery-server-1.0.0 -i 0 -l 192.168.36.34 -p 8783 -l 172.20.96.1 -p 51083

b. Use the ROS_DISCOVERY_SERVER environment variable on clients
This environment variable defines the list of Servers that are expected to be listening when the DDS application is launched. Its content is the IP-port address of each Server separated by a semicolon. If this environment variable is detected, the Discovery Server is used as the default mechanism. The following shows an example:

$ export ROS_DISCOVERY_SERVER=192.168.36.34:8783


Further information on the features of the Discovery Server is available in the official eProsima Fast DDS documentation [2].

 

References

[1] Charles E. Perkins, Mike McBride, Dorothy Stanley, Warren "Ace" Kumari, and Juan-Carlos Zúñiga. Multicast Considerations over IEEE 802 Wireless Media. Internet-Draft draft-ietf-mboned-ieee802-mcast-problems-11, Internet Engineering Task Force,December 2019. Work in Progress.

[2] eProsima. eProsima Fast DDS Documentation. https://fast-dds.docs.eprosima.com/en/v2.0.1/, July 2020. Online.

More information about the Fast DDS Discovery Server:

For any questions please contact This email address is being protected from spambots. You need JavaScript enabled to view it.

 

Contact Us

General Information:
Phone: +34 91 804 34 48
Email: [email protected]

Tech Support:
Phone: +34 91 804 34 48
Email: [email protected]

© 2013-2025 eProsima.
All Rights Reserved.

Office address

Plaza de la Encina 10-11,
Nucleo 4, 2ª Planta
28760 Tres Cantos – Madrid (Spain)