劉桂開(kāi) 劉江濤
摘 要:網(wǎng)絡(luò)設(shè)備互連是計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)體系的重要組成部分,且具有非常強(qiáng)的實(shí)踐性,需要大量的組網(wǎng)實(shí)驗(yàn)來(lái)訓(xùn)練學(xué)生的動(dòng)手能力。網(wǎng)絡(luò)仿真軟件的出現(xiàn)使組網(wǎng)實(shí)驗(yàn)的進(jìn)行變得相對(duì)容易,但是它們都不是專(zhuān)門(mén)的實(shí)驗(yàn)教學(xué)平臺(tái),不具備教學(xué)所需的各個(gè)環(huán)節(jié)。針對(duì)教師需要對(duì)實(shí)驗(yàn)過(guò)程進(jìn)行管理,并對(duì)實(shí)驗(yàn)完成情況進(jìn)行評(píng)價(jià),探討將網(wǎng)絡(luò)仿真軟件的優(yōu)勢(shì)與對(duì)實(shí)驗(yàn)的管理、評(píng)價(jià)結(jié)合起來(lái),構(gòu)建一個(gè)在線(xiàn)的計(jì)算機(jī)網(wǎng)絡(luò)虛擬仿真實(shí)驗(yàn)教學(xué)平臺(tái),在教師的統(tǒng)一管理下完成所要求的各項(xiàng)實(shí)驗(yàn)任務(wù),讓在線(xiàn)網(wǎng)絡(luò)虛擬仿真成為計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)室的有效補(bǔ)充與延伸。
關(guān)鍵詞:網(wǎng)絡(luò)設(shè)備互連;組網(wǎng)實(shí)驗(yàn);在線(xiàn)虛擬仿真;實(shí)驗(yàn)管理;實(shí)驗(yàn)評(píng)價(jià)
中圖分類(lèi)號(hào):TP393? ? ? ? 文獻(xiàn)標(biāo)準(zhǔn)碼:A? ? ? ? ? 文章編號(hào):1673-8454(2019)24-0029-05
一、引言
針對(duì)計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)體系,學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)首先要學(xué)習(xí)的是計(jì)算機(jī)網(wǎng)絡(luò)的體系結(jié)構(gòu),包括各層協(xié)議及其構(gòu)件所應(yīng)完成的相應(yīng)功能。然后是各層協(xié)議功能的具體實(shí)現(xiàn),完成遵循所定義體系結(jié)構(gòu)的硬件或軟件,如路由器、交換機(jī)等網(wǎng)絡(luò)設(shè)備以及主機(jī)操作系統(tǒng)TCP/IP協(xié)議棧的實(shí)現(xiàn)等。不過(guò),學(xué)習(xí)的時(shí)候并不需要實(shí)現(xiàn)每個(gè)層次的功能,只需通過(guò)系統(tǒng)調(diào)用和應(yīng)用編程接口,得到操作系統(tǒng)的服務(wù)來(lái)完成跨越網(wǎng)絡(luò)的通信,重點(diǎn)在于理解計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議功能的具體實(shí)現(xiàn)與應(yīng)用過(guò)程。有了具備通信功能的網(wǎng)絡(luò)設(shè)備和主機(jī),如何將它們互連起來(lái)構(gòu)建成一個(gè)互聯(lián)網(wǎng)絡(luò),也是計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)體系中一個(gè)非常重要的組成部分。構(gòu)建網(wǎng)絡(luò)實(shí)踐性非常強(qiáng),在開(kāi)設(shè)理論課的同時(shí),還必須配備大量的組網(wǎng)實(shí)驗(yàn)來(lái)培養(yǎng)學(xué)生的實(shí)際動(dòng)手能力。為此,許多高校都建立了計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)室,以確保教學(xué)工作的正常進(jìn)行。然而,網(wǎng)絡(luò)實(shí)驗(yàn)室的發(fā)展受到諸多因素的制約,如設(shè)備更新?lián)Q代快、投資成本高、設(shè)備容易損壞等,有可能使建立不久的實(shí)驗(yàn)室很快變得資源短缺,從而無(wú)法滿(mǎn)足人才培養(yǎng)的要求。另外,實(shí)驗(yàn)的開(kāi)設(shè)還會(huì)受到場(chǎng)地和時(shí)間的限制,既不利于實(shí)驗(yàn)室的充分利用,也不利于學(xué)生的自主學(xué)習(xí)。
網(wǎng)絡(luò)仿真軟件的出現(xiàn)使組網(wǎng)實(shí)驗(yàn)的進(jìn)行變得相對(duì)容易[1],可用于計(jì)算機(jī)網(wǎng)絡(luò)組建的仿真軟件有Packet Tracer、Dynamips、GNS3、NetSim、eNSP等,其中前四種支持思科(Cisco)設(shè)備,最后一種支持華為設(shè)備。學(xué)生將網(wǎng)絡(luò)仿真軟件安裝在自己的電腦上,隨時(shí)隨地都可以進(jìn)行實(shí)驗(yàn),不會(huì)受到場(chǎng)地和時(shí)間的限制,可以充分發(fā)揮個(gè)人主觀(guān)能動(dòng)性,激發(fā)學(xué)習(xí)興趣。網(wǎng)絡(luò)仿真軟件也不存在設(shè)備更新、投資成本的問(wèn)題,對(duì)計(jì)算機(jī)網(wǎng)絡(luò)教學(xué)起到了很好的輔助作用。不過(guò),它們都不是專(zhuān)門(mén)為教學(xué)而開(kāi)發(fā)的,因而并不具備教學(xué)所需的諸多環(huán)節(jié)。例如,教學(xué)需要所有學(xué)生都參與,并不是針對(duì)某一個(gè)學(xué)生,由于網(wǎng)絡(luò)仿真軟件是單機(jī)環(huán)境,學(xué)生是否使用網(wǎng)絡(luò)仿真軟件進(jìn)行了組網(wǎng)實(shí)驗(yàn)教師并不知情。只有對(duì)教學(xué)進(jìn)行管理才能確保每個(gè)學(xué)生都參與到教學(xué)活動(dòng)之中。另外,使用網(wǎng)絡(luò)仿真軟件做實(shí)驗(yàn),教師也需要關(guān)注實(shí)驗(yàn)效果。一方面,教師需要了解學(xué)生的實(shí)驗(yàn)情況來(lái)制定或調(diào)整后續(xù)的教學(xué)計(jì)劃;另一方面,教師需要對(duì)學(xué)生所做實(shí)驗(yàn)形成比較客觀(guān)準(zhǔn)確的判斷,并給定考核意見(jiàn)或等級(jí)[2]。此外,如果教師與學(xué)生之間能夠及時(shí)進(jìn)行交流,就某些問(wèn)題進(jìn)行探討,就會(huì)達(dá)到更好的教學(xué)效果。
現(xiàn)代信息技術(shù)發(fā)展迅速,有基礎(chǔ)將網(wǎng)絡(luò)仿真軟件的優(yōu)勢(shì)與教學(xué)管理結(jié)合起來(lái),構(gòu)建一個(gè)在線(xiàn)的計(jì)算機(jī)網(wǎng)絡(luò)虛擬仿真實(shí)驗(yàn)教學(xué)平臺(tái),在教師的統(tǒng)一管理下完成所要求的各項(xiàng)教學(xué)任務(wù),并充分發(fā)揮網(wǎng)絡(luò)在信息傳遞方面所具有的優(yōu)勢(shì),實(shí)現(xiàn)教師和學(xué)生之間隨時(shí)隨地的溝通交流、答疑解惑[3]。本文將探討計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)與現(xiàn)代信息技術(shù)緊密結(jié)合,利用虛擬化技術(shù)實(shí)現(xiàn)服務(wù)器資源的合理化應(yīng)用,將網(wǎng)絡(luò)仿真軟件由單機(jī)環(huán)境擴(kuò)展到網(wǎng)絡(luò)環(huán)境,并完成實(shí)驗(yàn)教學(xué)的管理功能,讓在線(xiàn)網(wǎng)絡(luò)虛擬仿真成為計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)室的有效補(bǔ)充與延伸。
二、在線(xiàn)實(shí)驗(yàn)平臺(tái)總體設(shè)計(jì)
平臺(tái)架構(gòu)由兩大功能模塊組成,即在線(xiàn)組網(wǎng)虛擬仿真部分和實(shí)驗(yàn)教學(xué)管理部分。在線(xiàn)組網(wǎng)虛擬仿真部分是平臺(tái)的主體功能模塊,基于已有仿真軟件構(gòu)建出虛擬的網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)環(huán)境,用戶(hù)可以通過(guò)互聯(lián)網(wǎng)進(jìn)行遠(yuǎn)程操作,完成相應(yīng)的組網(wǎng)實(shí)驗(yàn)。實(shí)驗(yàn)教學(xué)管理部分是進(jìn)行在線(xiàn)組網(wǎng)實(shí)驗(yàn)的輔助功能模塊,可以在線(xiàn)發(fā)布實(shí)驗(yàn)任務(wù),對(duì)實(shí)驗(yàn)進(jìn)程進(jìn)行監(jiān)管,對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行評(píng)價(jià),并支持在線(xiàn)交流。
網(wǎng)絡(luò)仿真軟件是網(wǎng)絡(luò)方面的虛擬化技術(shù)產(chǎn)品,支持思科設(shè)備模擬的仿真軟件比較多,有從硬件層面模擬的如Dynamips,也有從軟件層面模擬的如Packet Tacer等,相比之下各有優(yōu)勢(shì)。Packet Tracer圖形化界面友好,因而易于操作。Dynamips是法國(guó)UTC(University of Technology of Compiegne)大學(xué)Christophe Fillot開(kāi)發(fā)的一個(gè)基于虛擬化技術(shù)的模擬器(Emulator),用于模擬思科的網(wǎng)絡(luò)設(shè)備。Dynamips圖形化效果不是很好,不太易于操作,它的優(yōu)勢(shì)在于可以模擬出更接近真實(shí)網(wǎng)絡(luò)設(shè)備的效果,且?guī)缀踔С炙械乃伎艻OS(Internetwork Operating System),IOS是思科網(wǎng)絡(luò)設(shè)備的操作系統(tǒng)。在線(xiàn)虛擬仿真用戶(hù)將通過(guò)互聯(lián)網(wǎng)利用基于A(yíng)pplet的Telnet技術(shù)遠(yuǎn)程操作所模擬的網(wǎng)絡(luò)設(shè)備,且不再使用網(wǎng)絡(luò)仿真軟件原有的用戶(hù)界面,在平臺(tái)開(kāi)發(fā)過(guò)程中,通過(guò)使用HTML5 Canvas的jTopo框架技術(shù)提供圖形化的用戶(hù)界面和實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)鋱D的呈現(xiàn)[4][5],完全可以彌補(bǔ)Dynamips在圖形化界面方面的不足,因此,選擇Dynamips更能滿(mǎn)足在線(xiàn)組網(wǎng)虛擬仿真平臺(tái)的開(kāi)發(fā)需求,可以充分利用其在網(wǎng)絡(luò)設(shè)備模擬方面的優(yōu)勢(shì)。
平臺(tái)層次總體上遵循B/S的三層架構(gòu),即表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)層。表示層通過(guò)瀏覽器為用戶(hù)提供應(yīng)用程序的訪(fǎng)問(wèn)與響應(yīng),包括接受用戶(hù)請(qǐng)求、返回?cái)?shù)據(jù)等功能。業(yè)務(wù)邏輯層的主要構(gòu)件是Dynamips服務(wù)器和Web服務(wù)器,負(fù)責(zé)對(duì)數(shù)據(jù)層進(jìn)行操作。數(shù)據(jù)層就是一個(gè)數(shù)據(jù)庫(kù)[6],為業(yè)務(wù)邏輯層和表示層提供數(shù)據(jù)服務(wù),包括用戶(hù)信息、網(wǎng)絡(luò)資源、教學(xué)管理、實(shí)驗(yàn)操作等方面的數(shù)據(jù),其中用戶(hù)主要包括學(xué)生、教師和管理員。平臺(tái)的總體設(shè)計(jì)如圖1所示。
三、在線(xiàn)虛擬仿真功能
在線(xiàn)組網(wǎng)虛擬仿真功能模塊主要由以下步驟完成:①教師或管理員用戶(hù)對(duì)需要使用的網(wǎng)絡(luò)設(shè)備進(jìn)行注冊(cè)登記,并配置好已注冊(cè)設(shè)備的各項(xiàng)基本參數(shù);②由Dynamips仿真服務(wù)器虛擬出網(wǎng)絡(luò)設(shè)備如路由器、PC機(jī)等;③所需設(shè)備配置完成后,用戶(hù)可以向Web服務(wù)器發(fā)起設(shè)備信息請(qǐng)求,增加位置數(shù)據(jù)并互連設(shè)備后,即可生成網(wǎng)絡(luò)拓?fù)鋱D,期間可對(duì)拓?fù)鋱D進(jìn)行調(diào)整,使其達(dá)到理想的呈現(xiàn)狀態(tài)。④用戶(hù)對(duì)拓?fù)鋱D中的設(shè)備進(jìn)行配置,完成相應(yīng)的組網(wǎng)實(shí)驗(yàn)。
總的來(lái)說(shuō),就是要將實(shí)驗(yàn)參數(shù)傳遞給Dynamips服務(wù)器,由Dynamips服務(wù)器完成組網(wǎng)實(shí)驗(yàn)。不同之處在于,單機(jī)環(huán)境下是本地直接配置參數(shù),現(xiàn)在是需要通過(guò)互聯(lián)網(wǎng)絡(luò)傳遞參數(shù)。參數(shù)的傳遞可以分為兩個(gè)階段:生成設(shè)備、把設(shè)備按要求通過(guò)鏈路連接起來(lái),并呈現(xiàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是參數(shù)傳遞的第一階段;第二階段是需要傳遞對(duì)每臺(tái)網(wǎng)絡(luò)設(shè)備進(jìn)行參數(shù)配置,通過(guò)配置讓設(shè)備之間能夠通信、傳遞數(shù)據(jù)。
設(shè)備注冊(cè)是生成需要使用的網(wǎng)絡(luò)設(shè)備的過(guò)程,通過(guò)提供設(shè)備生成及互連所需的相關(guān)信息,如設(shè)備的類(lèi)型、插槽板卡類(lèi)型、IOS路徑等,由Dynamips服務(wù)器虛擬出相應(yīng)的設(shè)備,如Cisco7200路由器、Cisco3640路由器等。不過(guò),這些設(shè)備信息首先是存放在數(shù)據(jù)庫(kù)中,在進(jìn)行實(shí)驗(yàn)的時(shí)候才會(huì)將它們傳遞給Dynamips服務(wù)器并生成設(shè)備。對(duì)已經(jīng)注冊(cè)的設(shè)備,用戶(hù)可以選擇使用,例如Cisco7200路由器已經(jīng)注冊(cè),用戶(hù)就可以選擇互連兩臺(tái)Cisco7200路由器進(jìn)行實(shí)驗(yàn)。
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的呈現(xiàn)是基于HTML5 Canvas的jTopo技術(shù),為了合理安排設(shè)備在畫(huà)布上出現(xiàn)的位置,避免出現(xiàn)錯(cuò)亂、重疊等問(wèn)題,首先對(duì)設(shè)備的布局進(jìn)行設(shè)計(jì)。當(dāng)網(wǎng)絡(luò)規(guī)模較小時(shí),可以考慮采用單環(huán)布局的方式。當(dāng)圓心坐標(biāo)為O(X0,Y0)、半徑為R0、設(shè)備個(gè)數(shù)為count時(shí),第i個(gè)設(shè)備的位置可以由坐標(biāo)Ri(Xi,Yi)來(lái)確定,其中Xi=X0+R0cos(2πi/count),Yi=Y0+R0sin(2πi/count),如圖2所示。
當(dāng)網(wǎng)絡(luò)規(guī)模較大時(shí),可以采用雙環(huán)布局或多環(huán)布局,計(jì)算方法類(lèi)似,只是需要考慮主干網(wǎng)、子網(wǎng)之間的相互關(guān)系,還有環(huán)與環(huán)之間的距離等因素。有了設(shè)備的位置數(shù)據(jù),加上讀取存儲(chǔ)在數(shù)據(jù)庫(kù)中所需的網(wǎng)絡(luò)結(jié)點(diǎn)及連線(xiàn)數(shù)據(jù),接下來(lái)借助XML轉(zhuǎn)發(fā)工具JAR包將所有獲得的數(shù)據(jù)轉(zhuǎn)換為XML文件格式類(lèi)型,并通過(guò)JavaScript讀取XML文件并解析為JSON格式,將設(shè)備結(jié)點(diǎn)和連線(xiàn)呈現(xiàn)在所創(chuàng)建HTML5 Canvas畫(huà)布上,得到網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)圖。
網(wǎng)絡(luò)拓?fù)鋱D形成以后,下一步就可以對(duì)網(wǎng)絡(luò)中的設(shè)備進(jìn)行配置,實(shí)現(xiàn)設(shè)備之間的通信。對(duì)Dynamips服務(wù)器虛擬出來(lái)的設(shè)備進(jìn)行配置,操作起來(lái)跟操作真實(shí)設(shè)備是類(lèi)似的,通常通過(guò)操作系統(tǒng)自帶的Telnet就可以遠(yuǎn)程訪(fǎng)問(wèn)Dynamips虛擬出的設(shè)備。但是,不同的操作系統(tǒng)對(duì)Telnet的支持不盡相同,有時(shí)用戶(hù)使用起來(lái)不一定很方便。為此,對(duì)遠(yuǎn)程登錄虛擬設(shè)備進(jìn)行了改進(jìn),使用基于A(yíng)pplet的Telnet來(lái)實(shí)現(xiàn)與虛擬設(shè)備的遠(yuǎn)程交互[7] [8]。在安裝JRE插件后,就可以直接在瀏覽器上運(yùn)行,用戶(hù)使用起來(lái)非常方便。
四、實(shí)驗(yàn)教學(xué)管理功能
在線(xiàn)組網(wǎng)虛擬仿真功能實(shí)現(xiàn)以后,需要將其納入到實(shí)驗(yàn)教學(xué)的范疇之內(nèi),才能成為教學(xué)活動(dòng)的組成部分。在仿真軟件上實(shí)現(xiàn)思科虛擬設(shè)備互連是相對(duì)獨(dú)立的學(xué)生個(gè)人行為,并不需要教師的介入,而教學(xué)活動(dòng)是教與學(xué)的結(jié)合,教師和學(xué)生都是教學(xué)活動(dòng)的主體,缺少任何一方都不能順利完成相應(yīng)的教學(xué)任務(wù)。因此,只有將在線(xiàn)組網(wǎng)虛擬仿真功能、教師和學(xué)生三者統(tǒng)一起來(lái),才能實(shí)現(xiàn)計(jì)算機(jī)網(wǎng)絡(luò)組網(wǎng)實(shí)驗(yàn)的教學(xué),這就是實(shí)驗(yàn)教學(xué)管理需要完成的工作。
實(shí)驗(yàn)教學(xué)管理需要完成如下一些功能:①用戶(hù)管理:教師和學(xué)生都是在線(xiàn)虛擬組網(wǎng)實(shí)驗(yàn)教學(xué)平臺(tái)的用戶(hù),只有登錄到平臺(tái)后才能擔(dān)當(dāng)各自在實(shí)驗(yàn)教學(xué)工作中的角色,如教師發(fā)布實(shí)驗(yàn)任務(wù)、學(xué)生申請(qǐng)實(shí)驗(yàn)等。②教學(xué)資源管理:教師對(duì)需要完成的實(shí)驗(yàn)發(fā)布任務(wù)書(shū)、實(shí)驗(yàn)操作指導(dǎo)書(shū),學(xué)生完成實(shí)驗(yàn)以后需要提交實(shí)驗(yàn)報(bào)告。學(xué)生可以與教師交流,反饋意見(jiàn)或?qū)?shí)驗(yàn)操作進(jìn)行討論。③實(shí)驗(yàn)申請(qǐng)管理:學(xué)生收到教師發(fā)布的實(shí)驗(yàn)任務(wù)書(shū)后,可以靈活安排實(shí)驗(yàn)時(shí)間,申請(qǐng)?jiān)谀硞€(gè)時(shí)間完成規(guī)定的實(shí)驗(yàn)。平臺(tái)將根據(jù)系統(tǒng)資源的申請(qǐng)情況反饋是否可以申請(qǐng)成功,如果剩下的資源不夠使用,學(xué)生需要申請(qǐng)其他時(shí)段進(jìn)行實(shí)驗(yàn)。④實(shí)驗(yàn)操作管理:提供實(shí)驗(yàn)操作入口,執(zhí)行在線(xiàn)虛擬組網(wǎng)功能,如對(duì)實(shí)驗(yàn)進(jìn)行參數(shù)配置、對(duì)配置情況進(jìn)行檢驗(yàn)等,完成組網(wǎng)實(shí)驗(yàn)的一系列操作。⑤成績(jī)管理:學(xué)生完成實(shí)驗(yàn)、提交實(shí)驗(yàn)報(bào)告后,教師需要對(duì)學(xué)生所做實(shí)驗(yàn)進(jìn)行評(píng)價(jià),給出評(píng)價(jià)等級(jí)或成績(jī)。學(xué)生可以查詢(xún)自己的成績(jī)。
在平臺(tái)安全上,通過(guò)設(shè)定不同的用戶(hù)權(quán)限,限定用戶(hù)只能在所允許的范圍內(nèi)實(shí)施操作;采用了多服務(wù)器機(jī)制,某一臺(tái)服務(wù)器出現(xiàn)故障不會(huì)影響平臺(tái)的正常訪(fǎng)問(wèn)。平臺(tái)開(kāi)發(fā)采用的是MVC(Model View Controller)模式,模塊之間的關(guān)系相對(duì)獨(dú)立,具有較低的耦合度,對(duì)平臺(tái)進(jìn)行調(diào)整或擴(kuò)展都相對(duì)容易。
五、在線(xiàn)虛擬仿真實(shí)驗(yàn)平臺(tái)的實(shí)現(xiàn)
1.平臺(tái)實(shí)現(xiàn)環(huán)境
從總體設(shè)計(jì)來(lái)說(shuō),平臺(tái)是B/S架構(gòu),對(duì)客戶(hù)端環(huán)境沒(méi)有特別的要求,只需JRE6.0以上,Chrome、IE9+、Opera、Firefox都可以作為客戶(hù)端的瀏覽器,對(duì)操作系統(tǒng)也沒(méi)有限制。服務(wù)器環(huán)境較為復(fù)雜一些,需要搭建三個(gè)服務(wù)器,即Dynamips仿真服務(wù)器、Web服務(wù)器和MySQL數(shù)據(jù)庫(kù)服務(wù)器。Dynamips仿真服務(wù)器安裝Dynamips2.8 RC、操作系統(tǒng)CentOS6.6以上。Web服務(wù)器也是文件服務(wù)器,要求Windows XP以上操作系統(tǒng)。MySQL數(shù)據(jù)庫(kù)服務(wù)器安裝SQLyog圖形化工具、MySQL5.7,操作系統(tǒng)CentOS6.6以上。另外,Applet的編譯環(huán)境要求JRE6.0以上,HTML5的編譯環(huán)境Chrome、IE9+、Opera、Firefox,操作系統(tǒng)沒(méi)有限制。
2.Dynamips設(shè)備仿真
Dynagen是Dynamips的前端,集成了Dynamips,下載其最新版本安裝,并安裝Dynamips的運(yùn)行環(huán)境WinPcap4.0及以上版本。通過(guò)Dynagen可以構(gòu)建實(shí)驗(yàn)網(wǎng)絡(luò)并進(jìn)行實(shí)驗(yàn),所生成的.NET文件包含了所需的設(shè)備配置、拓?fù)渑渲玫刃畔?,包括設(shè)備型號(hào)、IOS鏡像文件、idlepc值、插槽模塊型號(hào)、創(chuàng)建的虛擬路由器及相互連接等參數(shù),類(lèi)似Windows下的ini配置文件。通過(guò)平臺(tái)的設(shè)備注冊(cè)頁(yè)面,管理員或教師可以輸入上述參數(shù)完成某型號(hào)設(shè)備的生成,事實(shí)上注冊(cè)的目的就是要輸入生成設(shè)備的參數(shù),并將這些參數(shù)通過(guò)Web服務(wù)器寫(xiě)入數(shù)據(jù)庫(kù)[9]。通過(guò)管理已注冊(cè)的設(shè)備就可以實(shí)現(xiàn)設(shè)備的添加、修改、刪除等操作,并通過(guò)設(shè)備選擇與參數(shù)配置完成設(shè)備的互連,如圖3所示。
Dynagen的.NET配置文件是純文本文件,這里通過(guò)圖形化界面實(shí)現(xiàn)了端口分配、設(shè)備之間的互連等操作,點(diǎn)擊確認(rèn)提交配置數(shù)據(jù),保存到數(shù)據(jù)庫(kù)中。
3.網(wǎng)絡(luò)拓?fù)鋱D呈現(xiàn)
網(wǎng)絡(luò)拓?fù)鋱D是由網(wǎng)絡(luò)結(jié)點(diǎn)和它們之間的連線(xiàn)組成,數(shù)據(jù)都保存在數(shù)據(jù)庫(kù)中。結(jié)點(diǎn)的位置由前述的單環(huán)布局、雙環(huán)布局或多環(huán)布局算法計(jì)算得到,使各網(wǎng)絡(luò)結(jié)點(diǎn)合理地呈現(xiàn)在畫(huà)布上。為了呈現(xiàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),創(chuàng)建HTML5 Canvas畫(huà)布是基礎(chǔ),畫(huà)布創(chuàng)建完成后,通過(guò)設(shè)備結(jié)點(diǎn)生成方法和設(shè)備連線(xiàn)生成方法在畫(huà)布的指定位置上生成設(shè)備結(jié)點(diǎn)和連線(xiàn)。
這里使用XML文件格式表示拓?fù)浣Y(jié)構(gòu)的數(shù)據(jù)模型,主要包括了網(wǎng)絡(luò)結(jié)點(diǎn)和網(wǎng)絡(luò)連線(xiàn)兩個(gè)重要元素。當(dāng)?shù)玫降耐負(fù)浣Y(jié)構(gòu)圖不是很美觀(guān)時(shí),可以通過(guò)手動(dòng)調(diào)整,然后調(diào)用jTopo框架中的toJson()方法,將網(wǎng)絡(luò)結(jié)點(diǎn)的屬性轉(zhuǎn)化成JSON數(shù)據(jù)格式,并由后臺(tái)轉(zhuǎn)化為XML格式文件。XML格式數(shù)據(jù)還不能被JavaScript直接使用,需要將XML格式轉(zhuǎn)化為jTopo所規(guī)定的JSON格式,然后才能由JavaScript在HTML5 Canvas畫(huà)布上將網(wǎng)絡(luò)結(jié)點(diǎn)和連線(xiàn)呈現(xiàn)出來(lái)。
為了操作方便,可以在網(wǎng)絡(luò)拓?fù)鋱D添加鼠標(biāo)右鍵菜單事件方法。在網(wǎng)絡(luò)結(jié)點(diǎn)或連線(xiàn)上用鼠標(biāo)右鍵點(diǎn)擊,就會(huì)出現(xiàn)菜單,再點(diǎn)擊菜單中的選項(xiàng),就可以觸發(fā)相應(yīng)的事件處理。如圖4所示。
4.Applet Telnet遠(yuǎn)程登錄
基于Java Applet的Telnet技術(shù)對(duì)用戶(hù)來(lái)說(shuō)非常方便,不需考慮操作系統(tǒng)對(duì)Telnet的支持情況,通過(guò)瀏覽器即可遠(yuǎn)程登錄到Dynamips虛擬設(shè)備并對(duì)設(shè)備進(jìn)行配置。Applet是可以運(yùn)行在瀏覽器的Java程序組件,只需將編輯的Applet小程序打包成telnet.jar,將Applet.Java的編譯文件Applet.class嵌入到HTML中即可。由于使用了基于A(yíng)pplet的Telnet,所以Telnet的連接過(guò)程都會(huì)在A(yíng)pplet的生命周期內(nèi)完成。在啟動(dòng)Applet小程序的時(shí)候,會(huì)實(shí)例化一個(gè)圖像對(duì)象,創(chuàng)建一個(gè)可在瀏覽器上顯示的Telnet命令提示符(CMD)窗口,并建立socket連接,完成數(shù)據(jù)的讀取、轉(zhuǎn)換和傳輸。另外,由于考慮到安全性,Applet的運(yùn)行受環(huán)境限制,只允許運(yùn)行在安全環(huán)境中,需要使用數(shù)字簽名的方法來(lái)解除這種限制[10],以實(shí)現(xiàn)對(duì)本地文件的讀寫(xiě)操作。圖5是遠(yuǎn)程配置虛擬路由器的一個(gè)實(shí)例。
5.實(shí)驗(yàn)預(yù)約申請(qǐng)與管理
教師可添加、修改、刪除學(xué)生信息,也可以批量導(dǎo)入學(xué)生信息。學(xué)生登錄到實(shí)驗(yàn)平臺(tái)后,可以對(duì)自己的信息進(jìn)行修改。為了支持多個(gè)用戶(hù)同時(shí)進(jìn)行仿真實(shí)驗(yàn),在服務(wù)器資源有限的情況下,需要采用預(yù)約申請(qǐng)的方式來(lái)協(xié)調(diào)服務(wù)器資源的使用。根據(jù)申請(qǐng)與資源分配情況同時(shí)開(kāi)啟多個(gè)Dynamips服務(wù)器,并將服務(wù)器的IP地址分配給預(yù)約成功的用戶(hù),用戶(hù)即可在預(yù)約好的時(shí)間開(kāi)始進(jìn)行實(shí)驗(yàn)操作。這樣,多個(gè)用戶(hù)可以同時(shí)進(jìn)行在線(xiàn)組網(wǎng)實(shí)驗(yàn),能支持的用戶(hù)數(shù)量主要由服務(wù)器的硬件資源決定。
教師可以添加實(shí)驗(yàn)任務(wù),并對(duì)實(shí)驗(yàn)所需要的設(shè)備進(jìn)行注冊(cè)和配置。對(duì)教師發(fā)布的實(shí)驗(yàn)指導(dǎo)書(shū),學(xué)生可以下載,也可以在線(xiàn)閱讀。實(shí)驗(yàn)完成以后,學(xué)生將實(shí)驗(yàn)報(bào)告上傳,教師查看實(shí)驗(yàn)報(bào)告并結(jié)合學(xué)生所做實(shí)驗(yàn)的情況給出成績(jī)。教師查看成績(jī)時(shí),可以以班為單位對(duì)成績(jī)進(jìn)行統(tǒng)計(jì),如平均成績(jī)、及格與不及格人數(shù)等。學(xué)生只可以查看自己的實(shí)驗(yàn)成績(jī)。平臺(tái)還有一個(gè)“話(huà)題討論”模塊,教師與學(xué)生之間可以就某個(gè)主題進(jìn)行在線(xiàn)討論與交流,解答學(xué)生在實(shí)驗(yàn)中所遇到的相關(guān)問(wèn)題。
六、結(jié)束語(yǔ)
對(duì)實(shí)驗(yàn)教學(xué)效果的評(píng)價(jià)不能只看實(shí)驗(yàn)報(bào)告,了解實(shí)驗(yàn)的操作過(guò)程也很重要。網(wǎng)絡(luò)仿真軟件適用于單機(jī)環(huán)境,組網(wǎng)實(shí)驗(yàn)都是由學(xué)生獨(dú)立完成,教師掌握不了實(shí)驗(yàn)的具體操作過(guò)程,有時(shí)僅憑實(shí)驗(yàn)報(bào)告或?qū)嶒?yàn)結(jié)果無(wú)法判斷學(xué)生是否按要求完成了實(shí)驗(yàn)任務(wù)。本文采用網(wǎng)絡(luò)仿真軟件Dynamips與基于文本的前端控制系統(tǒng)Dynagen,虛擬出網(wǎng)絡(luò)設(shè)備及設(shè)備之間的互連,利用HTML5 Canvas的jTopo技術(shù)呈現(xiàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),并通過(guò)Java Web的Struts2、Hibernate、Spring三大框架技術(shù)開(kāi)發(fā)出實(shí)驗(yàn)教學(xué)管理功能,構(gòu)建了一個(gè)在線(xiàn)組網(wǎng)虛擬仿真實(shí)驗(yàn)教學(xué)平臺(tái),在充分發(fā)揮網(wǎng)絡(luò)仿真軟件優(yōu)勢(shì)的基礎(chǔ)上,實(shí)現(xiàn)了教師對(duì)實(shí)驗(yàn)操作過(guò)程的監(jiān)控以及對(duì)實(shí)驗(yàn)效果的評(píng)價(jià)。
參考文獻(xiàn):
[1]王衛(wèi)國(guó),胡今鴻,劉宏.國(guó)外高校虛擬仿真實(shí)驗(yàn)教學(xué)現(xiàn)狀與發(fā)展[J].實(shí)驗(yàn)室研究與探索,2015,34(5):214-219.
[2]胡勇華,周新蓮,廖俊國(guó),等.網(wǎng)絡(luò)應(yīng)用系統(tǒng)在網(wǎng)絡(luò)工程專(zhuān)業(yè)教學(xué)中的應(yīng)用[J].計(jì)算機(jī)教育,2014(20):74-77.
[3]劉桂開(kāi).教與學(xué)在評(píng)價(jià)之中相統(tǒng)一[J].教育教學(xué)論壇,2016(31):205-209.
[4]Dev Ramtal,Adrian Dobre.Javascript and html5 canvas basics[M].Berkeley, CA:Apress,2014:11-35.
[5]楊靜.HTML5中的Canvas動(dòng)畫(huà)研究[J].計(jì)算機(jī)時(shí)代,2016(8):47-49.
[6]胡雯,李燕.MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎探析[J].軟件導(dǎo)刊,2012,11(12):129-131.
[7]盧愛(ài)卿,張會(huì)勇,趙征.Telnet協(xié)議的實(shí)現(xiàn)原理及應(yīng)用[J].計(jì)算機(jī)工程,2002(11):268-269.
[8]劉爽,史國(guó)友,張遠(yuǎn)強(qiáng).基于TCP/IP協(xié)議和多線(xiàn)程的通信軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(7):1417-1420.
[9]Xu HongSheng,Li YongLiang,Li Chao.Application of AJAX Technology and SSH Framework in Development of Electronic Commerce System [J].Advanced Materials Research,2014(952):338-342.
[10]魏曉玲.MD5加密算法的研究及應(yīng)用[J].信息技術(shù),2010,34(7):145-147.(編輯:魯利瑞)
中國(guó)教育信息化·基礎(chǔ)教育2019年12期