《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > DDS可靠發(fā)送機(jī)制的研究
DDS可靠發(fā)送機(jī)制的研究
2015年微型機(jī)與應(yīng)用第22期
胡亞男,程健慶,何躍峰
(江蘇自動(dòng)化研究所,江蘇 連云港 222061)
摘要: 對(duì)象管理組織(Object Management Group,OMG)頒布的數(shù)據(jù)分發(fā)服務(wù)(Data Distribution Service,DDS)規(guī)范有兩種發(fā)送模式,一種為盡量發(fā)送,一種為可靠發(fā)送。在艦載信息系統(tǒng)中,DDS通常默認(rèn)為盡量發(fā)送模式,這并不能保證系統(tǒng)的可靠性。因此,針對(duì)DDS規(guī)范中可靠發(fā)送模型進(jìn)行深入研究,分析可靠協(xié)議在正常狀況下及丟包狀況下的工作流程。根據(jù)可靠性的要求,通過(guò)配置相關(guān)QoS策略調(diào)整發(fā)送隊(duì)列和接收隊(duì)列的長(zhǎng)度以及心跳檢測(cè)信號(hào)的發(fā)送頻率。最后,通過(guò)盡量發(fā)送和可靠發(fā)送兩種模式的性能測(cè)試比較說(shuō)明各自所適用的情況。
Abstract:
Key words :

  摘  要: 對(duì)象管理組織(Object Management Group,OMG)頒布的數(shù)據(jù)分發(fā)服務(wù)(Data Distribution Service,DDS)規(guī)范有兩種發(fā)送模式,一種為盡量發(fā)送,一種為可靠發(fā)送。在艦載信息系統(tǒng)中,DDS通常默認(rèn)為盡量發(fā)送模式,這并不能保證系統(tǒng)的可靠性。因此,針對(duì)DDS規(guī)范中可靠發(fā)送模型進(jìn)行深入研究,分析可靠協(xié)議在正常狀況下及丟包狀況下的工作流程。根據(jù)可靠性的要求,通過(guò)配置相關(guān)QoS策略調(diào)整發(fā)送隊(duì)列和接收隊(duì)列的長(zhǎng)度以及心跳檢測(cè)信號(hào)的發(fā)送頻率。最后,通過(guò)盡量發(fā)送和可靠發(fā)送兩種模式的性能測(cè)試比較說(shuō)明各自所適用的情況。

  關(guān)鍵詞: DDS規(guī)范;可靠發(fā)送;可靠協(xié)議;QoS策略

0 引言

  對(duì)象管理組織(Object Management Group,OMG)于2004年12月發(fā)布了面向分布式實(shí)時(shí)系統(tǒng)的數(shù)據(jù)分發(fā)服務(wù)(Data Distribution Service,DDS)規(guī)范[1]。DDS有兩種發(fā)送模式:盡量發(fā)送和可靠發(fā)送[2]。在艦載信息系統(tǒng)中,盡量發(fā)送通常為默認(rèn)方式,這種方式無(wú)需確定樣本是否按順序傳遞也不需要重新發(fā)送樣本,而當(dāng)對(duì)數(shù)據(jù)樣本正確性要求較高時(shí),這種方式并不再適用,此時(shí)需使用可靠發(fā)送模式。可靠發(fā)送模式確保所有的樣本都被有序接收。本文將對(duì)可靠發(fā)送機(jī)制所使用的方法以及過(guò)程進(jìn)行研究。

1 可靠發(fā)送模型

  可靠發(fā)送意味著樣本確定到達(dá)并且按序發(fā)布。發(fā)送和接收隊(duì)列用來(lái)臨時(shí)緩存樣本,直到DDS確認(rèn)樣本已經(jīng)成功傳遞。在樣本已經(jīng)被所有可靠的訂閱者接收之后,DDS將發(fā)布隊(duì)列中的樣本移除。如果無(wú)序樣本到達(dá),那么DDS將其緩存到數(shù)據(jù)讀取者(DR)的接收隊(duì)列中。

  在發(fā)送樣本時(shí),數(shù)據(jù)寫入者(DW)設(shè)置為等待空間狀態(tài),即當(dāng)發(fā)送隊(duì)列沒(méi)有可用的空間時(shí),DW一直等待直到有可用的隊(duì)列空間。而如果將DW設(shè)置為非等待空間狀態(tài),即不論隊(duì)列溢出與否都一直發(fā)送數(shù)據(jù),那么舊的緩存樣本將會(huì)被推出隊(duì)列,DR將無(wú)法接收。

2 可靠協(xié)議

  為了保證可靠發(fā)送,DDS執(zhí)行實(shí)時(shí)發(fā)布訂閱(Real-Time Publish-Subscribe,RTPS)協(xié)議。

  可靠協(xié)議使用以下幾種類型的消息[3]:數(shù)據(jù)信息(Data)、心跳檢測(cè)信息(HB)、反饋信息(ACK/NACK)。

  (1)數(shù)據(jù)信息。格式為DATA(<樣本值>,<序列號(hào)>),例如DATA(A,1),表示樣本值為A,序列號(hào)為1。

  (2)心跳檢測(cè)信息。HB信息通知DR應(yīng)該接收了某序列號(hào)范圍內(nèi)的信息,要求DR發(fā)送相應(yīng)的響應(yīng)信息。

  (3)反饋信息。反饋信息用于向DW表明特定的信息已經(jīng)成功存儲(chǔ)到該DR的歷史中。DW可以通過(guò)反饋信息得知DR哪些信息丟失了。

  2.1 正常狀況下的可靠協(xié)議

  在樣本未丟失的情況下,當(dāng)調(diào)用寫函數(shù)(write())時(shí),可靠協(xié)議工作流程如圖1所示。

001.jpg

  在樣本被發(fā)送之前,將會(huì)在DW的發(fā)送序列中加上序列號(hào)(此例中為1)。一旦樣本被DR接收,DR就將信息存放于其接收隊(duì)列中,標(biāo)記為√。DR接收到的心跳檢測(cè)信號(hào)HB(1)為確認(rèn)自己是否已經(jīng)成功接收樣本(1,A),本例中為成功接收。DW接收到DR發(fā)的ACKNACK(2)信息后,確認(rèn)樣本(1,A)已經(jīng)被成功接收,也以√標(biāo)記。

  2.2 丟包狀況下的可靠協(xié)議

  假設(shè)樣本DATA(A,1)在發(fā)送過(guò)程中發(fā)生了丟包情況,當(dāng)DR收到下一個(gè)信號(hào)包(DATA(B,2);HB(1-2))時(shí),由于心跳檢測(cè)HB(1-2)表明DR應(yīng)該已經(jīng)收到序列號(hào)為1-2的樣本,于是DR將會(huì)自檢是否已經(jīng)成功接收這些樣本,會(huì)發(fā)現(xiàn)序列號(hào)為1的樣本并沒(méi)有被成功接收。此時(shí),DR將會(huì)發(fā)送ACKNACK(1)給DW,要求其重新發(fā)送樣本DATA(A,1)。該過(guò)程如圖2所示。

002.jpg

  DR發(fā)送反饋信息ACKNACK(1)給DW之后,DW首先發(fā)送丟包的樣本A,然后發(fā)送樣本包C以及心跳包HB(1-3)。此時(shí),DR自檢確認(rèn)之后,發(fā)送反饋信息。

  實(shí)時(shí)發(fā)布訂閱協(xié)議中的確認(rèn)機(jī)制使得DW接收到相關(guān)的丟包信息,這樣使得每一個(gè)樣本都能成功被DR有序接收。

3 相關(guān)QoS策略

  QoS是指一系列可控制DDS服務(wù)行為的特性集合,它由獨(dú)立的QoS策略組成,是DDS規(guī)范的最大亮點(diǎn)[4-5]。可以通過(guò)某些QoS策略的設(shè)置增加系統(tǒng)的可靠性。這里僅對(duì)發(fā)送隊(duì)列長(zhǎng)度和接收隊(duì)列長(zhǎng)度的相關(guān)QoS策略進(jìn)行設(shè)置。

  3.1發(fā)送隊(duì)列長(zhǎng)度

  設(shè)置歷史QoS策略可以調(diào)整DW發(fā)送隊(duì)列保存的樣本數(shù)以及DR接收隊(duì)列保存的樣本數(shù)[6]。

  若DW沒(méi)有接收到DR發(fā)送的反饋信號(hào),那么DW的發(fā)送隊(duì)列將會(huì)滿。此時(shí),如果需要強(qiáng)可靠性數(shù)據(jù)通信,那么歷史策略的類型應(yīng)設(shè)置為“保留所有”,發(fā)送端需阻塞線程,等待直到發(fā)送隊(duì)列有空間再繼續(xù)寫樣本。如果歷史策略類型設(shè)置為“保留最新”,強(qiáng)可靠性通信將不能被保證。

  若給出可靠性的要求,那么發(fā)送隊(duì)列的最小長(zhǎng)度設(shè)置如下:

  XXHKSQO4WF9WZ__M6IR[5QL.png

  其中,R是發(fā)送樣本的速率,T是數(shù)據(jù)傳輸一周的時(shí)間,P是傳遞樣本過(guò)程中丟包的概率,Q是樣本成功發(fā)送的需求概率。

  根據(jù)不同的網(wǎng)絡(luò)狀況,所得到的發(fā)送隊(duì)列最小長(zhǎng)度如表1所示。

003.jpg

  3.2 接收隊(duì)列長(zhǎng)度

  DR接收樣本時(shí),樣本被保存在接收隊(duì)列中,只有當(dāng)操作“取”(take())將其取走后,樣本才會(huì)被移除出接收隊(duì)列[7]。DR的接收隊(duì)列長(zhǎng)度應(yīng)大于DW發(fā)送隊(duì)列的長(zhǎng)度,主要由資源限制QoS策略中的“隊(duì)列最大樣本數(shù)(max_samples,ms)”控制。一個(gè)DR可以與多個(gè)DW保持通信,DW的無(wú)序樣本也保存在DR的接收隊(duì)列中。為了防止某個(gè)DW的無(wú)序樣本占用過(guò)多的接收隊(duì)列資源,可以在DR的資源限制QoS策略中設(shè)置參數(shù)“DW最大樣本數(shù)(max_samples_per_remote_writer,mw)”,mw<=ms。

4 可靠發(fā)送與盡量發(fā)送性能測(cè)試

  本測(cè)試采用由發(fā)布者發(fā)送數(shù)據(jù),在訂閱者接收到數(shù)據(jù)后立即返回?cái)?shù)據(jù),再由發(fā)布者本身接收回告,取接收到回告時(shí)間與剛開(kāi)始發(fā)送的時(shí)間差。

004.jpg

  表2和表3分別表示盡量發(fā)送和可靠發(fā)送兩種模式下傳輸數(shù)據(jù)所需時(shí)間,表4為兩種發(fā)送模式丟包率的對(duì)比。

  從以上結(jié)果可以看出,盡量發(fā)送模式比可靠發(fā)送模式傳輸數(shù)據(jù)所需的平均時(shí)間短,但是會(huì)產(chǎn)生丟包的情況;而可靠發(fā)送模式傳輸數(shù)據(jù)所需的平均時(shí)間較長(zhǎng),但是不會(huì)產(chǎn)生丟包的情況,確保每個(gè)數(shù)據(jù)樣本都能成功傳輸。

  在實(shí)際應(yīng)用中,以艦載信息系統(tǒng)為例,二者應(yīng)相互結(jié)合使用。傳輸實(shí)時(shí)性較高以及周期性發(fā)送的數(shù)據(jù)(如武器傳感器數(shù)據(jù))時(shí),發(fā)送模式應(yīng)為盡量發(fā)送;而對(duì)于控制命令(如開(kāi)關(guān)機(jī)等一次性指令)則需要可靠發(fā)送。

5 結(jié)論

  本文分析了可靠發(fā)送模型以及協(xié)議,設(shè)計(jì)并實(shí)現(xiàn)相關(guān)的QoS策略,通過(guò)盡量發(fā)送和可靠發(fā)送兩種模式的性能測(cè)試,分析了兩種發(fā)送模式所適用的情況。在進(jìn)一步的工作中,將分析探討DDS在相關(guān)領(lǐng)域中的應(yīng)用及其他QoS策略的配置。

參考文獻(xiàn)

  [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模型的數(shù)據(jù)分發(fā)服務(wù)DDS的研究[J].電子科技,2006(11):68-71.

  [4] 張珺,尹遜和.基于RTIDDS的數(shù)據(jù)分發(fā)中間件的升級(jí)設(shè)計(jì)[J].北京交通大學(xué)學(xué)報(bào),2011,35(5)31-37.

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

  [6] 馮國(guó)良,谷青范.基于DDS的實(shí)時(shí)中間件的研究與設(shè)計(jì)[J].航空電子技術(shù),2011,42(3):41-46.

  [7] 歐陽(yáng)軍,蔡志明,王希敏.基于DDS中間件的性能測(cè)試[J].艦船電子工程,2011,31(11):136-139.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 三上悠亚一区二区观看| 久久香蕉国产线看免费| 美女被a到爽视频在线观看| 国产精品美女久久久免费| 中文字幕一精品亚洲无线一区| 欧美亚洲国产片在线播放| 全彩acg无翼乌| 香港三级电影在线观看| 国产综合精品在线| 一卡二卡三卡四卡在线| 日本视频www色| 亚洲成AV人片在线播放无码| 精品国产日韩亚洲一区在线| 国产女人喷潮视频在线观看| 91精品久久久久久久久中文字幕| 尹人久久久香蕉精品| 久久国产经典视频| 欧美亚洲欧美区| 人人妻人人澡人人爽人人精品| 老司机精品视频在线| 国产成人精品免高潮在线观看| 91色综合久久| 好吊操视频在这星| 中文无码字幕中文有码字幕| 星空无限传媒好闺蜜2| 亚洲日韩一区二区一无码| 痴汉の电梯在线播放| 国产SM主人调教女M视频| 黄大片在线观看| 国产精品久久亚洲一区二区| 99精品欧美一区二区三区综合在线 | 欧美精品v日韩精品v国产精品| 冲田杏梨AV一区二区三区| 草莓视频aqq| 国产成人一区二区三区| 夜色福利久久久久久777777| 在线日韩麻豆一区| va天堂va亚洲va影视中文字幕| 成年人网站在线免费观看| 久久天天躁狠狠躁夜夜| 最近中文字幕高清中文字幕电影二 |