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