楊海清
(浙江工業大學信息工程學院 浙江·杭州 310023)
計算機網絡是現代信息學科的一門基礎課程,在不少本科專業中作為一門專業課或專業基礎課。計算機網絡也為工程設計提供了重要方法論。譬如,計算機網絡課程開門見山就提出了層次化規劃方法,無論是 ISO/OSI協議體系還是TCP/IP協議體系都是層次化體系結構的典范。然而,計算機網絡課程教學上往往側重于從理論上講解層次化體系結構的特點和內容,缺少從工程實踐上引導學生深入運用層次化規劃理念和設計方法的條件,導致了不少學生認知模糊,找不準學習重點。為了改變這種現狀,有必要深入開展計算機網絡的教學改革,通過引入能促進學生手腦聯動的實踐項目,激發學生把理論用起來,讓知識活起來,為深入開展創新創業活動提供教學支撐。
概括起來講,計算機網絡是關于網絡結構與功能的課程。計算機網絡層次化架構既精致又復雜。精致在于其分層結構,復雜在于其分層功能。而功能又離不開結構。在網絡結構的教學上,存在兩種教學方式。以TCP/IP五層結構為例。一種是自底向上教學法,沿著物理層、鏈路層、網絡層、傳輸層、應用層先后順序,這種方式適合通信專業教學,因為通信專業有通信原理這門前導課。通信原理是物理層信號傳輸的理論基礎。從物理層入門,比較適合通信專業前后課程銜接。另一種是自頂向下教學法,顧名思義就是從應用層入門,沿著傳輸層、網絡層、鏈路層、物理層的順序進行教學。這種方式更適合一般專業教學安排,因為大學計算機教育就是從學習應用軟件開始的,從應用層入門,能由生入熟,從易到難,符合教學認知規律。我校電氣類專業的計算機網絡課程就采用這種自頂向下的教學法,較好地解決了計算機網絡結構體系如何教學的問題。
課程教學難點主要集中在網絡功能教學上。網絡功能既體現在整體層次結構上,也體現在分層上。每一層的功能是什么,如何實現其功能是教學的重點,如何讓學生學懂悟透則是教學的難點。譬如,學生常常困惑于IP地址與MAC地址的區別。實際上,網絡的每一層都有尋址問題,但不同層的尋址概念卻各不相同。教學的作用在于幫助學生建立知識聯系途徑,將感與悟結合起來,做到水到渠成。理論與實踐不是對立的關系,而應該是相輔相成的關系。課程學習既需要從理論到實踐的前向路徑,也需要從實踐回到理論的逆向路徑。如果在計算機網絡課程教學中建構起從實踐到理論的逆向路徑,與傳統課堂教學組成互補關系,不失為有益的教改探索。
無人車作為未來交通科技發展的趨勢,得到業界廣泛關注。無人車的發展對學科發展具有重要的驅動作用。作為無人車的實驗替代品,智能小車因其體積小巧、功能配置靈活、適合學生參與等諸多優點而得到教育界的青睞。目前,智能小車又是全國大學生熱門競賽之一,有不少大學課程將智能小車作為本科生教學的實驗對象。
計算機網絡課程中引入智能小車可以發揮兩方面的促進作用。一是加強了課程教學與工程應用之間的聯系。計算機網絡課程教學中引入智能小車,切入點在于智能小車與無線網絡的結合。而無線網絡正是計算機網絡課程教學的重點內容之一。
二是加強網絡層次化規劃設計方法的實踐性運用。為了降低應用TCP/IP協議技術門檻,工業界采取將傳輸層和網絡層協議集成到操作系統,將鏈路層和物理層協議做到網絡接口芯片中的辦法。應用層通過一種稱為socket套接字接口技術來實現網絡數據收發,就像拿起話筒打電話一樣方便。從應用角度來看,socket技術無疑有利于互聯網普及;但從計算機網絡課程教學來看,socket接口屏蔽了協議細節,弱化了網絡層次化理念。雖然智能小車的功能開發只是應用層上的事,但是層次化規劃設計方法可以在智能小車平臺上得以運用。譬如,智能小車的車向與車速控制、障礙測距與圖像感知、信息加工與處理、無線通信等功能開發,需要在層次化框架支撐下才能集成在一起,發揮整體功效。
基于智能小車平臺的網絡層次化規劃設計可以分成兩種模式。一種是在智能小車與包括主控機在內的環境之間建立無線局域網,簡稱車—境模式;另一種是在多智能小車之間建立短距無線通信網絡,簡稱車—車模式。
車—境模式是指將智能小車安置在一個特定的軟硬件環境中,通過建立合適的基礎網絡架構,支持智能小車與環境之間進行信息交流。車—境模式的特點是只有小車在運動,環境設施不動。為了簡化實驗復雜度,將智能小車運動范圍限制在一個無線路由器的無線覆蓋范圍內,以實驗室空間為限。圖1展示了無線局域網支撐下的智能小車與主控機之間的層次化功能模型。

圖1:車—境模式下的層次化功能模型
主控機和智能小車應用層分別通過socket套接字接口與無線路由器建立 TCP/IP協議聯系。主控機和智能小車通過靜態或動態IP地址建立socket通信。實際上,這種車—境模式實現的就是計算機網絡課程TCP/IP五層協議結構。但是,由于使用了socket套接字接口方式,TCP/IP協議被透明化,弱化了網絡層次化概念。因此,在實驗設計中,有意識地將主控機和智能小車應用層內的功能開發進行層次化安排,如圖2所示。

圖2:應用層功能開發的層次化安排
圖2左邊顯示主控機應用層的功能子層劃分,從低到高依次為通信子層、處理子層和輸入輸出子層。通信子層包含WIFI收發功能,負責將上層發來的數據以socket套接字方式傳遞給下方的TCP/IP協議;處理子層負責數據加工處理;輸入輸出子層負責人機接口,將來自處理子層的數據以適當方式展示給用戶,一般采用圖形化表達方式。
圖2右邊是智能小車應用層功能子層劃分,分別對應主控機應用層的三個子層。通信子層包含WIFI收發功能,通過socket套接字接口將下方TCP/IP協議接收到的數據發送給上方的處理子層;處理子層負責數據處理;輸入輸出子層負責對外接口處理,主要負責信息感知與運動控制兩項任務。信息感知功能負責超聲波測距、視頻圖像采集等任務;運動控制功能負責驅動小車左側輪和右側輪,車向和車速根據主控機發來的指令進行PWM控制。
將應用層劃分成三個子層,并與下方的TCP/IP協議一起組合成七層模型,較好地重現了計算機網絡層次化結構。實驗設計中體現層次化規劃方法,有助于課程教學目標的達成。
車—車模式是指將智能小車安置在一個開放的軟硬件環境中,通過建立短距無線網絡,支持智能小車群體之間的信息交流。車—車模式的特點是小車節點在相互運動,網絡拓撲不確定。筆者選擇nRF24L01無線模塊用于智能小車的無線數據通信。nRF24L01特點是1路信道發送,6路信道接收。為了簡化實驗設計,對nRF24L01無線通信僅用了1路發送和1路接收方式,而將多路接收功能開發作為學生興趣課題。小車運動范圍以實驗室空間為限。圖3展示了多小車協同運動系統的層次化功能模型。

圖3:車—車模式下的層次化功能模型
nRF24L01短距無線模塊提供鏈路層和物理層兩層通信協議(圖3)。在不需要網絡路由功能的場景下,兩層協議適合構建小規模車聯局域網。如果車聯規模較大,當小車距離超出短距無線覆蓋范圍時,就需要增設網絡層,采用類似多跳轉發的路由機制。開發網絡層路由協議的難度較大,超出了本科計算機網絡課程教學要求。因此,對于車—車模式下的網絡模式只采用單跳方式。與車—境模式類似,智能小車應用層也分成三個子層。所不同的是,將車—境模式中的WiFi收發功能替換成短距無線收發。綜合起來看,車—車模式建立了五層網絡化功能架構,也能較好地重現計算機網絡層次化結構。
基于前述車—境模式和車—車模式提供的層次化架構,我們設計了四個基本實驗。
實驗一:車—境模式下智能小車遙測遙控實驗。
該實驗的教學目的是掌握網絡層次化設計方法在車—境模式功能開發中的應用。實驗任務是:(1)完成車—境模式主控機和智能小車網絡層次化架構設計;(2)完成主控機和智能小車應用層功能設計,實現主控機和智能小車簡單數據交換;(3)功能要求:智能小車定時超聲波測距并將數據發送給主控機,主控機接收小車測距數據并在屏幕上顯示,同時根據測距數值向智能小車發送車向車速指令。
實驗二:車—境模式下智能小車運動圖像實時傳輸實驗。
該實驗的教學目的是掌握網絡層次化設計方法在車—境模式功能開發中的應用。實驗任務是:(1)完成車—境模式主控機和智能小車網絡層次化架構設計;(2)完成主控機和智能小車應用層功能設計,實現智能小車向主控機傳輸視頻數據;(3)功能要求:智能小車定時采集視頻圖像,并發送給主控機;主控機接收視頻圖像并在屏幕上顯示。
實驗三:車—境模式下智能小車感知信息實時傳輸實驗。
該實驗的教學目的是掌握網絡層次化設計方法在車—境模式功能開發中的應用。實驗任務是:(1)完成車—境模式主控機和智能小車網絡層次化架構設計;(2)完成主控機和智能小車應用層功能設計,實現智能小車向主控機傳輸視頻圖像和超聲波測距數據;(3)功能要求:智能小車定時采集視頻圖像和超聲波測距數據,并發送給主控機;主控機接收視頻圖像和超聲波測距數據并在屏幕上顯示。
實驗四:車—車模式下兩車協同運動實驗。
該實驗的教學目的是掌握網絡層次化設計方法在車—車模式功能開發中的應用。實驗任務是:(1)完成車—車模式智能小車網絡層次化架構設計;(2)完成智能小車應用層功能設計,實現前后兩車之間信息傳輸并保持兩車運動間距基本不變;(3)功能要求:前車定時超聲測距,在避障控制下自行保持勻速運動,同時接收后車發來的測距數據,在車載數碼管上實時顯示前后方測距結果;后車定時測量與前車間距并向前車發送測距數據,跟隨前車運動并保持設定間距。
我校電氣類專業計算機網絡課程是專業基礎選修課,課堂教學40學時,實驗教學8學時,其中6學時用于TCP/IP協議分析,2學時用于socket編程實現雙機數據收發,實驗內容比較簡單。本項目教改目標著眼于提高學生運用層次化功能設計理念提升解決網絡系統復雜工程問題的能力。本項目創新之處在于將智能小車引入計算機網絡課程實驗設計之中,并將教學目標定位在提升工程應用層次化設計能力上。
電子信息工程專業2017級39人參與了試點實施。實施過程分成兩個階段:第一階段為規定任務,要求學生獨立完成前述四個實驗中的兩個,教師根據完成情況給予成績;第二階段為創新設計,學生分組實驗,每組4人左右,各組自擬課題,要求內容有創新。第二階段實踐成績由10位學生評委集體打分。總評成績由第一階段的教師給分和第二階段的學生評分按比例折算合計。
實施情況如下:第一階段選擇實驗一的有39人;選擇實驗二的有32人,選擇實驗三的有5人,選擇實驗四的有2人。可以看出,由于實驗一測控數據少,比較容易實現,選擇人數也最多;實驗四由于需要用到短距無線模塊,編程上有一定的復雜性,選擇人數最少,當然教師打分時也向難度大的實驗略有傾斜。總的來說,第一階段完成情況都不錯。第二階段則是分組競賽了,共組建了10個小組。各組均在第一階段任務的基礎上,通過增加新功能來提高車—境系統或車—車系統的復雜度。新功能有自主避障、圖像循跡、目標追蹤、目標識別、可視化表達等,充分展示了學生運用網絡知識進行工程綜合設計的能力。
本項目經過一年多時間的精心設計,在我校電信專業2017級開展了試點實施。結果表明,相比原來的實驗內容,經過本項目實踐后,不僅加強了課程教學與工程實踐之間的聯系,而且在提升學生的層次化設計能力方面具有更強的針對性。下一步,計劃在實驗內容和考核方式上繼續改進,以求建立目標導向明確、實施方案先進的新型計算機網絡實驗體系。