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

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

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