打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DDS可靠发送机制的研究

  摘  要: 对象管理组织(Object Management Group,OMG)颁布的数据分发服务(Data Distribution Service,DDS)规范有两种发送模式,一种为尽量发送,一种为可靠发送。在舰载信息系统中,DDS通常默认为尽量发送模式,这并不能保证系统的可靠性。因此,针对DDS规范中可靠发送模型进行深入研究,分析可靠协议在正常状况下及丢包状况下的工作流程。根据可靠性的要求,通过配置相关QoS策略调整发送队列和接收队列的长度以及心跳检测信号的发送频率。最后,通过尽量发送和可靠发送两种模式的性能测试比较说明各自所适用的情况。

  关键词: DDS规范;可靠发送;可靠协议;QoS策略

0 引言

  对象管理组织(Object Management Group,OMG)于2004年12月发布了面向分布式实时系统的数据分发服务(Data Distribution Service,DDS)规范[1]。DDS有两种发送模式:尽量发送和可靠发送[2]。在舰载信息系统中,尽量发送通常为默认方式,这种方式无需确定样本是否按顺序传递也不需要重新发送样本,而当对数据样本正确性要求较高时,这种方式并不再适用,此时需使用可靠发送模式。可靠发送模式确保所有的样本都被有序接收。本文将对可靠发送机制所使用的方法以及过程进行研究。

1 可靠发送模型

  可靠发送意味着样本确定到达并且按序发布。发送和接收队列用来临时缓存样本,直到DDS确认样本已经成功传递。在样本已经被所有可靠的订阅者接收之后,DDS将发布队列中的样本移除。如果无序样本到达,那么DDS将其缓存到数据读取者(DR)的接收队列中。

  在发送样本时,数据写入者(DW)设置为等待空间状态,即当发送队列没有可用的空间时,DW一直等待直到有可用的队列空间。而如果将DW设置为非等待空间状态,即不论队列溢出与否都一直发送数据,那么旧的缓存样本将会被推出队列,DR将无法接收。

2 可靠协议

  为了保证可靠发送,DDS执行实时发布订阅(Real-Time Publish-Subscribe,RTPS)协议。

  可靠协议使用以下几种类型的消息[3]:数据信息(Data)、心跳检测信息(HB)、反馈信息(ACK/NACK)。

  (1)数据信息。格式为DATA(<样本值>,<序列号>),例如DATA(A,1),表示样本值为A,序列号为1。

  (2)心跳检测信息。HB信息通知DR应该接收了某序列号范围内的信息,要求DR发送相应的响应信息。

  (3)反馈信息。反馈信息用于向DW表明特定的信息已经成功存储到该DR的历史中。DW可以通过反馈信息得知DR哪些信息丢失了。

  2.1 正常状况下的可靠协议

  在样本未丢失的情况下,当调用写函数(write())时,可靠协议工作流程如图1所示。

  在样本被发送之前,将会在DW的发送序列中加上序列号(此例中为1)。一旦样本被DR接收,DR就将信息存放于其接收队列中,标记为√。DR接收到的心跳检测信号HB(1)为确认自己是否已经成功接收样本(1,A),本例中为成功接收。DW接收到DR发的ACKNACK(2)信息后,确认样本(1,A)已经被成功接收,也以√标记。

  2.2 丢包状况下的可靠协议

  假设样本DATA(A,1)在发送过程中发生了丢包情况,当DR收到下一个信号包(DATA(B,2);HB(1-2))时,由于心跳检测HB(1-2)表明DR应该已经收到序列号为1-2的样本,于是DR将会自检是否已经成功接收这些样本,会发现序列号为1的样本并没有被成功接收。此时,DR将会发送ACKNACK(1)给DW,要求其重新发送样本DATA(A,1)。该过程如图2所示。

  DR发送反馈信息ACKNACK(1)给DW之后,DW首先发送丢包的样本A,然后发送样本包C以及心跳包HB(1-3)。此时,DR自检确认之后,发送反馈信息。

  实时发布订阅协议中的确认机制使得DW接收到相关的丢包信息,这样使得每一个样本都能成功被DR有序接收。

3 相关QoS策略

  QoS是指一系列可控制DDS服务行为的特性集合,它由独立的QoS策略组成,是DDS规范的最大亮点[4-5]。可以通过某些QoS策略的设置增加系统的可靠性。这里仅对发送队列长度和接收队列长度的相关QoS策略进行设置。

  3.1发送队列长度

  设置历史QoS策略可以调整DW发送队列保存的样本数以及DR接收队列保存的样本数[6]。

  若DW没有接收到DR发送的反馈信号,那么DW的发送队列将会满。此时,如果需要强可靠性数据通信,那么历史策略的类型应设置为“保留所有”,发送端需阻塞线程,等待直到发送队列有空间再继续写样本。如果历史策略类型设置为“保留最新”,强可靠性通信将不能被保证。

  若给出可靠性的要求,那么发送队列的最小长度设置如下:

  

  其中,R是发送样本的速率,T是数据传输一周的时间,P是传递样本过程中丢包的概率,Q是样本成功发送的需求概率。

  根据不同的网络状况,所得到的发送队列最小长度如表1所示。

  3.2 接收队列长度

  DR接收样本时,样本被保存在接收队列中,只有当操作“取”(take())将其取走后,样本才会被移除出接收队列[7]。DR的接收队列长度应大于DW发送队列的长度,主要由资源限制QoS策略中的“队列最大样本数(max_samples,ms)”控制。一个DR可以与多个DW保持通信,DW的无序样本也保存在DR的接收队列中。为了防止某个DW的无序样本占用过多的接收队列资源,可以在DR的资源限制QoS策略中设置参数“DW最大样本数(max_samples_per_remote_writer,mw)”,mw<=ms。

4 可靠发送与尽量发送性能测试

  本测试采用由发布者发送数据,在订阅者接收到数据后立即返回数据,再由发布者本身接收回告,取接收到回告时间与刚开始发送的时间差。

  表2和表3分别表示尽量发送和可靠发送两种模式下传输数据所需时间,表4为两种发送模式丢包率的对比。

  从以上结果可以看出,尽量发送模式比可靠发送模式传输数据所需的平均时间短,但是会产生丢包的情况;而可靠发送模式传输数据所需的平均时间较长,但是不会产生丢包的情况,确保每个数据样本都能成功传输。

  在实际应用中,以舰载信息系统为例,二者应相互结合使用。传输实时性较高以及周期性发送的数据(如武器传感器数据)时,发送模式应为尽量发送;而对于控制命令(如开关机等一次性指令)则需要可靠发送。

5 结论

  本文分析了可靠发送模型以及协议,设计并实现相关的QoS策略,通过尽量发送和可靠发送两种模式的性能测试,分析了两种发送模式所适用的情况。在进一步的工作中,将分析探讨DDS在相关领域中的应用及其他QoS策略的配置。

参考文献

  [1] GEIHS K. Middleware challenges ahead[J]. IEEE Computer, 2001,34(6):24-31.

  [2] BARNETT D. RTI-time data distribution for Industrial Automation System. [EB/OL](2009-02-xx). [2015-04-28]. www.rti.com.

  [3] 裘楷,沈栋,李娜,等.基于DCPS模型的数据分发服务DDS的研究[J].电子科技,2006(11):68-71.

  [4] 张珺,尹逊和.基于RTIDDS的数据分发中间件的升级设计[J].北京交通大学学报,2011,35(5)31-37.

  [5] Object Management Group. Data Distribution Service for real-time systems(Vision 1.2)[S]. 2007.

  [6] 冯国良,谷青范.基于DDS的实时中间件的研究与设计[J].航空电子技术,2011,42(3):41-46.

  [7] 欧阳军,蔡志明,王希敏.基于DDS中间件的性能测试[J].舰船电子工程,2011,31(11):136-139.

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
SOA中间件DDS(数据分发服务-Data Distribution Service)_soa通信中间件
第一章OpenDDS概述
友邻·9月活动电子讲义- 专辑:睡前故事
【性能优化的秘密】Hadoop如何将TB级大文件的上传性能优化上百倍?【石杉的架构笔记】
DDS与SOME/IP 谁主沉浮?
什么是DDS?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服