王曉靜, 夏群峰, 王曉鋒
(1.江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院, 江蘇 無錫 214122;2.江南計算技術(shù)研究所, 江蘇 無錫 214000)
虛實網(wǎng)絡(luò)融合的仿真技術(shù)可有效兼顧評估平臺的性能與逼真度[1~3],因此,成為當(dāng)前研究的熱點。文獻[4]講述了綜合分布式網(wǎng)絡(luò)模擬技術(shù)以及基于虛擬化的網(wǎng)絡(luò)仿真技術(shù),實現(xiàn)了模擬、仿真融合的實驗平臺,進一步重點研究了網(wǎng)絡(luò)模擬與網(wǎng)絡(luò)仿真的同步問題。文獻[5]在實現(xiàn)了模擬、仿真融合的網(wǎng)絡(luò)實驗平臺的基礎(chǔ)上,重點研究了網(wǎng)絡(luò)模擬與仿真的同步技術(shù)以及高性能仿真模型。文獻[6]摒棄了HLA/RTI 的同步機制,實現(xiàn)了模擬器與實物網(wǎng)絡(luò)交替推進同步的分布式模擬機制。文獻[7]在實現(xiàn)了一種基于QualNet 模擬器與實物互聯(lián)互通方法的基礎(chǔ)上,重點關(guān)注了基于隧道模式與解析模式的虛實報文互通技術(shù)。文獻[8]重點關(guān)注了真實軟件可無縫應(yīng)用于模擬器的時鐘同步方法。文獻[9]重點關(guān)注了虛實結(jié)合仿真技術(shù)中報文解析與重構(gòu)以及基于動態(tài)路由的報文轉(zhuǎn)發(fā)技術(shù)。文獻[3,10]實現(xiàn)了一種基于ARP 欺騙、報文捕獲與構(gòu)造的并行模擬器與實物設(shè)備互聯(lián)互通的方法。文獻[11]通過虛擬網(wǎng)卡橋接的虛實對接設(shè)計完成了物理網(wǎng)絡(luò)和仿真網(wǎng)絡(luò)邊界節(jié)點的連通??傮w看來,當(dāng)前大部分虛實網(wǎng)絡(luò)融合的仿真技術(shù)均基于網(wǎng)絡(luò)模擬器的實現(xiàn),雖然在融合方面重點考慮了同步機制以及虛實報文構(gòu)造方法,但均存在缺乏考慮任意靈活接入實物設(shè)備的接入方法的問題。
本文在重點描述了虛實網(wǎng)絡(luò)融合仿真系統(tǒng)的體系結(jié)構(gòu)并實現(xiàn)了其功能的基礎(chǔ)上,針對前期研究中存在的問題,提出了一種可任意靈活接入的虛實網(wǎng)絡(luò)融合仿真方法,并通過具體網(wǎng)絡(luò)拓?fù)鋵嵗钊腙U述并驗證了該方法的正確性和有效性。
虛實網(wǎng)絡(luò)融合仿真系統(tǒng)由NS3模擬仿真網(wǎng)絡(luò)、虛實網(wǎng)絡(luò)融合仿真平臺和物理設(shè)備3部分組成。其體系結(jié)構(gòu)如圖1所示。
圖1 虛實網(wǎng)絡(luò)融合仿真系統(tǒng)
NS3[12~14]主要用于模擬仿真節(jié)點,構(gòu)造多仿真節(jié)點組成的仿真網(wǎng)絡(luò)拓?fù)洌渲械姆抡婀?jié)點既可以作為發(fā)送方,也可以作為接收方,用于完成對虛擬報文的發(fā)送或接收。如圖1所示,通過平臺的靈活接入模塊選擇仿真網(wǎng)絡(luò)中的任意仿真節(jié)點作為發(fā)送端,真實節(jié)點作為接收端,從而實現(xiàn)虛實鏈路間的通信過程。
該平臺是整個虛實網(wǎng)絡(luò)融合仿真系統(tǒng)中最重要的部分,依附于實物設(shè)備運行,如圖1所示,該平臺與接入端設(shè)備(物理設(shè)備和NS3仿真節(jié)點)相連,主要通過MPI,Libnet,Libpcap等技術(shù)實現(xiàn)接入端設(shè)備的靈活任意接入、報文檢測、報文解析、重構(gòu)轉(zhuǎn)發(fā)等功能,實現(xiàn)端與端之間的業(yè)務(wù)和數(shù)據(jù)信息的交互,完成雙向代理功能。
物理設(shè)備指真實節(jié)點,同樣既可以作為發(fā)送端也可以作為接收端,用于完成對真實報文的發(fā)送或接收。當(dāng)進行實虛相互通信時,即真實節(jié)點作為發(fā)送端,仿真節(jié)點作為接收端,同理完成實虛鏈路間的相互通信。
如圖1所示,虛實網(wǎng)絡(luò)融合仿真平臺主要包括4個模塊,進行虛實鏈路構(gòu)建時的通信流程如圖2所示,各模塊的詳細(xì)功能介紹如下:
1)靈活接入模塊:根據(jù)用戶的需求,靈活選擇虛實網(wǎng)絡(luò)中的任意兩節(jié)點作為發(fā)送端節(jié)點和接收端目的節(jié)點。
2)報文檢測模塊:作用于通過虛實網(wǎng)絡(luò)融合仿真平臺進行真實節(jié)點到仿真節(jié)點通信時,利用Libpcap技術(shù)檢測平臺流經(jīng)的數(shù)據(jù)報文,若為平臺需要,則交由報文解析模塊;則,丟棄。
3)報文解析模塊:對流經(jīng)該模塊的數(shù)據(jù)報文進行處理,解析數(shù)據(jù)報文的類型、格式及內(nèi)容,并交由重構(gòu)轉(zhuǎn)發(fā)模塊。
4)重構(gòu)轉(zhuǎn)發(fā)模塊:利用NS3內(nèi)部機制或Libnet技術(shù)將流經(jīng)該模塊的數(shù)據(jù)報文重構(gòu)為大小、類型、內(nèi)容一致的且下一段鏈路能夠識別的報文,然后利用MPI機制或Libnet技術(shù)發(fā)送重構(gòu)報文到接收目的節(jié)點。
與文獻[3]相比,虛實網(wǎng)絡(luò)融合仿真平臺在加入靈活接入模塊的基礎(chǔ)上,通過對該平臺設(shè)置與仿真節(jié)點一致的網(wǎng)絡(luò)地址,摒棄ARP模塊,避免了不斷尋址的問題,通過節(jié)省模擬時間,大幅提高了模擬效率。
靈活接入,指將虛實仿真網(wǎng)絡(luò)中的節(jié)點通過虛實網(wǎng)絡(luò)融合仿真平臺,構(gòu)建出相應(yīng)的虛實鏈路,其任意節(jié)點均可通過靈活接入模塊完成隔離網(wǎng)絡(luò)間的通信,網(wǎng)絡(luò)間的任意節(jié)點均可成為發(fā)送方或者接收方;對于一定拓?fù)浣Y(jié)構(gòu)的隔離網(wǎng)絡(luò)而言,經(jīng)過靈活接入的接口可實現(xiàn)不同虛實鏈路間的任意切換。如圖3所示。
實現(xiàn)原理:用戶進行隔離網(wǎng)絡(luò)間通信時,在讀取預(yù)設(shè)定的網(wǎng)絡(luò)拓?fù)錁?gòu)建配置文件后,通過靈活接入接口獲取用戶外部的靈活配置信息,該端口對配置信息進行處理,并根據(jù)不同的靈活配置信息對虛實平臺內(nèi)部相對應(yīng)的網(wǎng)絡(luò)節(jié)點進行不同的應(yīng)用設(shè)置,然后開啟通信進程,完成接入網(wǎng)絡(luò)源節(jié)點與目標(biāo)網(wǎng)絡(luò)目的節(jié)點間的通信;到達目標(biāo)網(wǎng)絡(luò)節(jié)點后,若需完成不同鏈路間的通信,則通過靈活接入接口重新獲取外部配置信息,即可實現(xiàn)另一鏈路的通信過程,實現(xiàn)不同鏈路間的通信切換。
并行分布式離散事件仿真(MPI)[15],作為標(biāo)準(zhǔn)的消息傳遞接口,可以實現(xiàn)單一的仿真程序在多個處理器上的分布執(zhí)行,從而將仿真程序拆分為多個邏輯進程,并且不同的邏輯進程由不同的處理器完成,最終完成不同宿主機仿真節(jié)點間的虛擬通信。如圖4(a),(b) 運行相同的程序,在圖4(a)中執(zhí)行進程1,即節(jié)點A發(fā)送報文到A′,A′作為圖4(b)中接收端節(jié)點B的映射節(jié)點;同理,在圖4(b)中B′僅作為節(jié)點A的映射節(jié)點,執(zhí)行進程2,即節(jié)點B接收來自映射點B′實質(zhì)為節(jié)點A發(fā)送的數(shù)據(jù)報文。這種方法與傳統(tǒng)的Socket通信相比大幅提高了大規(guī)模仿真事件的處理能力和物理設(shè)備的可用性。
圖4 跨宿主機間的MPI通信原理
實驗使用2臺Windows物理主機和2臺Linux服務(wù)器,其中一臺服務(wù)器運行虛實網(wǎng)絡(luò)融合仿真平臺,另一臺服務(wù)器運行NS3網(wǎng)絡(luò)模擬器,用來構(gòu)造仿真網(wǎng)絡(luò)。為驗證靈活接入方式的可行性,接入多個設(shè)備節(jié)點包括:物理主機A(192.168.1.190)、物理主機B(192.168.1.129)、仿真節(jié)點1~7,其中A,B為真實節(jié)點,節(jié)點1~7為NS3網(wǎng)絡(luò)模擬器模擬出的仿真節(jié)點,圖5左側(cè)為構(gòu)建的仿真網(wǎng)絡(luò)拓?fù)洹?/p>
分別選取仿真網(wǎng)絡(luò)拓?fù)渲泄?jié)點4和節(jié)點6作為發(fā)送端,主機A和主機B作為目的端,采用靈活接入方式,完成不同虛實節(jié)點間鏈路的相互通信。
配置過程:如圖5所示,針對接入設(shè)備的多個節(jié)點中,首先啟動虛實網(wǎng)絡(luò)融合仿真平臺,讀取預(yù)設(shè)的網(wǎng)絡(luò)拓?fù)渑渲梦募?,同時根據(jù)平臺所提示的發(fā)送端和目的端的地址IP選項信息,即仿真節(jié)點1~7,真實節(jié)點A,B,終端選擇仿真節(jié)點4作為發(fā)送端,物理主機A作為目的端,自動將選擇的數(shù)據(jù)信息生成配置文件,平臺通過讀取該配置文件,完成用戶所選擇的節(jié)點間的通信;選擇仿真網(wǎng)絡(luò)拓?fù)渲械墓?jié)點6和真實節(jié)點B分別作為發(fā)送端和目的端,只需重新選擇該平臺提供的發(fā)送端和目的端的地址選項信息自動生成新配置文件,平臺讀取該文件即可完成新的虛實鏈路間的通信,實現(xiàn)了不同設(shè)備的靈活接入。
圖5 虛實網(wǎng)絡(luò)間網(wǎng)絡(luò)拓?fù)鋱D
1)PING命令的虛實通信測試
選擇圖5中仿真節(jié)點4為發(fā)送端,物理主機A為接收端。實驗結(jié)果如圖6所示。
圖6 仿真節(jié)點與真實節(jié)點的數(shù)據(jù)報文對比
圖6(a)為TcpDump跟蹤仿真節(jié)點4獲取到虛擬數(shù)據(jù)報文,圖6(b)為主機A通過Wireshark工具獲取到的真實數(shù)據(jù)報文,數(shù)據(jù)報文的成功獲取,表明了采用靈活接入方式可以成功實現(xiàn)虛實鏈路間的相互通信,同時經(jīng)過詳細(xì)對比發(fā)現(xiàn),兩者的數(shù)據(jù)報文的類型、大小、內(nèi)容等完全一致,表明了數(shù)據(jù)報文在虛實網(wǎng)絡(luò)中的傳輸與物理網(wǎng)絡(luò)中的傳輸結(jié)果一致,保證了仿真結(jié)果的真實性。
2)基于TCP的Web訪問測試
選擇圖5中物理主機B為請求方,仿真節(jié)點6為應(yīng)答方,并在B上安裝Fiddler Web Server客戶端,在仿真節(jié)點6編寫測試網(wǎng)頁,假設(shè)物理B通過Fiddler能夠訪問到測試網(wǎng)頁,則證明完成了實物網(wǎng)絡(luò)到仿真網(wǎng)絡(luò)的完整通信。
圖7(a)為Fiddler通過端口8088向目的仿真節(jié)點6發(fā)送請求報文的頁面狀態(tài),圖的上部分顯示HTTP(GET)報文的信息,下部分顯示來自仿真節(jié)點6的HTTP(OK)應(yīng)答報文的內(nèi)容;圖7(b)為接收HTTP(OK)應(yīng)答報文后打開的測試頁面,測試頁面的正常顯示不僅表明了實物網(wǎng)絡(luò)與虛擬網(wǎng)絡(luò)的通信,還可以在虛實通信的基礎(chǔ)上進行具體的網(wǎng)絡(luò)實驗。
圖7 Fiddler訪問仿真節(jié)點的實驗結(jié)果
實驗結(jié)果表明:針對網(wǎng)絡(luò)拓?fù)渲械亩鄠€接入端設(shè)備,完成隔離網(wǎng)絡(luò)間通信的前提下,利用靈活的接入方法,可以成功實現(xiàn)同一拓?fù)湎虏煌搶嶆溌烽g通信的任意切換,驗證了本文方法的可行性。
在實現(xiàn)了虛實網(wǎng)絡(luò)融合仿真平臺功能的基礎(chǔ)上,重點提出并實現(xiàn)了接入端設(shè)備可任意靈活接入該平臺的接入方法,并通過實例驗證了該方法可有效提高網(wǎng)絡(luò)仿真鏈路構(gòu)建的靈活性。
[1] Andel T R,Stewart K E,Jeffrey H W.Using virtualization for cyber security education and experimentation[C]∥Proceedings of the14th Colloquium for Information Systems Security Education,Maryland,Baltimore,USA:IEEE,2010:130-136.
[2] Liu N,Carothers C,Cope J,et al.Model and simulation of exascale communication networks[J].Journal of Simulation,2012,6(6):227-236.
[3] 費海強,郝志宇,云曉春,等.一種實現(xiàn)實物設(shè)備無縫接入網(wǎng)絡(luò)模擬器的系統(tǒng)及方法:中國,103078769A[P].2013—05—01.
[4] Jin D,Zheng Y,Nicol D M.A parallel network simulation and virtual time-based network emulation testbed[J].Journal of Simulation,2014,8(3):206-214.
[5] Erazo M A,Liu J.Leveraging symbiotic relationship between simulation and emulation for scalable network experimenta-tion[C]∥Proceedings of the2013ACM SIGSIM Conference on Principles of Advanced Discrete Simulation,ACM,2013:79-90.
[6] 張建軍,韋 濤,田永春,等.分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)及其半實物接口控制方法:中國,101645813[P].2010—02—10.
[7] 栗 蘋,龔 鵬,孔杰軍,等.一種面向QualNet 網(wǎng)絡(luò)半實物仿真的實物接入方法:中國,103200190A[P].2013—07—10.
[8] 林思明,王景飛,程學(xué)旗,等.一種離散事件網(wǎng)絡(luò)模擬環(huán)境的時鐘同步方法:中國,102662428A[P].2012—09—12.
[9] 趙 剛,況曉輝,鄭緯民.LDS脆弱性分析實驗環(huán)境體系結(jié)構(gòu)研究與實現(xiàn)[J].清華大學(xué)學(xué)報:自然科學(xué)版,2011,51(12):1824-1830.
[10] 韋 濤,田永春,姜永廣.基于協(xié)同的半實物網(wǎng)絡(luò)仿真系統(tǒng)設(shè)計[J].通信技術(shù),2011,44(12):64-66.
[11] 李廣榮.基于NS—3的虛實網(wǎng)絡(luò)結(jié)合系統(tǒng)的設(shè)計與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2015.
[12] NS—3manual[EB/OL].http:∥www.nsnam.org,2015—05—13.
[13] Riley G F,Henderson T R.Modeling & tools for network simulation[M].Berlin Heidelberg:Springer-Verlag,2010:55-57.
[14] Font J L,Ińigo P,Domínguez M,et al.Analysis of source code metrics from ns-2and ns-3network simulators[J].Simulation Modelling Practice & Theory,2011,19(5):1330-1346.
[15] Stoffers M,Riley G.Hybrid simulation of packet-level networks and functional-level routers[C]∥Proceedings of the26th ACM/IEEE International Conference on Principles of Advanced and Distributed Simulation (PADS),IEEE,2012:111-119.