• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于超時重傳和多重校驗的UDP可靠通信設計

      2022-03-25 02:28:12趙晨希
      測控技術 2022年2期
      關鍵詞:信號量重傳線程

      李 浩, 趙晨希, 關 冰

      (1.中國運載火箭技術研究院,北京 100076; 2.北京時代民芯科技有限公司,北京 100076)

      隨著信息化和自動化技術的快速發(fā)展,以太網(wǎng)憑借速度快、成本低、支持連接設備多等特點,被越來越多地應用于工業(yè)自動化領域[1-3]。UDP是以太網(wǎng)的傳輸層協(xié)議,與TCP協(xié)議相比具有開銷小、效率高的優(yōu)勢,但是由于其非面向連接的特點,可靠性不高,在數(shù)據(jù)傳輸中容易丟幀、錯幀和亂幀[4-6]。

      針對UDP傳輸過程中可能出現(xiàn)的丟幀、錯幀和亂幀問題,本文提出了兩種基于超時重傳和多重校驗的UDP可靠通信方法:一種是基于實時操作系統(tǒng)的方法,另一種是基于高精度定時器的方法。這兩種方法的共同點是都采用多重校驗、鏈路切換、超時重傳等可靠性較高的技術,不同點是前者基于實時操作系統(tǒng)實現(xiàn),邏輯簡單,但實時性不高,后者基于高精度定時器實現(xiàn),實時性較高,但邏輯復雜。本文提出的方法僅在應用層增加32 B冗余信息,且只在鏈路出現(xiàn)問題時進行數(shù)據(jù)重新發(fā)送,相對未采用可靠性措施的UDP通信方案,開銷略有增加,但相對采用了三次握手和擁塞控制等機制的TCP通信,在網(wǎng)絡開銷和傳輸效率上的優(yōu)勢仍然存在,試驗結果表明,本文提出的方法既能保證UDP通信的實時性,又能提升UDP通信的可靠性。

      1 可靠以太網(wǎng)通信總體方案設計

      對可靠以太網(wǎng)通信總體方案進行設計,首先設計了基于四度冗余拓撲的以太網(wǎng)總線結構,然后實現(xiàn)了基于多重校驗的以太網(wǎng)通信協(xié)議,最后提出了兩種基于超時重傳和多重校驗的UDP可靠通信方法,通過硬件、軟件、協(xié)議和流程的聯(lián)合優(yōu)化設計,最終實現(xiàn)了基于超時重傳和多重校驗的可靠以太網(wǎng)通信機制。

      以太網(wǎng)總線拓撲結構如圖1所示,基于可靠以太網(wǎng)通信機制的軟件設計稱為服務端軟件,有主、備兩個網(wǎng)口,與服務端軟件通信的軟件稱為客戶端軟件,也有主、備兩個網(wǎng)口,服務端軟件和客戶端軟件通過交換機進行以太網(wǎng)通信。這種網(wǎng)絡拓撲結構的特點是通過網(wǎng)絡鏈路的多重冗余,提升通信系統(tǒng)整體的可靠性,且由于以太網(wǎng)總線成本低廉,鏈路冗余帶來的總體方案成本增加并不多。

      圖1 以太網(wǎng)通信總線拓撲結構

      將數(shù)據(jù)進行UDP數(shù)據(jù)報封裝、IP封裝,并最終打包成符合IEEE802.3標準的以太網(wǎng)數(shù)據(jù)幀格式在網(wǎng)絡上傳輸,UDP數(shù)據(jù)封裝形式如圖2所示。

      圖2 UDP數(shù)據(jù)封裝格式

      UDP傳輸?shù)奶攸c是只提供無連接的服務,沒有確認幀、序列號、超時重傳等機制,因此與TCP傳輸相比可靠性低。本文在應用層設計實現(xiàn)了一種基于多重校驗的協(xié)議確認機制,確保UDP傳輸?shù)臄?shù)據(jù)內容、順序和格式的準確無誤。

      對應用層的以太網(wǎng)通信協(xié)議進行重新設計,除了幀內容區(qū)表征傳輸?shù)挠行?shù)據(jù)外,增加了幀頭、幀序號、幀長度、幀校驗和及幀尾等數(shù)據(jù)區(qū)域,主要目的是用于UDP傳輸數(shù)據(jù)的多重校驗,以提升以太網(wǎng)通信的可靠性。具體格式如下。

      ① 幀頭:固定幀頭為0x55555555,用于判斷幀的開始。

      ② 幀序號:表示相同類型幀的發(fā)送次數(shù),由于UDP通信有可能出現(xiàn)丟幀,本區(qū)域可以表征傳輸?shù)倪B續(xù)性。

      ③ 幀長度:表示本幀數(shù)據(jù)的實際長度,由于UDP傳輸數(shù)據(jù)的限制,本區(qū)域最大值不能超過1400。

      ④ 幀IP:表示網(wǎng)絡層的地址。

      ⑤ 幀端口:表示傳輸層的地址。

      ⑥ 幀類型:表示本幀數(shù)據(jù)的類型。

      ⑦ 幀內容:表示本幀數(shù)據(jù)的具體內容。

      ⑧ 校驗和:對本幀數(shù)據(jù)前N-4個字節(jié)進行CRC校驗,CRC校驗能夠有效識別硬件誤碼導致的通信錯誤。

      ⑨ 幀尾:固定幀尾為0xAAAAAAAA,用于判斷幀的結束。

      2 基于實時操作系統(tǒng)的超時重傳方法

      實時操作系統(tǒng)被廣泛應用于航空航天、核電能源、醫(yī)療衛(wèi)生、國防電子等諸多安全關鍵系統(tǒng)中,具有實時性高、安全性強、系統(tǒng)資源占用少等特點,包含任務調度、任務同步、中斷管理、內存管理等功能[7],常見的實時操作系統(tǒng)有VxWorks和RTEMS。

      利用嵌入式實時操作系統(tǒng)的多線程搶占調度和多線程信號量同步機制,設計實現(xiàn)了一種精度達到10 ms量級的超時重傳方法,本方案的優(yōu)點是邏輯簡單,缺點是精度不高。

      設計3個線程和1個信號量,重傳方法的實現(xiàn)流程如圖3所示,主要功能如下。

      圖3 基于實時操作系統(tǒng)的以太網(wǎng)超時重傳方法示例

      ① 線程1的優(yōu)先級最高,執(zhí)行一次后便不再執(zhí)行,主要用于系統(tǒng)的軟硬件初始化。

      ② 線程3的優(yōu)先級次高,線程入口處設計死循環(huán),使得線程3一直處于等待運行的狀態(tài),主要用途是獲取以太網(wǎng)數(shù)據(jù),并對接收方的應答數(shù)據(jù)進行解析判讀和多重校驗。

      ③ 線程2的優(yōu)先級最低,線程入口處設計死循環(huán),使得線程2一直處于等待運行的狀態(tài),主要用途是利用本文的基于實時操作系統(tǒng)的超時重傳方法,實現(xiàn)基于UDP的可靠數(shù)據(jù)通信。

      ④ 信號量1主要用于線程3和線程2的數(shù)據(jù)同步,信號量的類型是二值信號量,初始值是0。

      本子技術的核心功能有指令回令機制、多重校驗判斷、多線程同步、超時重傳、鏈路切換,主要技術點如下。

      ① 線程2是發(fā)送線程,其發(fā)送的數(shù)據(jù)定義為指令,線程3是接收線程,其接收的數(shù)據(jù)定義為回令,規(guī)定每一條指令都對應有一條回令,通過設計指令回令機制,可以實現(xiàn)對以太網(wǎng)鏈路是否暢通的檢測。

      ② 線程3在收到回令后,需要按照第1節(jié)描述的協(xié)議格式進行多重校驗,包括幀頭、幀尾、幀序號、幀長度、IP地址、端口、幀類型及幀CRC等8類區(qū)域的校驗,如果多重校驗通過,則認為回令符合要求,否則認為鏈路故障,通過多重校驗機制可以實現(xiàn)硬件誤碼和軟件丟包錯包的故障檢測。

      ③ 利用實時操作系統(tǒng)的多線程搶占調度和信號量同步機制,實現(xiàn)不同的線程之間通過二值信號量的方式進行時序同步。

      ④ 利用二進制信號量的超時判斷機制,如果在指定的時間內軟件收到了客戶端軟件的回令(為達到可靠性與與實時性的平衡,將超時時間設置為10 ms),并且通過了多重校驗,則發(fā)布信號量以解除發(fā)送線程的阻塞狀態(tài);如果在指定的時間內沒有收到客戶端軟件的回令,或者回令未通過多重校驗,則信號量返回超時信息,進入鏈路切換和超時重傳邏輯分支。

      ⑤ 基于系統(tǒng)設計的可靠以太網(wǎng)拓撲通信結構,設計實現(xiàn)了“主主-主備-備主-備備”的通信鏈路切換機制,能夠在3條通信鏈路出現(xiàn)故障的情況下實現(xiàn)UDP數(shù)據(jù)有效通信,顯著提升了以太網(wǎng)通信的可靠性。

      3 基于高精度定時器的超時重傳方法

      利用嵌入式系統(tǒng)的高精度定時器和中斷異步處理機制,設計實現(xiàn)一種精度達1 ms級別的超時重傳方法,其優(yōu)點是實時性高,不依賴實時操作系統(tǒng)即可實現(xiàn),缺點是流程比較復雜。

      設計2個中斷、1個主函數(shù)和5個全局變量,重傳方法的實現(xiàn)流程如圖4所示,主要功能如下。

      ① 中斷1的優(yōu)先級最高,收到回令時觸發(fā),主要功能是獲取以太網(wǎng)數(shù)據(jù),并對接收方的應答數(shù)據(jù)進行解析判讀和多重校驗。

      圖4 基于高精度定時器的以太網(wǎng)超時重傳方法示例

      ② 中斷2的優(yōu)先級次高,以1 ms周期性觸發(fā),主要功能是利用本文的基于高精度定時器的超時重傳機制,實現(xiàn)基于UDP的可靠數(shù)據(jù)通信。

      ③ 主函數(shù)的優(yōu)先級最低,主要用于系統(tǒng)的軟硬件初始化和業(yè)務流程處理。

      ④ 超時起判標志為全局變量,在啟動超時重傳判斷時置有效,在收到回令時或遍歷所有鏈路時置無效。

      ⑤ 數(shù)據(jù)接收標志為全局變量,在收到回令時置有效,在遍歷所有鏈路時置無效。

      ⑥ 超時時間為全局變量,是用戶設定的固定值,該值用于表示從發(fā)送指令到接收回令的最長時間。

      ⑦ 起始時間為全局變量,該值表示發(fā)送以太網(wǎng)數(shù)據(jù)的時間。

      ⑧ 當前時間為全局變量,該值表示進行超時判斷時的當前時間。

      本方法的核心功能有指令回令機制、多重校驗判斷、高精度定時器中斷,主要技術點如下。

      ① 主函數(shù)和中斷2是發(fā)送線程,指令回令機制與第2節(jié)相同。

      ② 中斷1在收到回令后,需要按照第1節(jié)描述的協(xié)議格式進行多重校驗,多重校驗的機制與第2節(jié)相同。

      ③ 利用嵌入式系統(tǒng)的高精度定時器和中斷異步處理機制,實現(xiàn)主循環(huán)與中斷之間通過共享全局變量的方式進行數(shù)據(jù)交互,能夠實現(xiàn)精度為1 ms級別的超時判斷。

      ④ 利用基于高精度定時器的超時判斷機制,如果在指定的時間內收到了客戶端軟件的回令,并且通過了多重校驗,則置數(shù)據(jù)接收標志有效以通知軟件解除超時判斷;如果在指定的時間內沒有收到客戶端軟件的回令,或者回令未通過多重校驗,則判斷為已經(jīng)超時。

      ⑤ 利用系統(tǒng)設計的主備以太網(wǎng)通路,實現(xiàn)“主主-主備-備主-備備”四條鏈路的故障切換,鏈路切換機制與第2節(jié)相同。

      4 實驗結果及建模分析

      在實驗室環(huán)境下對本文進行測試驗證,服務端軟件的硬件架構是“TMS320C6678+Kintex-7”,TMS320C6678是TI公司的一款多核處理器芯片,片內集成8個C66X內核[8],掛接一路網(wǎng)口,作為主通信鏈路,地址設置為192.168.0.109;Kintex-7是Xilinx公司的一款高性能FPGA芯片,擁有478 KB的可編程邏輯資源[9],掛接一路網(wǎng)口,作為備通信鏈路,地址設置為192.168.0.19??蛻舳塑浖挠布軜嬇c服務端軟件相同,也是“TMS320C6678+Kintex-7”,主地址設置為192.168.102,備地址設置為192.168.0.12。

      在上述環(huán)境中設置故障測試用例,測試本文設計的可靠以太網(wǎng)通信方法是否有效。其中,圖5為主主鏈路正常通信示意圖,圖6為主主鏈路斷開時鏈路切換后正常通信示意圖,圖7為主主、主備鏈路斷開時鏈路切換后正常通信示意圖,圖8為主主、主備、備主鏈路斷開時鏈路切換后正常通信示意圖。結果表明,在通信鏈路出現(xiàn)一度、二度和三度故障時,基于本方法實現(xiàn)的軟件仍可進行有效通信。

      圖5 主主鏈路正常通信示意圖

      圖6 主主鏈路斷開時鏈路切換后正常通信示意圖

      圖7 主主、主備鏈路斷開時鏈路切換后正常通信示意圖

      圖8 主主、主備、備主鏈路斷開時鏈路切換后正常通信示意圖

      采取了并聯(lián)硬件冗余的方式實現(xiàn)可靠以太網(wǎng)通信,根據(jù)并聯(lián)冗余的功能定義,可以按照下述的可靠性建模公式進行可靠性計算[10]。

      Rs==1-(1-R0)n

      式中:R0為單通道UDP通信的可靠度;n為并聯(lián)冗余的部件個數(shù);Rs為根據(jù)模型公式計算后的系統(tǒng)可靠度。本文假設R0值為0.9,n在本文中取值為4,經(jīng)過計算,系統(tǒng)可靠度Rs為0.9999,相對單通道UDP通信的可靠度有較大提升。

      5 結束語

      針對UDP傳輸過程中可能出現(xiàn)的丟幀、錯幀和亂幀問題,首先對可靠以太網(wǎng)通信總體方案進行設計,設計了基于四度冗余的以太網(wǎng)總線拓撲結構,然后實現(xiàn)了基于多重校驗的以太網(wǎng)通信協(xié)議,最后提出了兩種基于超時重傳和多重校驗的可靠通信方法:一種是基于實時操作系統(tǒng)的超時重傳方法,為UDP可靠傳輸提供了一種流程簡單、精度達10 ms的解決方案;另一種是高精度定時器的超時重傳方法,為UDP可靠傳輸提供了精度達1 ms、不依賴操作系統(tǒng)的解決方案。

      對本文的方法進行建模分析,本文所提出的方案相較傳統(tǒng)單通道UDP通信方案可靠度由0.9提升到0.9999,通信的可靠度有較大提升。利用“TMS320C6678+ Kintex-7”開發(fā)板進行測試驗證,結果表明基于本方法實現(xiàn)的軟件功能實現(xiàn)正確,可以實現(xiàn)在通信鏈路出現(xiàn)一度、二度和三度故障時有效完成UDP通信。

      猜你喜歡
      信號量重傳線程
      基于STM32的mbedOS信號量調度機制剖析
      Nucleus PLUS操作系統(tǒng)信號量機制的研究與測試
      測控技術(2018年8期)2018-11-25 07:42:12
      面向異構網(wǎng)絡的多路徑數(shù)據(jù)重傳研究?
      淺談linux多線程協(xié)作
      數(shù)據(jù)鏈路層的選擇重傳協(xié)議的優(yōu)化改進
      μC/OS- -III對信號量的改進
      Linux操作系統(tǒng)信號量機制的實時化改造
      MPTCP中一種減緩緩存阻塞的重傳策略
      電視技術(2013年17期)2013-01-31 05:23:48
      Linux線程實現(xiàn)技術研究
      選擇性重傳法在IPTV中的應用
      通信技術(2010年10期)2010-09-13 02:28:36
      达孜县| 祥云县| 高淳县| 海门市| 连平县| 兴山县| 闵行区| 阳高县| 连云港市| 天津市| 民权县| 南宁市| 绥中县| 西宁市| 策勒县| 邢台市| 获嘉县| 侯马市| 十堰市| 疏勒县| 临安市| 大关县| 久治县| 山阴县| 诸暨市| 甘泉县| 中宁县| 洱源县| 延边| 武陟县| 将乐县| 太湖县| 三亚市| 北碚区| 南部县| 泌阳县| 连平县| 繁昌县| 友谊县| 泰顺县| 阜阳市|