袁藝 聶秀山



[摘要]為進一步提升計算機網絡課程的教學效果,基于經典的啟發式教學法,課題組提出了基于網絡事件的三步啟發式教學方法:提出問題——分析問題——解決問題,并以網絡協議分析這一重要知識點為例,詳細說明了基于網絡丟包事件的三步啟發式教學方法應用案例。實踐證明,本方法的邏輯性強,適用面廣,能顯著地調動學生的學習興趣,加深對知識點的理解程度,提高應用所學知識的能力。
[關鍵詞]計算機網絡;啟發式教學法;三步;網絡事件
[中圖分類號]G642 [文獻標識碼]A [文章編號]2095-3437(2019)12-0062-03
計算機網絡是計算機相關專業本科生、研究生教育都開設的一門重要專業課程。傳統的計算機網絡教學普遍偏重于課堂知識點的講授,實踐偏少。同時,由于計算機網絡協議內容比較抽象、理解難度較大,學生的學習自信心普遍不足。此外,學生在課堂上以被動接受為主,動腦少,對很多知識點往往“知其然不知其所以然”,不能舉一反三,學習靈活度不足。
為此,曲霖潔在教材選擇、課程內容展示、實驗設置幾個方面探索了該課程的改革方向;馮偉分析了翻轉課堂在本課程教學中的優勢和局限性,并設計出基于翻轉課堂的計算機網絡課程構建步驟;王昊翔也將翻轉課堂的方式引入了計算機網絡課程教學;胡永東等提出在SPOC平臺的基礎上實現計算機網絡課程的翻轉教學,綜合運用主動學習、混合教學、問題式教學、CDIO等教學方法設計翻轉課堂,充分體現以學生的學為主的教學理念;顏學雄等擴展了基于問題教學模式的思路,具體介紹了所在課程組在計算機網絡課程理論教學中的實踐過程;郭昌建等基于MOOC課程建設的特點,設計了一個開放性強、交互靈活的計算機網絡課程微課教學系統,實現了以學習者為中心的師生多重交互分享,切實提高了教學活動的創造性和實效性;孫華提出要設計符合不同水平學生、不同功能的虛擬學習軟件,以提升形象化教學水平;徐磊也探討了利用虛擬化技術和軟件定義網絡框架,建設實驗教學平臺的方法,提出了基于單機模式建立低成本、易擴展的一體化實驗平臺的教改方案;張千等探討了在計算機網絡課程教學中開展研究性教學改革的途徑,認為引入研究性教學這一教學模式可以較好地培養學生的問題意識和創新精神,增加學生的參與度,有助于提升專業課的授課質量;劉彬也探討了基于項目教學的計算機網絡課程教學法,著重于提高學生的團隊合作能力、協同學習與公關的能力。
但由于本課程的學生層次多樣,接受新教學法的程度不同,自身的教學軟硬件條件不同,難以用一種教學法惠及所有學生。尤其是在當前特別重視本科教育的大背景下,為了切實實現“以本為本、四個回歸”,需要繼續研究教學理論與方法。為此,課題組將基于經典的啟發式教學法,探討一種針對計算機網絡課程的基于網絡事件的三步啟發式教學方法,達到了較好的實踐效果。
一、方法介紹
所謂啟發式教學,是指教師在教學過程中根據教學內容和學習的客觀規律,從學生的實際出發,采用多種方式,以啟發學生的思維為核心,調動學生的學習主動性和積極性,促使他們生動活潑地學習的一種教學指導思想。啟發式教學法源于西方的“知識的產婆”思想,不直截了當地把學生所應知道的知識告訴他,而是通過討論、實踐的方式,逐步引導學生得出最終的解決方法。采用啟發式教學,可以有效調動學生的主動性,啟發學生獨立思考,發展其邏輯思維能力,培養其獨立解決問題的能力,有利于學生認知主體作用的發揮。
針對計算機網絡課程的特點,基于啟發式教學法的基本思想,這里可提出一種由問題牽引的三步啟發式教學法,基本框架如圖1所示:
從圖1可以看出,從問題的提出到問題的解決,中間經歷了思考討論以及實例分析的環節。下面詳細介紹三步啟發式教學法的實施方法。
(一)提出問題
提出一個在當前知識背景下可能會出現的網絡現象或網絡事件,充分講解網絡現象或事件出現的原因及表現,生動地將學生帶入學習情景,由此調動學生主動思考的積極性。在此階段,教師應選擇恰當的問題,既能與已學內容銜接,又能引出新的知識點,這要求教師對教學內容融會貫通,并具備一定的實踐經驗。
(二)思考問題
針對提出的網絡事件或現象,在小組內討論解決的方法。在這一過程中,學生團體內部要有明確的分工,如討論領導者、討論記錄者、討論報告者等,教師則需擔任引導者的角色,提前準備好一系列層層深入的問題,適時引導學生積極思考。
(三)解決問題
“知之不如見之”。教師在學生積極討論并最大限度調動思考積極性的時候,引導學生進行密切觀察,再討論觀察到的結果,并結合理論知識,總結出問題解決的思想和方法。最后,應用發散性思維,對解決問題的方法進行舉一反三的運用。
二、教學案例
目前世界上最流行的網絡協議分析軟件是Wire-shark(前身為Ethereal),它是一款免費開源的數據包分析器,可以將捕獲的二進制數據流翻譯成人們容易理解的文字和圖表,同時具備強大的統計分析功能,可以用于網絡協議分析、網絡故障診斷等,支持多個平臺的使用。其中,Wireshark的故障診斷功能非常強大,例如專家信息(Expertinfo)能夠自動識別網絡中異常,并給出導致異常的具體原因,其事件包括嚴重錯誤(Errors)、一般性問題(Warn)以及可能引發故障的異常現象(Note)等。此外,Wireshark默認有一組著色規則,可以將異常數據包通過顏色高亮顯示出來。同時,Wireshark還有功能強大的圖表功能,其輸入輸出圖(IO圖)可以使用不同顏色顯示不同對話的吞吐量,發現吞吐量下降與TCP異常包的關系,還可以使用10圖的高級功能對數據包進行統計等,如圖2所示。
TCP協議是TCP/IP協議家族中出現最早的協議,TCP的連接管理、流量控制、擁塞控制是網絡協議教學中的重點和難點。
下面以TCP中的經典事件——網絡丟包事件為例,詳細說明基于網絡事件的三步啟發式教學方法的運用。
網絡丟包事件的知識背景是已知TCP數據段頭中的序列號(Sequence number)、數據載荷(Data)與下一個數據段的序列號(Next sequence number)之間的關系。在Wireshark中添加三個新的列:SEQ#,DATA,NEXT-SEQ#,可以看出這三者的關系為:NEXTSEQ#=SEQ#+DATA,關系實例如圖3所示:
第一步:問題的提出
TCP是可靠的傳輸層協議,要確保發送方的字節流準確無誤地傳送到接收方,圖4中的10414號數據包與10416號數據包是10.9.9.9連續發送的兩個數據段,10414的NEXTSEQ#與10416的SEQ#一致。而10416號數據包的NEXTSEQ#與10417號數據包的SEQ#不一致,這說明在這兩個數據包之間出現了丟包事件。
教師可以根據實際抓到的數據包,啟發學生總結出TCP丟包事件的基本特征:當Wireshark捕獲到的連續的數據包具有不連續的序列號時,可能出現了丟包事件。
第二步:問題的思考
教師組織學生分小組討論。針對TCP的丟包問題,教師可以依次提出的問題和學生可能的討論結果如表1所示:
第三步:問題的解決
丟包事件之后的實際網絡數據包截圖如圖5所示,教師引導學生仔細觀察兩個方向的數據包,并為Wire-shark增加一個列ACK#(該列標識了接收方的確認號),從而更加清晰地觀察序列號,確認號之間的關系??梢园l現發送方在丟包之后并沒有停止發包,而接收方發來的確認號始終是9164761。當發送方收到足夠多的重復確認之后,開始重傳缺失的數據段,如圖5中的第12035個TCP段。
實際的數據包告訴我們,TCP并沒有執行超時重傳,而是執行了某種快速算法,其前提條件是不斷收到重復的確認。原來,根據Van Jacobson的算法,超時重傳的時間RTO由RTT的估計值與RTT的偏移量所決定(RTO=u* EstimatedRTT+ψ*Deviation),通常該時間比較長,而TCP為了提高效率對丟包事件進行了區分對待。一種為網絡吞吐量下降為零的情況,該情況下TCP執行慢啟動算法(slow start),等到計時器超時,重傳丟失的數據包;而另一種情況為網絡吞吐量不為零的情況,該情況下TCP執行快速重傳算法(fast retransmit),而不用等到計時器超時。
最后,教師可以用一個更加深入的問題引發學生進一步思考:同樣的丟包事件,TCP層與鏈路層采用了不同的策略,這是為什么呢?
三、結語
基于網絡事件的三步啟發式教學法是傳統啟發式教學法的合理改進,符合“來源于實踐,又高于實踐”的哲學思想。經實踐證明,三步啟發式教學法既能激發學生的學習興趣,又能鍛煉學生綜合運用知識、舉一反三的能力。同時,啟發式的學習思路也能有效提高學生的團隊協作能力,為研究性學習打下良好的基礎,更好地適應將來讀研或工作的需要。