P4定义:

P4是对数据平面的协议和数据包进行编程

P4特点:

协议无关:网络设备不与任何特定的网络协议捆绑在一起。对于任何所需要数据平面协议、数据包处理行为,可用 P4进行表达

目标无关:无需关心底层硬件,即可描述数据包处理功能

现场可重配置能力强:完成交换机部署后可以对数据包处理方式再次修改

P4程序组件:

Header:头部结构决定数据格式,头部内容决定数据操作

解释器:将分组数据转化为元数据

表:匹配动作

动作:描述包头部和元数据如何被处理

流控制程序:定义数据包在不同匹配表中的跳转关系,控制程序决定了“匹配-动作”表处理数据包的顺序 #不允许一张匹配动作对同一个数据包执行多次匹配

            

P4应用:

PISA:协议无关交换机架构。PISA确定了一个用于处理数据包的小的原始指令集,以及一个非常统一的可编程流水线,用于快速连续的处理数据包头。

PISA组件:

        解释器/逆解释器:

        表:

        动作:

        元数据结构:(必须有的结构)

bmv2:P4交换机,由C++编写,通过P4c-bm

Barefoot Tofino:Tofino交换芯片是英特尔推出的全球第一款真正面向用户的全面可编程芯片

                               是业内第一个支持PISA架构的以太网交换ASIC

                                Tofino芯片为网络设计者提供了协议无关交换架构的强大功能

P4优缺点:

优点:   易于移植:P4作为所有可编程设备的开源语言

                有助于保留新IP所有权:P4程序可以由用户编写

                  有效利用资源:用户可以根据所需程序保留所需协议,删除不需要的协议           

缺点: P4控制中的数据平面和控制平面之间通信方式有限,不支持生成新的数据包