基于可编程实验平台NetMagic的路由交换原理实验教学
2016-12-21孙志刚李韬
孙志刚 李韬
摘要:基于FPGA的可编程网络实验平台对提高计算机网络教学质量,特别是计算机网络中路由交换原理的教学具有十分重要的意义。在美国,斯坦福大学研制了可编程的NetFPGA实验平台,并基于该平台开设了“Building an Internet Router”实验课程(编号CS344,以下简称CS344课程)。国内的国防科学技术大学开发了可编程网络平台NetMagic,基于NetMagic平台也同样开设了一门研究生实验课程“路由器原理与设计”。文章比较斯坦福大学CS344课程和国防科学技术大学“路由器原理与设计”课程的基本情况、课程组织方法和学生的反馈情况,总结国防科学技术大学开设“路由器原理与设计”课程7年来的经验与不足,最后提出进一步优化“路由器原理与设计”课程实验组织的思路。
关键词:可编程网络实验教学平台;路由器原理与设计;NetMagic
1.背景
高性能路由器和交换机是互联网的重要组成设备,其内部实现机制是决定互联网性能、功能、安全等多维扩展能力的关键。现有关于计算机网络的教学实验中,学生大多只能开展基于Socket的用户空间网络编程,而把网络作为一个透明的传输通道。由于IP层功能和处理机制主要体现在路由器等网络设备上,因此在网络实验中,学生难以触及IP路由转发等互联网技术的精髓。
斯坦福大学的网络技术研究一直处于世界领先地位,其诞生了第一个接入ARPANET的计算机(1969年),诞生了思科公司和第一台路由器(1985年),诞生了Openflow技术以及最早的Openflow/SDN实验环境(2008年),因此其计算机网络的人才培养与科研模式一直得到广泛关注。早在2005年,斯坦福大学在计算机网络教学中就指出:“目前设备制造商研制的高性能网络设备,如路由器、交换机和各类中间盒(Middlebox),均使用ASIC/NP/FPGA等硬件芯片实现IP层分组的处理,而学生对高性能网络设备原理的了解只限于书本,对高性能网络设备研发,特别是网络硬件的研制缺乏必要的了解,因此在就业方面缺乏竞争力”。为此,斯坦福大学在2004年春季开设了基于可编程硬件平台NetFPGAt21的实验课“Building an InternetRouter”(编号:CS344),要求在教学团队指导下,学生独立完成交换机、路由器等网络设备的原型设计。从学生的反馈来看,该课程在加深对网络设备工作原理的理解方面,特别是培养学生动手实践能力方面取得了巨大成功。
国防科技大学(以下简称国防科大)在网络技术研究,特别是高性能网络设备研制方面,一直处于国内前列。先后于2001年和2004年研制成功我国第一台具有自主知识产权的高性能IPv4路由器和第一台交换能力超过千亿比特的IPv6路由器。2009年,国防科大开设了研究生课程“路由器原理与设计”(编号:081206608),并研制了支持网络实验的可编程网络平台——NetMagic。教学团队指导研究生基于NetMagic平台开发简单的防火墙、交换机和路由器等设备原型,一方面提高了研究生网络设备研制的能力;另一方面,研究生基于NetMagic平台开发了大量应用,支撑了课题组承担的多项国家863和973课题。
2.基于FPGA平台的网络实验课程
2.1课程基本情况
具有网络接口的可编程硬件也称为可编程网络硬件,是计算机网络实验教学中开展IP层和链路层实验的基础。由于搭建可编程网络硬件平台具有一定复杂性,成本较高,且对教师自身的实验能力要求较高,因此目前高校很少基于网络硬件开展教学实验,学生接触FPGA平台大多在数字系统设计课程实验中,面向的对象主要聚焦在CPU设计上,与网络系统设计无关。
为了提高网络教学的效果,让学生毕业后能够在网络行业更加具有竞争力,一向以网络工程见长的斯坦福大学于2001年开始设计面向网络教学的实验平台——NetFPGAvl,并于2004年在研究生课程中使用。NetFPGAvl是插在专用机柜中的非标准板卡,基于Altera FPGA设计,支持8个10Mbps以太网接口,学生通过远程web的方式在该板卡上做实验,虽然实验锻炼了学生的动手能力,特别是网络硬件的设计能力,但由于NetFPGAvl硬件逻辑远程调试不便,而且非标准的板卡也不便推广,端口速率偏低,因此斯坦福大学设计了基于PCI总线和4个千兆接口的NetFPGAv2(见图1(a))。NetFPGAv2获得了巨大的成功,使基于该板卡的斯坦福实验课“Building an Intemet Router”在网络教学领域获得极大声望。
国防科技大学计算机学院长期从事高性能网络设备研制,受斯坦福大学NetFPGA和CS344课程的影响,国防科大在《研究生2009培养方案》中“计算机科学与技术”一级学科研究生培养方案中增加了“路由器原理与设计”课程(编号081206608),讲授高性能路由器等核心设备的体系结构、核心算法和案例分析,并通过基于可编程网络硬件平台,着重培养研究生从事网络设备软硬件的研制能力。
由于NetFPGA成本较高,研究生携带不方便,我们研制了网络实验硬件平台NetMagic08,专门支持研究生的课程实验。NetMagic08以AlteraFPGA为核心,具有8个千兆以太网接口,外观类似交换机,因此携带方便。NetMagic08的外观和内部电路板如图1(b)、图1(c)所示。与必须插在计算机上的NetFPGA不同,NetMagic08可以方便地部署在网络中的任意位置,学生可通过网络实现对NetMagic08的控制,因此增加了实验的灵活性。
2.2学生评价
由于通过实验可加深对网络设备工作原理的认识,积累网络设备研发经验,因此学生对基于网络硬件的实验教学评价较高。例如,文献给出了斯坦福学生对CS344课程的2条评价,“Overall it was awesome.I came in without knowing much about networks or routers.and I left with a wealth Of information.It must sound weird but I truly liked everything since I have never seenthis stuff in such detail beforehand.”(总体来说这门课有点可怕。上这门课之前,我对网络和路由器知之甚少,但课程结束后,我感觉收获很大,就像得到一笔财富。我从来没有看到能够在课前为教学做如此周全准备的教学团队。我觉得这门课真是有点不可思议,但我确实很喜欢。);“It was one of the most satisfying,interesting,and time consuming courses Ive taken at Stanford.”(这是我在斯坦福遇到的一门最令人满意,最吸引人的,但又需要花费大量时间的课程)。
参加国防科大“路由器原理与设计”课程的研究生对课程给他们带来的工程实践经验评价也很高。例如,2015年春季课程结束后,研究生对课程的2条评价,“上这门课最大的收获是动手能力的提高,另外实验环节中参与其他小组报告的讨论也帮助自己把理论课程中很多没搞懂的问题搞懂了。”“通过分组实验,我们的实践和工程能力有了进一步的提高,原来我没有做过这种不仅需要组内分工,又有组间合作的项目,本次锻炼对之后的工作和学习有所帮助”。
2.3实验教学产生的效益
由于研究生是科研中最具创新能力的群体。在实验课程学习中获得的网络设备开发经验会在他们后续的科研工作中得到应用。随着NetFPGA在教学中的成功应用,越来越多的网络研究者认识到,在高速网络技术研究中,除了基于NS-2等模拟工具外,还能以较低成本和较低复杂性进行网络设备原型系统的实现。短短几年后,全球已经有超过150个科研机构使用NetFPGA进行网络技术研究,包括实现了第一台Openflow交换机。
在国防科大,每年大概有30-40名研究生选修《路由器原理与设计》实验。随着越来越多的研究生在网络实验课程中接触并熟悉NetMagic。NetMagic也在研究生论文和国家级的科研项目中得到越来越多的应用。据统计,近五年来,国防科大有20名左右研究生在论文研究中使用NetMagic作为实验验证平台。通过百度学术搜索“NetMagic”论文,显示基于NetMagic的科研方向涉及路由器和SDN交换机设计、网络延时测量、流媒体传输质量监控、分组深度监测、网络加解密、网络入侵检测以及城域网流量仿真等多个方向。国防科大、清华大学、北京邮电大学、香港理工大学、湖南大学、东南大学等院校正在基于NetMagic平台展开研究,支撑的国家级课题(如973和863课题)超过10个。基于NetMagic的测量研究在顶级会议SIGCOMM上进行了demo演示。
3.实验教学的组织
3.1斯坦福大学CS344课程组织
斯坦福CS344课程是面向博士研究生、硕士研究生和高年级本科生开设的基于项目(Proiect-based)的课程,其主要内容就是学生分组进行基于NetFPGA平台的路由器原型开发。在课程实验中让学生接触到网络系统软硬件接口的设计,根据性能和复杂性考虑,决定哪些功能由硬件实现,哪些功能由软件实现。斯坦福大学CS344课程的主要特点有以下几个。
①分组实验,一般每组包含1名硬件设计学生,1-2名软件设计的学生,这2-3名学生完成一个独立的实验。
②教学组会在课程开始时提供硬件设计的范例(2个以太网端口的中继器)和软件开发的框架供学生参考。
③课程时间为10周,前6-8周完成老师规定的实验内容,如实现4端口的以太网交换机和IP路由器原型,后2-4周完成自选内容,如实现网络地址转换(NAT)功能、组播转发功能和访问控制列表(ACL)功能。
④课程分8周完成,每周上课时间教学组对学生上周工作进展进行检查,布置下一个节点的工作。
⑤课程结束前,每组学生对自己实现的功能进行演示和报告,教学组会邀请一些工业界的人士参加学生的演示报告,并对学生的工作进行评分。
3.2国防科大“路由器原理与设计”课程组织
国防科大于2009年开设“路由器原理与设计”课程,主要讲述高性能路由器的原理,核心算法以及工程实现需要考虑的问题等。实验内容主要基于NetMagic平台,实现简单的网络设备原型。“路由器原理与设计”课程组织的主要特点如下。
①课程为12周,每周3学时,其中前6周讲授路由器工作原理、体系结构、核心算法、网络处理器设计、路由器系统剖析等。后6周基于NetMagic平台进行课程实验。
②在实验环节,课程实验分为2-3个硬件组和5-7个软件组,每组3-4人。这些组各实现一个路由器的部分功能,教学团队负责各组实验内容的确定,主导进行组件接口的制定,各组的成果经集成后形成一个路由器原型。
③后六周每周课堂上各组汇报自己的研制方案,由教学团队进行指导和点评,各组之间也可就接口划分问题进行讨论。
④建立论坛(bbs.netmagic.org)供上课学生之间以及与教学团队之间进行交流,进行文档的共享。学生可以办理手续,从实验中心将Netmagic平台借出,在自己的宿舍进行调试。
⑤为弥补课堂学时的不足,在第6,7,8周的周末晚上,分别举办一次“Netmagic之夜”活动,由教学助理(TA,Teaching Assistant,一般由熟悉NetMagic平台使用的高年级研究生组成)向参加课程的学生介绍NetMagic平台的使用方法,软硬件开发流程,并进行典型demo展示。
⑥在课表规定的12周授课时间结束后,教学团队将选取连续多个周末组织学生进行实验联调。提供包括联调场地、TA现场指导、免费食品和饮料等一切保障,鼓励研究生完成预定的实验目标。
4.“路由器原理与设计”课程的特色与差距
4.1我们的特色
斯坦福大学CS344课程最初是国防科大计算机学院设置“路由器原理与设计”课程所仿照的目标。经过教学团队多年努力,在教学平台、教学组织和教学效果等方面,我们也逐步形成了自己的特色。
1)课堂讲授与实验相结合。
课程前半程为理论讲授,包括路由器体系结构的发展,核心算法以及典型设备剖析等,为研究生建立起网络设备的基本概念;后半程进行课程实验,提高研究生的动手能力,支持他们验证在前半程中学习到的知识。
2)强调团队协作。
与斯坦福CS344课程每组学生“单打独斗”,独立完成交换机路由器实验不同,我们将一个路由器原型拆解成多个不同的硬件模块和软件模块,每组独立完成一个功能模块的开发。课程要求组内人员应有具体分工,组间需要确定接口并实现最终联调,因此在实验中也培养了学生的工程项目组织和协调能力。
3)便携式的NetMagic平台。
由于NetMagic平台的软硬件开发环境(硬件为Altera公司的Quartus Ⅱ集成开发环境,软件为Linux系统)通过虚拟机方式可在同一台笔记本电脑上运行而相互不干扰,同时NetMagic具有易于携带的特点,因此研究生可以从实验室将NetMagic平台借出,在自己的宿舍或者图书馆等地进行调试,十分方便研究生的使用,提高了他们调试的效率。
4)强大的技术支持团队。
由熟悉NetMagic使用的高年级硕士研究生或博士研究生组成NetMagic兴趣小组,每年对参加“路由器原理与设计”的“新学员”进行辅导,包括组织“NetMagic之夜”活动,现场演示NetMagic平台的使用方案,帮助“新学员”解决开发环境安装问题,在集中联调中协助解决开发调试中的bug等。
4.2主要差距
虽然没有亲身参加和观摩斯坦福大学的CS344课程,但每次读到介绍CS344课程的论文,我们都感到“路由器原理与设计”课程与其还存在较大差距。尽管学生在课程实验中收获很大,但大部分实验小组都在课程结束前难以完成预定目标,分析原因如下。
1)教学团队能力的差距。
斯坦福大学CS344课程主讲老师为计算机系和电子工程系的Nick McKeown教授,曾在I-IP等多家公司就职,具有思科CSRl2000核心路由器设计经历,对工业界的需求具有深刻的理解,在网络设备体系结构和网络实验平台设计方面具有丰富经验,是Openflow技术的最初提出者,是软件定义网络(SDN)的主要推动者。CS344的助教团队也是人才济济,包括工程经验丰富的指导老师(例如John w.Lockwood教授,来斯坦福之前在华盛顿大学常年从事可编程FPGA平台开发),也有干劲十足的研究生助教(例如Martin Casado,后来成为公认的SDN发明人,是被VMware以12.6亿美金收购的Nicira公司的联合创始人兼CTO)。
国防科大教学团队主要老师也是我国第一台IPv4核心路由器以及其他多种型号的高性能网络设备的主要研制者,也正在从事大量相关的国家973、863项目的研制,对高性能网络设备体系结构、硬件实现等具有深刻理解,但对整个技术趋势的把握,以及与工业界的联系等方面,还有较大差距。
2)课程准备的差距。
斯坦福CS344课程具有专门的主页,上课之前给参与软硬件设计的学生准备了可参考的设计,学生不但可通过阅读这些参考设计,快速了解NetFPGA平台的软硬件开发流程和接口定义,有助于尽快理清下一步实验思路,也可以通过设计复用(如硬件接口逻辑,PCI接口逻辑),简化自己的工作量。
国防科大教学团队也在NetMagic平台上开发了标准的硬件模板,其中平台的通用逻辑,包括通用数据路径逻辑(CDP),管理模块逻辑(MM),输入控制逻辑(IM)、输出控制逻辑(OM)和DDR接口逻辑已经完成并测试通过,学生只需根据用户模块(UM)的接口规范编写实验相关的逻辑。但相比CS344课程,这些准备还有差距,主要表现在设计文档版本多但可读性不好,参考设计较多但没有提炼成易于使用的模板,对于初学者来说无从下手。
3)教学时间保证上的差距。
根据文献的介绍,参加CS344课程的学生平均每周花费在实验上的时间为10-20个小时,而前导基础较差的学生则会花费更多的时间。
在斯坦福大学选修CS344课程的学生同时选修其他课程不会超过2门,而在国防科大,研究生一般在入学后第2学期选修“路由器原理与设计”课程,而此时学生同时选修的课程较多,因此实验时间难以保证。例如,2015年春季我们的调查表明,参课学生最多同时在上8门课,最少5门,每周花费在实验上的时间最多6-8小时,最少只有2小时。由于没有足够的时间投入,最终很难达到理想的实验效果。
5.结语
下一步的工作:①进一步做好课前准备,提供可读性更好的设计文档和参考设计模版,降低学生使用实验平台的难度,提高实验的效率;②与教学管理部门沟通,将“路由器原理与设计”课程教学的实验环节调整到课程较少的暑期小学期集中开展,保证学生投入到实验的时间和精力。
此外,教学团队将以“路由器原理与设计”课程的教学和实验内容为基础,针对网络工程专业本科教学的特点,面向高年级本科生规划一门以路由器和交换机设计为核心的4-6周的综合实验课程,为进一步加强网络工程专业本科教学的实验环节提供支撑。