【DDS】DDSI-RTPS规范

DDS DDSI-RTPS规范

背景

  • DDSI-RTPS:全称“Real-time Publish Subscribe Protocol DDS Interoperability Wire Protocol”,它是DDS Wire-protocol。是DDS实施互操作性(标准化)协议。(一下将DDSI-RTPS,简称为RTPS)
  • 关于DDS,参考:
    【DDS】DDS与OpenDDS
  • 这里的Wire Protocol指的是?他指的是一种传输机制。

A wire protocol is the mechanism for transmitting data from point a to point b.

  • 本文主要关注:RTPS规范中,数据交互的结构(可以大致理解为网络拓扑结构)
  • RTPS与具体使用的传输方式(如UDP/IP)无关,它定义了一套专为DDS设计的“wire protocol”。它定义了一套PIM模型。DDS厂商根据该模型,进行具体的实现。PIM模块包括:
  1. Structure Module:RTPS实体如何表示
  2. Message Module:RTPS使用的消息表示
  3. Behavior Module:如何交互消息,交换哪些消息
  4. Discovery Module:端点间如何发现
    【DDS】DDSI-RTPS规范_第1张图片
  • 如何保证可靠性传输?
  1. 可靠性不依赖于具体的实现(TCP or UDP)
  2. RTPS定义了可靠性规范

数据交互

  • 这里只关注DDS(DDSI-RTPS)的网络拓扑结构。也就是数据交互的部分。
  • DDS实体数据的交互可简单归纳为两部分:
  1. 端点间发现:包括Participain Discover 与Endpoint Discovery
  2. 端点间(已匹配)传输数据: RTPS Writer与RTPS Reader数据传输【DDS】DDSI-RTPS规范_第2张图片

Discover

  • Discover包括:Participaint Discover和EndPoint(Writer/Reader) Discover
Participaint Discover
  • 每个Participant包含内置的ParticipiantDataWriter与ParticipiantDataReader,以及PariticipaintData(Topic),根据DDSI-RTPS的规定,Simple Participant Discovery Protocol(所有DDS实现者必须实现的 Pariticipanit Discovery规范)使用内置的Writer/Reade/Topic实现 Discovery。
  • 如何实现Participaint Discovery?Participant使用ParticipiantDataWriter向LocatorList(预定义)中的地址发送消息(定期)。告知自身是Active状态。
  • LocatorList:Unicast(指定或自动配置)+Multicast (由具体实现指定)
    【DDS】DDSI-RTPS规范_第3张图片
EndPoint Discovery
  • Participaint Discover后进行Endpoint Discovery,交换Endpoint信息
  • 每个Endpoint包含内置的PubWriter/Reader、SubWriter/Reader以及对应的内置主题(topic)。根据DDSI-RTPS的规定, Simple Endpoint Discovery Protocol(所有DDS实现者必须实现的 Pariticipanit Discovery规范)使用内置的Writer/Reade/Topic实现 Discovery。
  • EndPoint向LocatorList(unicast and multicast)发送消息

Transport

  • 经过Discovery后,Writer与Reader相互匹配。可以进行数据的传输(订阅的Topic)。
  • 其数据传输的大致过程为:
  1. DataWriter 添加CacheChange 到HistoryCache中(本地缓存)
  2. DataWriter将CacheChange发送到相应的DataReader的HistoryChace(本地缓存)
  3. HistoryCache(Reader)通知Reader有新的CacheChange。
  4. Reader读取数据。
    【DDS】DDSI-RTPS规范_第4张图片

RTPS建议实体的两个实现参考模型:

Stateless Reference Implementation
  • 特点:

no state on remote entities
improved scalability
less memory
more bandwidht usage

Stateful Reference Implementation
  • 特点:

maintains full state on remote entities
reduced scalability
more memory
minimizes bandwidth usage

Depending on how much state is maintained, implementations may be a combination of the reference implementations.

全局数据空间

  • 关于DDS全局数据空间的理解如下:
  1. 由存在于不同物理位置上的HistoryCache构造的全局数据空间
  2. 逻辑上统一,物理上分布式的
    【DDS】DDSI-RTPS规范_第5张图片

参考资料

  • DDSI-RTPS v2.2

DDS系列

【DDS】DDS与OpenDDS
【DDS】DDS-RPC通信机制
【DDS】基于OpenDDS的DDS-RPC实现

你可能感兴趣的:(DDS,DDS,DDSI-RTPS,网络拓扑结构,单播,组播)