劉小俊
(黃岡師范學(xué)院 電子信息學(xué)院,湖北 黃州 438000)
?
基于Partov仿真引擎的《計(jì)算機(jī)網(wǎng)絡(luò)》課程教學(xué)改革實(shí)踐
劉小俊
(黃岡師范學(xué)院 電子信息學(xué)院,湖北 黃州 438000)
摘要《計(jì)算機(jī)網(wǎng)絡(luò)》課程教學(xué)中,網(wǎng)絡(luò)協(xié)議以及所涉及的技術(shù)中有許多細(xì)節(jié)很難掌握。使用編程任務(wù)作為課程的一部分,可以幫助學(xué)生獲得對(duì)理論課程更好、更深入的理解。本文討論了利用Partov仿真引擎改善《計(jì)算機(jī)網(wǎng)絡(luò)》課程教學(xué)效果的方案。2011年以來,基于Partov系統(tǒng)上的各種編程任務(wù)能夠很好的幫助學(xué)生學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)的相關(guān)原理,學(xué)生對(duì)此的反饋都很好,大量學(xué)生對(duì)這種做法表示滿意。
關(guān)鍵詞計(jì)算機(jī)網(wǎng)絡(luò);網(wǎng)絡(luò)仿真;Partov;教學(xué)工具
在《計(jì)算機(jī)網(wǎng)絡(luò)》課程教學(xué)中,讓學(xué)生理解基本理論的重要性以及如何應(yīng)用到現(xiàn)實(shí)中是一項(xiàng)難題。當(dāng)前有兩種方法可以緩解這個(gè)問題,并幫助學(xué)生更進(jìn)一步的了解網(wǎng)絡(luò)概念。
一種極端情況即純硬件方案:給學(xué)生提供實(shí)際的網(wǎng)絡(luò)設(shè)備(例如,路由器,交換機(jī)等)并要求他們?cè)诓煌木W(wǎng)絡(luò)布局中運(yùn)用這些設(shè)備做實(shí)驗(yàn)。這種情況下,每個(gè)學(xué)生或每組學(xué)生必須有專門的設(shè)備,這就需要裝載硬件的實(shí)驗(yàn)室。雖然這對(duì)于學(xué)習(xí)網(wǎng)絡(luò)管理課程的學(xué)生是一個(gè)理想的方案,但它并沒有為學(xué)生提供所需的更深入的網(wǎng)絡(luò)概念知識(shí)。例如,在實(shí)驗(yàn)室中學(xué)生可以學(xué)習(xí)如何在網(wǎng)絡(luò)中的交換機(jī)之間配置生成樹協(xié)議(STP),或是由硬件廠商接口偏向交換機(jī)之間部署STP協(xié)議,但他們對(duì)STP的操作知識(shí)將保持抽象且只在一個(gè)算法的水平。
另一種極端情況是純軟件模擬:學(xué)生用仿真軟件來模擬不同的場(chǎng)景[1-3],不同于基于硬件的方法,它不要求專用的網(wǎng)絡(luò)設(shè)備,并且允許學(xué)生在課余時(shí)間在他們的個(gè)人計(jì)算機(jī)上通過運(yùn)行模擬器來做他們的任務(wù)。仿真軟件能促進(jìn)對(duì)協(xié)議的分析,并且它對(duì)網(wǎng)絡(luò)研究者在推進(jìn)實(shí)驗(yàn)之前驗(yàn)證提出的想法的正確性也是很有用的。但是,這種方法不能讓學(xué)生超越仿真軟件預(yù)測(cè)的場(chǎng)景和功能,限制他們獲得從編程到現(xiàn)實(shí)世界的設(shè)備體驗(yàn),缺乏一種固有的真實(shí)性。
可見,在《計(jì)算機(jī)網(wǎng)絡(luò)》課程實(shí)踐教學(xué)中,純硬件和純軟件方式均有其弊端和優(yōu)勢(shì),本文提供了將虛擬化工具Partov的作為一種新的混合型教育工具的應(yīng)用在《計(jì)算機(jī)網(wǎng)絡(luò)》課程教學(xué)中,以改善教學(xué)效果。引入Partov后,仿真器連接到物理網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)中,允許學(xué)生在一個(gè)虛擬節(jié)點(diǎn)上設(shè)計(jì),實(shí)施和執(zhí)行他們的代碼,同時(shí)允許該節(jié)點(diǎn)在真實(shí)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中進(jìn)行交互。例如,學(xué)生可以實(shí)現(xiàn)一個(gè)虛擬節(jié)點(diǎn)上的路由器,然后觀察他們的路由器是怎樣和與它直接指向的互聯(lián)網(wǎng)進(jìn)行交互的。
1Partov簡(jiǎn)介
Partov提供了一組仿真模型和建立模擬拓?fù)涞恼Z言。Partov系統(tǒng)是由網(wǎng)絡(luò)仿真服務(wù)器(NSS)和客戶端框架(CF)兩個(gè)主要部分組成[4-7]。NSS是Partov系統(tǒng)的中心組成部分,它包含創(chuàng)建虛擬拓?fù)浣Y(jié)構(gòu)及進(jìn)行仿真的Partov內(nèi)核,以及擴(kuò)展內(nèi)核功能的插件基礎(chǔ)設(shè)施。NSS負(fù)責(zé)通過libpcap[4]與外網(wǎng)進(jìn)行所有的互動(dòng),并與CF合作。NSS依次由三部分組成:模擬服務(wù)器,虛擬化引擎以及插件基礎(chǔ)設(shè)施。這些組件及它們之間的關(guān)系如圖1所示。模擬服務(wù)器組件負(fù)責(zé)將虛擬化框架連接到由CF所提供的分布式框架。每當(dāng)CF實(shí)例請(qǐng)求與Partov服務(wù)器進(jìn)行連接時(shí),模擬服務(wù)器組件將通過用戶名/密碼進(jìn)行身份驗(yàn)證,然后列舉一個(gè)新的拓?fù)鋱D或找到先前實(shí)例拓?fù)鋱D,并將其分配給CF。CF允許學(xué)生在他們的個(gè)人計(jì)算機(jī)上執(zhí)行程序來連接到Partov中央服務(wù)器并參與計(jì)劃模擬。
CF可以在連接的虛擬節(jié)點(diǎn)上發(fā)送/接收數(shù)據(jù)包。每當(dāng)連接的虛擬節(jié)點(diǎn)接收到數(shù)據(jù)包,它會(huì)通過模擬服務(wù)器決定該數(shù)據(jù)包是否要被轉(zhuǎn)發(fā)到另一個(gè)NSS組件或轉(zhuǎn)發(fā)到CF,進(jìn)而對(duì)學(xué)生的程序進(jìn)行檢查。例如,學(xué)生可以實(shí)現(xiàn)網(wǎng)橋,路由器或網(wǎng)絡(luò)地址轉(zhuǎn)化(NAT)功能。這個(gè)邏輯可以檢查數(shù)據(jù)包,并決定是應(yīng)該忽略他們,還是發(fā)送回復(fù)或發(fā)送另一組所需的數(shù)據(jù)包到網(wǎng)絡(luò)。這讓學(xué)生實(shí)現(xiàn)了與真實(shí)的網(wǎng)絡(luò)環(huán)境進(jìn)行交互的算法。
圖1 Partov架構(gòu)
Partov拓?fù)湔Z言(PTL)是基于XML的語言,它對(duì)Partov拓?fù)浣Y(jié)構(gòu)進(jìn)行聲明。每種拓?fù)涫且浴癕AP”為后綴定義的單獨(dú)的文件,由三部分組成,用于定義節(jié)點(diǎn),列表(用于資源分配到節(jié)點(diǎn))和鏈接。
插件基礎(chǔ)設(shè)施提供了實(shí)現(xiàn)插件的基礎(chǔ)設(shè)施。每個(gè)插件可以使用所有由Partov提供的用于處理數(shù)據(jù)包的實(shí)用程序,并且可進(jìn)行配置。目前,已有四種插件。模擬節(jié)點(diǎn)是一個(gè)重要的插件,通過它的數(shù)據(jù)包被轉(zhuǎn)發(fā)到CF(即學(xué)生的程序),數(shù)據(jù)包從CF恢復(fù)被重新注入了虛擬環(huán)境。IPv4路由器接受靜態(tài)路由表。它可使拓?fù)淇蓴U(kuò)展(通過創(chuàng)建分離的網(wǎng)絡(luò)的廣播域)和可擴(kuò)展(通過分層的網(wǎng)絡(luò)拓?fù)?。因特網(wǎng)網(wǎng)關(guān)節(jié)點(diǎn)是用于將虛擬映射連接到可以用來無縫集成虛擬映射和互聯(lián)網(wǎng)的真實(shí)網(wǎng)絡(luò)的專用路由器。通用的傳輸控制協(xié)議(TCP)反向代理服務(wù)器通過提供所有的TCP數(shù)據(jù)包及其響應(yīng)給/從網(wǎng)絡(luò)中運(yùn)行的真實(shí)服務(wù)器,來模擬虛擬網(wǎng)絡(luò)中沒有服務(wù)器時(shí)的一種手段。
2課程任務(wù)和所含知識(shí)點(diǎn)
《計(jì)算機(jī)網(wǎng)絡(luò)》課程的教學(xué)內(nèi)容具有概念繁多、原理復(fù)雜、協(xié)議與技術(shù)交疊的特點(diǎn)。它涉及眾多的概念、原理、協(xié)議和技術(shù),這些內(nèi)容以錯(cuò)綜復(fù)雜的形式交織在一起,既有原理的復(fù)雜性,又有技術(shù)的時(shí)效性。所以,在該課程的教學(xué)過程中,學(xué)生普遍反映無法深入理解網(wǎng)絡(luò)的原理與技術(shù),知識(shí)點(diǎn)的銜接也無法形成整體。在實(shí)驗(yàn)過程中,知識(shí)的應(yīng)用又具有盲目性?,F(xiàn)有的課堂教學(xué)模式無法很好地實(shí)現(xiàn)理論與實(shí)踐相結(jié)合、提升學(xué)生網(wǎng)絡(luò)技術(shù)能力的教學(xué)目的。Partov的出現(xiàn)為在《計(jì)算機(jī)網(wǎng)絡(luò)》課程教學(xué)中開展任務(wù)驅(qū)動(dòng)模式教學(xué)提供了很好的條件,一方面便于理論和實(shí)踐相結(jié)合,一方面便于實(shí)施和考核。在任務(wù)設(shè)計(jì)方面,本文以綜合性強(qiáng),TCP/IP為主線,同時(shí)兼顧適用性、緊扣網(wǎng)絡(luò)技術(shù)發(fā)展為輔。目前已開展的任務(wù)和其覆蓋的ISO層次關(guān)系如表1所示。
表1 任務(wù)和其覆蓋的網(wǎng)絡(luò)層次關(guān)系
《計(jì)算機(jī)網(wǎng)絡(luò)》課程中,移動(dòng)IP是重點(diǎn)教學(xué)內(nèi)容。本文以“基于以太網(wǎng)的移動(dòng)IP(MIPoE)”課程教學(xué)任務(wù)進(jìn)行詳細(xì)討論。
移動(dòng)IP協(xié)議的作用是在保留它們的IP地址的同時(shí)讓節(jié)點(diǎn)在不同的網(wǎng)絡(luò)中移動(dòng),并因此與這些地址相連接。學(xué)生必須實(shí)現(xiàn)節(jié)點(diǎn)能從無線接入點(diǎn)(AP)獲得一個(gè)IP地址,并在加入/離開每個(gè)無線領(lǐng)域時(shí)告知它們,同時(shí)實(shí)現(xiàn)節(jié)點(diǎn)移動(dòng),即無線移動(dòng)節(jié)點(diǎn)在從一個(gè)AP區(qū)域移動(dòng)到另一個(gè)時(shí)可以保持自己的IP地址。
在分配中,每個(gè)學(xué)生被分給一個(gè)由圖2所示的三個(gè)局域網(wǎng)組成的虛擬拓?fù)浣Y(jié)構(gòu)。每個(gè)拓?fù)浣Y(jié)構(gòu)包括若干節(jié)點(diǎn)及三個(gè)無線接入點(diǎn)。每個(gè)無線接入點(diǎn)有一個(gè)覆蓋區(qū)域并可以接收其節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包。由AP發(fā)送的數(shù)據(jù)包可到達(dá)其覆蓋區(qū)域內(nèi)的所有節(jié)點(diǎn)。不同無線接入點(diǎn)的覆蓋區(qū)域可重疊。這種重疊區(qū)域發(fā)送的數(shù)據(jù)包將被所有相關(guān)的AP接收。
使用有限狀態(tài)機(jī)可能改變一個(gè)節(jié)點(diǎn)的位置(從鏈路斷開它,并將其連接到另一鏈路)。另一方面,每個(gè)AP連接到網(wǎng)關(guān)節(jié)點(diǎn),并因此通過第二個(gè)網(wǎng)絡(luò)接口連接到因特網(wǎng)[8]。學(xué)生被要求使用CF準(zhǔn)備兩種方案。節(jié)點(diǎn)程序應(yīng)該以從一個(gè)無線接入點(diǎn)申請(qǐng)一個(gè)IP地址開始。然后節(jié)點(diǎn)將會(huì)移動(dòng)到另一個(gè)無線接入點(diǎn),在這一過程中,它可能會(huì)從一個(gè)AP的覆蓋區(qū)域進(jìn)入另一個(gè)AP的覆蓋區(qū)域。它也可以是進(jìn)入到多個(gè)AP之間的重疊區(qū)域。節(jié)點(diǎn)程序期望與相應(yīng)地AP程序進(jìn)行通信來找到其當(dāng)前位置。AP程序期望檢測(cè)節(jié)點(diǎn)位置并通過IP隧道將家庭網(wǎng)絡(luò)的數(shù)據(jù)包重定向到訪問網(wǎng)絡(luò)。學(xué)生們也被要求為在節(jié)點(diǎn)程序中收到的IP地址設(shè)計(jì)它們的協(xié)議以及無線接入節(jié)點(diǎn)通信的協(xié)議,使AP可以在任何時(shí)候通過跟蹤節(jié)點(diǎn)來訪問網(wǎng)絡(luò)。在完成這個(gè)任務(wù)后,學(xué)生會(huì)對(duì)覆蓋及基于IP隧道和移動(dòng)性IP這樣概念的網(wǎng)絡(luò)協(xié)議的設(shè)計(jì)有一個(gè)詳細(xì)深入的了解。
圖2 MIPoE分配拓?fù)?/p>
除了任務(wù)MIPoE,還有大量其他任務(wù):下面做簡(jiǎn)要說明。
帶寬節(jié)流器:這個(gè)任務(wù)要求要善于洞察第三和第四個(gè)網(wǎng)絡(luò)層,要求學(xué)生完成一個(gè)工作在第四層的帶寬節(jié)流器調(diào)節(jié)TCP和UDP流量。在這個(gè)任務(wù)中,學(xué)生可以學(xué)習(xí)如何通過檢查IP,TCP和UDP的報(bào)頭來檢測(cè)不同的TCP/UDP流量,如何確定流量的速率,以及如何限制流量的速率。
通過UDP簡(jiǎn)化的FTP:在此任務(wù)中,學(xué)生們被要求使用傳輸層的UDP協(xié)議來完成一個(gè)簡(jiǎn)化的文件傳輸協(xié)議[9]。這種任務(wù)可以幫助學(xué)生了解終端到終端的可靠性,分組的重新排序,分組錯(cuò)誤及分組丟失/超時(shí)。在這個(gè)任務(wù)中要避免使用TFTP,因?yàn)門FTP包括的細(xì)節(jié)和要求與它的關(guān)鍵的網(wǎng)絡(luò)概念無關(guān)。
DHCP和ARP:在這個(gè)任務(wù)中,學(xué)生要同時(shí)實(shí)現(xiàn)服務(wù)器和客戶端的動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)[10],及地址解析協(xié)議(ARP),主要是在數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層及應(yīng)用層。這教會(huì)學(xué)生通過ARP解析地址,通過DHCP獲取IP和其他網(wǎng)絡(luò)的信息(如網(wǎng)關(guān)地址),以及更多的網(wǎng)絡(luò)分層的概念。
簡(jiǎn)化的STP:在這里,首先要求學(xué)生們實(shí)現(xiàn)一個(gè)學(xué)習(xí)的橋梁來連接拓?fù)浣Y(jié)構(gòu)中的節(jié)點(diǎn)。然后,要求他們加強(qiáng)自己的學(xué)習(xí)橋梁來完成STP協(xié)議的簡(jiǎn)化版本。這教導(dǎo)學(xué)生了解網(wǎng)絡(luò)節(jié)點(diǎn)是怎樣通過本地決策和互動(dòng)來參與分布式算法的。
網(wǎng)絡(luò)地址轉(zhuǎn)換:這個(gè)任務(wù)遠(yuǎn)遠(yuǎn)超過了NAT的需求。它要求學(xué)生實(shí)現(xiàn)一個(gè)基于UDP協(xié)議的客戶端,并從定位服務(wù)器查詢文件的位置,他們完成這些要求必須是在位于NAT服務(wù)器后面的服務(wù)器的邊緣。根據(jù)查詢,本地服務(wù)器應(yīng)設(shè)置適當(dāng)?shù)腘AT規(guī)則,使客戶端可以連接到正確的服務(wù)器并下載所需的文件。這使學(xué)生了解有關(guān)公共的和私有的IP地址,UDP和TCP端口,以及在實(shí)踐中動(dòng)態(tài)NAT和靜態(tài)NAT的工作機(jī)制。
傳輸控制協(xié)議:它是在現(xiàn)今計(jì)算機(jī)網(wǎng)絡(luò)中最重要的協(xié)議之一,要求學(xué)生實(shí)現(xiàn)一個(gè)最小的TCP并用它從一個(gè)插座式的Web服務(wù)器下載文件。通過讓學(xué)生只實(shí)現(xiàn)連接TCP的一側(cè),并用完整的和標(biāo)準(zhǔn)的實(shí)現(xiàn)另一端(即,插座式Web服務(wù)器)證明了用實(shí)際的TCP堆棧實(shí)現(xiàn)兼容性是正確的。這個(gè)任務(wù)使學(xué)生了解了TCP的內(nèi)部結(jié)構(gòu)包括TCP窗口管理,流量控制,內(nèi)碼,序列號(hào)和確認(rèn)號(hào),以及TCP標(biāo)志。
內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN):CDN[11]是一個(gè)可以快速響應(yīng)大量?jī)?nèi)容請(qǐng)求的網(wǎng)絡(luò)。學(xué)生被分配了一個(gè)由幾個(gè)在地理上分散的服務(wù)器群組成的拓?fù)?,并要求在服?wù)器群上建立一個(gè)覆蓋網(wǎng)絡(luò),根據(jù)它們的負(fù)載和路徑延遲重定向到適當(dāng)?shù)姆?wù)器群,完成這個(gè)任務(wù)之后,學(xué)生應(yīng)了解了覆蓋網(wǎng)絡(luò)和負(fù)載均衡,并有能力為特殊用途設(shè)計(jì)一個(gè)通信協(xié)議,如在CDN服務(wù)器群之間。
分布式哈希表與和弦協(xié)議:分布式哈希表(DHT)允許信息在對(duì)等體之間被分發(fā)和存儲(chǔ)。在這個(gè)任務(wù)中,學(xué)生的方案將被部署在不同的虛擬節(jié)點(diǎn)上。這些節(jié)點(diǎn)必須建立一個(gè)DHT來存儲(chǔ)一些檔案托管服務(wù)器位置的信息,并回復(fù)位置查詢。DHT應(yīng)該抵制隨機(jī)節(jié)點(diǎn)通過在其他節(jié)點(diǎn)上適當(dāng)?shù)卮鎯?chǔ)信息來離開。并且它應(yīng)該使用新加入的節(jié)點(diǎn)并在它們之間高效地分配信息。通過這個(gè)任務(wù),學(xué)生會(huì)了解分布式協(xié)議,分布式哈希表以及和弦協(xié)議的有關(guān)知識(shí)。
Partov系統(tǒng)在2011年秋季開始用于黃岡師范學(xué)院《計(jì)算機(jī)網(wǎng)絡(luò)》課程教學(xué)。任務(wù)被設(shè)計(jì)為加強(qiáng)課堂上所教的ISO的OSI模型各層的概念。對(duì)三屆共115名學(xué)生就行問卷調(diào)查的結(jié)果表明:84%的學(xué)生認(rèn)為Partov任務(wù)在學(xué)習(xí)協(xié)議和概念方面比在課堂上分發(fā)的Socket編程任務(wù)更有幫助。82%的學(xué)生認(rèn)為基于Partov任務(wù)驅(qū)動(dòng)的學(xué)習(xí)方法能夠有效的激發(fā)學(xué)習(xí)興趣。93%的學(xué)生認(rèn)為盡管編程作業(yè)一般都較為困難而且比用紙筆回答理論問題更耗費(fèi)時(shí)間,但這個(gè)任務(wù)幫助他們比在課堂上講授的更深入的理解網(wǎng)絡(luò)概念。同時(shí),筆者在與完成任務(wù)的學(xué)生討論問題時(shí)看出這些學(xué)生對(duì)概念有了更深刻的理解。
參考文獻(xiàn):
[1]Theunis J, Broeck B V D, Leys P,etal. “Opnet in advanced networking education,” opnetwork02 johan.pdf, Dec. 5, 2011[Online]. Available: http://www.esat.kuleuven.be/telemic/networking/.
[2]Al-Holou N, Booth K, Yaprak E. “Using computer network sim-ulation tools as supplements to computer network curriculum,” in Proc. 30th Annu. FIE 2000, 2000, vol. 2, pp. S2C/13-S2C/16.
[3]Yu X. “The construction and application of simulation teaching system for computer network curricula,” in Proc. 1st IEEE ISITAE, Nov. 2007, pp. 524-527.
[4]Candelas Herias F, Gil Vazquez P. “Practical experiments with KivaNS: A virtual laboratory for simulating IP routing in computer networks subjects,” in Proc. m-ICTE, 2009, vol. 3, pp. 1414-1418.
[5]Varga A. “Using the OMNet discrete event simulation system in education,” IEEE Trans. Educ., vol. 42, no. 4, p. 372, Nov. 1999.
[6]Momeni B. “Hybrid virtual network system,” B.S. thesis, Sharif University of Technology, Tehran, Iran, 2010, portable And Reliable Tool for Virtualization.
[7]Kharrazi M. “Partov project,” Dec. 5, 2011[Online]. Available: http:// sharif.edu/~kharrazi/partov.
[8]Wireshark, “Wireshark,” Dec. 5, 2011[Online]. Available: http://www. wireshark.org/.
[9]Kharrazi M. “CE 40-443: Computer networks,” Sharif University of Technology, Tehran, Iran, Dec. 5, 2011[Online]. Available: http://sharif.edu/~kharrazi/courses/40443-881/.
[10]Droms R, Lemon T. The DHCP Handbook (Networking), 2nd. Indianapolis, IN: Sams, Nov. 2002.
[11]Peng G. “Cdn: Content distribution network,” State University of New York at Stony Brook, Stony Brook, NY, Tech. Rep., 2003.
編輯喻曉敏
基金項(xiàng)目2013年度黃岡師范學(xué)院教學(xué)改革項(xiàng)目(2013CE30);2014年度黃岡師范學(xué)院第二批卓越人才培養(yǎng)計(jì)劃項(xiàng)目(2014ZY04)。
作者簡(jiǎn)介劉小俊,男,湖北黃岡人,副教授,博士,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)、信息存儲(chǔ)、傳輸,云計(jì)算等。
收稿日期2015-05-03
doi10.3969/j.issn.1003-8078.2015.06.31
中圖分類號(hào)G642
文獻(xiàn)標(biāo)志碼A
文章編號(hào)1003-8078(2015)06-0118-04