APP下载

DDS可靠发送机制的研究

2015-10-19胡亚男程健庆何跃峰江苏自动化研究所江苏连云港222061

网络安全与数据管理 2015年22期
关键词:序列号队列长度

胡亚男,程健庆,何跃峰(江苏自动化研究所,江苏 连云港 222061)

DDS可靠发送机制的研究

胡亚男,程健庆,何跃峰
(江苏自动化研究所,江苏 连云港 222061)

对象管理组织(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所示。

图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有序接收。

图2 丢包状况下的可靠协议

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。

表1 不同网络状况下的最小队列长度

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

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

表2和表3分别表示尽量发送和可靠发送两种模式下传输数据所需时间,表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.

Research on reliable delivery model of DDS

Hu Yanan,Cheng Jianqing,He Yuefeng
(Jiangsu Automation Research Institute,Lianyungang 222061,China)

There′re two delivery models of data distuibution service(DDS)which is published by OMG,best-effort delivery model and reliable delivery model.DDS uses best-effort delivery by default in the communication system of warship.However,besteffort delivery can′t satisfy the reliability of communication.This paper researches on reliable delivery model and analyses how the reliable protocol of DDS works in nomal and sample-lost situations.Relative QoS policies are configured to set up sizes of sending queue and receiving queue and frequency of heartbeat messages.At last,the comparision of best-effort delivery and reliable delivery declares the situations which the two models apply to.

DDS standard;reliable delivery;reliable protocol;QoS policies

TP391.9

A

1674-7720(2015)22-0028-03

胡亚男,程健庆,何跃峰.DDS可靠发送机制的研究[J].微型机与应用,2015,34(22):28-30.

2015-07-28)

胡亚男(1993-),女,硕士研究生,主要研究方向:DDS通信技术。

程健庆(1966-),男,研究员,主要研究方向:系统仿真。

何跃峰(1981-),男,高级工程师,主要研究方向:模型与软件开发。

猜你喜欢

序列号队列长度
一种离线电子钱包交易的双向容错控制方法
绳子的长度怎么算
1米的长度
队列里的小秘密
基于多队列切换的SDN拥塞控制*
关于《国家税务总局 工业和信息化部关于加强车辆配置序列号管理有关事项的公告》的解读
在队列里
recALL
爱的长度
怎样比较简单的长度