程 立 張浩軍 王 珂
摘要:在計算機網(wǎng)絡(luò)實驗教學(xué)中,通過NS2構(gòu)建網(wǎng)絡(luò)仿真環(huán)境。能有效地緩解高校網(wǎng)絡(luò)實驗室建設(shè)的壓力,創(chuàng)新實驗教學(xué)方法和手段。本文給出了一個傳輸層控制網(wǎng)絡(luò)教學(xué)實例,闡述了如何利用仿真技術(shù)分析網(wǎng)絡(luò)傳輸協(xié)議工作原理和性能。結(jié)果表明,引入網(wǎng)絡(luò)仿真技術(shù)實現(xiàn)網(wǎng)絡(luò)實驗,能夠有效提高教學(xué)效果,有利于學(xué)生創(chuàng)新能力和實踐能力培養(yǎng)。
關(guān)鍵詞:網(wǎng)絡(luò)仿真;NS2;計算機網(wǎng)絡(luò)課程
計算機網(wǎng)絡(luò)課程在計算機專業(yè)的教學(xué)體系中占有重要地位,并逐步被引入到其他相關(guān)專業(yè)的教學(xué)體系中。計算機網(wǎng)絡(luò)課程具有很強的應(yīng)用性和實踐性,實驗教學(xué)是學(xué)生學(xué)習(xí)課程、深入認識和了解網(wǎng)絡(luò)體系結(jié)構(gòu)的關(guān)鍵環(huán)節(jié)。
由于網(wǎng)絡(luò)技術(shù)發(fā)展快,產(chǎn)品更新快,網(wǎng)絡(luò)實驗綜合性強,實驗室建設(shè)軟硬件投入大,因此,大部分院校很難建設(shè)滿足復(fù)雜需求的網(wǎng)絡(luò)實驗教學(xué)環(huán)境,直接影響了網(wǎng)絡(luò)課程的教學(xué)質(zhì)量和教學(xué)效果。將網(wǎng)絡(luò)仿真技術(shù)應(yīng)用于計算機網(wǎng)絡(luò)課程的實驗教學(xué),是解決上述問題的一種有效途徑。
1網(wǎng)絡(luò)仿真平臺NS2
網(wǎng)絡(luò)仿真技術(shù)是利用相關(guān)的軟件,構(gòu)造網(wǎng)絡(luò)拓撲結(jié)構(gòu),模擬網(wǎng)絡(luò)協(xié)議的工作過程,設(shè)定網(wǎng)絡(luò)特征參數(shù)對網(wǎng)絡(luò)性能進行分析和評測的網(wǎng)絡(luò)虛擬技術(shù)。目前應(yīng)用最為廣泛的網(wǎng)絡(luò)仿真軟件是NS2(Network Simulator Ver-slon 2),它是一個開源的免費軟件,易于擴展,在學(xué)術(shù)界廣泛使用。
NS2是一個面向?qū)ο蟮摹㈦x散事件驅(qū)動的網(wǎng)絡(luò)環(huán)境模擬器,它提供了在無線或有線網(wǎng)絡(luò)上的TCP、路由、多播等多種協(xié)議的模擬。NS2使用一整套C++類庫,實現(xiàn)了絕大多數(shù)常見的網(wǎng)絡(luò)協(xié)議以及鏈路層的模型。利用這些類的實例,搭建網(wǎng)絡(luò)實驗的模型,可以在單機環(huán)境中模擬網(wǎng)絡(luò)的各個元素,驗證網(wǎng)絡(luò)協(xié)議工作原理,自行設(shè)計研究新的網(wǎng)絡(luò)結(jié)構(gòu)與協(xié)議。
NS2構(gòu)建網(wǎng)絡(luò)教學(xué)環(huán)境的優(yōu)勢:
(1)實驗室建設(shè)投入少。基于仿真軟件,使用者完全可以在單機環(huán)境中模擬復(fù)雜網(wǎng)絡(luò)的各個元素:學(xué)校建設(shè)和維護實驗室時,可基于原有的網(wǎng)絡(luò)設(shè)備,只需極少的資金投入就能為大量的學(xué)生提供實用的網(wǎng)絡(luò)設(shè)計與操作環(huán)境,并且建好的網(wǎng)絡(luò)模型可以延續(xù)使用,極大地緩解網(wǎng)絡(luò)實驗設(shè)備不足等問題。
(2)實驗結(jié)果演示直觀。Nam和Xg raph是NS2自帶的動畫顯示工具與靜態(tài)數(shù)據(jù)分析工具,Nam可以將網(wǎng)絡(luò)拓撲結(jié)構(gòu)和仿真腳本的運行過程以動畫的形式生動、形象地顯示出來,Xgraph則通過平面坐標(biāo)圖的形式顯示運行時獲取的數(shù)據(jù)。這為學(xué)生全面、生動地理解抽象的網(wǎng)絡(luò)協(xié)議和原理提供了可能,這也是引入NS2改革實驗教學(xué)的主要目的。
(3)仿真結(jié)果可再現(xiàn)并容易分析。通過配置環(huán)境參數(shù)可以獲得“理想”的網(wǎng)絡(luò)環(huán)境,可以實時跟蹤并記錄關(guān)鍵節(jié)點的重要信息,從而獲得關(guān)于網(wǎng)絡(luò)性能評價的第一手資料。可隨時再現(xiàn)實驗者關(guān)心的運行中間環(huán)節(jié),這在真實的網(wǎng)絡(luò)中是難以做到的。
2基于NS2實現(xiàn)計算機網(wǎng)絡(luò)實驗教學(xué)的實例
NS2可以演示計算機網(wǎng)絡(luò)中大多數(shù)協(xié)議,這里以TCP和UDP數(shù)據(jù)流的傳輸實驗為例,說明NS2在教學(xué)中的應(yīng)用,實例的拓撲結(jié)構(gòu)如圖1所示。
這個網(wǎng)絡(luò)的環(huán)境包含了兩個傳輸節(jié)點s1和s2、路由器r和接收端d。s1到r之間與s2到r之間的網(wǎng)絡(luò)帶寬都是2Mbps,傳輸延遲時間是lOms。網(wǎng)絡(luò)架構(gòu)中的帶寬瓶頸在r到d之間,帶寬為1.7Mbps,傳輸延遲的時間為20ms。所有鏈路的隊列管理機制都是采用DropTail方式,且r到d之間的最大隊列長度是10個數(shù)據(jù)包的長度。TCP數(shù)據(jù)包的長度為1Kbytes。
此外,在s2到d之間的固定傳輸速率的連接(Constant BitRate,CSR),它的傳送速度為1Mbps,每個數(shù)據(jù)包大小為1Kbytes。CBR是在01秒開始傳送,在4.5秒結(jié)束傳輸。FTP是在1.0秒開始傳送,4.0秒結(jié)束傳輸。
仿真結(jié)束后會產(chǎn)生兩個文件,一個是out nam,供可視化工具Nam使用。圖2是實例仿真過程中隨機時刻的截圖,圖中節(jié)點2上方的小方塊表示隊列中的數(shù)據(jù)。
另一個文件是out.ir,記錄了仿真過程中數(shù)據(jù)包傳送中所有的事件,可以通過數(shù)據(jù)的分析得到更詳細、更準(zhǔn)確的信息,或用Xgraph以圖表形式顯示網(wǎng)絡(luò)狀態(tài),觀察仿真結(jié)果,圖3給出了CSR的端到端延遲。起始階段,由于只有CBR的數(shù)據(jù)包。所以端到端的延遲時間都是固定的。在1.0秒后,網(wǎng)絡(luò)多了FTP的數(shù)據(jù)包,CBR數(shù)據(jù)包和FTP數(shù)據(jù)包互相爭奪網(wǎng)絡(luò)資源,因此端到端的延遲時間變得不再固定;但等到FTP傳輸結(jié)束后,CBR數(shù)據(jù)包的端到端的延遲時間又恢復(fù)為固定值。
上述網(wǎng)絡(luò)實驗實例,說明了如何使用工具(Nam、awk和Xgraph)來實現(xiàn)仿真,并在網(wǎng)絡(luò)仿真結(jié)束后,分析和呈現(xiàn)仿真結(jié)果。通過修改腳本中的一些參數(shù),可以調(diào)節(jié)網(wǎng)絡(luò)運行效果,如增大節(jié)點2的隊列大小,則可以看到,節(jié)點2的丟包率降低了,但同時增加了隊列中包的延遲。從而驗證了網(wǎng)絡(luò)原理課程中關(guān)于流量控制、網(wǎng)絡(luò)擁塞相關(guān)原理,使學(xué)生深入理解帶寬、傳輸速率、緩存等資源的相互作用與關(guān)系;同時,通過學(xué)生自行設(shè)計網(wǎng)絡(luò)控制機制,解決網(wǎng)絡(luò)傳輸性能,培養(yǎng)他們創(chuàng)新思維、提供動手能力。這充分體現(xiàn)了實驗教學(xué)和理論教學(xué)相互促進、不可分割的規(guī)律。
3結(jié)論
在計算機網(wǎng)絡(luò)發(fā)展日趨復(fù)雜化的今天,計算機網(wǎng)絡(luò)課程教學(xué)不僅要求理論教學(xué)內(nèi)容現(xiàn)代化,對實驗教學(xué)內(nèi)容也要逐步現(xiàn)代化。通過不斷探索和研究先進的教學(xué)思想以及教學(xué)方法和手段,改善教學(xué)效果、提高教學(xué)質(zhì)量。在此,引入了網(wǎng)絡(luò)仿真工具NS2作為一種教學(xué)輔助手段,是對計算機網(wǎng)絡(luò)課程教學(xué)的一種有益的探索。
下一步工作重點是對NS2進行二次開發(fā),進一步完善和細化仿真實例,構(gòu)建全面的協(xié)議代碼庫,支撐全面驗證網(wǎng)絡(luò)原理中協(xié)議和控制機制相關(guān)實驗。