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