网络实验教学是计算机专业网络课程的重要组成部分。现有网络实验课程主要集中在设备操作与协议验证,对网络底层,如路由器或交换机的体系结构、工作机制及工作原理等涉及较少[1,2]。教师受限于固化的硬件,难以编程设计或优化底层设备,实验教学主要围绕步骤化的验证性实验展开。随着软件定义网络(Software Defined Networking,SDN)技术的发展,上述困境逐步得到缓解。SDN作为新型网络架构,将控制平面与数据平面分离,控制平面通过OpenFlow协议制订和下发转发策略,数据平面按策略转发[3]。然而OpenFlow不具有协议不相关性,使数据转发只能依据现有的协议[4]。而P4(Programming Protocol-Independent Packet Processors)的问世,克服了OpenFlow的上述缺陷。
作为SDN领域的编程语言,P4为数据平面提供了一套编程抽象,开发者可以使用P4描述网络数据平面协议和数据包处理行为,而无须关心底层硬件的实现细节,并可编程更改数据包解析与转发流程,解决了传统网络硬件设备可编程能力低的问题[5,6]。已有越来越多高校将SDN引入计算机网络教学,并探索将P4作为SDN的重要组成部分引入课堂,解决当前网络实验教学无法涉及底层设备架构与可编程的问题[7,8]。但是,现有的P4从开发到部署运行,配套的集成运行环境较为缺乏,严重依赖于控制平面的复杂配置,难以满足初学者的仿真实验学习要求。因此,如何简化控制平面的复杂配置,设计简便的P4集成仿真实验环境,将教与学的精力集中于数据平面可编程,成为保障P4实验教学顺利实施的重要课题。
1 P4虚拟仿真实验教学平台的设计与实现
2 P4虚拟仿真实验教学方案
3 结语
面对网络新技术的发展,传统计算机网络实验教学课程相对滞后,师生难以对网络底层设备的设计与优化实现编程控制。P4推动了SDN数据平面可编程,成为高校SDN课程教学中的重要一环。虽然P4提供了数据平面可编程能力,但在开发、部署和运行的过程中,依赖于控制平面的复杂配置。本文提出了面向数据平面P4编程的虚拟仿真实验教学平台,并以建立拓扑和修改流表实验为例,展示了平台为P4程序运行提供图形化的网络拓扑和动态的可视化流表管理。平台有助于提升SDN课程的教学质量,促进了P4实验教学的推广。
参考文献
[1] 琚生根,陈黎,周刚,等.“计算机网络”实验课程的教学探讨[J].实验技术与管理,2013(4):159-161,165.
[2] 肖明,石泽顺.计算机网络实验课程的探索与改革[J].计算机教育,2016(4):103-106.
[3] 张朝昆,崔勇,唐翯祎,等.软件定义网络(SDN)研究进展[J].软件学报,2015(1):62-81.
[4] 郑浩.P4编程理论与实践—理论篇[EB/OL].(2018-10-10)[2019-02-28].https://www.sdnlab.com/22466.html.
[5] Bosshart P, Daly D, Izzard M, et al. P4: programming protocol-independent packet processors[J]. ACM SIGCOMM Computer Communication Review,2014,44(3):87-95.
[6] The P4 Language Consortium. P416 Language Specification [EB/OL].(2017-05-22)[2019-02-28].https://p4.org/p4-spec/docs/P4-16-v1.0.0-spec.html.
[7] 叶进,冯露葶,何华光,等.基于虚拟化技术的软件定义网络实验教学方案[J].实验室研究与探索,2017(3):79-82.
[8] 徐磊.基于软件定义网络的计算机网络课程实验教学研究[J].计算机教育,2017(5):150-153.
[9] 李呈.RYU入门教程[EB/OL].(2017-05-17)[2019-02-28].https://www.sdnlab.com/1785.html.
[10] Ryu Official. GettingStarted[EB/OL].[2019-02-28].http://ryu.readthedocs.io/en/latest/getting_started.html.
[11] Mininet Team. Download/Get Started With Mininet[EB/OL].[2019-02-28].http://mininet.org/download/.
林为伟1,2 张栋1,3 叶福玲1,2 1.福州大学数学与计算机科学学院 2.福州大学网络信息安全与计算机技术实验教学中心 3.福州大学至诚学院 |