Fast DDS, as a Data Distribution Service (DDS) implementation, provides discovery
mechanisms that allow for automatically finding and matching
so they can start sharing data.
This discovery is performed, for all the mechanisms, in two phases.
5.1. Discovery phases¶
Participant Discovery Phase (PDP): During this phase the
DomainParticipantsacknowledge each other’s existence. To do that, each
DomainParticipantsends periodic announcement messages, which specify, among other things, unicast addresses (IP and port) where the
DomainParticipantis listening for incoming meta and user data traffic. Two given
DomainParticipantswill match when they exist in the same DDS Domain. By default, the announcement messages are sent using well-known multicast addresses and ports (calculated using the
DomainId). Furthermore, it is possible to specify a list of addresses to send announcements using unicast (see in Initial peers). Moreover, is is also possible to configure the periodicity of such announcements (see Discovery Configuration).
Endpoint Discovery Phase (EDP): During this phase, the
DataReadersacknowledge each other. To do that, the
DomainParticipantsshare information about their
DataReaderswith each other, using the communication channels established during the PDP. This information contains, among other things, the
Topicand data type (see Topic). For two endpoints to match, their topic and data type must coincide. Once
DataReaderhave matched, they are ready for sending/receiving user data traffic.
5.2. Discovery mechanisms¶
Fast DDS provides the following discovery mechanisms:
Static Discovery: This mechanisms uses the Simple Participant Discovery Protocol (SPDP) for the PDP phase (as specified by the RTPS standard), but allows for skipping the Simple Participant Discovery Protocol (SEDP) phase when all the
DataReaders’ IPs and ports, data types, and
Topicsare known beforehand.
Server-Client Discovery: This discovery mechanism uses a centralized discovery architecture, where a DomainParticipant, referred as Server, act as a hub for discovery meta traffic.
Manual Discovery: This mechanism is only compatible with the RTPS layer. It disables the PDP, letting the user to manually match and unmatch
RTPSWritersusing whatever, external meta-information channel of its choice. Therefore, the user must access the
RTPSParticipantimplemented by the
DomainParticipantand directly match the RTPS Entities.
5.3. Discovery settings¶
The following sections list and describe the settings available for each of the previously defined discovery mechanisms,
as well as how to define the
DomainParticipantListener discovery callbacks.
- 5.3.1. General Discovery Settings
- 5.3.2. SIMPLE Discovery Settings
- 5.3.3. STATIC Discovery Settings
- 5.3.4. Server-Client Discovery Settings
- 5.3.5. DomainParticipantListener Discovery Callbacks