为了解决 OpenFlow 编程能力不足的问题,Nick 教授等人提出了 P4 高级编程语言。P4 的优点主要有以下三点:
- 可灵活定义转发设备数据处理流程,且可以做到转发无中断的重配置。P4 语言具有对交换机协议解析流程和数据处理流程进行编程的能力。
- 转发设备协议无关转发。P4 可以自定义数据处理逻辑,支持下发对应的匹配和动作表项去指导交换机进行数据的处理和转发。
- 设备无关性。P4 的编译器会将通用的 P4 语言处理逻辑编译成设备相关的指令并写入转发设备,从而完成转发设备的配置和编程。
P4 的抽象转发模型如下所示:

交换机的工作流程可分为:数据包解析和数据包转发操作。P4 编译器将控制逻辑代码编译成 TDG(Table Dependency Graph),然后写入到交换机中。TDG 用于描述匹配表之间的依赖关系,定义了交换机数据处理数据的流水线。

从图中可以看出,从解析器模块解析出来的数据先经过了虚拟路由标识(Virutal Routing Identification)表,再经过路由表,基于匹配的结果,将数据包跳转到二层交换表或者三层接口表进行处理,最后还要经过接入控制表的处理,从而完成数据包的
P4是一种高级编程语言,解决OpenFlow编程能力限制,提供灵活的数据处理流程定义,支持协议无关转发和设备无关性。它由Header、Parser、Table、Action和Control Program组成,允许在不更换设备的情况下更新交换机的处理逻辑。P4编译器将程序转化为设备无关的TDG,并映射到转发设备上,推动SDN的发展。
订阅专栏 解锁全文

2639

被折叠的 条评论
为什么被折叠?



