DDS - Data Distribution Service
What is DDS?
DDS stands for Data Distribution Service. It is a middleware protocol and API standard developed by the Object Management Group (OMG) for real-time, scalable, and high-performance data exchange between devices or applications using a publish-subscribe communication model.
Why is DDS useful?
Enables low-latency, high-throughput, and real-time data exchange.
Ideal for distributed systems with multiple producers and consumers of data.
Supports Quality of Service (QoS) settings for reliability, durability, latency, etc.
Facilitates data-centric communication, where data itself is the focus.
Scales easily from embedded systems to enterprise applications.
How it works?
DDS uses a publish-subscribe architecture: * Publishers send data on defined topics. * Subscribers express interest in topics and receive matching data.
Communication is data-centric, not message-centric.
It includes a Data-Centric Publish-Subscribe (DCPS) layer for real-time data delivery.
DDS manages discovery, reliability, filtering, and QoS automatically.
Where is DDS used?
Autonomous vehicles (for sensor fusion, control systems).
Robotics (e.g., ROS 2 uses DDS as its middleware).
Defense and aerospace (command and control systems).
Medical devices (data communication between equipment).
Industrial automation, telecom, and financial systems.
Which OSI layer does this protocol belong to?
DDS operates primarily at the Application Layer (Layer 7).
It also provides features that interact with Session and Presentation layers, especially for QoS and data formatting.
IS DDS Windows specific?
No, DDS is not Windows-specific.
DDS implementations are cross-platform and support Windows, Linux, macOS, RTOSes, and embedded platforms.
IS DDS Linux Specific?
No, DDS is not Linux-specific.
Linux is commonly used for DDS-based systems, especially in robotics and embedded applications, but it is widely supported on many platforms.
Which Transport Protocol is used by DDS?
DDS implementations typically use: * UDP for real-time, best-effort or reliable communication. * TCP for reliable, connection-oriented communication (optional).
Some versions support shared memory, serial, or custom transports for embedded environments.
Which Port is used by DDS?
DDS uses dynamic port ranges, depending on the implementation and configuration.
Example: RTI Connext DDS may use ports like 7400-7500 UDP, but these can be customized.
DDS uses the Real-Time Publish-Subscribe (RTPS) protocol which defines its own discovery and communication ports.
Is DDS using Client server model?
No, DDS uses a peer-to-peer publish-subscribe model, not a traditional client-server model.
Every node can act as a publisher, subscriber, or both, and they discover each other dynamically without a central broker.
In this section, you are going to learn
Terminology
Version Info
rfc details
setup
setup
packet details
usecases
features
Reference links