胡亞男,程健慶,何躍峰(江蘇自動化研究所,江蘇 連云港 222061)
DDS可靠發送機制的研究
胡亞男,程健慶,何躍峰
(江蘇自動化研究所,江蘇 連云港 222061)
對象管理組織(Object Management Group,OMG)頒布的數據分發服務(Data Distribution Service,DDS)規范有兩種發送模式,一種為盡量發送,一種為可靠發送。在艦載信息系統中,DDS通常默認為盡量發送模式,這并不能保證系統的可靠性。因此,針對DDS規范中可靠發送模型進行深入研究,分析可靠協議在正常狀況下及丟包狀況下的工作流程。根據可靠性的要求,通過配置相關QoS策略調整發送隊列和接收隊列的長度以及心跳檢測信號的發送頻率。最后,通過盡量發送和可靠發送兩種模式的性能測試比較說明各自所適用的情況。
DDS規范;可靠發送;可靠協議;QoS策略
對象管理組織(Object Management Group,OMG)于2004年 12月發布了面向分布式實時系統的數據分發服務(Data Distribution Service,DDS)規范[1]。DDS有兩種發送模式:盡量發送和可靠發送[2]。在艦載信息系統中,盡量發送通常為默認方式,這種方式無需確定樣本是否按順序傳遞也不需要重新發送樣本,而當對數據樣本正確性要求較高時,這種方式并不再適用,此時需使用可靠發送模式。可靠發送模式確保所有的樣本都被有序接收。本文將對可靠發送機制所使用的方法以及過程進行研究。
可靠發送意味著樣本確定到達并且按序發布。發送和接收隊列用來臨時緩存樣本,直到DDS確認樣本已經成功傳遞。在樣本已經被所有可靠的訂閱者接收之后,DDS將發布隊列中的樣本移除。如果無序樣本到達,那么DDS將其緩存到數據讀取者(DR)的接收隊列中。
在發送樣本時,數據寫入者(DW)設置為等待空間狀態,即當發送隊列沒有可用的空間時,DW一直等待直到有可用的隊列空間。而如果將DW設置為非等待空間狀態,即不論隊列溢出與否都一直發送數據,那么舊的緩存樣本將會被推出隊列,DR將無法接收。
為了保證可靠發送,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 丟包狀況下的可靠協議
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 不同網絡狀況下的最小隊列長度
本測試采用由發布者發送數據,在訂閱者接收到數據后立即返回數據,再由發布者本身接收回告,取接收到回告時間與剛開始發送的時間差。
表2和表3分別表示盡量發送和可靠發送兩種模式下傳輸數據所需時間,表4為兩種發送模式丟包率的對比。

表2 盡量發送模式

表3 可靠發送模式

表4 兩種發送模式丟包率對比
從以上結果可以看出,盡量發送模式比可靠發送模式傳輸數據所需的平均時間短,但是會產生丟包的情況;而可靠發送模式傳輸數據所需的平均時間較長,但是不會產生丟包的情況,確保每個數據樣本都能成功傳輸。
在實際應用中,以艦載信息系統為例,二者應相互結合使用。傳輸實時性較高以及周期性發送的數據(如武器傳感器數據)時,發送模式應為盡量發送;而對于控制命令(如開關機等一次性指令)則需要可靠發送。
本文分析了可靠發送模型以及協議,設計并實現相關的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-),男,高級工程師,主要研究方向:模型與軟件開發。