姜恩華
(淮北師范大學(xué)物理與電子信息學(xué)院,安徽淮北 235000)
“無線網(wǎng)絡(luò)技術(shù)”課程是計(jì)算機(jī)應(yīng)用、通信工程和網(wǎng)絡(luò)工程等專業(yè)的一門重要的專業(yè)課程,無線自組織網(wǎng)絡(luò)路由協(xié)議是該課程的重要內(nèi)容。涉及的路由協(xié)議主要包括:目的節(jié)點(diǎn)序列號距離矢量路由協(xié)議(DSDV)、按需距離矢量路由協(xié)議(AODV)和源動(dòng)態(tài)路由協(xié)議(DSR)等[1]。
為了讓學(xué)生正確掌握無線自組織網(wǎng)絡(luò)路由協(xié)議中的概念,我們把NS2和NSG2軟件引入到無線自組織網(wǎng)絡(luò)路由協(xié)議的教學(xué)中,在Windows XP環(huán)境下,搭建了輔助無線自組織網(wǎng)絡(luò)路由協(xié)議教學(xué)的平臺(tái)。本文詳細(xì)論述了借助此平臺(tái)如何進(jìn)行輔助教學(xué),以NAM動(dòng)畫演示了路由協(xié)議的動(dòng)態(tài)運(yùn)行過程,并分析了路由協(xié)議的效果。此舉有利于學(xué)生掌握和理解無線自組織網(wǎng)絡(luò)路由協(xié)議概念。
NS2網(wǎng)絡(luò)仿真軟件由美國DARPA支持的項(xiàng)目VINT開發(fā),由事件調(diào)度器、網(wǎng)絡(luò)組件和TCLCL機(jī)制等部分組成,在OTCL類中提供C++對象面向用戶的配置接口,通過TCL程序建立網(wǎng)絡(luò)運(yùn)行場景和參數(shù)配置,通過NS2仿真實(shí)現(xiàn)對網(wǎng)絡(luò)協(xié)議的分析。
目前由于多媒體教室中的計(jì)算機(jī)主要采用Windows XP操作系統(tǒng),但是 NS2不能在Windows XP環(huán)境下直接安裝,需要在Windows XP環(huán)境下安裝Cygwin軟件,模擬一個(gè)UNIX環(huán)境。然后安裝NS2-Allinone-2.29 軟件[2],該軟件實(shí)現(xiàn)了 DSDV、DSR和AODV等無線自組織網(wǎng)絡(luò)路由協(xié)議[3]。
NSG2軟件支持無線網(wǎng)絡(luò)節(jié)點(diǎn),支持TCP、UDP和NULL代理,支持CBR和FTP應(yīng)用,支持無線自組織網(wǎng)絡(luò)路由協(xié)議DSDV、DSR和AODV,支持802.11參數(shù)設(shè)置,采用NSG2網(wǎng)絡(luò)腳本生成器可以生成DSDV、DSR和AODV路由協(xié)議仿真的TCL腳本文件。但由于NSG2是在JDK環(huán)境下使用,所以需要在Windows XP平臺(tái)下安裝jdk-7-windows-i586.exe軟件以建立JDK環(huán)境。
通過NS2對DSDV、DSR和AODV路由協(xié)議仿真,生成nam文件和trace文件,nam文件供nam.exe播放器調(diào)用,以NAM動(dòng)畫演示路由協(xié)議的動(dòng)態(tài)運(yùn)行過程,編寫AWK程序?qū)race文件中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。文件主要統(tǒng)計(jì)發(fā)送和接收的封包個(gè)數(shù),端到端的延時(shí),第一個(gè)封包的接收時(shí)間等數(shù)據(jù),借助該數(shù)據(jù)分析DSDV、DSR和AODV路由協(xié)議的效果。
首先采用NSG2軟件生成DSDV、DSR和AODV路由協(xié)議仿真的TCL腳本文件,啟動(dòng)NSG2軟件,點(diǎn)擊 scenario建立 wireless scenario文件。在 Node mode下,設(shè)置拓?fù)浣Y(jié)構(gòu)中需要的節(jié)點(diǎn)數(shù),對于移動(dòng)節(jié)點(diǎn)需要設(shè)置移動(dòng)開始時(shí)間、停止位置和移動(dòng)速度;在Agent mode下,設(shè)置代理,可以選擇代理類型和封包大小,要在UDP代理和NULL代理之間建立一條聯(lián)機(jī);在Application mode下,設(shè)置FTP和CBR,需要設(shè)置起始時(shí)間、停止時(shí)間、包大小和速率等;在Parameters模式下,設(shè)置模擬參數(shù),需要設(shè)置仿真時(shí)間、Trace File和 Nam File文件名,進(jìn)入 Wireless頁面選擇路由協(xié)議DSDV、DSR和AODV,進(jìn)入Channel頁面參數(shù)使用NSG2的默認(rèn)值;最后點(diǎn)擊TCL按鈕,產(chǎn)生TCL腳本文件,并保存TCL腳本文件,供NS2仿真使用。
其次啟動(dòng) Cygwin bash shell,并輸入 startxwin.bat進(jìn)入X窗口,運(yùn)行NS2對DSDV、DSR和AODV路由協(xié)議仿真,產(chǎn)生trace文件和nam文件。
最后在X窗口下通過nam.exe對nam文件進(jìn)行播放演示路由協(xié)議的動(dòng)態(tài)運(yùn)行過程,通過AWK程序統(tǒng)計(jì)trace文件中記錄的發(fā)送和接收的封包個(gè)數(shù)、端到端的延時(shí)和第一個(gè)包的接收時(shí)間等數(shù)據(jù),分析DSDV、DSR和AODV路由協(xié)議的效果[4]。
我們根據(jù)無線自組織網(wǎng)絡(luò)路由協(xié)議的概念和運(yùn)行機(jī)制,設(shè)計(jì)路由協(xié)議運(yùn)行的網(wǎng)絡(luò)場景,對路由協(xié)議DSDV、DSR和AODV進(jìn)行仿真,其網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。此結(jié)構(gòu)由4個(gè)節(jié)點(diǎn)(n0、n1、n2、和n3)組成,節(jié)點(diǎn)的坐標(biāo)會(huì)影響到電磁波的傳輸范圍、信號強(qiáng)度和路由協(xié)議。各節(jié)點(diǎn)坐標(biāo)如下:節(jié)點(diǎn)n0處于坐標(biāo)(583,484),節(jié)點(diǎn) n1 處于坐標(biāo)(783,484),節(jié)點(diǎn) n2處于坐標(biāo)(468,417),節(jié)點(diǎn) n3 處于坐標(biāo)(868,559)。節(jié)點(diǎn)n2作為數(shù)據(jù)源發(fā)送端,在節(jié)點(diǎn)n2上綁定一個(gè)udp0代理,在udp0代理上綁定一個(gè)流量發(fā)生器cbr0。流量發(fā)生器cbr0速率設(shè)置為0.5MB,節(jié)點(diǎn)n3作為接收端,在節(jié)點(diǎn)n3上綁定一個(gè)null1代理,仿真時(shí)間為100秒。節(jié)點(diǎn)n0、n1和n3處于靜止?fàn)顟B(tài)。節(jié)點(diǎn)n2可以處于靜止?fàn)顟B(tài),也可以處于移動(dòng)狀態(tài)。當(dāng)節(jié)點(diǎn)n2處于移動(dòng)狀態(tài)時(shí),采取從第1秒開始以每秒10米速度從坐標(biāo)(468,417)向右平移,到50秒時(shí)開始以每秒10米速度向左平移返回坐標(biāo)(468,417)。
圖1 路由協(xié)議仿真的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
對DSR路由協(xié)議仿真時(shí),interface queue type采用CMUPriQueue。對AODV和DSDV路由協(xié)議仿真時(shí),interface queue type可用Queue/DropTail/PriQueue。
1)AODV和DSR路由協(xié)議仿真
AODV是采用基于距離矢量算法的一種路由協(xié)議,DSR是基于源路由方式的按需路由協(xié)議,AODV和DSR由路由發(fā)現(xiàn)和路由維護(hù)兩個(gè)協(xié)議過程組成。當(dāng)源節(jié)點(diǎn)要發(fā)送一個(gè)數(shù)據(jù)包給目的節(jié)點(diǎn)時(shí),如果不知道到達(dá)該節(jié)點(diǎn)的路由,路由發(fā)現(xiàn)過程廣播一個(gè)路由請求消息給鄰節(jié)點(diǎn)并等待路由應(yīng)答消息,應(yīng)答消息以單播形式發(fā)送給源節(jié)點(diǎn)。當(dāng)源節(jié)點(diǎn)檢測到鄰節(jié)點(diǎn)路由失效時(shí),路由維護(hù)過程啟動(dòng)路由發(fā)現(xiàn)過程重新找到一條路由繼續(xù)傳送數(shù)據(jù)[5]。
以AODV路由協(xié)議仿真為例,按照圖1的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)搭建網(wǎng)絡(luò)仿真場景,當(dāng)源節(jié)點(diǎn)n2處于靜止?fàn)顟B(tài)時(shí),路由發(fā)現(xiàn)過程找到的從源節(jié)點(diǎn)n2到達(dá)目的節(jié)點(diǎn)n3的路由如圖2所示;當(dāng)源節(jié)點(diǎn)n2移動(dòng)時(shí),源節(jié)點(diǎn)n2開始向右平移時(shí),路由發(fā)現(xiàn)過程找到的從源節(jié)點(diǎn)n2到達(dá)目的節(jié)點(diǎn)n3的路由。此路由與圖2所示的路由相同。當(dāng)節(jié)點(diǎn)n2平移一定距離后,原來路由失效,路由維護(hù)過程啟動(dòng)路由發(fā)現(xiàn)過程重新找到從源節(jié)點(diǎn)n2到達(dá)目的節(jié)點(diǎn)n3的路由如圖3所示。
圖2開始找到的從n2到n3
圖3重新找到的從n2到達(dá)n3
2)DSDV路由協(xié)議仿真
DSDV路由協(xié)議是基于Bellman-ford算法的主動(dòng)路由協(xié)議。每個(gè)節(jié)點(diǎn)維護(hù)一個(gè)或多個(gè)路由表,每個(gè)節(jié)點(diǎn)定期向網(wǎng)絡(luò)廣播拓?fù)湫畔?,維護(hù)一致的最新的網(wǎng)絡(luò)視圖。對DSDV協(xié)議的仿真,按照圖1的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)搭建網(wǎng)絡(luò)仿真場景,當(dāng)源節(jié)點(diǎn)n2處于靜止?fàn)顟B(tài)時(shí),網(wǎng)絡(luò)中節(jié)點(diǎn)通過發(fā)出廣播信息,更新路由表,在36秒時(shí)找到從源節(jié)點(diǎn)n2到達(dá)目的節(jié)點(diǎn)n3的路由,此路由與圖2所示的路由相同;當(dāng)節(jié)點(diǎn)n2向右平移時(shí),在24秒時(shí)能找到節(jié)點(diǎn)n2到節(jié)點(diǎn)n3的路由,此路由與圖3所示的路由相同。
對DSDV協(xié)議的仿真也可以采用有線網(wǎng)絡(luò)和無線自組織網(wǎng)絡(luò)組成的混合網(wǎng)絡(luò)結(jié)構(gòu),有線網(wǎng)絡(luò)通過基站節(jié)點(diǎn)與自組織網(wǎng)絡(luò)形成一個(gè)混合網(wǎng)絡(luò)實(shí)現(xiàn)對DSDV協(xié)議的仿真。
采用圖1所示的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),通過AWK程序?qū)race文件中數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。這里主要統(tǒng)計(jì)第一個(gè)數(shù)據(jù)包收到時(shí)間、端到端延時(shí)、發(fā)送包數(shù)、接收包數(shù)和包傳輸率等。當(dāng)節(jié)點(diǎn)n2移動(dòng)時(shí)統(tǒng)計(jì)到的數(shù)據(jù)如表1所示,當(dāng)節(jié)點(diǎn)n2靜止時(shí)統(tǒng)計(jì)到的數(shù)據(jù)如表2所示。
表1 節(jié)點(diǎn)n2移動(dòng)時(shí)統(tǒng)計(jì)到的數(shù)據(jù)
表2 節(jié)點(diǎn)n2靜止時(shí)統(tǒng)計(jì)到的數(shù)據(jù)
表1和表2可以看出,若節(jié)點(diǎn)n2移動(dòng)時(shí),AODV和DSR路由協(xié)議收到第一個(gè)數(shù)據(jù)包時(shí)間比DSDV路由協(xié)議短的多;若節(jié)點(diǎn)n2靜止時(shí),DSDV路由協(xié)議端到端延時(shí)最短。所以AODV和DSR路由協(xié)議適合用于節(jié)點(diǎn)快速移動(dòng)的網(wǎng)絡(luò)場景,DSDV路由協(xié)議適合用于節(jié)點(diǎn)靜止的網(wǎng)絡(luò)場景。
本文在NS2和NSG2軟件的基礎(chǔ)上,搭建了輔助無線自組織網(wǎng)絡(luò)路由協(xié)議教學(xué)的軟件平臺(tái),研究了DSDV、DSR和AODV路由協(xié)議。通過NSG2生成DSDV、DSR和AODV路由協(xié)議仿真的TCL腳本文件,通過NS2軟件仿真生成nam文件和trace文件,通過NAM動(dòng)畫演示路由協(xié)議的動(dòng)態(tài)運(yùn)行過程,通過AWK程序?qū)race文件中數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。本文分析了DSDV、DSR和AODV路由協(xié)議的效果,達(dá)到利用NS2和NSG2輔助無線自組織網(wǎng)絡(luò)路由協(xié)議教學(xué)的目的,收到了良好的教學(xué)效果。
[1]汪濤.無線網(wǎng)絡(luò)技術(shù)導(dǎo)論[M].北京:清華大學(xué)出版社,2009
[2]ns-allinone-2.29[EB/OL].http://sourceforge.net/projects/nsnam/files/allinone/,2006
[3]The ns Manual[EB/OL].http://www.isi.edu/nsnam/ns/nsdocumentation.html,2010
[4]柯志享,程榮祥,鄧德雋.ns2仿真試驗(yàn)--多媒體和無線網(wǎng)絡(luò)通信EB/OL[M].北京:電子工業(yè)出版社,2009
[5]安輝耀,王新安,李揮等.移動(dòng)自組網(wǎng)中的先進(jìn)路由算法與路由協(xié)議[M].北京:科學(xué)出版社,2009