目录
一、P4背景
(1)何为P4?
P4 是一种高级语言,用于编程与协议无关的数据包处理器。它可与SDN 控制协议(如 OpenFlow)结合使用,使网络更加灵活,并能够适应新应用、新协议的快速发展需求。它提高了网络编程的抽象级别,并可以作为控制器和交换机之间的通用接口如图1所示。
(2)P4 的目标:
1、可重构性:控制器应该能够重新定义字段中的数据包解析和处理。
2、协议独立性: 交换机不应与任何特定的网络协议绑定。
3、目标独立性: 程序员应能独立地描述数据包处理功能,而不依赖于底层硬件的具体情况。
(3)P4为什么诞生?
最开始OpenFlow接口很简单,但是随着发展,该规范变得越来越复杂(参见表1),具有更多的标头字段和规则表的多个阶段,以允许交换机向控制器公开更多功能。在技术人员看来,未来的交换机应该支持解析数据包和匹配报头字段的灵活机制,允许控制器应用程序通过通用的开放接口,但是对新一代交换芯片进行编程远非易事,因此P4---一种用于独立于编程协议的分组处理器的高级语言,就随之而诞生了。