孙天昊,李学明,钟 将,李 佳,古 平
(重庆大学 计算机学院,重庆 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 实验平台上从裸板开始实现以太网交换机和路由器系统的核心功能并进行验证。通过交换机和路由器网络系统开发实验,培养了学生的网络系统开发能力和从事网络技术研究的创新能力,提升了工程教育质量。