一種在linux操作系統(tǒng)上實(shí)現(xiàn)路由節(jié)點(diǎn)模擬的方法
【專利摘要】本發(fā)明公開了一種在linux操作系統(tǒng)上實(shí)現(xiàn)路由節(jié)點(diǎn)模擬的方法。該方法包括,通過linux操作系統(tǒng)的一個(gè)進(jìn)程模擬一個(gè)基于vxworks操作系統(tǒng)開發(fā)的路由節(jié)點(diǎn),模擬節(jié)點(diǎn)完成系統(tǒng)初始化及配置管理、應(yīng)用層協(xié)議、TCP/IP協(xié)議棧和虛擬接口功能。本發(fā)明的有益技術(shù)效果是:自行設(shè)計(jì)實(shí)現(xiàn)路由節(jié)點(diǎn)的模擬,不需要購買仿真軟件,節(jié)省開銷;模擬節(jié)點(diǎn)的應(yīng)用層協(xié)議共用樣機(jī)的協(xié)議源碼重新編譯鏈接,不需要再進(jìn)行二次開發(fā),模擬的可信度更高。每個(gè)模擬節(jié)點(diǎn)都采用linux操作系統(tǒng)的進(jìn)程模擬運(yùn)行,采用真實(shí)的模擬時(shí)間可以檢查網(wǎng)絡(luò)的實(shí)時(shí)運(yùn)行。通過對(duì)虛擬接口的進(jìn)一步開發(fā),能夠?qū)崿F(xiàn)各種鏈路的模擬。一臺(tái)仿真機(jī)可以運(yùn)行多個(gè)進(jìn)程模擬多個(gè)路由節(jié)點(diǎn)。
【專利說明】一種在I inux操作系統(tǒng)上實(shí)現(xiàn)路由節(jié)點(diǎn)模擬的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種在linux操作系統(tǒng)上實(shí)現(xiàn)路由節(jié)點(diǎn)模擬的方法。
【背景技術(shù)】
[0002] 傳統(tǒng)的路由節(jié)點(diǎn)模擬都是采用仿真軟件實(shí)現(xiàn),仿真軟件只能從功能上進(jìn)行仿真, 無法檢測(cè)網(wǎng)絡(luò)的實(shí)時(shí)運(yùn)行;仿真軟件的鏈路模型都是仿真軟件提供的標(biāo)準(zhǔn)鏈路模型,不能 實(shí)現(xiàn)很多真實(shí)的鏈路類型模擬;仿真軟件不容易導(dǎo)入已經(jīng)開發(fā)好的協(xié)議源代碼,需要二次 開發(fā)。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明提供了一種在linux操作系統(tǒng)下實(shí)現(xiàn)路由節(jié)點(diǎn)模擬的方法,該方法包括: 采用linux操作系統(tǒng)的一個(gè)進(jìn)程模擬一個(gè)路由節(jié)點(diǎn),采用linux操作系統(tǒng)的一個(gè)線程模擬 路由節(jié)點(diǎn)的一個(gè)任務(wù)。一個(gè)進(jìn)程中實(shí)現(xiàn)路由節(jié)點(diǎn)的配置管理及初始化、應(yīng)用層協(xié)議、TCP/IP 協(xié)議棧和虛擬接口的模擬。
[0004] 將vxworks操作系統(tǒng)下實(shí)現(xiàn)的路由節(jié)點(diǎn)在linux操作系統(tǒng)的一個(gè)進(jìn)程中實(shí)現(xiàn),將 vxworks操作系統(tǒng)的一個(gè)任務(wù)采用linux操作系統(tǒng)的一個(gè)線程來模擬。
[0005] 模擬節(jié)點(diǎn)通過消息隊(duì)列接收配置信息,根據(jù)配置信息完成節(jié)點(diǎn)初始化,接收外部 的配置管理,包括IP地址的設(shè)置、刪除,路由協(xié)議的綁定和去綁定,接口的斷開與連接。
[0006] 模擬節(jié)點(diǎn)的應(yīng)用層協(xié)議包括路由協(xié)議(OSPF、RIP、EIGRP)、MPLS協(xié)議、SNMP協(xié)議, 這些協(xié)議直接使用vxworks操作系統(tǒng)樣機(jī)實(shí)現(xiàn)的應(yīng)用層協(xié)議,在linux操作系統(tǒng)下面重新 編譯和鏈接之后被模擬節(jié)點(diǎn)使用。
[0007] 通過對(duì)vxworks操作系統(tǒng)的TCP/IP協(xié)議進(jìn)行抽象和移植,實(shí)現(xiàn)其網(wǎng)絡(luò)域和路由域 的功能。協(xié)議棧采用虛擬接口注冊(cè)的輸出函數(shù)發(fā)送數(shù)據(jù),采用消息隊(duì)列從虛擬接口接收數(shù) 據(jù)。
[0008] 虛擬接口使用linux操作系統(tǒng)的套接字完成兩個(gè)虛擬接口的物理連接,套接字使 用的IP地址和UDP端口號(hào)來自于配置信息。每個(gè)虛擬接口啟動(dòng)一個(gè)任務(wù)接收對(duì)端虛擬接 口的數(shù)據(jù),完成數(shù)據(jù)鏈路層的處理,通過消息隊(duì)列發(fā)送給協(xié)議棧。每個(gè)虛擬接口提供一個(gè)輸 出函數(shù)供協(xié)議棧調(diào)用,輸出數(shù)據(jù)到對(duì)端的虛擬接口,在輸出函數(shù)中完成數(shù)據(jù)鏈路層的處理。
[0009] 連接終端的虛擬以太網(wǎng)接口通過抓包軟件抓包的方式將數(shù)據(jù)引導(dǎo)到仿真網(wǎng)絡(luò),抓 到的報(bào)文源IP地址和虛擬接口 IP地址在同一網(wǎng)段則為虛擬接口的報(bào)文。
[0010] 本發(fā)明的有益技術(shù)效果是:在linux操作系統(tǒng)上實(shí)現(xiàn)路由節(jié)點(diǎn)的模擬,不需要購 買仿真軟件,節(jié)省開銷;模擬節(jié)點(diǎn)的應(yīng)用層協(xié)議完全采用樣機(jī)的協(xié)議重新編譯鏈接,不需 要再進(jìn)行二次開發(fā),由于源代碼共用,使得網(wǎng)絡(luò)模擬的可信度更高。每個(gè)模擬節(jié)點(diǎn)都采用 linux操作系統(tǒng)的進(jìn)程模擬運(yùn)行,運(yùn)行的時(shí)間為真實(shí)的時(shí)間,能夠檢查網(wǎng)絡(luò)的實(shí)時(shí)運(yùn)行。通 過對(duì)虛擬接口的進(jìn)一步開發(fā),能夠?qū)崿F(xiàn)各種鏈路的模擬。一臺(tái)仿真機(jī)可以運(yùn)行多個(gè)進(jìn)程模 擬多個(gè)路由節(jié)點(diǎn)。
【專利附圖】
【附圖說明】
[0011] 圖1、網(wǎng)絡(luò)的分層模型。
[0012] 圖2、模擬節(jié)點(diǎn)的體系結(jié)構(gòu)。
[0013] 圖3、虛擬接口的模型。
【具體實(shí)施方式】
[0014] 為了在linux操作系統(tǒng)下面實(shí)現(xiàn)路由節(jié)點(diǎn)的模擬,需要處理以下四個(gè)方面的內(nèi) 容。
[0015] 系統(tǒng)初始化及配置管理模塊完成模擬節(jié)點(diǎn)各模塊的初始化和啟動(dòng)之后的配置管 理功能。通過消息隊(duì)列接收參數(shù)文件,調(diào)用各模塊的初始化函數(shù)完成系統(tǒng)的初始化,包括節(jié) 點(diǎn)的系統(tǒng)參數(shù)、接口參數(shù)及協(xié)議參數(shù)配置,啟動(dòng)后處理接收到的配置管理消息,包括接口的 連接、斷開,IP地址的修改,路由協(xié)議的綁定、去綁定等。
[0016] 模塊的具體步驟實(shí)施如下: 1.初始化對(duì)外接收配置管理的消息隊(duì)列,接收參數(shù)信息。
[0017] 2.初始化系統(tǒng)參數(shù)、接口參數(shù)和協(xié)議參數(shù)。
[0018] 3.協(xié)議棧初始化。
[0019] 4.虛擬接口初始化。
[0020] 5.等待接收配置管理消息。
[0021] 應(yīng)用層協(xié)議共用vxworks操作系統(tǒng)下的協(xié)議源碼,通過重新編譯和鏈接后被模擬 節(jié)點(diǎn)使用: 1.修改Makefile文件,編譯成linux操作系統(tǒng)可以使用的庫文件。
[0022] 2.將編譯的庫文件鏈接進(jìn)入可執(zhí)行文件。
[0023] 抽象移植vxworks操作系統(tǒng)的TCP/IP協(xié)議棧,具體的實(shí)施步驟如下: 1.實(shí)現(xiàn)vxworks操作系統(tǒng)協(xié)議棧的網(wǎng)絡(luò)域和路由域功能。
[0024] 2.移植協(xié)議棧的其它函數(shù)。
[0025] 3.啟動(dòng)一個(gè)線程,接收虛擬接口發(fā)送來的數(shù)據(jù),傳送給協(xié)議棧。
[0026] 虛擬接口通過套接字的方式實(shí)現(xiàn)物理層通信;啟動(dòng)一個(gè)線程接收對(duì)端虛擬接口的 數(shù)據(jù),處理之后通過消息隊(duì)列發(fā)送給協(xié)議棧;協(xié)議棧調(diào)用虛擬接口提供的輸出函數(shù)發(fā)送數(shù) 據(jù),輸出函數(shù)完成鏈路層處理。具體實(shí)施步驟如下: 1.根據(jù)配置信息形成虛擬接口表,注冊(cè)到協(xié)議棧。
[0027] 2.為每個(gè)虛擬接口創(chuàng)建一個(gè)線程,用于接收對(duì)端虛擬接口的數(shù)據(jù),完成數(shù)據(jù)鏈路 層處理,通過消息隊(duì)列發(fā)送給協(xié)議棧。
[0028] 3.提供發(fā)送函數(shù)給協(xié)議棧發(fā)送數(shù)據(jù),發(fā)送函數(shù)中完成數(shù)據(jù)鏈路層處理。
[0029] 4.采用套接字完成虛擬接口之間的物理通信,套接字使用的IP地址、UDP端口來 自于配置信息。
[0030] 5.虛擬以太網(wǎng)接口的數(shù)據(jù)采用抓包的方式進(jìn)入仿真網(wǎng)絡(luò)。
【權(quán)利要求】
1. 一種在linux操作系統(tǒng)實(shí)現(xiàn)路由節(jié)點(diǎn)模擬的方法,其特征在于:通過linux操作系 統(tǒng)的一個(gè)進(jìn)程模擬基于vxworks操作系統(tǒng)實(shí)現(xiàn)的一個(gè)路由節(jié)點(diǎn),模擬節(jié)點(diǎn)實(shí)現(xiàn)系統(tǒng)初始化 及配置管理、應(yīng)用層協(xié)議、TCP/IP協(xié)議棧和虛擬接口。
2. 根據(jù)權(quán)利要求1所述的路由節(jié)點(diǎn)模擬的實(shí)現(xiàn)方法,其特征在于: 1) 根據(jù)linux操作系統(tǒng)和vxworks操作系統(tǒng)的特性分析,采用linux操作系統(tǒng)的一個(gè) 進(jìn)程模擬一個(gè)路由節(jié)點(diǎn),采用linux操作系統(tǒng)的一個(gè)線程模擬vxworks操作系統(tǒng)的一個(gè)任 務(wù); 2) 模擬節(jié)點(diǎn)通過消息隊(duì)列接收配置信息,根據(jù)配置信息完成節(jié)點(diǎn)初始化; 3) 將應(yīng)用層協(xié)議不作改動(dòng),經(jīng)過重新編譯鏈接后被模擬節(jié)點(diǎn)使用; 4) 通過對(duì)vxworks操作系統(tǒng)TCP/IP的協(xié)議棧進(jìn)行抽象移植,在模擬節(jié)點(diǎn)實(shí)現(xiàn)其網(wǎng)絡(luò) 域和路由域,協(xié)議棧通過消息隊(duì)列從虛擬接口接收數(shù)據(jù),通過接口注冊(cè)的輸出函數(shù)發(fā)送數(shù) 據(jù); 5) 虛擬接口根據(jù)配置信息,采用套接字完成虛擬接口之間的物理連接,每個(gè)虛擬接口 啟動(dòng)一個(gè)任務(wù)接收對(duì)方虛擬接口的數(shù)據(jù),經(jīng)過數(shù)據(jù)鏈路層處理后,通過消息隊(duì)列發(fā)送給協(xié) 議棧,提供一個(gè)輸出函數(shù)給協(xié)議棧發(fā)送數(shù)據(jù); 6) 虛擬以太網(wǎng)口通過抓包軟件抓包的方式,將實(shí)際接口的數(shù)據(jù)發(fā)送到仿真網(wǎng)絡(luò)。
3. 根據(jù)權(quán)利要求2所述的路由節(jié)點(diǎn)模擬的實(shí)現(xiàn)方法,其特征在于:步驟1)中,linux操 作系統(tǒng)的一個(gè)進(jìn)程模擬采用vxworks操作系統(tǒng)開發(fā)的一個(gè)路由節(jié)點(diǎn),一臺(tái)仿真計(jì)算機(jī)可以 啟動(dòng)多個(gè)進(jìn)程模擬多個(gè)路由節(jié)點(diǎn)。
4. 根據(jù)權(quán)利要求2所述的路由節(jié)點(diǎn)模擬的實(shí)現(xiàn)方法,其特征在于:步驟4)中,將 vxworks操作系統(tǒng)的協(xié)議棧進(jìn)行抽象,移植到linux操作系統(tǒng)的一個(gè)進(jìn)程內(nèi),實(shí)現(xiàn)模擬節(jié)點(diǎn) 協(xié)議棧的網(wǎng)絡(luò)域和路由域。
5. 根據(jù)權(quán)利要求2所述的路由節(jié)點(diǎn)模擬的實(shí)現(xiàn)方法,其特征在于:步驟5)中,虛擬接 口之間采用套接字的方式完成物理通信,虛擬接口通過消息隊(duì)列往協(xié)議棧發(fā)送數(shù)據(jù),協(xié)議 棧通過虛擬接口注冊(cè)的輸出函數(shù)發(fā)送數(shù)據(jù)。
6. 根據(jù)權(quán)利要求2所述的模擬路由節(jié)點(diǎn)的實(shí)現(xiàn)方法,其特征在于:步驟6)中,連接計(jì) 算機(jī)終端的虛擬以太網(wǎng)接口通過抓包軟件抓包的方式將報(bào)文發(fā)送到仿真網(wǎng)絡(luò),抓到報(bào)文的 源IP地址與虛擬接口的IP地址比較,同一網(wǎng)段為虛擬以太網(wǎng)接口的數(shù)據(jù),允許進(jìn)入仿真網(wǎng) 絡(luò)。
【文檔編號(hào)】H04L12/701GK104092570SQ201410320160
【公開日】2014年10月8日 申請(qǐng)日期:2014年7月8日 優(yōu)先權(quán)日:2014年7月8日
【發(fā)明者】蔣元兵, 雷文虎, 袁星勇, 羅文 , 陳量 申請(qǐng)人:重慶金美通信有限責(zé)任公司