陳 黎, 饒 堅, 孫界平, 琚生根
(1. 四川大學(xué) 計算機(jī)學(xué)院, 四川 成都 610065; 2. 四川大學(xué) 外國語學(xué)院, 四川 成都 610064)
四川大學(xué)全面貫徹以創(chuàng)新創(chuàng)業(yè)為主導(dǎo)的教育理念,堅持“以人為本、德育為先、能力為重、全面發(fā)展”的教學(xué)要求,強(qiáng)化學(xué)生創(chuàng)新意識、更新能力和綜合素養(yǎng)的培養(yǎng),并把大學(xué)生創(chuàng)新創(chuàng)業(yè)和實踐能力的培養(yǎng)融入人才培養(yǎng)全過程,落實到教育教學(xué)各環(huán)節(jié)。與此同時,四川大學(xué)還抓緊建立更新教學(xué)內(nèi)容的機(jī)制,通過加強(qiáng)課程的綜合性和實踐性,并重視實驗課教學(xué),培養(yǎng)學(xué)生實際操作能力。而實踐性課程綜合實驗的設(shè)計和教學(xué)對于培養(yǎng)“雙創(chuàng)”人才更是教育的重點。其中,綜合性實驗是實驗教學(xué)的重要環(huán)節(jié),主要目的在于加深學(xué)生對理論知識和專業(yè)知識的理解,讓學(xué)生能夠用理論課所學(xué)習(xí)的知識來指導(dǎo)實驗,培養(yǎng)學(xué)生獨立分析問題和解決問題的能力[1]。
在“雙創(chuàng)”和“互聯(lián)網(wǎng)+”的時代背景下,計算機(jī)網(wǎng)絡(luò)課程,尤其是實驗課的教學(xué)改革顯得尤為重要。計算機(jī)網(wǎng)絡(luò)是計算機(jī)類專業(yè)的主干核心課程之一,是一門實踐性很強(qiáng)的專業(yè)課程。我校計算機(jī)學(xué)院一直重視計算機(jī)網(wǎng)絡(luò)實驗的教學(xué),近年來,為了提高實驗課程的教學(xué)質(zhì)量,把教學(xué)計劃從原來理論課中抽出部分時間安排實驗轉(zhuǎn)變?yōu)閷嶒瀱为氃O(shè)置課程。目前計算機(jī)網(wǎng)絡(luò)課程有48學(xué)時,配套的實驗課程有20學(xué)時。特別是在計算機(jī)網(wǎng)絡(luò)課程中,很多高校都把網(wǎng)絡(luò)實驗單獨設(shè)置課程[2-4],并且開展了計算機(jī)網(wǎng)絡(luò)實驗的教學(xué)改革。這些改革涉及到網(wǎng)絡(luò)實驗的教學(xué)內(nèi)容、教學(xué)方法等各個方面,雖然各高校的教學(xué)模式各有特色,但是都認(rèn)為綜合實驗在計算機(jī)網(wǎng)絡(luò)中的地位是非常重要的。然而,由于課時的限制,在教學(xué)改革中,很多計算機(jī)網(wǎng)絡(luò)的綜合實驗主要都是在網(wǎng)絡(luò)的設(shè)計、組網(wǎng)、配網(wǎng)等方面,市面上的網(wǎng)絡(luò)教材也主要是針對基礎(chǔ)實驗進(jìn)行教學(xué)。本文結(jié)合課程教學(xué)組多年教學(xué)經(jīng)驗,針對計算機(jī)網(wǎng)絡(luò)課程的培養(yǎng)目標(biāo),對實驗內(nèi)容進(jìn)行了重新的規(guī)劃設(shè)計,提出了綜合實驗的實驗大綱,并在學(xué)生中進(jìn)行了教學(xué)實踐,取得了較好的效果,對學(xué)生創(chuàng)新意識的培養(yǎng)和創(chuàng)新能力的鍛煉起到了很好的作用。
計算機(jī)網(wǎng)絡(luò)是一個復(fù)雜的選題,涉及了很多抽象的概念、協(xié)議,學(xué)生在學(xué)習(xí)過程中難于理解這些概念之間的關(guān)系、協(xié)議之間的關(guān)系以及協(xié)議之間的工作順序。通過計算機(jī)網(wǎng)絡(luò)實驗?zāi)軌蜃寣W(xué)生對于協(xié)議的工作過程做到“眼見為實”,有助于學(xué)生加深對理論知識的理解[5],提高分析問題和解決問題的能力。但是由于課時或者實驗條件的限制,目前本學(xué)院的計算機(jī)網(wǎng)絡(luò)實驗課程存在以下一些問題:
(1) 注重基礎(chǔ)實驗,忽略綜合實驗。計算機(jī)網(wǎng)絡(luò)的實驗課程是根據(jù)教學(xué)內(nèi)容配套相應(yīng)的實驗,這些實驗主要是針對每一章的重要協(xié)議或者原理來進(jìn)行設(shè)計的,其目的是為了輔助課堂的教學(xué)。這些基礎(chǔ)實驗,無論是協(xié)議分析實驗,還是模擬器上的虛擬實驗都只針對單個原理或者單個協(xié)議,例如,HTTP實驗通過對HTTP報文的分析,讓學(xué)生了解HTTP協(xié)議的工作原理,而HTTP的請求報文如何通過發(fā)送方發(fā)送到網(wǎng)絡(luò),網(wǎng)絡(luò)如何把報文傳送給接收方的過程在基礎(chǔ)實驗中是無法得到體現(xiàn)的。
(2) 依賴虛擬實驗,忽略實物實驗。由于交換機(jī)、路由器 、網(wǎng)絡(luò)協(xié)議分析儀等實驗設(shè)備昂貴,而且更新?lián)Q代速度也很快,實驗教學(xué)都難以更新和追蹤最新網(wǎng)絡(luò)技術(shù),滿足不了課程對學(xué)生知識、技術(shù)和研究能力方面的[6-7]需求。近年來,越來越多的高校逐漸將實驗重點放在了如何利用模擬器來替代實物設(shè)備完成各項實驗,如Packet Tracer[8-10]、NS2[6]。虛擬實驗雖然可以避免設(shè)備老化、設(shè)備落后帶來的一系列問題,確實能夠讓學(xué)生在模擬器中去模擬各種實驗,但是,有的時候模擬器中的虛擬實驗并不能真正模擬現(xiàn)實世界的網(wǎng)絡(luò),特別是協(xié)議分析實驗或設(shè)備配置實驗與真實環(huán)境仍然存在很大的差異。所以,導(dǎo)致學(xué)生在面對真實網(wǎng)絡(luò)出現(xiàn)故障時,仍然不能發(fā)現(xiàn)問題、解決問題。
(3) 缺乏對知識的融會貫通。在協(xié)議分析實驗中,基礎(chǔ)實驗主要針對各個協(xié)議進(jìn)行分析,例如FTP實驗一般只針對FTP協(xié)議的工作原理、報文格式、標(biāo)題行的內(nèi)容進(jìn)行分析從而了解協(xié)議的工作過程。但FTP在完成傳輸過程中,并不是從發(fā)送主機(jī)就直接發(fā)送FTP報文,而是通過ARP、DNS等一系列報文的發(fā)送才可能發(fā)送出FTP的報文。再簡單的網(wǎng)絡(luò)傳輸過程,都需要很多的協(xié)議協(xié)同才能完成,單個基礎(chǔ)實驗,不能讓學(xué)生領(lǐng)略網(wǎng)絡(luò)中報文傳輸?shù)恼鎸嵾^程。因此,當(dāng)學(xué)生面對網(wǎng)絡(luò)現(xiàn)象分析問題時往往無所適從,更談不上去利用理論知識有效解決問題。
計算機(jī)網(wǎng)絡(luò)實驗課程,是培養(yǎng)計算機(jī)專業(yè)學(xué)生網(wǎng)絡(luò)實踐能力和創(chuàng)新能力的一個重要教學(xué)環(huán)節(jié),其目的是為了加深理解計算機(jī)網(wǎng)絡(luò)的理論知識以及利用理論知識解決現(xiàn)實世界中的網(wǎng)絡(luò)問題,通過綜合實驗的訓(xùn)練使學(xué)生逐步提高計算機(jī)網(wǎng)絡(luò)的實踐能力,培養(yǎng)學(xué)生獨立分析問題和解決問題的能力,提高學(xué)生學(xué)習(xí)的積極性。計算機(jī)網(wǎng)絡(luò)綜合實驗的設(shè)計原則[8-10]如下。
(1) 理論和實踐相結(jié)合。計算機(jī)網(wǎng)絡(luò)理論課的教學(xué)核心是“協(xié)議”,但不是簡單地了解協(xié)議,而是通過對各種協(xié)議的學(xué)習(xí),最終讓學(xué)生了解網(wǎng)絡(luò)中數(shù)據(jù)的傳送過程。因此,在綜合實驗設(shè)計過程中,要讓學(xué)生知道對協(xié)議的學(xué)習(xí)不僅僅是對理論知識的學(xué)習(xí),而是要通過它們來指導(dǎo)實踐,能夠具體解決網(wǎng)絡(luò)中出現(xiàn)的問題。因此,教師設(shè)計綜合實驗的時候需要明確實驗的目的是針對哪些知識點、要鍛煉學(xué)生的什么能力,從而設(shè)計合理的綜合實驗。
(2) 虛實結(jié)合。虛擬實驗有實物實驗不可比擬的優(yōu)勢,但是也存在一些問題,所以設(shè)計綜合實驗可以采用虛擬和現(xiàn)實相結(jié)合的思路。一方面學(xué)生可以利用協(xié)議分析工具獲取真實網(wǎng)絡(luò)環(huán)境下各種應(yīng)用傳輸過程中發(fā)送和接收的數(shù)據(jù)包,通過分析協(xié)議的工作原理加深對知識點的掌握,達(dá)到“眼見為實”的效果;另一方面學(xué)生還可以利用模擬器去設(shè)計、搭建網(wǎng)絡(luò)及排除網(wǎng)絡(luò)故障來鍛煉動手能力,達(dá)到“身臨其境”的效果。通過虛實相結(jié)合的綜合性課程設(shè)計將各個基礎(chǔ)實驗的知識點融會貫通,以此來幫助學(xué)生循序漸進(jìn)地逐步提高對計算機(jī)網(wǎng)絡(luò)理論知識的認(rèn)知能力和實踐應(yīng)用能力。
(3) 提高學(xué)生的創(chuàng)新能力。綜合實驗應(yīng)該以項目形式分發(fā)給學(xué)生,并提出實驗希望達(dá)到的目的,而實驗的方法步驟應(yīng)該交由學(xué)生自行進(jìn)行設(shè)計,而不應(yīng)該像基礎(chǔ)實驗?zāi)菢訉W(xué)生照著教師給出的實驗步驟按部就班地完成。學(xué)生應(yīng)該根據(jù)實驗的目的自行設(shè)計實驗過程和實驗步驟并完成實驗。
(4) 實驗過程“做”和“思”的有機(jī)結(jié)合。實驗設(shè)計過程中,應(yīng)該根據(jù)教師設(shè)計實驗的目的設(shè)置一些問題,特別是Wireshark抓包實驗,這些協(xié)議分析實驗相比配置實驗來說,操作步驟簡單很多。這類實驗的重要意義在于對捕獲到的數(shù)據(jù)包進(jìn)行分析,從捕獲數(shù)據(jù)包中去分析協(xié)議的過程。為此,針對這樣的綜合實驗,首先在設(shè)計中,需要從整個數(shù)據(jù)傳送的過程來考慮,不能只分析單個實驗,應(yīng)該分析每一層所涉及協(xié)議的工作情況;同時應(yīng)該根據(jù)實驗考查的知識點為學(xué)生設(shè)計相應(yīng)的題目,讓學(xué)生根據(jù)這些題目有的放矢地去分析捕獲的數(shù)據(jù)包。這樣的綜合實驗對于學(xué)生把整個通信過程的知識點融會貫通是非常重要的。
基礎(chǔ)實驗要充分展現(xiàn)基礎(chǔ)性、實踐性,其主要任務(wù)就是打牢基礎(chǔ),讓學(xué)生了解網(wǎng)絡(luò)實驗的基本方法及常規(guī)的實驗項目。課程組設(shè)計的計算機(jī)網(wǎng)絡(luò)各類基礎(chǔ)實驗主要包括:
(1) 應(yīng)用層。Web服務(wù)的配置和HTTP協(xié)議分析、FTP服務(wù)器的配置和FTP協(xié)議分析、郵件協(xié)議的分析、DNS服務(wù)器的配置和DNS協(xié)議分析、基于TCP和UDP網(wǎng)絡(luò)編程。
(2) 傳輸層。TCP協(xié)議分析和UDP協(xié)議分析。
(3) 網(wǎng)絡(luò)層。DHCP服務(wù)器配置和協(xié)議分析、ICMP協(xié)議應(yīng)用分析、路由器配置、路由協(xié)議配置。
(4) 鏈路層。ARP協(xié)議分析、VLAN配置。
綜合性實驗指對兩個方面的綜合:知識點上的綜合和實驗手段上的綜合。為此,課程組設(shè)計了4個綜合性實驗,串聯(lián)各個基礎(chǔ)實驗,從不同的角度去鍛煉學(xué)生的綜合能力。綜合性實驗采取項目方式,3、4個學(xué)生組成一個項目組,完成綜合實驗。綜合實驗的目的是鍛煉學(xué)生解決問題的能力,因此不需要像基礎(chǔ)實驗?zāi)菢咏o出明確的實驗步驟,只給出要求學(xué)生需要完成的內(nèi)容和達(dá)到的目的即可。小組的成員根據(jù)基礎(chǔ)實驗的學(xué)習(xí)或通過自學(xué)方式了解綜合實驗所涉及的各個基礎(chǔ)部分的方法,自行設(shè)計方法步驟來達(dá)到實驗?zāi)繕?biāo)。
在Packet Tracer中搭建校園網(wǎng),熟悉DHCP、NAT、VLAN、DNS、Web等服務(wù)的配置方法。
實驗工具:Packet Tracer。
實驗要求:
(1) 在校園網(wǎng)內(nèi)部搭建Web服務(wù)器、DNS服務(wù)器,校園網(wǎng)用戶和校園網(wǎng)外部用戶均可使用域名訪問Web服務(wù)器;
(2) 校園網(wǎng)內(nèi)部不同網(wǎng)絡(luò)之間采用3層交換機(jī)連接,校園網(wǎng)和公網(wǎng)的連接使用路由器;
(3) 校園網(wǎng)內(nèi)的寢室、圖書館、辦公區(qū)等所有的主機(jī)使用私有地址,除了服務(wù)器以外,客戶端主機(jī)要求通過DHCP自動分配地址;
(4) 校園網(wǎng)的網(wǎng)關(guān)路由器使用靜態(tài)路由配置;
(5) 要求實現(xiàn)校園網(wǎng)外部的主機(jī)能夠?qū)π@網(wǎng)內(nèi)部的Web服務(wù)器訪問。
邏輯演算所面臨的挑戰(zhàn)是如何給程序一個語義解釋。這不是為了使命題是真的或者是假的,而是為了說明計算的狀態(tài)變化,或者任意的進(jìn)程。一階指派語義更加適合,允許基于程序執(zhí)行和指派間的持續(xù)轉(zhuǎn)換關(guān)系的組合定義:
實驗課時:3課時。
實驗意義:將網(wǎng)絡(luò)層的協(xié)議和應(yīng)用層協(xié)議的配置綜合起來,鍛煉學(xué)生設(shè)計網(wǎng)絡(luò)、組網(wǎng)和網(wǎng)絡(luò)配置的能力。學(xué)生需要根據(jù)實驗要求,考慮校園網(wǎng)應(yīng)該使用什么設(shè)備,設(shè)備需要配置什么協(xié)議來支持需求。學(xué)生在實驗過程中,需要考慮內(nèi)網(wǎng)IP和外網(wǎng)主機(jī)通信要使用NAT,3層交換機(jī)中需要配置VLAN。在進(jìn)行網(wǎng)絡(luò)層協(xié)議的學(xué)習(xí)過程中,可以安排這樣的綜合實驗,把理論和實際問題綜合起來。
這個實驗的設(shè)計是受到James F. Kurose[11]中5.9 a day in the life of a web request的啟發(fā)。通過利用Wireshark捕獲從客戶端主機(jī)發(fā)送HTTP請求到得到HTTP響應(yīng)報文,獲取Web頁面的過程中進(jìn)入和離開客戶端主機(jī)的數(shù)據(jù)包,并對數(shù)據(jù)包進(jìn)行分析,要求學(xué)生通過這個實驗?zāi)軌蛴行崂砭W(wǎng)絡(luò)通信過程的規(guī)律。該綜合實驗需要進(jìn)行Web服務(wù)器配置、DNS服務(wù)器配置等實物實驗,還要求捕獲數(shù)據(jù)包并進(jìn)行分析。
實驗工具:Windows Server 2008,Wireshark。
實驗要求:
(1) 通過Windows Server 2008中的IIS服務(wù)配置WEB服務(wù);
(2) 通過Windows Server 2008配置DNS域名服務(wù);
(3) 客戶端主機(jī)通過域名訪問Web服務(wù)器;
(4) 實驗前,ARP、DNS以及Web的緩存必須全部清空;
(5) 列出整個過程所用到的協(xié)議以及協(xié)議使用的順序,分析各個協(xié)議的工作情況。
課時:3課時。
實驗意義:該綜合實驗完成了Web服務(wù)和DNS服務(wù)器的配置。重要的是捕獲數(shù)據(jù)包及對數(shù)據(jù)包的分析。通過分析,可以幫助學(xué)生了解應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層如何工作。通過對數(shù)據(jù)包傳送過程的分析,學(xué)生能夠了解數(shù)據(jù)包發(fā)送之前需要有ARP協(xié)議進(jìn)行IP和MAC的解析工作,在發(fā)送HTTP報文之前,需要通過DNS協(xié)議進(jìn)行域名解析。通過解析得到服務(wù)器IP地址以后,使用TCP協(xié)議進(jìn)行三次握手,才能發(fā)送HTTP報文。這樣的綜合實驗對于學(xué)生了解協(xié)議的工作原理是非常重要的。單一分析HTTP報文不能讓學(xué)生了解數(shù)據(jù)傳送的整個過程。在實驗的編排過程中,教師可以針對實驗設(shè)置各種問題來幫助學(xué)生有的放矢地分析報文,以便能夠深入了解協(xié)議的原理。
在局域網(wǎng)內(nèi)部,以Windows為配置環(huán)境搭建SMTP和POP3服務(wù)器,完成電子郵件的發(fā)送和接收過程。在這個過程中,利用Wireshark捕獲數(shù)據(jù)包,深入理解掌握SMTP、MIMIE以及POP協(xié)議的工作原理,同時了解郵件地址的域名解析過程。
實驗工具:Windows Server 2008,Visendo SMTP Extender_x64,foxmail,Wireshark。
實驗要求:
(1) 利用Windows Server提供的SMTP服務(wù)搭建SMTP服務(wù)器;
(2) 使用Visendo SMTP Extender Community工具,搭建POP3郵件服務(wù)器;
(3) 在Windows Server下配置DNS郵件域名;
(4) 在foxmail中完成郵件的發(fā)送和接收服務(wù);
(5) 用Wireshark分別在客戶端主機(jī)以及SMTP郵件服務(wù)器之間捕獲數(shù)據(jù)包。
課時要求:3課時。
實驗意義:該綜合實驗的目的是希望學(xué)生能夠體會郵件服務(wù)的“三步曲”,郵件發(fā)送到發(fā)送者的郵件服務(wù)器,再發(fā)送到接收者的郵件服務(wù)器,最后接收者從自己郵件服務(wù)器中獲取郵件。這個實驗不僅需要進(jìn)行相應(yīng)服務(wù)的配置,還需要在不同地方獲取數(shù)據(jù)包,來真實感受郵件發(fā)送的過程。在這個實驗中采用了DNS來進(jìn)行發(fā)送,主要目的是讓學(xué)生了解在郵件服務(wù)器使用域名時,是通過MX記錄進(jìn)行域名解析,這和4.2中Web的域名解析使用A記錄是不同的。
使用Python編寫一個簡單的爬蟲,并學(xué)會如何解析Web頁面。
實驗工具:Python。
實驗要求:
(1) 以http://finance.sina.com.cn/ 作為種子,爬取新浪財經(jīng)版的網(wǎng)頁信息;
(2) 對于獲取的頁面,提取URL,加入待爬取隊列;
(3) 從捕獲的頁面中選擇有表格的頁面,學(xué)習(xí)如何從Web頁面中提取結(jié)構(gòu)化信息。
課時要求:3課時。
實驗意義:網(wǎng)絡(luò)爬蟲是目前最重要的網(wǎng)絡(luò)應(yīng)用,通過設(shè)計和實現(xiàn)一個簡單的爬蟲,讓學(xué)生了解爬蟲的基本原理。包括如何能夠從Web服務(wù)器中抓取頁面,爬蟲的抓取標(biāo)準(zhǔn)是什么?如果服務(wù)器拒絕抓取的原因是什么,如何解決?最后通過從Web頁面抽取信息,讓學(xué)生了解如何從Web頁面中獲取有用的信息。
綜合實驗的教學(xué)經(jīng)過教學(xué)實踐取得一定的成效。學(xué)生把每一個綜合實驗當(dāng)作一個創(chuàng)新項目來做,自己動手、自己思考、自己設(shè)計,鍛煉了學(xué)生的實踐能力、提高了綜合素質(zhì),特別是對于理論知識的深入理解起到了重要的作用。但是也遇到一些問題:如果基礎(chǔ)實驗和綜合實驗同時完成,需要更多的課時;實驗課時的安排偏早,不利于綜合實驗的安排等。在實踐教學(xué)中,舍棄了編程實驗,將基礎(chǔ)實驗中協(xié)議分析內(nèi)容放在理論課的作業(yè)部分完成,盡量將課時留給綜合實驗。在綜合實驗的實踐過程中,學(xué)生逐漸學(xué)會了如何設(shè)計實驗、如何利用網(wǎng)絡(luò)工具對網(wǎng)絡(luò)現(xiàn)象進(jìn)行分析、如何利用RFC文檔對捕獲數(shù)據(jù)包進(jìn)行分析、如何排除網(wǎng)絡(luò)故障(如解決網(wǎng)絡(luò)ping不通的情況)等。經(jīng)過2屆學(xué)生的教學(xué)實踐,學(xué)生感覺在綜合實驗中受益匪淺,在雙創(chuàng)實踐中奠定了扎實的專業(yè)技術(shù)基礎(chǔ)。