摘 要: 半實(shí)物仿真是網(wǎng)絡(luò)仿真中的一項(xiàng)關(guān)鍵技術(shù),在網(wǎng)絡(luò)設(shè)計(jì)和規(guī)劃中具有很廣闊的應(yīng)用空間。為了實(shí)現(xiàn)虛擬網(wǎng)絡(luò)與物理網(wǎng)絡(luò)相互連接,利用VRNET Developer仿真工具進(jìn)行建模,在此基礎(chǔ)上深入研究VRNET Developer的DSITL模型和接口模型,基于DSITL模塊搭建一個(gè)半實(shí)物仿真網(wǎng)絡(luò),實(shí)現(xiàn)仿真網(wǎng)絡(luò)與物理網(wǎng)絡(luò)連通。仿真結(jié)果表明,這種網(wǎng)絡(luò)仿真模型可以將仿真網(wǎng)絡(luò)和物理網(wǎng)絡(luò)有效地連接起來。
關(guān)鍵詞:VRNET Developer; 網(wǎng)絡(luò)仿真; 半實(shí)物仿真; 半實(shí)物接口
中圖分類號(hào): TN711?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2013)15?0123?04
Research on method of semi?physical simulation based on VRNET Developer network
ZHOU Xing?qian, HUO Jing?he, ZHANG Zhan?jun
(Department of Information Engineering, Armored Force Engineering Institute, Beijing 100072, China)
Abstract: Semi?physical simulation is a key technology in the network simulation. It has very broad application space in network design and planning. In order to achieve the interconnection between virtual network and the physical network, the VRNET Developer simulation tools is used to model. On this basis, DSITL model and interface model of VRNET Developer is intensive studied. A semi?physical simulation network based on DSITL modules is constructed to realize the simulation network and physical network connectivity. The simulation results show that simulated network and physical network can be effectively connected by this network simulation model.
Keywords: VRNET Developer; network simulation; semi?physical simulation; semi?physical interface
0 引 言
網(wǎng)絡(luò)仿真是一種新的網(wǎng)絡(luò)規(guī)劃和設(shè)計(jì)技術(shù),是一種利用數(shù)學(xué)建模和統(tǒng)計(jì)分析的方法模擬網(wǎng)絡(luò)行為,通過建立網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)鏈路的統(tǒng)計(jì)模型,模擬網(wǎng)絡(luò)流量的傳輸,從而獲取網(wǎng)絡(luò)設(shè)計(jì)及優(yōu)化所需要的網(wǎng)絡(luò)性能數(shù)據(jù)的一種高新技術(shù)。半實(shí)物仿真系統(tǒng)又稱硬件在回路(Hardware in the Loop)仿真系統(tǒng),是計(jì)算機(jī)仿真和物理效應(yīng)仿真相結(jié)合的產(chǎn)物, 它通常是將數(shù)學(xué)模型、實(shí)體模型(物理效應(yīng)模型)和系統(tǒng)的實(shí)際裝備聯(lián)系在一起運(yùn)轉(zhuǎn)組成的一種實(shí)時(shí)仿真系統(tǒng),半實(shí)物網(wǎng)絡(luò)仿真的關(guān)鍵在于如何將虛擬網(wǎng)絡(luò)與真實(shí)網(wǎng)絡(luò)連接起來,并實(shí)現(xiàn)虛擬網(wǎng)絡(luò)與真實(shí)網(wǎng)絡(luò)間數(shù)據(jù)包的轉(zhuǎn)換。 通過半實(shí)物網(wǎng)絡(luò)仿真環(huán)境,可以更直觀、更精確地進(jìn)行網(wǎng)絡(luò)軟硬件的設(shè)計(jì)驗(yàn)證與測(cè)試。本文基于VRNET Developer仿真軟件的DSTIL模塊設(shè)計(jì)了一個(gè)半實(shí)物網(wǎng)絡(luò)仿真模型,實(shí)現(xiàn)了仿真網(wǎng)絡(luò)與物理網(wǎng)絡(luò)連通。
1 仿真系統(tǒng)的分類
實(shí)物仿真:又稱物理仿真或系統(tǒng)原型方法。指按照真實(shí)系統(tǒng)的物理性質(zhì)構(gòu)造系統(tǒng)的物理模型,使之可重現(xiàn)系統(tǒng)的各種狀態(tài),并在物理模型上進(jìn)行試驗(yàn)的過程。在計(jì)算機(jī)問世以前,一般多采用這種以物理過程相似、幾何尺寸相似以及環(huán)境條件相似為基礎(chǔ)的物理仿真。
計(jì)算機(jī)仿真:即數(shù)學(xué)仿真。指運(yùn)用相似原理,對(duì)實(shí)際系統(tǒng)進(jìn)行抽象,將其特性用數(shù)學(xué)關(guān)系加以描述得到系統(tǒng)的數(shù)學(xué)模型,再通過數(shù)學(xué)模型及所編寫的執(zhí)行程序在計(jì)算機(jī)上進(jìn)行試驗(yàn)的過程。數(shù)學(xué)仿真尤其適于系統(tǒng)的預(yù)研、方案論證和設(shè)計(jì)階段,隨著計(jì)算機(jī)技術(shù)的發(fā)展,它已經(jīng)越來越多地取代了物理仿真。
半實(shí)物仿真:又稱數(shù)學(xué)物理仿真或者混合仿真。半實(shí)物仿真是指在對(duì)某些系統(tǒng)的研究中,把數(shù)學(xué)模型與物理模型或?qū)嵨锫?lián)接起來一起進(jìn)行試驗(yàn),即對(duì)系統(tǒng)的一部分建立數(shù)學(xué)模型,并編寫程序在計(jì)算機(jī)運(yùn)行,實(shí)現(xiàn)數(shù)學(xué)仿真;同時(shí)將所研究系統(tǒng)的部分實(shí)物接入到仿真回路,然后將它們聯(lián)接成系統(tǒng)進(jìn)行試驗(yàn)的過程。由于在回路中接入了實(shí)物,半實(shí)物仿真系統(tǒng)必須實(shí)時(shí)運(yùn)行。
2 基于VRNET Developer的半實(shí)物仿真網(wǎng)絡(luò)
設(shè)計(jì)
2.1 VRNET Developer 概述
目前,應(yīng)用于網(wǎng)絡(luò)仿真的工具有很多,主流的網(wǎng)絡(luò)仿真軟件都采用了離散事件模擬技術(shù),其中有OPNET、NS?2、OMNEST、QualNET等,這些網(wǎng)絡(luò)仿真軟件提供了豐富的網(wǎng)絡(luò)仿真模型庫和高級(jí)語言編程接口,這為網(wǎng)絡(luò)研究人員提供了很好的網(wǎng)絡(luò)仿真平臺(tái)。
VRNET Developer 是一款由北京未爾科技公司研發(fā)的離散事件網(wǎng)絡(luò)仿真器,VRNET Developer 提供了大量通信協(xié)議庫,能夠非常好的支持用戶有線和無線網(wǎng)絡(luò)領(lǐng)域的各種仿真需求,尤其在無線自組網(wǎng)以及無線傳感器網(wǎng)絡(luò)方面,VRNET Developer還提供了大量的協(xié)議模型庫、高級(jí)模型庫、多種專業(yè)模型庫以及接口模型庫等,能夠滿足用戶的各種應(yīng)用。VRNET Developer全中文的開發(fā)環(huán)境、內(nèi)核的開放性、模型和接口的可擴(kuò)展性、代碼的可移植性、網(wǎng)絡(luò)拓?fù)涿枋龅撵`活性、強(qiáng)大的結(jié)果分析工具、對(duì)并行仿真和動(dòng)態(tài)修改參數(shù)的支持,以及豐富的軍事應(yīng)用案例,可以作為軍事通信網(wǎng)絡(luò)建模仿真的開發(fā)平臺(tái)。
2.2 DSTIL模型結(jié)構(gòu)
DSITL(Distributed System In The Loop)是VRNET Developer網(wǎng)絡(luò)仿真軟件中進(jìn)行分布式系統(tǒng)在環(huán)仿真的仿真模型。DSITL模型可通過VRNET Developer的各種接口模塊與外部設(shè)備、軟件進(jìn)行交互,包括以太網(wǎng)接口、Socket接口、串口、HLA等。
2.2.1 DSITL接口模塊
在使用VRNET Developer 的DSITL功能時(shí),必須在仿真網(wǎng)絡(luò)內(nèi)放置一個(gè)DSITL接口模塊,如圖1所示。
圖1 DSITL應(yīng)用場(chǎng)景
DSITL模塊在仿真初始化時(shí),通過分布于各個(gè)節(jié)點(diǎn)的DSITL應(yīng)用模塊收集匹配信息,建立匹配信息庫。在仿真過程中,當(dāng)DSITL接收到外部數(shù)據(jù),或需要向外部發(fā)送數(shù)據(jù)時(shí),根據(jù)匹配信息庫中的內(nèi)容尋找匹配的節(jié)點(diǎn)進(jìn)行處理,其基本流程如圖2所示。
圖2 DSTIL基本仿真結(jié)構(gòu)
2.2.2 DSITL應(yīng)用模塊
在VRNET Developer的DSITL仿真中,每個(gè)可能成為外部映射節(jié)點(diǎn)的設(shè)備模型都需要進(jìn)行映射配置。缺省情況下,VRNET Developer使用DsitlApp進(jìn)行映射關(guān)系的確認(rèn),用戶也可定義自己的映射模型。DsitlApp的基本工作流程如圖3所示。數(shù)據(jù)交互模式中DsitlApp模型支持UDP,ICMP,IP協(xié)議類型的DSITL仿真。
圖3 DSITL應(yīng)用模塊流程
2.2.3 DSITL節(jié)點(diǎn)結(jié)構(gòu)
DSITL典型節(jié)點(diǎn)結(jié)構(gòu)如圖4所示,DsitlApp連接到IP模塊上,根據(jù)具體的業(yè)務(wù)需求,DsitlApp模塊還需要連接到應(yīng)用模塊上。
圖4 DSITL節(jié)點(diǎn)結(jié)構(gòu)
2.2.4 DSITL工作模式
VRNET Developer DSITL數(shù)據(jù)交互模型中,提供了如下兩種基本的應(yīng)用模式:
透?jìng)髂J剑簯?yīng)用方式為實(shí)物?仿真?實(shí)物,實(shí)際設(shè)備需要在仿真中設(shè)置映射點(diǎn)(缺省方式為通過IP地址進(jìn)行匹配,也可以自定義匹配方式)。實(shí)際設(shè)備通過VRNET Developer的接口模塊接入仿真,找到映射源節(jié)點(diǎn),作為一個(gè)IP業(yè)務(wù)(協(xié)議代號(hào)為255)傳遞到目的節(jié)點(diǎn),并傳出仿真。在整個(gè)過程中,仿真并不解析實(shí)際的數(shù)據(jù)內(nèi)容,僅作為IP隧道存在,而傳入的數(shù)據(jù)作為IP的凈荷進(jìn)行傳遞。使用該模式時(shí),需要將DSITL模塊的trueEmulate參數(shù)設(shè)置為1。
轉(zhuǎn)換模式:實(shí)物?仿真,實(shí)物?仿真?實(shí)物兩種工作模式。與透?jìng)髂J较嗤氖牵總€(gè)實(shí)物設(shè)備也都需要指定一個(gè)映射節(jié)點(diǎn)。不同的是,仿真會(huì)解析接收到的實(shí)物數(shù)據(jù),并根據(jù)數(shù)據(jù)構(gòu)建對(duì)應(yīng)的仿真報(bào)文或根據(jù)仿真報(bào)文構(gòu)建出真實(shí)的數(shù)據(jù)流。使用該模式時(shí),需要將DSITL模塊的trueEmulate參數(shù)設(shè)置為true。
2.3 接口模塊
2.3.1 以太網(wǎng)接口模塊
VRNET Developer以太網(wǎng)接口模塊(Ethernet Interface)用于通過仿真主機(jī)自帶的以太網(wǎng)卡與外設(shè)備、程序進(jìn)行通信。通過VRNET Developer以太網(wǎng)接口模塊,仿真可以接收外部設(shè)備、程序發(fā)來的數(shù)據(jù)、指令,也可以向外部設(shè)備、程序發(fā)送數(shù)據(jù)和指令。
2.3.2 串口模塊
串口模塊(Serial Interface)是VRNET Developer進(jìn)行DSITL仿真時(shí),采用串口(RS 232、RS 235)接入外部程序時(shí)使用的接口模塊,目前Serial Interface主要用于控制指令的傳遞,基于串口的數(shù)據(jù)交互功能還需進(jìn)一步開發(fā)。
2.3.3 Socket 接口模塊
Socket接口模塊(Socket Interface)是VRNET Developer進(jìn)行DSITL仿真時(shí),使用Socket接口與外部程序、設(shè)備進(jìn)行交互的接口模塊,Socket接口模塊主要用于控制指令的傳遞,基于Socket的數(shù)據(jù)交互功能還需進(jìn)一步開發(fā)。
3 構(gòu)建半實(shí)物仿真網(wǎng)絡(luò)模型
本文搭建一個(gè)無線通信網(wǎng)絡(luò)的半實(shí)物網(wǎng)絡(luò)場(chǎng)景,運(yùn)用3臺(tái)計(jì)算機(jī)組成一個(gè)簡單的半實(shí)物仿真網(wǎng)絡(luò),其中一臺(tái)運(yùn)行仿真網(wǎng)絡(luò),仿真網(wǎng)絡(luò)中包含8部具備IP組網(wǎng)能力的寬帶電臺(tái)。半實(shí)物仿真網(wǎng)絡(luò)實(shí)現(xiàn)外部設(shè)備通過以太網(wǎng)口與仿真網(wǎng)絡(luò)進(jìn)行交互的應(yīng)用。仿真網(wǎng)絡(luò)中8個(gè)DsitlNode節(jié)點(diǎn),同時(shí)應(yīng)當(dāng)包含一個(gè)以太網(wǎng)接口模塊和一個(gè)DSITL接口模塊(Ethernet)。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖5所示。
3.1 使用以太網(wǎng)接口模塊
在以太網(wǎng)半實(shí)物接口中,提供了以太網(wǎng)半實(shí)物接口模塊的模板,在接口模型庫中的“Ethernet”文件夾中,包括以下幾個(gè)文件:EthernetInterface.ned為以太網(wǎng)半實(shí)物接口模塊描述文件;EthernetInterface.h為以太網(wǎng)半實(shí)物接口模塊實(shí)現(xiàn)頭文件;EthernetInterface.cc為以太網(wǎng)半實(shí)物接口模塊實(shí)現(xiàn)源文件。
圖5 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
NED文件主要提供以太網(wǎng)半實(shí)物接口模塊參數(shù)配置的功能,H和CC文件實(shí)現(xiàn)了仿真向外部實(shí)體通信的功能。
3.2 使用DSITL接口模塊
DSITL接口模塊是用于處理DSITL仿真數(shù)據(jù)的標(biāo)準(zhǔn)接口,在接口模型庫中的“Application->DSITL”文件夾中,包括以下幾個(gè)文件: DSITLInterface.ned為DSITL接口模塊描述文件; DSITLInterface.h為DSITL接口模塊實(shí)現(xiàn)頭文件; DSITLInterface.cc為DSITL接口模塊實(shí)現(xiàn)源文件。其中NED文件主要提供以DSITL接口模塊參數(shù)配置的功能,H和CC文件實(shí)現(xiàn)了構(gòu)建和處理仿真數(shù)據(jù)包的功能。在本仿真網(wǎng)絡(luò)中,DSITL接口模塊采用透?jìng)鲬?yīng)用模式,因此將參數(shù)“trueEmulate”設(shè)置為1。
3.3 仿真流程
(1)本仿真需要3臺(tái)計(jì)算機(jī),其中一臺(tái)運(yùn)行仿真網(wǎng)絡(luò)(本仿真中假設(shè)其IP地址為192.168.1.100,該計(jì)算機(jī)不能安裝IPv6,否則可能導(dǎo)致仿真場(chǎng)景不能正常啟動(dòng)),另2臺(tái)計(jì)算機(jī)作為兩個(gè)外部實(shí)體進(jìn)行通信。
(2)設(shè)置外部實(shí)體計(jì)算機(jī)的IP地址和子網(wǎng)掩碼,保證與仿真網(wǎng)絡(luò)中的IP地址(192.168.0.2~192.168.0.9)不在同一子網(wǎng)內(nèi)(本仿真中假設(shè)為192.168.1.2和192.168.1.5,子網(wǎng)掩碼設(shè)置為255.255.255.0),并將網(wǎng)關(guān)地址設(shè)置為運(yùn)行仿真網(wǎng)絡(luò)的計(jì)算機(jī)的IP地址。
(3)從仿真網(wǎng)絡(luò)中選取兩個(gè)節(jié)點(diǎn)作為實(shí)物映射節(jié)點(diǎn),本仿真中選擇節(jié)點(diǎn)為Radio1(仿真IP為192.168.0.2)和Radio4(仿真IP為192.168.0.5)。
(4)運(yùn)行仿真網(wǎng)絡(luò),兩個(gè)外部實(shí)體計(jì)算機(jī)將分別向?qū)Ψ降姆抡嬗成涔?jié)點(diǎn)發(fā)送PING業(yè)務(wù),即192.168.1.2 向192.168.0.5發(fā)送PING業(yè)務(wù),192.168.1.5向192.168.0.2發(fā)送PING業(yè)務(wù)。
(5)半實(shí)物接口將載荷封裝進(jìn)仿真數(shù)據(jù)包并交由節(jié)點(diǎn)Radio1處理。
(6)節(jié)點(diǎn)Radio1和節(jié)點(diǎn)Radio4分別映射兩個(gè)外部實(shí)體,因此節(jié)點(diǎn)Radio1需發(fā)送尋路請(qǐng)求查找到節(jié)點(diǎn)Radio4的路由信息。
(7)節(jié)點(diǎn)Radio1查找到路由信息后將數(shù)據(jù)包發(fā)送給節(jié)點(diǎn)Radio4。
(8)節(jié)點(diǎn)Radio4接收到仿真數(shù)據(jù)包后通過半實(shí)物接口將其轉(zhuǎn)換為以太網(wǎng)幀并發(fā)送給外部實(shí)體。
3.4 半實(shí)物節(jié)點(diǎn)映射
網(wǎng)絡(luò)仿真與實(shí)物的對(duì)應(yīng)關(guān)系如圖6所示。仿真節(jié)點(diǎn)Radio1和節(jié)點(diǎn)Radio4分別映射兩個(gè)外部實(shí)物,實(shí)物網(wǎng)絡(luò)地址分別為“192.168.1.2”和“192.168.1.5”,將這兩個(gè)實(shí)物的網(wǎng)關(guān)設(shè)置為“192.168.1.100”。在仿真啟動(dòng)后,系統(tǒng)為Radio1和Radio4自動(dòng)分配的仿真地址分別為“192.168.0.2”和“192.168.0.5”。
圖6 半實(shí)物節(jié)點(diǎn)對(duì)應(yīng)關(guān)系
3.5 仿真網(wǎng)絡(luò)參數(shù)配置
新建仿真配置文件“vrnet.ini”,添加配置參數(shù),如下所示:
[General] network=CommToSimNet, scheduler?class=cExt_ NRTScheduler, CommToSimNet.ethernet.adapterIp=
\"192.168.1.100\",CommToSimNet.dsitl.trueEmulate=1CommToSimNet.Radio1.dsitlApp.extAddr=\"192.168.1.2\" CommToSimNet.Radio4.dsitlApp.extAddr=\"192.168.1. 5\"
接口模塊的“adapterIp”參數(shù)設(shè)置為運(yùn)行仿真的機(jī)器IP地址,Radio1和Radio4中的dsitlApp模塊的“extAddr”參數(shù)設(shè)置為映射外部實(shí)物的IP地址。由于本場(chǎng)景用于透?jìng)鲬?yīng)用,因此將DSITL接口模塊的“trueEmulate”參數(shù)設(shè)置為1。
3.6 運(yùn)行仿真
沒有運(yùn)行仿真場(chǎng)景時(shí),在網(wǎng)絡(luò)地址為“192.168.1.2”的電腦中輸入命令行“ping 192.168.0.5”,IP地址為192.168.1.2的外部實(shí)體向IP地址192.168.0.5發(fā)送Ping包的結(jié)果如圖7所示,兩個(gè)外部實(shí)體無法直接通信。
圖7 未運(yùn)行仿真網(wǎng)絡(luò)通信效果
啟動(dòng)仿真,極速運(yùn)行仿真狀態(tài)下,在網(wǎng)絡(luò)地址為“192.168.1.2”的電腦中輸入命令行“ping 192.168.0.5”,結(jié)果如圖8所示。極速運(yùn)行仿真場(chǎng)景時(shí),IP地址為192.168.1.2的外部實(shí)體向IP地址為192.168.0.5的外部實(shí)體發(fā)送Ping包的結(jié)果:實(shí)體能夠向目的實(shí)體發(fā)送ping并收到目的實(shí)體的回復(fù)。
圖8 已運(yùn)行仿真網(wǎng)絡(luò)通信效果
4 結(jié) 論
半實(shí)物仿真有效地提高了通信網(wǎng)絡(luò)仿真的可信度, 降低了真實(shí)實(shí)驗(yàn)、測(cè)試的成本。本文分析了用VRNET Developer中DSITL模塊和以太網(wǎng)接口進(jìn)行半實(shí)物仿真基本原理和實(shí)現(xiàn)方式。通過以太網(wǎng)接口模塊使仿真主機(jī)自帶的以太網(wǎng)卡與外部設(shè)備、程序進(jìn)行通信。搭建了一個(gè)無線通信網(wǎng)絡(luò)半實(shí)物仿真環(huán)境,通過仿真,實(shí)現(xiàn)了物理網(wǎng)絡(luò)與仿真網(wǎng)絡(luò)的互聯(lián)互通,有效地提高了通信網(wǎng)絡(luò)仿真的可信度, 對(duì)于在構(gòu)建軍事通信網(wǎng)工作中優(yōu)化網(wǎng)絡(luò)設(shè)計(jì),設(shè)置合理的網(wǎng)絡(luò)參數(shù)有著一定的實(shí)際價(jià)值。
參考文獻(xiàn)
[1] 張?bào)悖中⒖?一種基于OPNET 的網(wǎng)絡(luò)半實(shí)物仿真模型[J].微計(jì)算機(jī)信息,2007,23(1):257?258.
[2] 劉蕓,顧曉鳴,匡曉.一種基于OPNET的網(wǎng)絡(luò)半實(shí)物仿真方法研究[J].軟件導(dǎo)刊,2009,8(2):125?127.
[3] 段威,任華,柳海峰.基于OPNET的通信網(wǎng)絡(luò)半實(shí)物仿真方法研究[J].計(jì)算機(jī)仿真,2007,24(11):138?143.
[4] 賴安琪.基于QualNet的戰(zhàn)術(shù)數(shù)據(jù)鏈半實(shí)物仿真[J].電訊技術(shù), 2009,49(5):74?77.
[5] 管天,盧澤新,白建軍.基于半實(shí)物網(wǎng)絡(luò)仿真的包截獲關(guān)鍵技術(shù)研究[J].計(jì)算機(jī)工程與科學(xué),2006,28(12):99?102.
[6] 張中偉.半實(shí)物仿真技術(shù)在通信系統(tǒng)中的應(yīng)用研究[C]//第四屆中國軟件工程大會(huì)論文集.杭州:[出版者不祥],2007:86?88.
[7] 趙明,周安棟,劉宏波.基于OMNEST的半實(shí)物仿真數(shù)據(jù)傳輸研究[J].計(jì)算機(jī)與數(shù)字工程,2012,40(5):53?55.
[8] 黃建強(qiáng),鞠建波.半實(shí)物仿真技術(shù)研究現(xiàn)狀及發(fā)展趨勢(shì)[J].艦船電子工程,2011(7):5?6.
[9] 容曉峰,董軼文,鐘聯(lián)炯.一種半實(shí)物通信網(wǎng)絡(luò)仿真模型[J].西安工程大學(xué)學(xué)報(bào),2010,24(5):614?618.
[10] 楊大偉.基于某半實(shí)物仿真系統(tǒng)的VMIC實(shí)時(shí)網(wǎng)通信測(cè)試方法研究[J].信息與電腦,2010(3):60?61.