为了解决 OpenFlow 编程能力不足的问题,Nick 教授等人提出了 P4 高级编程语言。P4 的优点主要有以下三点:
- 可灵活定义转发设备数据处理流程,且可以做到转发无中断的重配置。P4 语言具有对交换机协议解析流程和数据处理流程进行编程的能力。
- 转发设备协议无关转发。P4 可以自定义数据处理逻辑,支持下发对应的匹配和动作表项去指导交换机进行数据的处理和转发。
- 设备无关性。P4 的编译器会将通用的 P4 语言处理逻辑编译成设备相关的指令并写入转发设备,从而完成转发设备的配置和编程。
P4 的抽象转发模型如下所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/7b3c5616368347a080b215f0b09993d4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p-v6KW_5rKh56eR5rCU,size_20,color_FFFFFF,t_70,g_se,x_16)
交换机的工作流程可分为:数据包解析和数据包转发操作。P4 编译器将控制逻辑代码编译成 TDG(Table Dependency Graph),然后写入到交换机中。TDG 用于描述匹配表之间的依赖关系,定义了交换机数据处理数据的流水线。
![在这里插入图片描述](https://img-blog.csdnimg.cn/696af98a934b405aa605b7df0c6e1765.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p-v6KW_5rKh56eR5rCU,size_19,color_FFFFFF,t_70,g_se,x_16)
从图中可以看出
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)