实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_002

本文主要是介绍实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_002,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_002

关键字:OMG,RTPS,DDS

The Real-time Publish-Subscribe Protocol (RTPS) DDS Interoperability Wire Protocol Specification,Version 2.2,September 2014

7 概述

7.4 RTPS平台无关模型(PIM)

根据平台无关模型(PIM)和一组PSM描述RTPS协议。

RTPS PIM包含四个模块:结构,消息,行为和发现。结构(Structure)模块定义通信端点。 消息(Messages)模块定义这些端点可以交换的消息集合。行为(Behavior)模块定义了合法交互集(消息交换)以及它们如何影响通信端点的状态。换句话说,Structure模块定义了协议“参与者”,Messages模块定义了“语法符号”,而Behavior模块定义了不同会话的合法语法和语义。发现(Discovery)模块定义如何自动发现和配置实体。

在这里插入图片描述
图 7.1 RTPS模块

在PIM中,消息是根据其语义内容定义的。可以将此PIM映射到各种平台特定模型(PSM)中,例如普通UDP或CORBA事件。

7.4.1 结构模块

鉴于其发布订阅的根源,RTPS自然地映射到多个DDS概念中。本规范会使用许多DDS规范已经使用的相同核心实体。如图1.2所示,所有RTPS实体都与RTPS域相关联,RTPS域表示包含一组参与者(Participants)的单独通信平面。 参与者包含本地端点(Endpoints)。 有两种类型的端点:读取者(Readers)写入者(Writers)。读取者和写入者是通过发送RTPS消息来传达信息的参与者。写入者告知数据的存在并将**数据域(Domain)**上的本地可用数据发送给读取者,读取者可以请求和确认数据。

在这里插入图片描述

图 7.2 RTPS结构模块

RTPS协议中的活动者与DDS实体一一对应,这是通信产生的原因。如图7.3所示。

在这里插入图片描述
图 7.3 RTPS与DDS对应关系

结构模块在8.2中描述。

7.4.2 消息模块

消息模块定义RTPS写入者和读取者之间的原子信息交换的内容。消息(Message)由一个报文头(Header)后跟一些子消息(Submessage)组成,如图2.4所示。每个消息都是由一系列元素构建的。选择此结构是为了允许扩展子消息的内容和每个子消息的组成,同时保持向下兼容性。
在这里插入图片描述
图 7.4 RTPS消息模块

消息模块将在8.3中详细讨论。

7.4.3 行为模块

行为模块描述了可以在RTPS写入者和读取者之间交换的消息序列,以及时间和每条消息引起的写入者和读取者状态的变化。

互操作性所需的行为是根据实现必须遵循的最小规则集来描述的,以便实现互操作。实际实现可能表现出超出这些最低要求的不同行为,具体取决于他们希望如何权衡扩展性,内存要求和带宽使用。

为了说明这个概念,行为模块定义了两个参考实现。一个参考实现基于有状态写入者(StatefulWriters)有状态读取者(StatefulReaders),另一个基于无状态写入者(StatelessWriters)无状态读取者(StatelessReaders),如图2.2所示。两种参考实现都满足互操作的最低要求,因此可以互操作,但由于它们存储在匹配的远程实体上的信息不同,因此表现出略微不同的行为。 RTPS协议的实际实现的行为可以是参考实现的完全匹配或组合。

行为模块在8.4中描述。

7.4.4 发现模块

发现模块描述了使参与者(Participants)能够获取域中所有其他参与者(Participants)和端点(Endpoints)的存在和属性信息的协议。这种元通信(metatraffic)使每个参与者(Participant)能够获得域中所有参与者(Participants),读取者(Readers)和写入者(Writers)的完整信息,并配置本地写入者与远程读取者进行通信,以及本地读取者与远程写入者进行通信。

发现是一个单独的模块。发现的独特需求,即写入者和读取者进行匹配所需的所有信息需要通过透明地即插即用传播,使得单个架构或协议不可能满足各种各样的可扩展性,性能和将部署DDS的异构网络的嵌入性需求。从此以后,引入多种发现机制是有意义的,这些机制从简单和有效(但不是很可扩展)到更复杂的分层(但更具可扩展性)机制。

发现模块在8.5中描述

7.5 RTPS平台特定模型(PSM)

特定于平台的模型将RTPS PIM映射到特定的底层平台。它定义了所有RTPS类型和消息的位和字节的精确表示以及专属于平台的其他信息。

可能支持多个PSM,但DDS的所有实现必须在UDP/IP之上实现PSM,这在第3章中介绍。

7.6 RTPS传输模型

RTPS支持各种传输方式和传输QoS。该协议旨在能够在多播和尽力而为的传输方式(例如UDP/IP)上运行,并且只需要该传输方式提供非常简单的服务。实际上传输方式提供能够最大限度地发送数据包的无连接服务就足够了。也就是说传输方式不需要保证每个数据包会到达其目的地或者数据包按顺序传送。如果需要,RTPS在传输接口以上实现数据传输和状态的可靠性。这并不排除RTPS在可靠的传输方式之上实现。它使得支持更广泛的底层传输方式成为可能。

如果可以的话,RTPS还可以利用传输机制的多播功能,来自发送方的一条消息可以到达多个接收方。RTPS旨在促进底层通信机制的确定性。该协议提供了确定性和可靠性之间的公开权衡。
RTPS对底层传输方式的一般要求可归纳如下:

  • 传输具有单播地址(长度应在16字节以内)的通用概念。
  • 传输具有端口(长度应在4字节以内)的通用概念,例如可以是UDP端口或者共享存储器段中的偏移等。
  • 传输可以将数据报(未解释的八位字节序列)发送到特定的地址/端口。
  • 传输可以在特定地址/端口接收数据报。
  • 如果传输过程中消息不完整或已损坏,传输将丢弃消息(即RTPS假定消息已完成且未损坏)。
  • 传输提供推断接收消息大小的方法。

译文连载

RTPS规范-上一篇:实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_001
RTPS规范-下一篇:实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_003
DDS规范-译文连载:DDS (Data Distribution Service) 数据分发服务-规范中文翻译_001

相关链接

DDS科普:一文读懂DDS(数据分发服务)
DDS定义:什么是DDS?
产品介绍:BLUE DCS分布式数据连接解决方案
产品试用: 海蓝云平台-Blue DCS

这篇关于实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_002的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/453606

相关文章

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

JSR-107缓存规范介绍

《JSR-107缓存规范介绍》JSR是JavaSpecificationRequests的缩写,意思是Java规范提案,下面给大家介绍JSR-107缓存规范的相关知识,感兴趣的朋友一起看看吧... 目录1.什么是jsR-1072.应用调用缓存图示3.JSR-107规范使用4.Spring 缓存机制缓存是每一

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增

使用Python实现实时金价监控并自动提醒功能

《使用Python实现实时金价监控并自动提醒功能》在日常投资中,很多朋友喜欢在一些平台买点黄金,低买高卖赚点小差价,但黄金价格实时波动频繁,总是盯着手机太累了,于是我用Python写了一个实时金价监控... 目录工具能干啥?手把手教你用1、先装好这些"食材"2、代码实现讲解1. 用户输入参数2. 设置无头浏

浅谈Redis Key 命名规范文档

《浅谈RedisKey命名规范文档》本文介绍了Redis键名命名规范,包括命名格式、具体规范、数据类型扩展命名、时间敏感型键名、规范总结以及实际应用示例,感兴趣的可以了解一下... 目录1. 命名格式格式模板:示例:2. 具体规范2.1 小写命名2.2 使用冒号分隔层级2.3 标识符命名3. 数据类型扩展命

Maven 依赖发布与仓库治理的过程解析

《Maven依赖发布与仓库治理的过程解析》:本文主要介绍Maven依赖发布与仓库治理的过程解析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录Maven 依赖发布与仓库治理引言第一章:distributionManagement配置的工程化实践1

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优