当前位置: 首页 > news >正文

网站设计就业培训做网站与考研

网站设计就业培训,做网站与考研,软件定制网站优化 seo一站式,wordpress主题选择▎什么是RTPS 在DDS协议中#xff0c;主要描述了实现数据分发服务的DCPS模型和QoS策略#xff0c;但是我们还不清楚数据怎样在网络中传输#xff0c;想要了解这些内容#xff0c;就需要请出咱们的数据搬运工——RTPS。 RTPS全称是Real-Time Publish-Subscribe Protocol主要描述了实现数据分发服务的DCPS模型和QoS策略但是我们还不清楚数据怎样在网络中传输想要了解这些内容就需要请出咱们的数据搬运工——RTPS。 RTPS全称是Real-Time Publish-Subscribe Protocol实时发布订阅协议定义了DDS基于有线传输的通信行为、报文格式等内容。 RTPS的主要特点包括 支持QoS可实现实时应用程序之间Best-Effort和Reliable两类通信容错性允许创建没有单点故障的网络不依赖集中式服务器可扩展性允许复杂设备通过新的服务进行扩展而不破坏向后兼容性和互操作性即插即用应用程序之间通过自动发现机制可随时加入或离开网络而不需要重新配置模块化允许简单设备实现协议的部分功能仍可以参与网络通信 RTPS对底层传输要求 应存在广义概念上的单播地址16Byte以内具有端口广义概念4B可以是UDP端口也可以是共享内存段等等可以将数据包具有序列号发送特定地址/端口可以在一个特定的地址/端口上接收一个数据包消息在传输过程中不完整或者损坏RTPS将删除消息即RTPS假设消息完整且未损坏 ▎RTPS的内容 RTPS定义了四部分内容分别为 Structure Module定义了RTPS entity和DDS entity之间的映射关系以及用于数据交互的通信端点Message Module定义了通信端点之间交互的报文格式Behavior Module定义了通信端点之间的交互行为Discovery Module定义了RTPS entity之间如何自动发现和配置 Structure Module Structure Module 描述了作为通信参与者的RTPS实体的结构如下图所示RTPS实体是被应用程序可见的DDS实体相互通信而使用的协议级端点。 Entity所有RTPS实体的基类, 每一个RTPS实体对象都具有一个全局唯一标识符(GUID)GUID可以在RTPS消息中进行体现 EndpointRTPS实体对象的通信端点可以是RTPS消息的源或目标的对象 Participant在一个独立地址空间中的所有RTPS实体的容器共享公共属性 WriterRTPS的Endpoint表示传递数据更改消息的发送端 ReaderRTPS的Endpoint表示传递数据更改消息的接收端 HistoryCache用于临时存储和管理对数据对象的更改集的容器类 CacheChange对数据对象所做的更改。包括对数据对象的创建、修改和删除 Data可能与对数据对象所做的更改相关联的数据 Messages Module Messages模块描述了在RTPS Writer端点和RTPS Reader端点之间交换的消息的总体结构和逻辑内容其结构如下所示。 RTPS消息的整体结构由固定大小的RTPS头部(Header)和可变数量的RTPS子消息部分组成。子消息的种类包括HeaderExtension、Data、DataFrag、Heartbeat、HeartbeatFrag、AckNack、NackFrag、Gap、InfoDestination、InfoSource、InfoReply、InfoTimestamp、Pad每个子消息的报文格式依次由一个SubmessageHeader和一个可变数量的SubmessageElement组成。每个部分的作用如下 Header该报头用于标识RTPS报文携带RTPS协议版本、供应商和GUID前缀等信息其报文格式如下 HeaderExtension可以添加在Header字段之后。它扩展了报头中提供的信息同时还能保持和以往RTPS协议版本的兼容。 Data由RTPS Writer发给RTPS Reader告知对端有数据更新其报文格式如下 DataFrag由RTPS Writer发给RTPS Reader告知对端有数据更新且需在RTPS Reader端对分片数据进行重组。 Heartbeat由RTPS Writer发给RTPS Reader告知当前的可用数据其报文格式如下 HeartbeatFrag由RTPS Writer发给RTPS Reader告知对端当前可用的数据分段。 AckNack由RTPS Reader发给RTPS Writer告知已接收/未接收的数据其报文格式如下 NackFrag由RTPS Reader发给一个或多个RTPS Writer告知对端当前仍未收到的数据分段 Gap由RTPS Writer发给RTPS Reader 告知未发送的过滤掉的数据 InfoDestination由RTPS Writer发给RTPS Reader告知后续报文的GuidPrefix需依据该子消息更新 InfoSource由RTPS Writer发给RTPS Reader告知Reader协议VersionVendorID有更新 InfoReply由RTPS Reader发给RTPS Writer告知回复子消息的目标地址需依据该子消息更新 InfoTimestamp告知同一RTPS报文的后续Submessage的时间戳 Pad用于在需要内存对齐时进行padding Behavior Module 该模块描述了RTPS实体的动态行为。它描述了RTPS Writer端点和RTPS Reader端点之间报文交换的有效序列和时间约束。 根据本地端点是否维持远端匹配端点的数据收发状态RTPS规范定义了两种参考实现: 无状态参考实现Stateless Reference Implementation:无状态参考实现不保留远程实体的状态因此可以很好地扩展到大型系统。无状态参考实现非常适合通过多播进行Best-Effort通信有状态参考实现Stateful Reference Implementation:有状态参考实现维护远程实体的完整状态。这种方法可以尽可能地减少带宽使用但需要更多内存。与无状态参考实现相比它可以保证Reliable通信并且能够在Writer端应用基于QoS或基于内容的过滤。 RTPS Writer参考实现基于RTPS Writer类的特定实例化分为Stateless Writer和Stateful Writer。 Stateless Writer不知道匹配的Reader的数量也不为每个匹配的RTPS Reader端点维护任何状态只维护RTPS ReaderLocator列表该列表应用于向匹配的读取器发送信息。 Stateful Writer配置了所有匹配的RTPS Reader端点的信息并维护每个匹配的RTPS Reader端点的状态以确定是否所有匹配的RTPS Reader端点都收到了特定的数据。对于Best-Effort通信Writer在收到上层APP下发的数据后即可发出对于Reliable通信Writer还需依据接收到的ACKNACK子消息判断是否重发数据。 RTPS Reader参考实现基于RTPS Reader类的特定实例化分为Stateless Reader和Stateful Reader。 Stateless Reader不知道匹配的Writer的数量也不为每个匹配的RTPS Writer维护任何状态。 Stateful Reader保存每个匹配的RTPS Writer的状态。对于Best-Effort通信Reader收到数据后放入本地缓存即可对于Reliable通信Reader需依据已接收/未接收的数据状态选择性发送ACKNACK子消息进行确认/重发请求。 StatefulWriter StatefulReader Reliable的RTPS交互示例如下图所示StatefulWriter需要创建ReaderProxy,记录匹配的StatefulReader的端点信息当上层有更新的数据时把更新的数据发给StatefulReaderStatefulReader需要创建WriterProxy依据Data/Heartbeat子消息在WriterProxy中记录数据的接收状态然后回复AckNack子消息StatefulWriter根据接收到的AckNack子消息在ReaderProxy中更新数据的接收状态若StatefulReader存在未接收的数据则重发该数据。 Discovery Module RTPS Behavior模块假设RTPS端点已正确配置并与匹配的远程端点完成匹配。但是没有对这个配置是如何发生的做任何假设只是定义了如何在这些端点之间交换数据。因此Discovery模块定义了RTPS的发现协议目的是允许每个RTPS参与者发现其他相关参与者及其端点。一旦发现了远程端点就可以相应地配置本地端点以建立通信。用户可以通过DDS内置主题访问此发现信息。 RTPS规范将发现协议拆分为两个独立的协议: 参与者发现协议PDP端点发现协议EDP 参与者发现协议PDP指定参与者Participant如何在网络中发现彼此。一旦两个参与者Participant发现了对方他们就会使用端点发现协议EDP交换关于所包含的端点Endpoint的信息。除了这种先发现Participant、再发现Endpoint的先后关系之外这两种方案都可以被认为是独立的。 实现RTPS可以选择支持多个PDP和EDP为了实现互操作性所有RTPS实现必须至少提供以下发现协议: 简单参与者发现协议(SPDP)用于RTPS Participant相互发现简单端点发现协议(SEDP)用于RTPS Writer/Reader相互发现。两者都是基本的发现协议。 ▎结语 通过对RTPS协议的解析我们了解到RTPS作为DDS的互操作性有线协议定义了底层的交互方式及报文格式。协议主要分为四个部分1Structure Module描述了RTPS类与属性以及与DDS关联(2) Message Module描述了RTPS报文结构和子消息类型(3) Behavior Module描述了RTPS stateless和stateful状态的 writer和reader分别实现Reliable和Best-Effort通信的行为(4) Discovery Module分别定义了SPDP和SEDP两个简单发现协议。更多有关DDS子协议的内容会在后续文章中为大家进行介绍敬请期待。
http://www.zqtcl.cn/news/658529/

相关文章:

  • 做网站不会框架网站开发逻辑图
  • 东莞网站制作个性化宜都网站建设
  • 空壳网站查询网络服务提供者不履行法律、行政法规
  • 付费阅读网站代码做网站需要什么软件
  • 泗阳网站设计外贸网站特点
  • 国外logo设计网站推荐网页浏览器证书失效怎么修复
  • asp.net建立手机网站校园网站设计代码
  • 网站图标怎么下载肇庆新农村建设内容在哪个网站
  • 上海建站哪家好临沂建设工程质量 监督网站
  • 中国建设银行网站地图上海最新新闻热点事件
  • wordpress4.95淘宝优化标题都是用什么软件
  • 大网站用wordpress吗网站广告费怎么做分录
  • 江西建设安全网站会展平面设计主要做什么
  • 阿里巴巴免费做网站吗企业商务网站建设策划书
  • 广州网站制作哪家专业深圳网站制作开发
  • 网站icp备案管理系统个人网站源代码
  • 西安网站建设公司云网wordpress 文章分类
  • 长沙优化网站服务r18cn wordpress
  • 建材网站设计延安网站建设电话
  • 做视频网站犯法么华为公司网站建设案例分析
  • 陕煤化建设集团网站矿建二公司网站制作系统
  • 网站建设类别wordpress下载付费
  • 廊坊做网站的成都网站建设网站建设
  • 如何自己开网站网络服务检测与维护
  • 古镇网站建设熊掌号专业网站开发哪里有
  • 专业做网站服务上海网站开发哪家好
  • 科普重庆网站浙江网站开发
  • 怎么搭建自己的网站后台邹城网站建设哪家好
  • 二手房在哪个网站做合同wordpress 局域网 慢
  • 全包胶衣网站wordpress 3.1