999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于DDS的可靠通信方法的分析和研究

2018-08-21 09:24:48李海浩顧濱兵劉艷平
微型電腦應用 2018年8期
關鍵詞:信息

李海浩, 顧濱兵, 劉艷平

(91404部隊,秦皇島 066000)

0 引言

DDS(Data Distribution Service)數據分發服務是對象管理組織OMG對分布式實時系統中數據分布的一種規范,是以數據為中心的發布/訂閱數據通信模型[1-2]。應用DDS進行通信,具有低延遲、高吞吐量、可控通信性能、多種通信方式的優點[3],其中可靠性通信方式應用最為廣泛,也是DDS應用通信的優勢所在[4]。怎樣應用DDS進行可靠性通信,是DDS應用開發的重點和難點[5]。

1 DDS技術應用

DDS技術作為系統的數據傳輸基礎機制,已經在國外裝備軟件研發中廣泛,例如美國海上戰爭中心(NSWC)高性能分布式計算系統(HiPer-D),美國海軍LPD-17艦內廣域網絡,TACTICOS等等。隨著國內的航空、國防、分布仿真、工業自動化等多個領域的快速發展,DDS技術已經在國內得到一定程度的應用[6-7]。DDS技術較傳統的TCP、UDP通信技術和CORBA規范[8]具有較大的優勢,因此DDS技術越來越多的應用到各領域。不同通信方式在資源、應用、效率等方面的對邊,如表1所示[9-10]。

與傳統通信技術相比較,DDS技術具有高傳輸效率、網絡資源利用率,可靠傳輸Qos策略[11],實時應用場景等優勢。雖然TCP和CORBA同樣具有可靠傳輸功能,但其可靠傳輸無法與網絡資源利用率、Qos策略相輔相成,達到最優的利用效率。因此對DDS可靠通信方式的研究,能夠更加深入的了解和掌握該技術的原理和應用[12]。

表1 不同通信方式的優劣比較

2 可靠通信的概述

不同數據的通信對可靠性的要求不同,比如:信號數據的單獨樣本可以丟掉,因為當下一個值發送時前面的值就會消失;而命令數據的每個樣本必須被接收,并必須有次序的接收。DDS為了滿足不同需求,在可靠通信中提出了高效通信模式和可靠通信模式[13]。

2.1 高效通信模式

高效通信模式不對發送次序和重發丟失樣本進行管理,忽略丟失的樣本數據以支持最新的樣本數據,不算真正意義的可靠通信[14]。

2.2 可靠通信模式

可靠通信模式是保證數據讀取者能夠按照數據寫入者發送數據的順序讀取所有數據[15]。為了實現可靠通信,用于臨時存儲樣本的發送隊列和接收隊列的設置是至關重要的。發送隊列用于存儲數據寫入者發送的最后X個樣本數據。當樣本數據被所有可靠訂閱確認后,DDS便從發送隊列中移除該樣本數據;當樣本數據沒有被所有可靠訂閱確認時,在堵塞周期(后面章節將進行詳細說明)結束后,DDS也會在發送隊列中移除該樣本。接收隊列用于存儲數據讀取者期望接收的X個樣本數據,當一個無序的樣本數據達到后,DDS會將該樣本數據存儲到接收隊列中,等待樣本數據連續后,才會將連續的樣本數據提交給數據讀取者。

3 通信過程

DDS通過執行一個可靠的協議來完成發布端和訂閱端之間的可靠通信,協議承認應用程序之間的水平信息,并能夠監視連接的活躍性,該協議稱為實時發布訂閱協議,簡稱RTPS協議[16]。其通過相關參數信息的配置,調衡應用程序之間的行為來平衡反應時間、敏感度、活躍性、吞吐量和資源利用,相關參數信息主要包含數據信息(DATA)、心跳信息(HB)和承認信息(ACKNACK),下面對具體實現過程進行簡要介紹。

數據信息包含數據對象的值快照和數據次序號,值快照為通信具體內容,DDS應用次序號來識別數據寫入者,每次數據寫入者的write()被調用時,次序號由數據寫入者重新賦值,數據信息使用DATA(,)表示。例如:DATA(A,1),A代表數據對象的值快照,1表示次序號。

心跳信息包含應接收數據的次序號信息,通過與數據讀取者通信,確認數據讀取者是否接收到所有應接收到的值快照,使用HB()表示。例如:HB(1)和HB(1-3)分別表示數據讀取者應該接收到次序號為1和次序號為1、2、3的值快照,要求數據讀取者確認。

承認信息包含未接收到數據的次序號信息,向數據寫入者反饋數據讀取者應接收但未接收到數據的次序號,使用ACKNACK()表示。例如:ACKNACK(1)和ACKNACK(1-3)分別表示數據讀取者應接收但未接收到值快照的次序號為1和1、2、3,要求數據寫入者重新發送。

DDS可以使用一個網絡數據包手機多個上述信息,以便提供更高性能的通信。該可靠協議的應用原理,如圖1所示。

當應用程序調用數據寫入者write()操作時,RTPS協議將多個子信息集合成為一個網絡數據包,數據包包括數據值和指定的次序號,存儲在數據寫入者的發送隊列中。數據包接收后,放置在數據讀取者的接收隊列中,通過次序號,數據讀取者可以判斷是否錯過相關數據值,該數據值是否立即應用。當數據讀取者確認接收到HB(1)的相關數據后,以ACKNACK(2)回復,表示承認接收到次序號為2以前的數據值。當數據寫入者接收到該承認信息后,便將次序號為1數據進行√標記,表示該數據值已被承認接收,并在發送隊列中刪除該數據。

圖1 RTPS可靠通信協議應用原理

上述過程是數據未丟失的應用原理,當數據丟失時,RTPS可靠通信協議應用原理,如圖2所示。

圖2 RTPS可靠通信協議應用原理

具體流程如下所示:

(1)假定包含DATA(A,1)的信息被網絡丟棄,數據讀取者沒有接收到DATA(A,1)的承認信息,所以繼續發送[DATA(B,2);HB(1-2)],表示數據讀取者應該接收到DATA(A,1)和DATA(B,2),并將DATA(A,1)和DATA(B,2)加入X標簽,表示未收到承認信息。

(2)數據讀取者接收到信息(DATA(B,2);HB(1-2))后,會判斷到未接收到DATA(A,1)數據,在接收到隊列中將DATA(B,2)的數據加入X標簽,標記它沒有傳遞給應用程序,然后發送ACKNACK(1)請求數據DATA(A,1)數據。

(3)數據寫入者收到ACKNACK(1)后,立即發送DATA(A,1),并繼續發送[DATA(C,3);HB(1-3)]。

(4)數據讀取者接收到DATA(A,1)后,將DATA(A,1)和DATA(B,2)提交給應用程序,并發送ACKNACK(3)承認信息;當接收到[DATA(C,3);HB(1-3)]后,立即發送ACKNACK(4),并將DATA(C,3)提交給應用程序。

(5)寫入者接收到ACKNACK(3)后,DATA(A,1)和DATA(B,2)在發送隊列中刪除。在準備但未發出DATA(C,3)時,接收到ACKNACK(4),讀取者便不再發送DATA(C,3),并準備發送其他數據,并將DATA(C,3)在發送隊列中刪除。

在這個過程中,寫入者確認發送隊列最靠前的數據被接收后,將數據進行√標注并在隊列中刪除;讀取者確認接收隊列最靠前的數據都已接收后,將數據進行√標注并在隊列中刪除。

RTPS協議中重要特征是ACKNACK信息只作為對HB信息的直接響應而發送,方便寫入者更好的控制這些“管理”信息。如果寫入者了解它即將發送DATA的信息鏈,便可以收集它們,包含到一個HB中進行發送,從而最小化了ACKNACK的傳輸。

4 可靠協議的設置

4.1 可靠協議的激活

成功部署DDS通信組件后,通過修正寫入者和讀取者的可靠傳輸的Qos策略來實現可靠協議的激活,具體代碼如下:

DataWriter:

writer_qos.reliability.kind = DDS_RELIABLE_RELIABILITY_QOS;

DataReader:

writer_qos.reliability.kind = DDS_RELIABLE_RELIABILITY_QOS;

4.2 發送隊列

數據寫入者的發送隊列用于存儲它寫入的每個樣本,樣本將在它被所有可靠的數據讀取者承認(通過ACKNACK)后移除。數據讀取者可以請求數據寫入者重發一個丟失的樣本,樣本仍然在發送隊列里可用,它將被重發,樣本不在發送隊列里時,寫入者會請求應用程序重發該樣本。針對實時的ACKNACK請求,寫入者將定期向它的可靠讀取者發送心跳。

寫入者與讀取者進行一對一通信時,發送隊列可以被該讀取者獨享。寫入者與讀取者進行一對多或多對多通信時,發送隊列將同時處理多個讀取者的ACKNACK,當一個或幾個讀取者獲取的數據丟包時,發送隊列會用于處理相關ACKNACK,導致占用較多的隊列資源,甚至出現發送隊列堵塞現象,影響寫入者與其他讀取者之間的通信。為了解決該問題,DDS提供了兩種模式:嚴格可靠和非嚴格可靠。兩種模式是通過歷史記錄策略(history Qos)中kind參數判斷,當kind設置為keep_all時,采用嚴格可靠模式;設置為keep_last時,采用非嚴格可靠模式。嚴格可靠模式能夠保證數據通信的嚴格可靠,當發送隊列堵塞后,寫入者不再發送數據,直到發送隊列中再次具有可用空間。非嚴格模式下在一定程度上能夠保障數據通信的可靠性,但嚴格的可靠無法保證,發送隊列中數據的預期生命期限(由Lifespan策略決定)結束后,無論是否有對應ACKNACK未處理,該數據都將被清除出發送隊列,會保證發送隊列不再堵塞。

發送隊列的深度一般受應用程序參數(如發送速率)、頻道參數(如端到端延遲和數據包丟失的可能性)以及服務要求質量(如樣本丟失的最大可接受的可能性)等因素影響。在進行數據傳輸時,在假定單獨的數據丟失是不相關的情況下,可通過一個簡單模型對最小深度值進行計算,如式(1)。

(1)

其中R表示發送樣本的速率;T表示來回的傳遞時間;p表示往返中樣本丟失的概率;Q表示最終被成功傳遞的要求概率。

下面列出一般情況下,發送隊列所要求的最小值,如表1所示。

表1 發送隊列在一般情況下的最小值列表

4.3 接收隊列

數據讀取者通過接收隊列存儲接收到的樣本,同時等待接收丟失的樣本,當接收隊列空間不足時,數據讀取者便會拒絕無序樣本的接收,當丟失樣本接收后,再次要求重發拒絕接收的樣本。

假定兩個數據讀取者與同一數據寫入者進行交互,接收隊列大小的不同,在一定程度上影響了數據的傳輸效率,如圖3所示。

數據讀取者將以較少操作和較短時間接收所有樣本。

數據讀取者將以較多操作和較長時間實現同樣樣本的接收,特別是樣本4不在重新發送給其他具有較大接收隊列的數據讀取者。在可靠傳輸模式下,為了避免接收隊列較少而導致的多操作、低效率,DDS會自動動態調整接收隊列大小。如圖4所示。

當傳輸過程為非可靠傳輸時,接收隊列中樣本數量達到隊列深度時,新的樣本將會替代最舊的樣本,即使被替換樣本還沒有被確認。

圖3 數據接收效果(大接收隊列)

圖4 數據接收效果(小接收隊列)

4.4 消息風暴

數據寫入者向數據讀取者發送DATA和HB,數據讀取者回饋DATA的接收和丟失的ACKNACK,當一個數據寫入者與大量的數據讀取者進行交互時,會出現大量的ACKNACK發送給同一數據寫入者,這樣便會產生信息風暴。DDS通過數據讀取協議Qos策略解決該問題,通過設置數據讀取者的響應時間區間,在一定程度上避免信息風暴的產生。具體參數過程如下:

reader_qos.protocol.rtps_reliable_reader.min_heartbeat_response_delay.sec="minX"

reader_qos.protocol.rtps_reliable_reader.max_heartbeat_response_delay.sec="maxY"

其中:minX為延遲響應最小時間;

maxY為延遲響應最大時間。

響應時間區間的設置,數據讀取者在區間內隨機選取時間進行響應。當兩個參數都設置為0時,將迫使數據讀取者立即響應,可應用在需最快補充丟失樣本的數據讀取者。

5 總結

DDS作為一種先進的數據傳輸技術以及開放統一的標準[17],能夠很好的保障實時數據傳輸和跨平臺的應用,其在美國和歐洲的國防、民航等領域已經得到廣泛應用。隨著我國大型水面艦艇和航空領域的快速發展,DDS技術已經在國內展開應用,加強對該技術的研究,適應當今通信技術,可更好更快的完成相關裝備的研制和試驗。可靠通信是DDS技術的核心技術,且在通信應用中使用最為廣泛,最能體現DDS通信的優勢和特點,對DDS可靠通信技術的研究,能夠更好地了解和掌握DDS通信技術。

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息超市
大眾創業(2009年10期)2009-10-08 04:52:00
展會信息
展會信息
展會信息
展會信息
展會信息
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 在线a视频免费观看| 国产精品美人久久久久久AV| 亚洲天天更新| aaa国产一级毛片| 国产精品毛片在线直播完整版| 国产欧美日韩va| 在线综合亚洲欧美网站| 亚洲视屏在线观看| 中文字幕无码制服中字| 免费国产在线精品一区| 久久久久青草线综合超碰| 欧美另类第一页| 亚洲成AV人手机在线观看网站| 婷婷久久综合九色综合88| 精品成人一区二区| 国产精品主播| 成人日韩精品| 91色在线观看| 久草视频福利在线观看| 亚洲综合网在线观看| 九色91在线视频| 91免费国产在线观看尤物| 噜噜噜久久| 99re热精品视频中文字幕不卡| 国产91久久久久久| 国产精品视频导航| 最新国产网站| 9久久伊人精品综合| 一本大道无码日韩精品影视| 亚洲精品国产日韩无码AV永久免费网| 国产精品女熟高潮视频| 久青草国产高清在线视频| 欧美日韩国产一级| 国产在线精品人成导航| 香蕉视频在线精品| 久草视频一区| 99青青青精品视频在线| 91伊人国产| 亚洲一区色| 日本三级欧美三级| 老司国产精品视频91| 国产一区二区三区免费观看| 黄网站欧美内射| 欧洲日本亚洲中文字幕| 亚洲视屏在线观看| 日本伊人色综合网| 亚洲国产成人久久精品软件| 国产一区二区三区夜色| 九九视频免费看| 香蕉eeww99国产在线观看| 国产精品视频久| 亚洲欧美日韩中文字幕一区二区三区| 亚洲人妖在线| 国产成人久视频免费| 日韩欧美视频第一区在线观看| 一区二区三区国产精品视频| 欧美精品黑人粗大| 午夜福利视频一区| 一级毛片基地| 国产在线精品美女观看| 亚洲精品少妇熟女| 久久成人免费| 精品国产Av电影无码久久久| 国产一区成人| 成人午夜天| 无码专区在线观看| 国产喷水视频| 伊人91在线| 欧美另类视频一区二区三区| 亚洲精品免费网站| 国产打屁股免费区网站| 亚洲一区二区三区在线视频| 精品亚洲麻豆1区2区3区| 国产在线精品人成导航| 久久一级电影| 五月婷婷综合在线视频| 亚洲午夜福利在线| a毛片免费看| 亚洲AV电影不卡在线观看| 亚洲国产成人无码AV在线影院L| 国产色婷婷视频在线观看| 免费一级大毛片a一观看不卡|