孫天昊,李學明,鐘 將,李 佳,古 平
(重慶大學 計算機學院,重慶 400044)
通過專業認證推動工程教育改革,在高等工程教育方面提出11 項學生核心能力指標,這些能力指標旨在評價學生的綜合能力,包括溝通、合作、專業知識技能、終身學習的能力及世界觀等,為教師、學校在設計課程上提出明確方向與要求。
與此同時,面向工程教育和系統能力培養的課程教學[1-4]和實驗教學[5-11]改革正在逐步開展。計算機網絡是計算機專業本科的專業基礎課程之一,也是后續很多專業課程的基礎,了解和掌握計算機網絡知識及具備相應的應用能力對本專業學生非常重要。計算機網絡實驗是加深學生對網絡工作原理的認識,提升其從事網絡技術研究能力的重要手段。傳統計算機網絡綜合實驗主要是進行 Socket 編程,利用Wireshark 等工具進行抓包分析,或基于商用交換機進行配置組網等。這些實驗易于開展,對學生了解網絡協議和網絡設備基本工作原理有一定作用,但這些實驗把網絡設備作為“黑盒”,學生無法通過上述實驗了解網絡設備內部的工作原理,難以了解計算機網絡中最核心的路由交換原理,不能觸及IP 路由轉發等互聯網技術的精髓。2009 年,國防科技大學開設了研究生課程路由器原理與設計,并為課程實驗研制了類似NetFPGA 的可編程平臺NetMagic。NetMagic 平臺也先后在國防科技大學、湖南大學、東南大學、清華大學等高校的計算機網絡實驗教學中得到應用。為支持 SDN 交換技術的教學與科研,2016 年國防科技大學在基于NetMagic 平臺的SDN 交換機實現框架上,提出FAST(Fpga Acceleated Switching plaTform)架構,基于FAST 架構設計了25 個核心網絡實驗教學案例,基本覆蓋了以太網幀觀測、分組轉發查表、基于令牌桶的流量控制,以及SDN 交換機設計等路由交換實驗教學的全部內容[12]。
這些計算機網絡課程教學和實驗教學改革從多層級探究式學習模式、優化課程內容、完善課程體系、系統性的實驗教學改革辦法、實驗的教學方法與組織形式設計、實驗教學內容設計、實驗考核方式設計等方面進行了論述,為計算機網絡課程實驗提供了很好的建議。
面向系統能力培養的計算機網絡系統開發實驗首先利用商用網絡設備進行交換機和路由器的配置實驗,使學生對網絡系統能夠有更加直觀的認識,然后利用ZBox 開發板,從裸板開始開發實現交換機和路由器系統的核心功能,主要包括4 個實驗內容。
1)實驗一:交換機配置實驗。
主要有以太網組網實驗、VLAN 組網實驗以及協議分析。具體包括:①了解網絡協議分析的原理,并掌握網絡協議分析軟件Wireshark 的使用;②對鏈路層、網絡層、傳輸層和應用層進行報文格式分析;③通過在交換機上配置Access鏈路端口而使PC 間處于不同VLAN,隔離PC間的訪問;④在交換機間配置Trunk 鏈路端口,使同一VLAN 中的PC 能夠跨交換機訪問;⑤在交換機上配置靜態鏈路聚合,掌握靜態鏈路聚合的配置命令和查看方法。
2)實驗二:交換機系統開發實驗。
開發實現交換機核心功能:轉發表構建、數據幀接收、數據幀檢查、轉發表查找、數據幀轉發、端口的開啟/關閉、交換機功能驗證(局域網組網)等。
通過以太網交換機開發實驗可以深入了解交換機的工作原理,以及如何設計與實現一個真實的交換機系統,同時驗證交換機的基礎功能。
3)實驗三:路由協議配置實驗。
主要有靜態路由實驗、RIP 路由實驗、OSPF路由實驗以及協議分析。
具體包括:①在路由器/交換機上依次配置靜態路由、默認路由、RIP 協議和OSPF 協議,然后分別用ping 命令測試網絡的連通性;②進行RIP 和OSPF 報文結構分析;③理解RIP 和OSPF 協議的工作原理。
4)實驗四:路由器系統開發實驗。
開發實現路由器核心功能:路由表配置、數據包接收、數據包檢查、路由表查找、ARP 查找、數據包封裝、數據包轉發、基于簡單規則的包過濾、路由器功能驗證(組網)等。
通過本實驗可以深入了解路由器的工作原理,以及如何設計與實現一個真實的路由器系統,同時驗證路由器的基礎功能。
實驗一和實驗三的交換機和路由器配置實驗利用商用網絡設備進行,實驗二和四的交換機和路由器系統開發實驗基于ZBox 實驗平臺進行。ZBox 實驗平臺是一款開放可編程網絡設備[13],提供4 個千兆網絡接口和1 個管理網口,采用全可編程Zynq 7000 系列芯片,主要包括雙核ARM Cortex-A9 和FPGA 可編程硬件兩部分,一個SD 卡接口支持16GB SDHC 卡,可以存放啟動鏡像、Linux Kernel 鏡像、文件系統等,一個USB-UART 提供基本的調試信息輸入輸出。ZBox 實驗平臺如圖1 所示。

圖1 ZBox 實驗平臺
ZBox 實驗平臺硬件模塊見表1。

表1 ZBox 實驗平臺硬件模塊
1.3.1 實驗環境計算機網絡系統開發實驗通過USB 接口把開發用電腦和ZBox 實驗平臺進行連接控制。
1.3.2 主要實驗步驟
(1)交換/路由功能IP 核內容完善;
(2)更新交換/路由功能IP 核;
(3)綜合實現生成bit 文件;
(4)創建Boot.bin 啟動文件;
(5)交換機/路由器配置軟件開發;
(6)創建SD 卡啟動系統;
(7)交換機/路由器配置;
(8)交換機/路由器功能驗證。
交換機系統開發實驗在教學中的具體應用如下:第(1)—(3)步在Vivado 中完成,第(1)步中完成交換機核心功能,如交換機(數據包解析、逆向學習構建轉發表、轉發表查找等);第(2)步更新需要的IP 核;第(3)步生成FPGA 鏡像文件(bit 文件);第(4)步中BOOT.bin 文件是由Xilinx SDK 工具合成而來,包 含FSBL(First Stage Boot Loader)、FPGA 鏡像文件(bit 文件)和SSBL(Second Stage Boot Loader,即u-boot 文件);第(5)步在Linux 系統中使用Petalinux 工具生成image.ub;第(6)步將BOOT.bin,image.ub 文件拷貝到SD 卡的FAT 分區;第(7)步通過串口調試工具如putty,以及交換機配置使用switch-config 命令,可以讀寫交換機寄存器,查找表,使用ifconfig ethx up把PL 側對應的以太網端口啟動起來;第(8)步為已啟動的PL 側以太網端口連接PC,并設置PC 的IP 為同一網段,PC 之間互相ping,能夠ping 通,則驗證交換機實現交換功能。
通過該實驗,學生可以學習和掌握整個網絡設備的開發流程,特別是網絡設備功能的實現。相對于使用商用網絡設備進行驗證性實驗,學生能夠真正掌握計算機網絡的工作原理以及網絡設備的具體實現,極大地提高系統能力素質。
目前我院計算機科學與技術專業正在進行工程教育專業認證工作[14],專業認證和國際進行接軌,提高教育質量,進一步提高工程教育質量。在此背景下,需要徹底改變傳統的驗證性實驗,讓學生真正掌握網絡設備內部的工作原理,掌握計算機網絡中最核心的路由交換原理,深入IP 路由轉發等互聯網技術的精髓。依托我院正在進行的計算機網絡實驗教學改革,面向系統能力培養開展基于ZBox 平臺的計算機網絡系統開發實驗。首先在商用網絡設備上實現交換機和路由器的配置實驗,然后在ZBox 實驗平臺上從裸板開始實現以太網交換機和路由器系統的核心功能并進行驗證。通過交換機和路由器網絡系統開發實驗,培養了學生的網絡系統開發能力和從事網絡技術研究的創新能力,提升了工程教育質量。