基于路由協(xié)議的網(wǎng)絡(luò)運行仿真方法
【專利摘要】本發(fā)明提供了一種基于路由協(xié)議的網(wǎng)絡(luò)運行仿真方法,該方法包括:當網(wǎng)絡(luò)仿真運行平臺通過網(wǎng)絡(luò)接口捕捉到數(shù)據(jù)幀后,對協(xié)議頭進行分析,根據(jù)幀的類型字段進行判斷,如果所述數(shù)據(jù)幀是地址分析報文則由平臺直接進行響應(yīng),丟棄本機發(fā)送的地址分析報文,如果是IP報文,則交由虛擬網(wǎng)絡(luò)設(shè)備進行處理,處理完成的報文由平臺進行封裝和發(fā)送。本發(fā)明提出了一種基于路由協(xié)議的網(wǎng)絡(luò)運行仿真方法,不改變協(xié)議整體架構(gòu),自主構(gòu)建網(wǎng)絡(luò)和配置參數(shù),為網(wǎng)絡(luò)攻擊和防御的分析提供了良好的環(huán)境。
【專利說明】
基于路由協(xié)議的網(wǎng)絡(luò)運行仿真方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機網(wǎng)絡(luò)安全,特別涉及一種基于路由協(xié)議的網(wǎng)絡(luò)運行仿真方法。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)帶寬的日益增長,網(wǎng)絡(luò)攻擊活動也以指數(shù)形式增長,如果要保證網(wǎng)絡(luò)安全,就需要進行網(wǎng)絡(luò)探測。由于現(xiàn)代網(wǎng)絡(luò)拓撲的復(fù)雜性,以往構(gòu)建真實網(wǎng)絡(luò)運行時,往往需要大量的網(wǎng)絡(luò)設(shè)備,投資巨大。每次搭建真實網(wǎng)絡(luò)運行前,準備工作復(fù)雜、配置時間長,實驗完成之后系統(tǒng)恢復(fù)耗時較長。尤其是在真實系統(tǒng)上進行實驗可能會引起系統(tǒng)破壞或發(fā)生故障,造成很大的風(fēng)險和損失。在這種背景下,網(wǎng)絡(luò)仿真運行平臺應(yīng)運而生,在平臺上構(gòu)建一個或多個網(wǎng)絡(luò)拓撲環(huán)境,為外界提供網(wǎng)絡(luò)服務(wù)、允許路由探測和安全掃描,并且在遠程主機看來,這是一個真實的網(wǎng)絡(luò)環(huán)境,大大縮減管理員對網(wǎng)絡(luò)探測的配置時間和系統(tǒng)恢復(fù)時間。然而現(xiàn)有的系統(tǒng)平臺設(shè)計時沒有考慮到平臺與遠程主機的數(shù)據(jù)交互與數(shù)據(jù)捕捉問題,同時無法將物理主機隱藏在虛擬網(wǎng)絡(luò)運行中,進行有效保護。
【發(fā)明內(nèi)容】
[0003]為解決上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明提出了一種基于路由協(xié)議的網(wǎng)絡(luò)運行仿真方法,包括:
[0004]當網(wǎng)絡(luò)仿真運行平臺通過網(wǎng)絡(luò)接口捕捉到數(shù)據(jù)幀后,對協(xié)議頭進行分析,根據(jù)幀的類型字段進行判斷,如果所述數(shù)據(jù)幀是地址分析報文則由平臺直接進行響應(yīng),丟棄本機發(fā)送的地址分析報文,如果是IP報文,則交由虛擬網(wǎng)絡(luò)設(shè)備進行處理,處理完成的報文由平臺進行封裝和發(fā)送。
[0005]優(yōu)選地,所述由虛擬網(wǎng)絡(luò)設(shè)備進行處理,進一步包括:
[0006]在報文進入虛擬網(wǎng)絡(luò)的入口設(shè)置輸入路由器,定義平臺與輸入路由器間的緩存池,平臺將處理完的報文送入緩存池,報文在緩存池中以動態(tài)鏈表的方式存儲,如果緩存池已滿則丟棄新包;所述虛擬網(wǎng)絡(luò)設(shè)備處理報文的流程具體包括:輸入路由器從緩存池中讀取報文,首先對報文進行預(yù)處理,檢查包的長度和校驗碼,然后從報文中分析目的地址和數(shù)據(jù),最后根據(jù)路由表將數(shù)據(jù)發(fā)送給目標主機;主機處理完成后,在將報文發(fā)送到網(wǎng)關(guān)路由之前,還需要進行封裝,加載預(yù)定的特征,使其符合配置的操作系統(tǒng)特征,最后報文經(jīng)輸入路由器存入緩存池。
[0007 ]所述對協(xié)議頭進行分析,進一步包括:
[0008]對于分析操作,當網(wǎng)絡(luò)仿真運行平臺收到數(shù)據(jù)幀時,將包含的每層數(shù)據(jù)進行處理,通過多次解幀解包的操作,檢查報文頭部中的各個標志字符,確定接收數(shù)據(jù)的上層協(xié)議,最后將幀中的應(yīng)用層數(shù)據(jù)交付給應(yīng)用程序;
[0009]所述封裝操作進一步包括,當應(yīng)用層數(shù)據(jù)需要通過平臺發(fā)送時,將數(shù)據(jù)通過協(xié)議棧進行封裝,每次封裝都要在收到數(shù)據(jù)的基礎(chǔ)上增加幀頭信息,最后形成可以在以太網(wǎng)上傳輸?shù)臄?shù)據(jù)幀。
[0010]優(yōu)選地,所述網(wǎng)絡(luò)仿真運行平臺在運行后,首先對自身進行初始化;將平臺調(diào)整到就緒狀態(tài),等待用戶的操作;虛擬網(wǎng)絡(luò)設(shè)備提供的服務(wù)通過編寫腳本來實現(xiàn),通過腳本解釋器的初始化工作完成對腳本解釋器配置文件的讀取,獲得各類腳本解釋器所在的目錄,供執(zhí)行腳本時調(diào)用;分析特征庫文件,通過加載特征庫仿真多種操作系統(tǒng)和識別遠程訪問主機的操作系統(tǒng);加載預(yù)設(shè)的網(wǎng)絡(luò)設(shè)備特征模板,所述特征模板也可在構(gòu)建網(wǎng)絡(luò)運行過程中添加,供配置設(shè)備屬性時使用;打開日志文件,向文件中寫入數(shù)據(jù),該日志文件用于網(wǎng)絡(luò)行為的監(jiān)控和分析;初始化平臺與外部網(wǎng)絡(luò)的接口,用于報文的捕捉和轉(zhuǎn)送;為緩存池分配一定的內(nèi)存空間暫存收發(fā)的報文,用來虛擬網(wǎng)絡(luò)延遲;初始化數(shù)據(jù)量統(tǒng)計隊列,統(tǒng)計單位時間內(nèi)流經(jīng)平臺和虛擬網(wǎng)絡(luò)設(shè)備的報文流量,包括接收流量和發(fā)送流量;在初始化完成后,用戶選擇載入已經(jīng)建立的網(wǎng)絡(luò)或新建一個網(wǎng)絡(luò),完成對設(shè)備屬性的配置,設(shè)置相應(yīng)的參數(shù),指定該設(shè)備所對應(yīng)的接口并進行初始化,按預(yù)先設(shè)計的網(wǎng)絡(luò)拓撲連接各設(shè)備,對網(wǎng)絡(luò)的邏輯正確性進行檢驗,包括IP地址格式是否正確,是否存在相同IP,網(wǎng)絡(luò)連接是否正確,如果配置不正確,則將錯誤信息反饋給用戶使其重新配置,仿真過程結(jié)束后,平臺清理垃圾,關(guān)閉打開的接口和管道,釋放平臺所開辟的內(nèi)存空間,同時保存網(wǎng)絡(luò)拓撲圖。
[0011]本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點:
[0012]本發(fā)明提出了一種基于路由協(xié)議的網(wǎng)絡(luò)運行仿真方法,不改變協(xié)議整體架構(gòu),自主構(gòu)建網(wǎng)絡(luò)和配置參數(shù),為網(wǎng)絡(luò)攻擊和防御的分析提供了良好的環(huán)境。
【附圖說明】
[0013]圖1是根據(jù)本發(fā)明實施例的基于路由協(xié)議的網(wǎng)絡(luò)運行仿真方法的流程圖。
【具體實施方式】
[0014]下文與圖示本發(fā)明原理的附圖一起提供對本發(fā)明一個或者多個實施例的詳細描述。結(jié)合這樣的實施例描述本發(fā)明,但是本發(fā)明不限于任何實施例。本發(fā)明的范圍僅由權(quán)利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細節(jié)以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細節(jié),并且無這些具體細節(jié)中的一些或者所有細節(jié)也可以根據(jù)權(quán)利要求書實現(xiàn)本發(fā)明。
[0015]本發(fā)明的一方面提供了一種基于路由協(xié)議的網(wǎng)絡(luò)運行仿真方法。圖1是根據(jù)本發(fā)明實施例的基于路由協(xié)議的網(wǎng)絡(luò)運行仿真方法流程圖。
[0016]本發(fā)明基于網(wǎng)絡(luò)仿真運行平臺,模擬各種操作系統(tǒng)及服務(wù)漏洞。在用一臺物理主機實現(xiàn)真實網(wǎng)絡(luò)運行仿真的基礎(chǔ)上,將多臺物理主機仿真的小規(guī)模網(wǎng)絡(luò)連接成較大規(guī)模的網(wǎng)絡(luò),并為每一個網(wǎng)絡(luò)設(shè)備配置設(shè)備特征。對于一般用戶,平臺作為一種網(wǎng)絡(luò)構(gòu)建工具,在平臺提供的顯示單元觀測流經(jīng)平臺及網(wǎng)絡(luò)設(shè)備的流量。對于開發(fā)人員,平臺提供開發(fā)接口,開發(fā)滿足需要的功能塊。
[0017]整個平臺依次分為四層:控制層、設(shè)備層、程序?qū)雍屯ㄐ艑?。各層的功能分別介紹如下:
[0018](I)控制層負責平臺和功能塊的初始化以及運行過程中對功能塊的控制,并提供用戶接口。包括三個子單元:設(shè)備控制單元、網(wǎng)絡(luò)配置單元和用戶接口單元。設(shè)備控制單元負責對具體的網(wǎng)絡(luò)設(shè)備進行設(shè)置,包括設(shè)定操作系統(tǒng)、文件系統(tǒng)和開放的端口;網(wǎng)絡(luò)配置單元負責網(wǎng)絡(luò)拓撲的生成和輸入路由器的配置;用戶接口單元用于與仿真設(shè)備交互的接口。
[0019](2)設(shè)備層用于模擬網(wǎng)絡(luò)運行中的各種網(wǎng)絡(luò)設(shè)備,包括主機、服務(wù)器、防火墻、路由器、集線器設(shè)備。其中主機和服務(wù)器有兩種類型,一種是仿真的網(wǎng)絡(luò)設(shè)備,一種是集成到真實網(wǎng)絡(luò)中的物理設(shè)備。
[0020](3)程序?qū)迂撠熅W(wǎng)絡(luò)設(shè)備上運行的程序和服務(wù)以及運行程序和服務(wù)所需的文件系統(tǒng),它由服務(wù)程序、通信程序和文件接口組成。服務(wù)程序包括模擬腳本或控制臺程序,用來虛擬網(wǎng)絡(luò)設(shè)備上運行的各種網(wǎng)絡(luò)服務(wù)。通信程序指具有網(wǎng)絡(luò)通信功能的應(yīng)用軟件,通過配置,將這些應(yīng)用軟件作為網(wǎng)絡(luò)設(shè)備上的應(yīng)用程序運行,使得網(wǎng)絡(luò)設(shè)備以主動的方式與其它主機進行通信。文件接口用來虛擬主機的文件系統(tǒng),對線程提供文件操作服務(wù)并反映所模擬的操作系統(tǒng)的特征,包括文件的組織和文件的操作兩部分。
[0021 ] (4)通信層負責網(wǎng)絡(luò)設(shè)備的通信工作,包括協(xié)議特征庫、TCP/IP協(xié)議棧、網(wǎng)絡(luò)接口和顯示接口。協(xié)議特征庫包含各種操作系統(tǒng)的協(xié)議棧特征信息,用于給虛擬網(wǎng)絡(luò)設(shè)備的操作系統(tǒng)加載協(xié)議棧特征,識別遠程訪問主機的操作系統(tǒng)。TCP/IP協(xié)議棧用于管理平臺中的所有連接,保證設(shè)備通信的正確完成。平臺處理的協(xié)議有鏈路層協(xié)議、ARP、IP、TCP、UDP協(xié)議,應(yīng)用層協(xié)議則交給應(yīng)用程序?qū)崿F(xiàn)。該子單元實現(xiàn)了對TCP/IP協(xié)議族的封裝,向用戶提供了各個層次上的協(xié)議數(shù)據(jù)封裝接口。這些接口可用于封裝需要傳輸?shù)膱笪?,也可以利用這些接口提取出報文中感興趣的字段進行分析。網(wǎng)絡(luò)接口用于將平臺接入到真實網(wǎng)絡(luò)中,并在平臺運行的過程中對網(wǎng)絡(luò)數(shù)據(jù)進行捕捉。平臺捕捉數(shù)據(jù)有兩種模式,分別是用戶模式和內(nèi)核模式,用戶模式下只能工作在TCP/IP協(xié)議的傳輸層,無法直接截取數(shù)據(jù)鏈路層幀和網(wǎng)絡(luò)層報文,而內(nèi)核模式可以獲取鏈路層的幀,實現(xiàn)中間層驅(qū)動級捕捉,包括報文捕捉、報文注入、網(wǎng)絡(luò)監(jiān)控和存儲到磁盤,網(wǎng)絡(luò)接口為用戶進行網(wǎng)絡(luò)應(yīng)用開發(fā)和研究提供了統(tǒng)一的函數(shù)接口,利用這些接口,用戶可以對平臺進行二次開發(fā),加載功能塊。顯示接口為上層提供一些必要的顯示函數(shù)。設(shè)備層調(diào)用顯示接口,顯示接口調(diào)用系統(tǒng)顯示函數(shù)或自定義顯示函數(shù)。
[0022]各層協(xié)議使用模塊化設(shè)計,每種協(xié)議都有自己的協(xié)議頭定義,并提供對協(xié)議頭的分析和封裝操作。對于分析操作,當平臺收到數(shù)據(jù)幀時,將包含的每層數(shù)據(jù)進行相應(yīng)的處理,通過多次解幀解包的操作,檢查報文頭部中的各個標志字符,確定接收數(shù)據(jù)的上層協(xié)議,最后將幀中的應(yīng)用層數(shù)據(jù)交付給應(yīng)用程序。對于封裝操作,當應(yīng)用層數(shù)據(jù)需要通過平臺發(fā)送時,需要將數(shù)據(jù)通過協(xié)議棧進行封裝,每次封裝都要在收到數(shù)據(jù)的基礎(chǔ)上增加幀頭信息,最后形成可以在以太網(wǎng)上傳輸?shù)臄?shù)據(jù)幀。
[0023]平臺通過網(wǎng)絡(luò)接口捕捉到數(shù)據(jù)幀后,根據(jù)幀的類型字段判斷是地址分析報文還是IP報文,如果是地址分析報文則由平臺直接進行響應(yīng),丟棄本機發(fā)送的地址分析報文,否則交由虛擬網(wǎng)絡(luò)設(shè)備進行處理,處理完成的報文由平臺發(fā)送。
[0024]在報文進入虛擬網(wǎng)絡(luò)的入口設(shè)置輸入路由器,為了將報文交給輸入路由器進行處理,定義了平臺與輸入路由器間的緩存池,平臺將處理完的報文送入緩存池,報文在緩存池中以動態(tài)鏈表的方式存儲,如果緩存池已滿則丟棄新包。虛擬網(wǎng)絡(luò)設(shè)備處理報文的流程具體包括:
[0025]輸入路由器從緩存池中讀取報文,首先對報文進行預(yù)處理,檢查包的長度和校驗碼,然后從報文中分析目的地址和數(shù)據(jù),最后根據(jù)路由表將數(shù)據(jù)發(fā)送給目標主機。主機處理完成后,在將報文發(fā)送到網(wǎng)關(guān)路由之前,還需要進行封裝,加載預(yù)定的特征,使其符合配置的操作系統(tǒng)特征,最后報文經(jīng)輸入路由器存入緩存池。
[0026]在構(gòu)建仿真的網(wǎng)絡(luò)時可能用到的網(wǎng)絡(luò)設(shè)備有主機、路由器、防火墻、集線器等。本發(fā)明的實施例只對仿真的路由器和主機進行說明。虛擬路由器是網(wǎng)絡(luò)環(huán)境與虛擬主機進行通信的橋梁,因此虛擬路由器不僅具有數(shù)據(jù)轉(zhuǎn)送功能,同時提供與平臺進行數(shù)據(jù)交互的接口。將路由器分為四個單元,分別為網(wǎng)絡(luò)接口單元、數(shù)據(jù)處理單元、路由規(guī)劃單元和數(shù)據(jù)轉(zhuǎn)送單元。各單元的功能及設(shè)計實現(xiàn)介紹如下:
[0027]網(wǎng)絡(luò)接口單元的功能是接收和發(fā)送報文。從路由器接入網(wǎng)絡(luò)的角度將路由器分為兩類:輸入路由器和普通路由器。輸入路由器是邏輯上與真實主機所在網(wǎng)絡(luò)直接相連的路由器,普通路由器直接或間接與輸入路由器相連。輸入路由器作為數(shù)據(jù)進入虛擬網(wǎng)絡(luò)運行的入口,需要對來自平臺的數(shù)據(jù)進行處理,并轉(zhuǎn)送給目標主機;同時入口路由器也需要把虛擬主機向外發(fā)送的報文封裝成數(shù)據(jù)幀交給平臺。
[0028]數(shù)據(jù)處理單元負責數(shù)據(jù)檢驗、誤差控制、IP包過濾、丟包與延遲計算。數(shù)據(jù)檢驗包括依次檢驗IP包頭部的校驗和、是否為錯誤報文以及是否為組播報文;誤差控制包括處理出現(xiàn)錯誤的報文,向源主機發(fā)送報文報告出錯原因,實現(xiàn)了兩種報文,分別是查詢報文和誤差報告報文;IP包過濾實現(xiàn)對IP包的過濾,針對的是廣播包;報文每經(jīng)過一個路由器,都會產(chǎn)生相應(yīng)的延遲,路由器在轉(zhuǎn)送之前,應(yīng)該計算出延遲,同時鏈路還有一定的丟包率,丟包與延遲計算可以完成此功能。
[0029]路由規(guī)劃單元利用IP包實現(xiàn)路由規(guī)劃算法,從而實現(xiàn)路由規(guī)劃。還可以負責對路由表的維護以及更新。
[0030]轉(zhuǎn)送單元根據(jù)目的IP地址查找虛擬路由表,決定向哪個虛擬路由器發(fā)送。
[0031]平臺接入網(wǎng)絡(luò)的方法有多種,本實施例采用以下方法將虛擬網(wǎng)絡(luò)運行接入真實網(wǎng)絡(luò)。假設(shè)B為平臺所在的真實主機,通過路由器A接入Internet,V1-Vn為真實主機上仿真的η臺主機。若訪問者位于虛擬主機所在的局域網(wǎng)范圍之內(nèi)。當訪問者試圖與虛擬主機Vi通信時,其中I Si Sn,發(fā)現(xiàn)虛擬主機V1與其位于同一個網(wǎng)段,則它會首先查找自己的地址分析緩存。如果緩存中有虛擬主機Vi的MAC地址,則報文直接發(fā)送出去;如果沒有虛擬主機Vi的MAC地址,則發(fā)送地址分析包來請求虛擬主機Vi的MAC地址,得到虛擬主機Vi的MAC地址后再發(fā)送數(shù)據(jù)。當虛擬主機V1通過互聯(lián)網(wǎng)接收到一個遠程訪問者發(fā)送的一個報文時,路由器A接收到報文的同時并開始嘗試向外發(fā)送此包。路由器通過路由表進行檢索,并確定將此Vi包發(fā)送到什么地方。如果路由指向V1,則該路由器則會放棄當前報文;路由器A將收到的報文轉(zhuǎn)送到另外的路由器;若路由器所在的局域網(wǎng)內(nèi)存在1,1則會收到由路由器A傳送的包。將Vi的數(shù)據(jù)流傳輸至真實主機B的過程采用以下兩種方式之一:真實主機B由發(fā)送虛擬主機Vi的路由入口來設(shè)定。通過這種方式,報文則會通過路由器轉(zhuǎn)送到虛擬主機上繼而直接發(fā)送給真實主機。在無特殊配備的路由器的情形中,路由器會使用地址分析協(xié)議的指令來查詢虛擬主機的硬件地址。但是因為沒有能做出響應(yīng)的虛擬主機,分析協(xié)議的查詢指令不會得到應(yīng)答。此時用真實主機的硬件地址響應(yīng)上述查詢指令。允許路由器將報文傳送至真實主機。在更為復(fù)雜特殊的網(wǎng)絡(luò)環(huán)境下,或?qū)⒁欢慰臻e的網(wǎng)絡(luò)地址空間通過路由封裝連接到真實主機。
[0032]虛擬路由器從數(shù)據(jù)處理、路由規(guī)劃和數(shù)據(jù)轉(zhuǎn)送三個方面模擬了路由器的功能特性,從數(shù)據(jù)檢驗、誤差控制、IP包過濾、丟包和延遲五個方面體現(xiàn)了路由器的控制機制和鏈路特性,能夠滿足路由器仿真的要求。
[0033]對于主機的仿真,從操作系統(tǒng)的網(wǎng)絡(luò)構(gòu)成入手,將虛擬主機分為以下四個單元,其組成為網(wǎng)絡(luò)接口單元、通信單元、線程單元和文件處理單元。
[0034]虛擬主機用于處理兩個來源的數(shù)據(jù):虛擬路由器轉(zhuǎn)送給虛擬主機數(shù)據(jù),和遠程主機接收的虛擬主機訪問數(shù)據(jù)。處理這兩種數(shù)據(jù)的方式為:主機通過網(wǎng)絡(luò)接口單元,接收路由平臺捕捉的通過路由器轉(zhuǎn)送的報文。線程單元的服務(wù)線程,服務(wù)線程啟動服務(wù)仿真腳本并建立通信,服務(wù)線程如需訪問文件則由文件處理單元的文件系統(tǒng)代理程序執(zhí)行訪問操作;虛擬主機訪問遠程主機時,系統(tǒng)通過激活線程單元的活動線程,由活動線程啟動網(wǎng)絡(luò)通信軟件,注入捕捉程序。然后,網(wǎng)絡(luò)通信軟件啟動,捕捉其傳送數(shù)據(jù)。傳送數(shù)據(jù)經(jīng)活動線程處理為虛擬主機的數(shù)據(jù),再由通信單元加載虛擬主機特征,之后交給虛擬路由器處理,最后由平臺來發(fā)送數(shù)據(jù)。虛擬主機各個單元的功能及設(shè)計實現(xiàn)逐一介紹如下:
[0035]網(wǎng)絡(luò)接口單元:在計算機網(wǎng)絡(luò)中主機通過IP地址來唯一標識。計算機之間的傳送數(shù)據(jù)是通過虛擬路由器來發(fā)送和接收的,虛擬主機必須連接虛擬路由器才能接入網(wǎng)絡(luò)。虛擬主機使用IP地址來標識,使用輸入路由器的MAC地址進行網(wǎng)絡(luò)通信。虛擬主機通過接收路由器轉(zhuǎn)送的報文獲取發(fā)送給自身的數(shù)據(jù)。
[0036]通信單元:實現(xiàn)對發(fā)送數(shù)據(jù)的封裝和對接收數(shù)據(jù)分類及解封裝。協(xié)議特征庫借助于現(xiàn)有掃描軟件的內(nèi)置特征庫實現(xiàn)。
[0037]線程單元:主機仿真中的服務(wù)線程是為其它主機訪問虛擬主機提供服務(wù)的,通過外置的腳本或控制臺程序來實現(xiàn),并且只有在被訪問時啟動運行。服務(wù)線程與仿真腳本之間使用管道進行通信;主機仿真中的活動線程是指操作系統(tǒng)中具有網(wǎng)絡(luò)通信功能的線程,它可以主動向遠程主機發(fā)起連接并建立通信?;顒泳€程用于模擬線程的活動情況和網(wǎng)絡(luò)通信情況。
[0038]文件處理單元:文件系統(tǒng)用于對線程提供文件操作服務(wù),它包括文件的組織和文件的操作。文件的組織采用磁盤數(shù)據(jù)組織格式將其存為一個文件,該文件分為四部分:第一部分是保留區(qū),記錄基本輸入輸出參數(shù)塊;第二部分是文件分配表,用于記錄文件系統(tǒng)空間的使用分配情況;第三部分是文件目錄,用于存儲文件的長度、地址、日期等信息;第四部分是數(shù)據(jù)區(qū),用于文件存放。
[0039]本發(fā)明的網(wǎng)絡(luò)仿真運行平臺運行后,首先對自身進行初始化。初始化過程將平臺調(diào)整到就緒狀態(tài),等待用戶的操作。虛擬網(wǎng)絡(luò)設(shè)備提供的服務(wù)都是通過編寫腳本來實現(xiàn)的,通過腳本解釋器的初始化工作完成對腳本解釋器配置文件的讀取,獲得各類腳本解釋器所在的目錄,供執(zhí)行腳本時調(diào)用。分析特征庫文件,通過加載特征庫仿真多種操作系統(tǒng)和識別遠程訪問主機的操作系統(tǒng)。加載預(yù)設(shè)的網(wǎng)絡(luò)設(shè)備特征模板,特征模板也可在構(gòu)建網(wǎng)絡(luò)運行過程中添加,供配置設(shè)備屬性時使用。打開日志文件,向文件中寫入數(shù)據(jù)。日志文件用于網(wǎng)絡(luò)行為的監(jiān)控和分析。初始化平臺與外部網(wǎng)絡(luò)的接口,用于報文的捕捉和轉(zhuǎn)送。為緩存池分配一定的內(nèi)存空間暫存收發(fā)的報文,用來虛擬網(wǎng)絡(luò)延遲。初始化數(shù)據(jù)量統(tǒng)計隊列,統(tǒng)計單位時間內(nèi)流經(jīng)平臺和虛擬網(wǎng)絡(luò)設(shè)備的報文流量,包括接收流量和發(fā)送流量。
[0040]用戶選擇載入已經(jīng)建立的網(wǎng)絡(luò),或新建一個網(wǎng)絡(luò),按照實驗的需要添加網(wǎng)絡(luò)設(shè)備,并按預(yù)先設(shè)計的網(wǎng)絡(luò)拓撲連接各設(shè)備,形成完整的網(wǎng)絡(luò)模擬。添加網(wǎng)絡(luò)設(shè)備過程實際上是完成對設(shè)備屬性的配置,設(shè)置相應(yīng)的參數(shù),指定該設(shè)備所對應(yīng)的接口并將其初始化。用戶完成對網(wǎng)絡(luò)的配置后,對網(wǎng)絡(luò)的邏輯正確性進行檢驗,包括IP地址格式是否正確,是否存在相同IP,網(wǎng)絡(luò)連接是否正確。如果配置不正確,則平臺將錯誤信息以對話框的形式反饋給用戶,以便用戶根據(jù)反饋信息對網(wǎng)絡(luò)重新配置,直到網(wǎng)絡(luò)配置正確為止。準備就緒后,平臺即按照預(yù)定義的程序開始工作,直到實驗結(jié)束。在此期間,用戶可以實時觀測網(wǎng)絡(luò)的狀態(tài),也可以暫停網(wǎng)絡(luò)運行來查看運行情況,之后再恢復(fù)網(wǎng)絡(luò)的運行,還可以直接中止網(wǎng)絡(luò)運行。
[0041]仿真過程結(jié)束后,平臺清理垃圾,關(guān)閉打開的接口和管道,釋放平臺所開辟的內(nèi)存空間,同時保存網(wǎng)絡(luò)拓撲圖。
[0042]綜上所述,本發(fā)明提出了一種基于路由協(xié)議的網(wǎng)絡(luò)運行仿真方法,不改變協(xié)議整體架構(gòu),自主構(gòu)建網(wǎng)絡(luò)和配置參數(shù),為網(wǎng)絡(luò)攻擊和防御的分析提供了良好的環(huán)境。
[0043]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該理解,上述的本發(fā)明的各單元或各步驟可以用通用的計算系統(tǒng)來實現(xiàn),它們可以集中在單個的計算系統(tǒng)上,或者分布在多個計算系統(tǒng)所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算系統(tǒng)可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲系統(tǒng)中由計算系統(tǒng)來執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0044]應(yīng)當理解的是,本發(fā)明的上述【具體實施方式】僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。
【主權(quán)項】
1.一種基于路由協(xié)議的網(wǎng)絡(luò)運行仿真方法,其特征在于,包括: 當網(wǎng)絡(luò)仿真運行平臺通過網(wǎng)絡(luò)接口捕捉到數(shù)據(jù)幀后,對協(xié)議頭進行分析,根據(jù)幀的類型字段進行判斷,如果所述數(shù)據(jù)幀是地址分析報文則由平臺直接進行響應(yīng),丟棄本機發(fā)送的地址分析報文,如果是IP報文,則交由虛擬網(wǎng)絡(luò)設(shè)備進行處理,處理完成的報文由平臺進行封裝和發(fā)送。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述由虛擬網(wǎng)絡(luò)設(shè)備進行處理,進一步包括: 在報文進入虛擬網(wǎng)絡(luò)的入口設(shè)置輸入路由器,定義平臺與輸入路由器間的緩存池,平臺將處理完的報文送入緩存池,報文在緩存池中以動態(tài)鏈表的方式存儲,如果緩存池已滿則丟棄新包;所述虛擬網(wǎng)絡(luò)設(shè)備處理報文的流程具體包括:輸入路由器從緩存池中讀取報文,首先對報文進行預(yù)處理,檢查包的長度和校驗碼,然后從報文中分析目的地址和數(shù)據(jù),最后根據(jù)路由表將數(shù)據(jù)發(fā)送給目標主機;主機處理完成后,在將報文發(fā)送到網(wǎng)關(guān)路由之前,還需要進行封裝,加載預(yù)定的特征,使其符合配置的操作系統(tǒng)特征,最后報文經(jīng)輸入路由器存入緩存池。 所述對協(xié)議頭進行分析,進一步包括: 對于分析操作,當網(wǎng)絡(luò)仿真運行平臺收到數(shù)據(jù)幀時,將包含的每層數(shù)據(jù)進行處理,通過多次解幀解包的操作,檢查報文頭部中的各個標志字符,確定接收數(shù)據(jù)的上層協(xié)議,最后將幀中的應(yīng)用層數(shù)據(jù)交付給應(yīng)用程序; 所述封裝操作進一步包括,當應(yīng)用層數(shù)據(jù)需要通過平臺發(fā)送時,將數(shù)據(jù)通過協(xié)議棧進行封裝,每次封裝都要在收到數(shù)據(jù)的基礎(chǔ)上增加幀頭信息,最后形成可以在以太網(wǎng)上傳輸?shù)臄?shù)據(jù)幀。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述網(wǎng)絡(luò)仿真運行平臺在運行后,首先對自身進行初始化;將平臺調(diào)整到就緒狀態(tài),等待用戶的操作;虛擬網(wǎng)絡(luò)設(shè)備提供的服務(wù)通過編寫腳本來實現(xiàn),通過腳本解釋器的初始化工作完成對腳本解釋器配置文件的讀取,獲得各類腳本解釋器所在的目錄,供執(zhí)行腳本時調(diào)用;分析特征庫文件,通過加載特征庫仿真多種操作系統(tǒng)和識別遠程訪問主機的操作系統(tǒng);加載預(yù)設(shè)的網(wǎng)絡(luò)設(shè)備特征模板,所述特征模板也可在構(gòu)建網(wǎng)絡(luò)運行過程中添加,供配置設(shè)備屬性時使用;打開日志文件,向文件中寫入數(shù)據(jù),該日志文件用于網(wǎng)絡(luò)行為的監(jiān)控和分析;初始化平臺與外部網(wǎng)絡(luò)的接口,用于報文的捕捉和轉(zhuǎn)送;為緩存池分配一定的內(nèi)存空間暫存收發(fā)的報文,用來虛擬網(wǎng)絡(luò)延遲;初始化數(shù)據(jù)量統(tǒng)計隊列,統(tǒng)計單位時間內(nèi)流經(jīng)平臺和虛擬網(wǎng)絡(luò)設(shè)備的報文流量,包括接收流量和發(fā)送流量;在初始化完成后,用戶選擇載入已經(jīng)建立的網(wǎng)絡(luò)或新建一個網(wǎng)絡(luò),完成對設(shè)備屬性的配置,設(shè)置相應(yīng)的參數(shù),指定該設(shè)備所對應(yīng)的接口并進行初始化,按預(yù)先設(shè)計的網(wǎng)絡(luò)拓撲連接各設(shè)備,對網(wǎng)絡(luò)的邏輯正確性進行檢驗,包括IP地址格式是否正確,是否存在相同IP,網(wǎng)絡(luò)連接是否正確,如果配置不正確,則將錯誤信息反饋給用戶使其重新配置,仿真過程結(jié)束后,平臺清理垃圾,關(guān)閉打開的接口和管道,釋放平臺所開辟的內(nèi)存空間,同時保存網(wǎng)絡(luò)拓撲圖。
【文檔編號】H04L12/46GK105871643SQ201610404722
【公開日】2016年8月17日
【申請日】2016年6月8日
【發(fā)明人】鄧志森, 熊志杰, 張大偉, 王彥灃, 鐘義偉, 趙靜, 張國芳, 馬莉
【申請人】成都萬緯信息技術(shù)有限公司, 國網(wǎng)四川省電力公司