[译]DDS之RTPS

RTPS简介

名词解释
名词 解释
RTPS Real Time Publish Subscribe Protocol (实时发布订阅协议)
OMG Object Management Group (对象管理组)
QoS Quality-of-Service 服务质量
DDS Data Distribution Service 数据分发服务

什么是RTPS?

RTPS(实时发布订阅协议)是一种协议,用于在单播和多播中通过 UDP等不可靠传输进行尽力而为的可靠发布 - 子通信

RTPS已被OMG(对象管理组)标准化 为数据分发服务(DDS) 实施的互操作性协议 ,这是一种广泛用于航空航天和国防领域的标准,用于实时应用。

RTPS优势

RTPS协议的主要特点是:

性能和服务质量(QoS)属性为使用标准IP网络的实时应用程序提供尽力而可靠的发布 - 订阅通信。
容错允许创建没有单点故障的网络。
可扩展性允许通过扩展协议和增强新服务来实现向后兼容性和互操作性。
适用于新应用程序和服务的即插即用连接,允许应用程序随时加入和离开网络,实现自动无配置发现。
可配置性允许平衡每个数据传递事务的可靠性和及时性要求。
模块化允许简单设备实现协议的子集并仍然参与发布 - 订阅网络。
可扩展性使系统能够扩展到非常大的发布 - 订阅网络。
类型安全防止应用程序编程错误危及发布 - 订阅网络中远程节点的操作。

RTPS架构

RTPS有线协议基于四个不同的模块,用于控制不同DDS应用程序之间的信息交换。

  • 结构模块 定义了通信端点并将它们映射到自己的DDS同行。
  • 消息模块 定义,可以将消息这些端点交换以及它们是如何构建的。
  • 行为模块 定义了一组法律的相互作用以及它们如何影响每个端点。
  • 发现模块 定义了一组内置的端点,允许自动发现的。
结构模块:

由于RTPS是用于实现DDS应用的有线协议,因此每个DDS概念或实体自然地映射到RTPS实体。所有RTPS实体都与RTPS域相关联,RTPS域表示包含一组参与者的单独通信平面。每个RTPS参与者可以包含两种不同类型的本地端点: WritersReaders. 。这两个端点通过发送RTPS消息在RTPS网络中交换信息。Writers将本地可用信息发送给ReadersReaders可以请求或确认数据。

RTPS结构

RTPS端点(WriterReaders)与其对应的DDS实体之间的接口是 HistoryCache。端点之间交换的信息通常存储在CacheChange中。例如,每个写操作都在Writer History中引入CacheChange。然后,RTPS Writer向所有匹配的Readers发送RTPS消息。收到后,RTPS Reader将CacheChange添加到其对应的HistoryCache,并通知DDS实体新数据可用。

消息模块:

消息模块定义RTPS写入器和读取器之间的原子信息交换的内容。RTPS消息由标题后跟许多子消息组成。标头将消息标识为RTPS协议的一部分,以及正在使用的协议版本和发送消息的供应商。它还标识正在发送消息的参与者。

每个Submessage都由Submessage Header和一系列Submessage元素组成。选择此结构是为了允许扩展Submessages的词汇表和每个Submessage的组成,同时保持向后兼容性。Submessage Header包含子消息Id,用于标识子消息的类型,子消息长度(以字节为单位)和子消息标志。有十二种不同类型的子消息。有关所有消息的完整描述,其组成和解释,请参阅OMG RTPS规范文档。三个最重要的信息是:

数据: 此子消息从Writer发送到Reader,其中包含有关对属于Writer的数据对象的更改的信息。此更改可以是值(添加新信息)或生命周期(先前发送的数据不再有效)。
HEARTBEAT: 此子消息从Writer发送到Reader,传达Writer目前可用的CacheChanges。
ACKNACK: 此子消息从Reader发送到Writer,并允许Reader通知Writer它已收到哪些更改以及哪些更改仍然丢失。它可以用来做正面和负面的确认。

行为模块:

此模块描述了Writer和Reader之间可能发生的有效消息交换。它还根据每条消息定义Writer和Reader状态的变化。可以在OMG RTPS规范文档中找到完整的规则。设置这些规则是为了确保不同实现之间的互操作性。

发现模块:

此模块描述了使参与者能够获取有关域中所有其他参与者和端点的存在和属性的信息的协议。这种信息交换称为metatraffic。一旦发现远程端点,就可以相应地配置本地端点以建立通信。发现协议分为两层:参与者发现协议(PDP)和端点发现协议(EDP)。PDP指定参与者如何相互发现。发现后,参与者使用EDP交换有关其终点的信息。不同的供应商可以实现多个发现协议,但是为了确保互操作性,所有供应商必须实现一个PDP和一个EDP。这些发现协议称为“简单”

可以在规范文档中找到发现模块的完整描述。然而,这种发现机制最重要的特征是它允许简单的即插即用连接,而无需用户进行任何配置。

原文地址 rtps

你可能感兴趣的:([译]DDS之RTPS)