周麗麗,張宗恕
(中國電子科技集團(tuán)公司第五十四研究所,河北石家莊050081)
伴隨計算機在信息領(lǐng)域的廣泛應(yīng)用,計算機信息網(wǎng)絡(luò)已成為現(xiàn)代通信的神經(jīng)中樞。OPNET和Qualnet等仿真軟件,通過虛擬網(wǎng)絡(luò)場景構(gòu)建和網(wǎng)絡(luò)特性參數(shù)統(tǒng)計,為全網(wǎng)性能分析和網(wǎng)絡(luò)規(guī)劃提供了有效手段。但是對于實際復(fù)雜的網(wǎng)絡(luò)系統(tǒng),由于僅僅依靠數(shù)學(xué)建模和統(tǒng)計分析的軟件網(wǎng)絡(luò)仿真不能提供準(zhǔn)確的性能描述,因此,引入實物系統(tǒng)的半實物仿真技術(shù)在網(wǎng)絡(luò)研究中具有廣闊的應(yīng)用空間。
將實物系統(tǒng)引入仿真回路的半實物仿真,具有下列優(yōu)點:首先,在網(wǎng)絡(luò)數(shù)學(xué)模型和仿真計算模型的基礎(chǔ)上,增加了實物終端的信息流量,使整個網(wǎng)絡(luò)仿真系統(tǒng)的數(shù)學(xué)模型得到進(jìn)一步校準(zhǔn);其次,利用半實物仿真,通過網(wǎng)絡(luò)參數(shù)統(tǒng)計,可以對實物終端的功能和性能進(jìn)行有效驗證,降低了設(shè)備驗證測試的網(wǎng)絡(luò)構(gòu)建復(fù)雜度。
OPNET是業(yè)界公認(rèn)并廣泛使用的通信網(wǎng)絡(luò)、設(shè)施和協(xié)議的仿真及建模工具,采用基于數(shù)據(jù)包的通信機制、基于離散事件驅(qū)動的仿真機制和與真實網(wǎng)絡(luò)相一致的三層建模機制,提供高層架構(gòu)(High Level Architecture,HLA)接口模塊,適用于復(fù)雜目標(biāo)網(wǎng)絡(luò)試驗平臺的半實物仿真實現(xiàn)。
半實物網(wǎng)絡(luò)仿真采用硬件在回路仿真(Hardware-In-the-Loop Simulation,HILS)技術(shù),利用OPNET的HLA接口模塊,通過HLA聯(lián)邦體系結(jié)構(gòu)將實物設(shè)備與仿真網(wǎng)絡(luò)連接起來,使仿真系統(tǒng)從實物設(shè)備獲得真實的輸入輸出,并通過協(xié)同仿真完成實物設(shè)備和仿真網(wǎng)絡(luò)統(tǒng)一控制,最終實現(xiàn)完整的、可控的網(wǎng)絡(luò)對抗技術(shù)研究和驗證試驗平臺。
1.1.1 硬件接口模塊
硬件接口模塊是半實物仿真網(wǎng)實物系統(tǒng)與仿真系統(tǒng)之間互連的物理接口,滿足仿真計算機和實物終端接口的電氣特性要求和標(biāo)準(zhǔn)。
1.1.2 數(shù)據(jù)包截獲模塊
數(shù)據(jù)包截獲模塊捕捉半實物仿真網(wǎng)的實物系統(tǒng)和仿真系統(tǒng)之間數(shù)據(jù)交互的原始數(shù)據(jù)包。OPNET網(wǎng)絡(luò)仿真采用TCP/IP協(xié)議棧模擬網(wǎng)絡(luò)節(jié)點并與實物終端互連,所以O(shè)PNET SITL仿真通常采用WinPcap API來捕獲原始數(shù)據(jù)包。它直接與網(wǎng)卡驅(qū)動程序進(jìn)行交互,通過“嗅探”傳輸介質(zhì)實現(xiàn)數(shù)據(jù)包的抓取,并向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包。
1.1.3 數(shù)據(jù)包轉(zhuǎn)換模塊
OPNET仿真軟件的仿真節(jié)點是通過有限狀態(tài)機進(jìn)行建模實現(xiàn)的,仿真節(jié)點實現(xiàn)的是虛擬的協(xié)議棧,各層協(xié)議以及仿真設(shè)備之間采用數(shù)據(jù)包流進(jìn)行連接。仿真包會觸發(fā)節(jié)點進(jìn)程模型的中斷,引發(fā)協(xié)議進(jìn)程對仿真包的處理。但仿真包不是真正的比特流,是由域組成的OPNET內(nèi)部的特殊數(shù)據(jù)類型。因此實物終端與OPNET仿真網(wǎng)之間不能直接通信,必須通過數(shù)據(jù)包轉(zhuǎn)換模塊進(jìn)行包轉(zhuǎn)換。
半實物網(wǎng)絡(luò)仿真系統(tǒng)構(gòu)成如圖1所示。
圖1 半實物仿真系統(tǒng)構(gòu)成
仿真系統(tǒng)構(gòu)成中各部分功能如下:
①實物終端:為半實物仿真網(wǎng)絡(luò)提供真實的業(yè)務(wù)數(shù)據(jù),通常不少于兩個以實現(xiàn)業(yè)務(wù)交互的完整協(xié)議過程,是整網(wǎng)業(yè)務(wù)通信的仿真基礎(chǔ);
②半實物硬件接口:進(jìn)行實物電路接口與仿真計算機網(wǎng)絡(luò)接口之間的互聯(lián)轉(zhuǎn)換,實現(xiàn)仿真計算機和實物設(shè)備之間的物理互聯(lián);
③仿真配置模塊:配置半實物硬件接口的仿真地址,控制半實物仿真運行過程;
④協(xié)仿真處理模塊:基于OPNET的協(xié)仿真機制,通過OPNET的外部訪問接口(External System Access,ESA)實現(xiàn)外部控制程序和OPNET仿真程序的通信交互,保證仿真系統(tǒng)和實物系統(tǒng)的同步運行;
⑤實物映射節(jié)點:實物設(shè)備在仿真網(wǎng)絡(luò)中的虛擬映射節(jié)點,是仿真網(wǎng)絡(luò)的組成部分,虛擬映射節(jié)點在仿真網(wǎng)絡(luò)中使用無線管道機制或特定有線鏈路模型與仿真網(wǎng)絡(luò)的其他節(jié)點互聯(lián);
⑥復(fù)雜網(wǎng)絡(luò)仿真:依據(jù)目標(biāo)網(wǎng)絡(luò)建模需求形成的仿真網(wǎng)絡(luò),可包括客戶端、服務(wù)器、路由器、交換機、無線通信中繼等多類型的節(jié)點模型。
參照OPNET半實物仿真系統(tǒng)構(gòu)成,OPNET半實物仿真的核心處理主要包括OPNET網(wǎng)絡(luò)仿真實現(xiàn)和半實物仿真接口實現(xiàn)2個部分。OPNET網(wǎng)絡(luò)仿真實現(xiàn)部分可參考專業(yè)書籍和相關(guān)文章,在此主要介紹半實物仿真接口的設(shè)計實現(xiàn)。
在半實物仿真中,OPNET代表的仿真網(wǎng)絡(luò)在與計算機外界的實物終端進(jìn)行交互時,必須通過半實物仿真接口。半實物接口軟件處理單元主要包括仿真配置和協(xié)同仿真處理模塊,實現(xiàn)仿真的運行控制和仿真網(wǎng)絡(luò)數(shù)據(jù)流到實物設(shè)備數(shù)據(jù)流的協(xié)議轉(zhuǎn)換。半實物接口硬件處理單元與仿真計算機的數(shù)據(jù)交互可以采用串口、以太網(wǎng)口和USB口等,半實物接口硬件處理單元與實物終端的接口根據(jù)實際設(shè)備的接口要求進(jìn)行設(shè)計實現(xiàn),考慮實物設(shè)備接口以E1接口為例。半實物仿真接口的功能構(gòu)成如圖2所示。
圖2 半實物仿真接口的功能構(gòu)成
半實物接口硬件處理單元實現(xiàn)實物終端到仿真網(wǎng)計算機之間的雙向數(shù)據(jù)交換,具有實時性和實物終端協(xié)議匹配的特性,通常選擇FPGA進(jìn)行功能實現(xiàn)。
采用IP接口和E1接口實現(xiàn)PC仿真環(huán)境與實物設(shè)備的互連。IP接口實現(xiàn)分為物理層實現(xiàn)和協(xié)議實現(xiàn),物理層實現(xiàn)采用專用芯片,完成從線路碼型到數(shù)字信號的轉(zhuǎn)換;協(xié)議的實現(xiàn)采用IPCore軟核,完成IP接口MAC協(xié)議的解析。E1接口物理層實現(xiàn)同樣采用專用芯片,滿足標(biāo)準(zhǔn)要求;協(xié)議層的成幀和解幀處理采用FPGA編程實現(xiàn),符合標(biāo)準(zhǔn)要求。半實物接口硬件處理單元的接口架構(gòu)如圖3所示。
圖3 半實物接口硬件處理單元接口架構(gòu)
如上所述,半實物接口軟件處理單元主要包括仿真配置和協(xié)仿真處理模塊,實現(xiàn)仿真的運行控制和OPNET仿真網(wǎng)數(shù)據(jù)流到實物設(shè)備數(shù)據(jù)流的協(xié)議轉(zhuǎn)換。
仿真配置模塊:是半實物仿真接口的仿真配置和管理的主要工具。主要完成的仿真配置和仿真操作功能。仿真配置功能用于對半實物接口設(shè)備的IP接口進(jìn)行MAC地址、IP地址、網(wǎng)關(guān)和掩碼設(shè)置,進(jìn)行仿真時間推進(jìn)步長設(shè)置等;仿真操作功能包括仿真的運行、暫停和結(jié)束操作。
協(xié)仿真處理模塊:基于OPNET的協(xié)仿真機制情況下,協(xié)仿真處理模塊的實現(xiàn)是通過OPNET的ESA接口實現(xiàn)與OPNET仿真程序的通信交互,由數(shù)據(jù)處理模塊和仿真控制模塊組成。數(shù)據(jù)處理模塊完成仿真系統(tǒng)與實物系統(tǒng)之間的數(shù)據(jù)交互,仿真控制模塊實現(xiàn)對仿真系統(tǒng)的運行控制,保證整體半實物仿真平臺的實時性。
協(xié)仿真處理模塊的數(shù)據(jù)處理功能包括:
①協(xié)仿真程序從半實物硬件接口的數(shù)據(jù)流中讀取從實物終端發(fā)送的數(shù)據(jù)幀,將數(shù)據(jù)幀進(jìn)行解析和重新封裝,并把重封裝后的數(shù)據(jù)映射到仿真網(wǎng)的內(nèi)部處理程序;
②協(xié)仿真程序從仿真網(wǎng)內(nèi)部處理程序接收仿真數(shù)據(jù)流,解析并獲取向?qū)嵨锝K端發(fā)送的數(shù)據(jù)信息,根據(jù)實物終端的數(shù)據(jù)幀格式進(jìn)行數(shù)據(jù)幀重封裝,并把數(shù)據(jù)發(fā)送給實物設(shè)備。
協(xié)仿真處理模塊的仿真控制功能包括:
①向OPNET仿真網(wǎng)絡(luò)查詢要執(zhí)行的仿真事件的時間;
②等待仿真網(wǎng)絡(luò)與實物終端交互的數(shù)據(jù)包,根據(jù)數(shù)據(jù)的流向調(diào)用數(shù)據(jù)處理模塊進(jìn)行數(shù)據(jù)解幀、封裝和轉(zhuǎn)發(fā)處理;
③在實際時間執(zhí)行仿真網(wǎng)絡(luò)的仿真事件。
協(xié)仿真處理進(jìn)程的關(guān)鍵函數(shù)如下:
①GetModuleIDByMacAddress():根據(jù)地址獲取仿真模塊ID;
②GetObjectIDByName():根據(jù)對象名稱獲得對象ID;
③SimDataToReal():完成仿真報文到實際數(shù)據(jù)的轉(zhuǎn)換;
④RealDataToSim():完成實際數(shù)據(jù)到仿真報文的轉(zhuǎn)換;
⑤GetPacketLength():從比特流中定位數(shù)據(jù)包并獲取包長度。
實物終端A、B與目標(biāo)終端DEST之間通過2個路由器節(jié)點和4個交換機節(jié)點進(jìn)行互聯(lián);協(xié)調(diào)接口模塊完成半實物接口的協(xié)仿真處理功能實現(xiàn);OPNET仿真計算機通過網(wǎng)絡(luò)交換機與半實物仿真硬件接口設(shè)備互聯(lián),實物終端通過E1接口與半實物仿真硬件接口互聯(lián)。在仿真網(wǎng)絡(luò)各層協(xié)議棧的協(xié)議交互過程中增加了仿真統(tǒng)計量,對實物終端的網(wǎng)絡(luò)性能進(jìn)行評估。半實物仿真網(wǎng)絡(luò)采用實物—仿真—實物的工作模式。在試驗過程中,對吞吐量、信道數(shù)量、丟包率、重傳率、傳輸時延和可達(dá)性等多類統(tǒng)計量進(jìn)行了統(tǒng)計分析。經(jīng)仿真驗證,半實物仿真網(wǎng)的統(tǒng)計分析曲線清晰且全面地體現(xiàn)了各實物終端在仿真網(wǎng)絡(luò)的通信能力、通信可信性和通信可用性,也指導(dǎo)了實物終端 的工作性能優(yōu)化。半實物仿真場景設(shè)置如圖4所示。
圖4 半實物仿真網(wǎng)絡(luò)場景圖
通過半實物網(wǎng)絡(luò)仿真平臺,實物終端與仿真網(wǎng)絡(luò)有效結(jié)合,避免了終端性能測試所需復(fù)雜網(wǎng)絡(luò)的實物平臺構(gòu)建,提供了對實物節(jié)點進(jìn)行驗證、分析和評估的有效手段。半實物仿真方法在網(wǎng)絡(luò)設(shè)備研究方面具有技術(shù)優(yōu)勢,應(yīng)用于大規(guī)模網(wǎng)絡(luò)背景下的網(wǎng)絡(luò)研究是一條可行、有效的技術(shù)途徑。
[1]陳 敏.OPNET網(wǎng)絡(luò)仿真[M].北京:清華大學(xué)出版社,2004.
[2]段 威,任 華,柳海峰.基于OPNET的通信網(wǎng)絡(luò)半實物仿真方法研究[J].計算機仿真,2009,24(11):138-143.
[3]劉 蕓,顧曉鳴,匡 曉.一種基于OPNET的網(wǎng)絡(luò)半實物仿真方法研究[J].軟件導(dǎo)刊,2009,8(2):125-127.
[4]張 筱,林孝康.一種基于OPNET的網(wǎng)絡(luò)半實物仿真模型[J].仿真技術(shù),2007,23(1):257-258.
[5]李于衡,關(guān) 暉,李廣鵬.OPNET在計算機網(wǎng)絡(luò)和通信工程中的應(yīng)用[J].無線電工程,2002,32(11):52-56.