姜恩華, 竇德召(淮北師范大學 物理與電子信息學院,安徽 淮北 235000)
借助NS2和NSG2軟件完成移動Ad hoc網(wǎng)絡路由協(xié)議DSDV、DSR和AODV[1]的仿真實驗設計,仿真實驗操作過程簡單、直觀和方便,不但能夠降低實驗成本,幫助學生掌握和理解移動Ad hoc網(wǎng)絡路由協(xié)議的原理和概念,而且能夠培養(yǎng)學生從事無線網(wǎng)絡路由協(xié)議研究的興趣。
NS2網(wǎng)絡仿真軟件主要由事件調度器、網(wǎng)絡組件和TCLCL機制等部分組成,可以在windows xp環(huán)境下通過安裝Cygwin軟件,模擬一個unix環(huán)境,借助這個unix環(huán)境安裝NS2-allinone-2.29軟件[2],NS2-2.29仿真軟件實現(xiàn)了DSDV、DSR和AODV等移動Ad hoc網(wǎng)絡路由協(xié)議[3]。
NSG2是采用JAVA開發(fā)的一個圖形化的網(wǎng)絡腳本生成器,能夠根據(jù)建立的網(wǎng)絡拓撲結構,生成TCL腳本文件,運行NSG2需要在windows xp環(huán)境下安裝jdk-7-windows-i586.exe軟件建立JDK環(huán)境,NSG2支持TCP、UDP和NULL代理,支持CBR和FTP應用,支持移動Ad hoc網(wǎng)絡路由協(xié)議DSDV、DSR和AODV,采用NSG2網(wǎng)絡腳本生成器可以搭建DSDV、DSR和AODV路由協(xié)議仿真實驗的網(wǎng)絡場景并生成TCL腳本文件,供NS2仿真使用。
通過NS2仿真實驗,生成nam文件和trace文件,nam文件供nam.exe調用,以NAM動畫演示路由協(xié)議的運行過程, 編寫AWK程序對trace文件中的數(shù)據(jù)進行統(tǒng)計,本仿真實驗主要統(tǒng)計發(fā)送和接收的封包個數(shù)、端到端的延時和第一個包的接收時間等數(shù)據(jù),借助這些數(shù)據(jù)分析DSDV、DSR和AODV路由協(xié)議的效果[4]。采用NS2和NSG2進行移動Ad hoc網(wǎng)絡路由協(xié)議仿真實驗過程步驟如下:
1)采用NSG2搭建路由協(xié)議DSDV、DSR和AODV的網(wǎng)絡仿真場景并生成TCL文件。
2)通過TCL文件進行NS2仿真實驗,生成nam文件和trace文件。
3)通過NAM動畫觀察實驗現(xiàn)象和通過實驗數(shù)據(jù)分析路由協(xié)議效果。
4)如果實驗現(xiàn)象不明顯,可以修改網(wǎng)絡仿真場景,即重復1)~3)步驟。
在NSG2軟件下配置移動Ad hoc網(wǎng)絡路由協(xié)議DSDV、DSR和AODV仿真實驗的網(wǎng)絡場景并生成TCL腳本文件;在NS2環(huán)境對TCL腳本文件仿真并以NAM動畫演示路由協(xié)議DSDV、DSR和AODV的動態(tài)運行過程;分析路由協(xié)議DSDV、DSR和AODV的效果;幫助學生掌握和理解移動Ad hoc網(wǎng)絡路由協(xié)議DSDV、DSR和AODV的概念和原理。
根據(jù)移動Ad hoc網(wǎng)絡路由協(xié)議DSDV、DSR和AODV的原理和概念設計路由協(xié)議仿真實驗的網(wǎng)絡拓撲結構[5],此網(wǎng)絡結構一方面要能完全演示路由協(xié)議DSDV、DSR和AODV動態(tài)運行過程,另一方面網(wǎng)絡結構不能太復雜以節(jié)約仿真實驗時間,根據(jù)DSDV、DSR和AODV路由協(xié)議的原理與要求,充分考慮到仿真實驗過程可能出現(xiàn)的問題,采用如圖1所示的網(wǎng)絡拓撲結構,各節(jié)點位置坐標如下:源節(jié)點n3處于坐標(400,464),目的節(jié)點n4處于坐標(753,604),節(jié)點n0處于坐標(441,543),節(jié)點n1處于坐標(542,545),節(jié)點n2處于坐標(788,549),源節(jié)點n3連接udp1代理,udp1代理連接流量發(fā)生器cbr1,目的節(jié)點n4連接null1代理,假設源節(jié)點n3以每秒10米的速度向右平移,節(jié)點n0、n1、n2和n4都處于靜止狀態(tài),仿真實驗時間為40s.
圖1 移動Ad hoc網(wǎng)絡路由協(xié)議仿真實驗的網(wǎng)絡場景
仿真實驗的內容主要包括:熟悉DSDV路由協(xié)議維護和更新路由表的過程,熟悉AODV和DSR協(xié)議的路由發(fā)現(xiàn)和路由維護過程;通過NAM動畫觀察節(jié)點n3移動時,節(jié)點n3到節(jié)點n4的路由的變化;通過統(tǒng)計trace 文件中的數(shù)據(jù),分析路由協(xié)議DSDV、DSR和AODV的效果。
仿真實驗操作步驟主要包括:
1)按照圖1所示網(wǎng)絡拓撲結構在NSG2軟件的節(jié)點Node模式下建立網(wǎng)絡仿真場景,節(jié)點n3設置為移動節(jié)點,以每秒10米的速度向右平移,節(jié)點n0、n1、n2和n4為靜止節(jié)點。
2)在代理Agent 模式下對節(jié)點3添加udp1代理,對節(jié)點4添加null1代理,連接udp1和null1.
3)在應用Application下對代理udp1添加流量發(fā)生器cbr1,設置起止時間、數(shù)據(jù)包速率等。
4)在參數(shù)Parameters模式下,在仿真Simulation屬性頁設置仿真時間、trace 文件名和nam 文件名,在無線Wireless屬性頁選擇路由協(xié)議DSDV、DSR或AODV并保存。
5)在TCL模式下,生成的TCL腳本文件并保存。
6)在Cygwin的繪圖窗口下,進行NS2仿真,生成trace file和nam file.
7)通過NAM動畫觀察實驗現(xiàn)象和通過實驗數(shù)據(jù)分析路由協(xié)議DSDV、DSR和AODV的效果。
按照圖1所示的網(wǎng)絡拓撲結構在NSG2軟件環(huán)境下建立網(wǎng)絡仿真場景,由于在參數(shù)Parameters模式下的無線Wireless屬性頁可以選擇路由協(xié)議DSDV或DSR或AODV,需要對每一個路由協(xié)議生成一個TCL腳本文件,通過NS2執(zhí)行TCL腳本文件得到trace 文件和nam 文件,通過NAM.exe執(zhí)行nam 文件演示DSDV、DSR和AODV的動態(tài)運行過程,仿真實驗操作過程如下。
對DSDV路由協(xié)議仿真實驗,按照實驗步驟利用NSG2軟件生成DSDV路由協(xié)議仿真的TCL腳本文件,通過NS2執(zhí)行TCL腳本文件生成trace 文件和nam 文件,通過NAM動畫演示DSDV路由協(xié)議的動態(tài)運行過程,主要觀察網(wǎng)絡中各個節(jié)點發(fā)出廣播包,隨著節(jié)點n3移動,節(jié)點n3到達節(jié)點n4的路由是否發(fā)生變化?通過NAM動畫演示可以觀察到仿真開始時網(wǎng)絡各節(jié)點發(fā)送廣播包,隨著路由表的更新,找到節(jié)點n3到達節(jié)點n4的路由如圖2所示,當節(jié)點n3繼續(xù)移動時,隨著路由表的更新,找到節(jié)點n3到達節(jié)點n4的路由如圖3所示。
圖2 開始找到從n3到達n4的路由 圖3 重新找到從n3到達n4的路由
通過觀察實驗現(xiàn)象,發(fā)現(xiàn)DSDV路由協(xié)議在源節(jié)點n3移動24秒時,才找到從n3經(jīng)過n2到達n4路由,隨著路由表的更新,節(jié)點n3到達節(jié)點n4路由會發(fā)生變化。
對DSR或AODV路由協(xié)議仿真實驗,觀察路由發(fā)現(xiàn)和路由維護過程,以DSR路由協(xié)議仿真實驗為例,按照實驗步驟利用NSG2軟件生成DSR路由協(xié)議仿真的TCL腳本文件,通過NS2執(zhí)行TCL腳本文件得到trace file和nam file,通過NAM動畫動態(tài)演示DSR路由協(xié)議的運行過程,主要觀察路由發(fā)現(xiàn)和路由維護過程,隨著節(jié)點n3移動,節(jié)點n3到達節(jié)點n4的路由是否發(fā)生變化?通過NAM動畫演示可以觀察到仿真開始時通過路由發(fā)現(xiàn)過程找到節(jié)點n3經(jīng)過n1到達n4的路由如圖4所示,當節(jié)點n3移動到節(jié)點n1的右下方時,節(jié)點n3和n4不能再經(jīng)過n1傳送數(shù)據(jù),路由中斷,這時路由維護過程啟動路由發(fā)現(xiàn)過程,重新尋找新的路由,重新找到節(jié)點n3到達n4的路由如圖5所示,AODV路由協(xié)議的仿真實驗觀察到的現(xiàn)象和DSR路由協(xié)議類似。
圖4 開始找到從n3到達n4的路由 圖5 重新找到從n3到達n4的路由
通過觀察實驗現(xiàn)象,發(fā)現(xiàn)DSR和AODV路由協(xié)議在源節(jié)點n3移動開始時,就能通過路由發(fā)現(xiàn)過程找到合適的路由,如果此路由被斷開,路由維護過程能夠啟動路由發(fā)現(xiàn)過程重新找到新的路由。
通過編寫AWK程序對trace文件中的數(shù)據(jù)進行統(tǒng)計,trace文件主要記錄發(fā)送、接收、丟棄和轉發(fā)的數(shù)據(jù)包的信息[6],本實驗主要統(tǒng)計數(shù)據(jù)包送達的比率,端到端的延時和第一個包的接收時間,借助仿真實驗數(shù)據(jù)分析DSDV、DSR和AODV路由協(xié)議的效果。
流量發(fā)生器cbr1速率設置為1MB、2MB和3MB,DSR路由協(xié)議仿真實驗時,interface queue type采用CMUPriQueue,DSDV和AODV路由協(xié)議仿真實驗時,interface queue type采用Queue/DropTail/PriQueue,統(tǒng)計到的實驗數(shù)據(jù)如表1所示。
表1 仿真實驗數(shù)據(jù)統(tǒng)計表
從仿真實驗數(shù)據(jù)統(tǒng)計可以看出,當cbr1速率增大時,每個路由協(xié)議的數(shù)據(jù)包送達的比率減少,端到端的平均延時增加,第一個數(shù)據(jù)包的接收時間不變;當cbr1速率恒定時,使用DSDV路由協(xié)議收到第一個包的接收時間較長,數(shù)據(jù)包送達的比率較低,使用DSR和AODV路由協(xié)議收到第一個包的接收時間較短,數(shù)據(jù)包送達的比率較高??梢奃SDV路由協(xié)議不適合網(wǎng)絡拓撲結構動態(tài)變化的網(wǎng)絡場景,DSR和AODV路由協(xié)議適合網(wǎng)絡拓撲結構動態(tài)變化的網(wǎng)絡場景。
借助NS2和NSG2軟件完成了移動Ad hoc網(wǎng)絡路由協(xié)議DSDV、DSR和AODV的仿真實驗設計。通過NSG2軟件產生供NS2仿真使用的TCL腳本文件。通過NAM動畫觀察實驗現(xiàn)象,通過trace 文件統(tǒng)計的實驗數(shù)據(jù)包括:數(shù)據(jù)包送達的比率、端到端的平均延時和第一個包的接收時間,借助實驗數(shù)據(jù)分析DSDV、DSR和AODV路由協(xié)議的效果。通過仿真實驗,幫助學生掌握和理解移動Ad hoc網(wǎng)絡路由協(xié)議的原理和概念,培養(yǎng)學生從事無線網(wǎng)絡路由協(xié)議研究的興趣。
[1]汪 濤.無線網(wǎng)絡技術導論[M].北京:清華大學出版社,2009.
[2]ns-allinone-2.29[EB/OL]. http://sourceforge.net/projects/nsnam/files/allinone/,2006—11—20.
[3]The ns Manual[EB/OL]. http://www.isi.edu/nsnam/ns/ns-documentation.html,2010—08—21.
[4]柯志享,程榮祥,鄧德雋. NS2仿真試驗——多媒體和無線網(wǎng)絡通信[M].北京:電子工業(yè)出版社,2009.
[5]安輝耀,王新安,李 揮.移動自組網(wǎng)中的先進路由算法與路由協(xié)議[M].北京:科學出版社,2009.
[6]NS-2 Trace Formats[EB/OL]. http://nsnam.isi.edu/nsnam/index.php/NS-2_Trace_Formats,2010—08—18.