• 
    

    
    

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

      一種可定制的異構(gòu)網(wǎng)絡(luò)協(xié)議解析器的設(shè)計

      2021-10-09 23:26:54蔣錁沅李曉明
      軟件工程 2021年10期

      蔣錁沅 李曉明

      摘? 要:異構(gòu)網(wǎng)絡(luò)(Heterogeneous Network)中包含多種使用不同網(wǎng)絡(luò)協(xié)議的設(shè)備,因此設(shè)計一種可定制化的網(wǎng)絡(luò)協(xié)議解析器是解決各設(shè)備之間信息交互,降低硬件設(shè)備更新和替換成本的重要課題。本文提出使用XML(可擴展性標記語言)作為網(wǎng)絡(luò)協(xié)議解析器的協(xié)議描述文件,利用XML文件的可擴展性、異構(gòu)性和標簽之間的父子層級關(guān)系,實現(xiàn)該網(wǎng)絡(luò)協(xié)議解析器的通用性,達到更新或更換網(wǎng)絡(luò)協(xié)議時無須重新編寫代碼,只需更改或替換XML文件即可;同時,支持用戶可選當前解析器解析的最小顆粒度為bit或byte,滿足更多設(shè)備協(xié)議的數(shù)據(jù)要求。通過實驗表明,本文提出的網(wǎng)絡(luò)協(xié)議解析器滿足協(xié)議解析的要求。

      關(guān)鍵詞:網(wǎng)絡(luò)協(xié)議解析器;XML文件;異構(gòu)網(wǎng)絡(luò)

      中圖分類號:TP311.5? ? ?文獻標識碼:A

      A Design of a Customizable Heterogeneous Network Protocol Parser

      JIANG Keyuan, LI Xiaoming

      (Faculty of Mechanical Engineering and Automation, Zhejiang Sci-Tech University, Hangzhou 310000, China)

      1393621017@qq.com; lxmzist@zstu.edu.cn

      Abstract: Heterogeneous Network contains a variety of devices that use different network protocols. Therefore, designing a customizable network protocol parser is an important issue to realize information interaction between devices and reduce the cost of hardware equipment update and replacement. This paper proposes to use XML (Extensible Markup Language) as the protocol description file of the network protocol parser. Based on its scalability, heterogeneity, and parent-child hierarchy between nodes, the XML file can be used to achieve the generality of the network protocol parser, so that there is no need to rewrite the code when updating or replacing the network protocol, just change or replace the XML file. At the same time, the minimum granularity of the current parser users can choose is bit or byte, which can meet the data requirements of more device protocols. Experiments show that the network protocol parser proposed in this paper meets the requirements of protocol parsing.

      Keywords: network protocol parser; XML file; heterogeneous network

      1? ?引言(Introduction)

      異構(gòu)融合網(wǎng)絡(luò)的研究最早由美國加州大學(xué)伯克利分校的BARWAN(Bay Area Research Wireless Access Network)項目提出,并首次將不同類型的網(wǎng)絡(luò)組合構(gòu)成異構(gòu)網(wǎng)絡(luò)以支持不同運行網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò)設(shè)備[1]。目前互聯(lián)網(wǎng)和物聯(lián)網(wǎng)產(chǎn)業(yè)的繁榮發(fā)展也催生了大量的新型協(xié)議,如MPLS、1553總線協(xié)議和IP-in-IP等。異構(gòu)網(wǎng)絡(luò)為了支持這些新的網(wǎng)絡(luò)協(xié)議,必須持續(xù)不斷地更新中轉(zhuǎn)設(shè)備的協(xié)議解析能力,以滿足不同設(shè)備之間的通信需求[2]。

      由于設(shè)備來自不同的設(shè)備制造商,且每個設(shè)備制造商有著自己獨有的網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)協(xié)議隨著產(chǎn)品的更新?lián)Q代也在不斷地更新。而硬件開發(fā)周期長和部署成本較高的問題,也意味著異構(gòu)網(wǎng)絡(luò)的部署和設(shè)計具有實驗困難、更新成本高和硬件升級周期長的特點。本文以屏蔽硬件底層協(xié)議構(gòu)建信息交互層的設(shè)計思路,利用軟件的定義協(xié)議的思想[3]提出了一種基于XML的異構(gòu)網(wǎng)絡(luò)協(xié)議解析器;設(shè)計了解析方式及其對應(yīng)的XML文件結(jié)構(gòu),達到只需用戶配置XML文件中的標簽描述信息就可以實現(xiàn)使用不同網(wǎng)絡(luò)協(xié)議的設(shè)備之間的信息交互。本文使用Java語言對解析器進行代碼實現(xiàn),一方面是Java具有平臺無關(guān)性;另一方面是Java擁有性能穩(wěn)定且高效的XML解析工具庫[4]。最后通過實驗驗證了該解析器可以正常工作并具備對不同網(wǎng)絡(luò)協(xié)議設(shè)備的數(shù)據(jù)解析能力。

      2? 異構(gòu)網(wǎng)絡(luò)協(xié)議解析器方案設(shè)計(Solution design of heterogeneous network protocol parser)

      網(wǎng)絡(luò)協(xié)議是為完成計算機網(wǎng)絡(luò)通信而制定的規(guī)則、約定和標準。一個完善的網(wǎng)絡(luò)協(xié)議由語法、語義和時序這三大要素組成。而網(wǎng)絡(luò)協(xié)議解析技術(shù)就是按照事先配置的網(wǎng)絡(luò)協(xié)議將數(shù)據(jù)信息從數(shù)據(jù)幀中解析出來。

      現(xiàn)有的網(wǎng)絡(luò)協(xié)議解析方式可以分為兩類,一類是依靠硬件底層對其進行解析;另一類則是依靠軟件來實現(xiàn)數(shù)據(jù)的解析[5]。前者依靠硬件底層直接對數(shù)據(jù)進行解析,優(yōu)點是解析速度快,但是設(shè)備更新周期長,對異構(gòu)融合網(wǎng)絡(luò)的支持較差;后者則是在應(yīng)用層對數(shù)據(jù)進行解析,底層設(shè)備只涉及數(shù)據(jù)的轉(zhuǎn)發(fā),優(yōu)點是對異構(gòu)融合網(wǎng)絡(luò)的支持程度高,不同協(xié)議之間只是配置文件的替換,降低了搭建異構(gòu)融合網(wǎng)絡(luò)的門檻。

      針對異構(gòu)融合網(wǎng)絡(luò)中底層設(shè)備采用不同協(xié)議,不同廠商之間的設(shè)備難以互聯(lián)的問題,本文提出的解析器方案為基于軟件的解析方案,用戶只需按照解析器提供的標準XML標簽來描述當前設(shè)備需要接收的網(wǎng)絡(luò)協(xié)議,就可以打通多個設(shè)備在異構(gòu)融合網(wǎng)絡(luò)中的數(shù)據(jù)通信壁壘。

      解析文件是使用XML語言來描述當前信源設(shè)備網(wǎng)絡(luò)協(xié)議的描述文檔。該解析文件被應(yīng)用于本文提出的網(wǎng)絡(luò)協(xié)議解析器中,為信宿和信源設(shè)備提供數(shù)據(jù)解析服務(wù)。

      網(wǎng)絡(luò)協(xié)議解析器軟件由協(xié)議管理器(FrameManager)、可解析節(jié)點(ParseableNode)、解析鏈(ParseableList)和解析結(jié)果鏈(ParsedVarList)四大部分組成。協(xié)議管理器負責管理當前解析器可解析的所有協(xié)議,可解析節(jié)點是指解析文件中參與解析的表述節(jié)點,解析鏈則由多個可解析節(jié)點組成,而解析結(jié)果鏈則存放了所有解析完成的初始狀態(tài)的數(shù)據(jù)。解析鏈數(shù)據(jù)結(jié)構(gòu)如圖1所示。

      3? XML協(xié)議描述文檔的設(shè)計與實現(xiàn)(Design and implementation of XML protocol description document)

      本文提出的網(wǎng)絡(luò)協(xié)議解析器需要在異構(gòu)融合網(wǎng)絡(luò)中扮演“解釋者”的角色[6]。在異構(gòu)融合網(wǎng)絡(luò)中,設(shè)備與設(shè)備之間往往不是一對一的關(guān)系,而是一對多、多對一的關(guān)系。而作為一個異構(gòu)融合網(wǎng)絡(luò)往往意味著隨著時間的流逝,設(shè)備的數(shù)量和種類即協(xié)議的種類是不斷遞增和更新的,而不同的協(xié)議對數(shù)據(jù)解析的顆粒度往往不同[7]。除此之外,由于網(wǎng)絡(luò)中數(shù)據(jù)量大且完成一次任務(wù)時不同協(xié)議切換較頻繁,因此對解析器和描述文件便有以下要求:協(xié)議可替換和可增減,數(shù)據(jù)解析顆粒度可伸縮,協(xié)議切換要迅速。

      為了滿足以上設(shè)計要求,本文利用XML自身具有的樹形結(jié)構(gòu)和節(jié)點之間的父子層級關(guān)系,可以很好地支持協(xié)議的增減替換,并對設(shè)備本身的協(xié)議按照字段分塊,規(guī)定最小解析單位,由此達到解析顆粒度的自由選擇。

      為了滿足協(xié)議的動態(tài)切換和增減,本文利用面向?qū)ο蟮乃枷朐O(shè)計了一個協(xié)議管理器,該管理器在內(nèi)存中管理多個協(xié)議。因為目前計算機中的內(nèi)存大多使用DDR4內(nèi)存,而DDR4的傳輸速率可達2,133—3,200 MT/s[8]。因此在解析器初始化時,將描述網(wǎng)絡(luò)協(xié)議的XML文件以特定的數(shù)據(jù)結(jié)構(gòu)存儲在內(nèi)存中可以有效解決計算機IO資源的阻塞和浪費,并采用懶加載的方式對協(xié)議文件進行動態(tài)擴容。

      3.1? ?XML協(xié)議描述文檔設(shè)計

      本文提出的協(xié)議描述文件的XML標簽主要有根標簽frames、協(xié)議標簽frame、塊標簽block、最小解析標簽seg、可變長字段標簽random、循環(huán)標簽loop和時間標簽time。各個標簽的主要功能如表1所示。

      XML文件的樹形關(guān)系和XML協(xié)議描述文檔實例如圖2、圖3所示。

      3.2? ?解析協(xié)議數(shù)據(jù)結(jié)構(gòu)設(shè)計

      解析協(xié)議的數(shù)據(jù)結(jié)構(gòu)用于映射當前XML文件中的標簽和標簽中的屬性值,并且按照XML文件中的標簽順序?qū)馕龉?jié)點進行排列組合。程序中有關(guān)解析節(jié)點之間的類圖關(guān)系如圖4所示。

      ParseableNode為SegNode、TimeNode、RandomNode和LoopNode的父類,表示可解析單位。SegNode是最小解析對象,也是整個解析鏈的節(jié)點。RandomNode、LoopNode、TimeNode和SegNode之間為聚合關(guān)系。所有的解析方式都由SegNode的實例對象完成。一個Frame對象表示一條網(wǎng)絡(luò)協(xié)議,并負責管理多個Block對象;Block對象則管理著ParseableNode的所有子類對象。因此在解析器加載完XML文件后,可以由此在內(nèi)存中生成一個多分支解析鏈表,F(xiàn)rameManager對象管理所有加載的Frame對象。

      3.3? ?解析結(jié)果JavaBean設(shè)計

      數(shù)據(jù)流被解析器成功解析后,所有解析出來的數(shù)據(jù)都需要打上對應(yīng)的標識,為后續(xù)數(shù)據(jù)的使用提供鍵值映射。得到的數(shù)據(jù)需要經(jīng)過二次加工或二次內(nèi)部協(xié)議的加工之后才可使用。而當兩個網(wǎng)絡(luò)設(shè)備使用的網(wǎng)絡(luò)協(xié)議不相同時,則需要描述信息來描述該數(shù)據(jù)的數(shù)據(jù)類型、來源、所屬幀等信息,因此需要設(shè)計一個JavaBean作為該數(shù)據(jù)信息的載體。該JavaBean的屬性內(nèi)容如表2所示。

      4? ?解析器的設(shè)計與實現(xiàn)(Design and implementation of the parser)

      本文提出的網(wǎng)絡(luò)協(xié)議解析器作為網(wǎng)絡(luò)協(xié)議的載體,需要從XML協(xié)議解析文檔中得到單向多分支鏈表并對其進行管理。數(shù)據(jù)流到達解析器時,從多個協(xié)議中挑選對應(yīng)的協(xié)議對數(shù)據(jù)流進行解析,因此需要設(shè)計一個面向軟件的協(xié)議解析器來完成協(xié)議的加載和數(shù)據(jù)的解析。本節(jié)將利用前面設(shè)計的數(shù)據(jù)結(jié)構(gòu)來設(shè)計解析器并描述其解析過程。

      4.1? ?解析器設(shè)計

      解析器的解析功能會按照當前加載的XML協(xié)議描述文檔將數(shù)據(jù)信息從數(shù)據(jù)流中解析出來。由于數(shù)據(jù)信息在網(wǎng)絡(luò)中的傳遞可能會出現(xiàn)丟包等問題,因此解析器在解析數(shù)據(jù)流時需要對收到的數(shù)據(jù)流進行校驗,包括幀頭檢測、數(shù)據(jù)長度檢測、幀尾檢測、CRC校驗等[9],只有檢測通過才會進入下一步的數(shù)據(jù)解析工作。檢測不通過時常用的解決方式有兩種:丟棄或緩存。前者直接丟棄不完整的數(shù)據(jù)幀,可能會導(dǎo)致數(shù)據(jù)的丟失;后者會存儲不完整的數(shù)據(jù)幀并等待幀完整,但是會導(dǎo)致解析器因數(shù)據(jù)幀長時間沒有補全而發(fā)生阻塞。由于TCP/IP具有失敗重傳機制,且為了保證解析器的穩(wěn)定運行,因此選用丟棄不完整數(shù)據(jù)幀的失敗機制。

      4.2? ?解析器解析流程設(shè)計

      解析器接收到來自某一設(shè)備發(fā)來的數(shù)據(jù)流,首先從數(shù)據(jù)流中檢測是否有幀頭信息,一旦檢測到幀頭信息就開始校驗數(shù)據(jù)長度和幀尾信息是否都符合,如果符合就進入數(shù)據(jù)的解析流程;否則就丟棄這一幀頭繼續(xù)等待下一幀數(shù)據(jù)流。解析器在解析過程中對應(yīng)的狀態(tài)傳遞如圖5所示。

      解析流程將按照本文第3節(jié)中所設(shè)計的數(shù)據(jù)結(jié)構(gòu),以協(xié)議驅(qū)動解析器解析數(shù)據(jù)流中的數(shù)據(jù)。解析器會先從FrameManager中匹配協(xié)議幀頭,匹配成功則開始解析;若沒有匹配成功則會進入懶加載機制,從文件中搜索對應(yīng)的數(shù)據(jù)幀頭;若都沒有則放棄解析數(shù)據(jù)。解析時以block為單位分塊解析,若block標簽的pass屬性的屬性值不為1時,則進入解析;否則直接緩存對應(yīng)字段的原始數(shù)據(jù)。

      解析過程中的數(shù)據(jù)會使用Parsedvar類的對象存儲到鏈表中,每一個Parsedvar中都包含基本數(shù)據(jù)信息用于設(shè)備的軟件層對解析出來的數(shù)據(jù)進行處理。這時解析器不再關(guān)注當前數(shù)據(jù)信息的去向,而是交給運行在設(shè)備中的軟件決定。如果需要直接處理就直接處理,如果需要傳輸?shù)较乱粋€節(jié)點的設(shè)備就通過當前設(shè)備發(fā)送。

      5? ?實例測試(Example test)

      本文實驗使用課題組開發(fā)的通用式儀器平臺和多盒體組合式現(xiàn)場儀器進行實驗測試,使用組合式現(xiàn)場儀器搭建的自動測試設(shè)備。自動測試設(shè)備用于終端設(shè)備模擬和總系統(tǒng)模擬[10]。為了測試本文提出的解析器的異構(gòu)性和通用性,通過在模擬總系統(tǒng)上使用該解析器,解析來自擁有不同網(wǎng)絡(luò)協(xié)議的模擬終端設(shè)備的網(wǎng)絡(luò)數(shù)據(jù)。因此可以將解析器是否成功解析出不同模擬終端設(shè)備發(fā)送的數(shù)據(jù),并成功響應(yīng)該請求作為該解析器是否達到解析異構(gòu)融合網(wǎng)絡(luò)要求的檢驗標準。

      實驗設(shè)備:X86架構(gòu)的計算機、通用式儀器開發(fā)平臺、多盒體組合式現(xiàn)場儀器。

      實驗設(shè)計:計算機和多盒體組合式現(xiàn)場儀器使用網(wǎng)口連接,通過客戶端控制多盒體組合式現(xiàn)場儀器作為模擬總系統(tǒng)向模擬終端設(shè)備發(fā)送命令,接收模擬終端設(shè)備上發(fā)出的數(shù)據(jù)。如果模擬終端設(shè)備可成功接收到來自模擬總系統(tǒng)的廣播數(shù)據(jù)和指令數(shù)據(jù),模擬總系統(tǒng)可以接收到模擬終端設(shè)備上傳的數(shù)據(jù)且后面板解析成功并將解析的數(shù)據(jù)通過客戶端展示,則表明本文所提出的解析器符合要求。

      本文提出的協(xié)議解析器已經(jīng)作為jar包嵌入通用式儀器開發(fā)平臺搭建的測試仿真程序的組件庫中,并按照當前開發(fā)平臺的組件開發(fā)要求,將解析器以組件的形式對其進行仿真實驗。

      5.1? ?實驗環(huán)境搭建

      本實驗使用Java的SWT技術(shù)搭建了一套地測測試設(shè)備客戶端,客戶端包含需要發(fā)送命令的命令樹,后面板開啟和停止按鈕用于控制后面板程序,協(xié)議解析表單則記錄當前實驗中所有通過本文提出的協(xié)議解析器應(yīng)對不同網(wǎng)絡(luò)協(xié)議解析出來的數(shù)據(jù),如圖6所示。

      利用通用式儀器開發(fā)平臺搭建后面板程序如圖7所示,其中的ProtoParseModule組件就是由本文提出的協(xié)議解析器提供的解析接口所編寫的。

      按照本文提出的XML文件標簽定義和層級關(guān)系編寫XML協(xié)議描述文件。該協(xié)議描述文件的部分內(nèi)容如圖8、圖9所示,可以看到數(shù)據(jù)遙測和數(shù)據(jù)注入返回內(nèi)容兩者的協(xié)議格式完全不同,如果可以使用解析器成功解析出數(shù)據(jù)信息則表示解析器具有通用性和異構(gòu)性。

      5.2? ?實驗

      進行異構(gòu)網(wǎng)絡(luò)協(xié)議解析器實驗測試,流程圖如圖10所示。

      按照實驗流程,通過客戶端依次向后面板程序發(fā)送指令,后面板程序通過透傳的方式向組合式儀器發(fā)送指令;組合式儀器模擬各項設(shè)備并產(chǎn)回傳數(shù)據(jù);回傳數(shù)據(jù)按照不同的數(shù)據(jù)幀格式返回給后面板程序;后面板程序利用本文提出的解析器解析該數(shù)據(jù)幀,并將解析后的數(shù)據(jù)鏈返回給客戶端展示。實驗結(jié)果如圖11所示。

      客戶端發(fā)送的原始數(shù)據(jù)如圖12所示。

      從實驗結(jié)果可以看出,解析器成功解析兩個不同網(wǎng)絡(luò)協(xié)議的數(shù)據(jù),即數(shù)據(jù)遙測中的電壓電流數(shù)據(jù)和數(shù)據(jù)注入返回內(nèi)容的溫度值,并在客戶端頁面中展示得到電壓電流和檢測點溫度變化數(shù)據(jù)。通過比對模擬終端設(shè)備的發(fā)送原始數(shù)據(jù),本文提出的異構(gòu)網(wǎng)絡(luò)協(xié)議解析器解析出的數(shù)據(jù)和發(fā)送端一致。

      6? ?結(jié)論(Conclusion)

      本文提出的基于XML的網(wǎng)絡(luò)協(xié)議解析器是一種網(wǎng)絡(luò)數(shù)據(jù)解析的軟件方法。針對XML文件結(jié)構(gòu)具有異構(gòu)性的特點,設(shè)計了本文提出解析器的XML標簽協(xié)議描述文檔,用戶只需要按照指定的格式描述設(shè)備的網(wǎng)絡(luò)協(xié)議即可在異構(gòu)融合網(wǎng)絡(luò)中實現(xiàn)多個設(shè)備的信息交互。實驗結(jié)果表明,通過該解析器可以成功解析出不同設(shè)備的不同應(yīng)用層協(xié)議。通過對協(xié)議解析XML文件中標簽的組合和標簽的屬性修改可以完成解析跳過、循環(huán)解析和可變長區(qū)域的數(shù)據(jù)解析等復(fù)雜情況,驗證了本文提出解析器的有效性、通用性,以及對異構(gòu)融合網(wǎng)絡(luò)的支持性高等特點。同時,也表明本文所提出的軟件解析方法可以在工程研究、測試自動化、工業(yè)控制等領(lǐng)域推廣使用。

      參考文獻(References)

      [1] KATZ R H, BREWER E A. Case for wireless overlay networks[D]. Berkeley: Univ. of California, Berkeley, 1996.

      [2] 趙宇,殷樹娟,李翔宇.一種可重構(gòu)以太網(wǎng)數(shù)據(jù)包解析器中可重構(gòu)單元的設(shè)計[J].計算機工程與科學(xué),2020,42(02):220-228.

      [3] 苗力心.軟件定義協(xié)議轉(zhuǎn)換關(guān)鍵技術(shù)研究[D].鄭州:戰(zhàn)略支援部隊信息工程大學(xué),2020.

      [4] 何卓桁,劉志勇,李璐,等.異構(gòu)文本數(shù)據(jù)轉(zhuǎn)換中XML解析方法對比研究[J].計算機工程,2020,46(07):286-293,299.

      [5] 盧憲.廣域監(jiān)控系統(tǒng)的可重構(gòu)協(xié)議解析器設(shè)計與開發(fā)[D].南京:南京理工大學(xué),2009.

      [6] 王孝龍,劉勤讓,林森杰.一種支持異構(gòu)協(xié)議解析的可配置解析器設(shè)計[J].計算機應(yīng)用研究,2018,35(06):1830-1833.

      [7] 張會麗.異構(gòu)融合網(wǎng)絡(luò)聯(lián)合資源分配算法研究[D].重慶:重慶郵電大學(xué),2014.

      [8] 張瑋.計算機內(nèi)存及發(fā)展趨勢[J].電腦知識與技術(shù),2018,14? (35):224-225.

      [9] 王永娜,趙奎,王鴻亮,等.針對異構(gòu)協(xié)議的動態(tài)解析器模型[J].計算機系統(tǒng)應(yīng)用,2017,26(01):251-254.

      [10] 王新亮,陳凱,薛琪琪,等.基于1553B總線的飛控軟件測試仿真平臺設(shè)計[J].計算機測量與控制,2020,28(11):12-15,20.

      作者簡介:

      蔣錁沅(1997-),男,碩士生.研究領(lǐng)域:機電系統(tǒng)集成,軟件開發(fā).

      李曉明(1976-),男,博士,副教授.研究領(lǐng)域:機電系統(tǒng)集成,軟件開發(fā).本文通訊作者.

      浦北县| 黔江区| 亚东县| 墨脱县| 永吉县| 兰州市| 蕲春县| 武城县| 右玉县| 海门市| 平罗县| 南通市| 嘉义县| 子长县| 剑河县| 宁南县| 西贡区| 区。| 闸北区| 泊头市| 华宁县| 夏邑县| 焦作市| 宁安市| 喀喇| 从江县| 老河口市| 淅川县| 塔河县| 伊宁市| 新田县| 徐州市| 荔波县| 分宜县| 白朗县| 万山特区| 台州市| 皮山县| 虹口区| 宣恩县| 汪清县|