首页 » 软件开发 » 益思芯知识讲堂 | 什么是P4编程语言?(编程语言协议解析报文讲堂)

益思芯知识讲堂 | 什么是P4编程语言?(编程语言协议解析报文讲堂)

少女玫瑰心 2024-07-24 10:06:04 0

扫一扫用手机浏览

文章目录 [+]

P4背景

2014年,Nick McKeown领导的斯坦福大学研究团队在SIGCOMM Computer Communication Review上发表论文,P4: Programming Protocol-Independent Packet Processors,提出了P4网络编程语言,主要用在网卡、交换机、路由器等网络设备上,允许用户编程来控制报文在数据平面转发行为。

经过近10年的发展,P4已经成为事实上的一个在网络应用领域标准的编程语言。
P4是一个开源的,针对于网络行为级别的专用编程语言,相对Verilog/VHDL这种电路行为级别的编程语言, 或者C/C++等通用计算编程语言,P4针对网络应用业务的开发效率有数量级的提升。

益思芯知识讲堂 | 什么是P4编程语言?(编程语言协议解析报文讲堂) 软件开发
(图片来自网络侵删)

当前,由CPU、GPU、DPU构成的“3U一体架构”,已成为数据中心基础架构的发展趋势,DPU智能网卡作为第三大功能组件,需要满足多样化应用场景需求,P4网络编程语言是满足DPU可编程性的最佳选择。

P4架构

P4架构图

P4 Program深蓝色框图是用P4语言写的程序,作为专门针对网络应用的高级语言,工程师会非常容易的在短时间内完成满足业务需求的代码编写。
在交换、路由设备中会有大量的L2转发,L3路由处理代码,在智能网卡中会有大量的流表处理代码。

P4程序写完后,就可以用P4编译器对代码进行编译。
编译结果产生两个文件,一个是要下载到硬件中的二进制目标文件,由硬件读取、解析、执行来完成相应的报文处理业务;另一个是硬件做报文转发时所需的表项格式信息,P4 Runtime 软件会根据这个文件把正确的表项下发到硬件中。

图中浅蓝色的部分都由P4标准组织提供的规范,而绿色部分则是和具体的厂家硬件实现相关。
P4编译器前端也是一个规范的实现,编译器的后端需要厂家自己来实现,从而生成和硬件设计相对应的可执行文件。

P4生态系统

P4生态图

P4生态系统增长迅速,目前已有超过50个企业会员和15家高校科研机构加入,共同推动P4的建设和商业应用。
P4生态系统采用了自上而下的模式,上面是应用相关,下面是硬件相关,广泛利用P4的产品、项目和服务。

P4数据面特点

1. 可以实现现有协议的解析、处理功能;

2. 可以自定义数据包结构;

3. 可以在现有协议的基础上进行新的功能扩展;

4. 软件风格开发——协议处理的开发模式类似于软件开发;

P4数据面要素

1. Parser

2. Match Action Table (MAT) & Deparser

3. Control flow code

Parser

数据包到达Switch的时候,Parser解析器解析提取报文Header中的关键字。
这个过程,可以通过P4编程的Parser模块进行处理。
P4中的Parser解析器模块,包含了定义所支持的各种协议头(Header)格式的存储器,以及进行逐层协议解析的执行机构。
该执行机构依据预定义的协议头格式,提取协议头中关键信息,并且判断下一层起始位置和协议类型,以确定报文解析的下一步操作,直至解析结束。

Match Action Table(MAT) & Deparser

Match Action Table是由Controller通过南向协议进行下发,匹配模式可以包含精确匹配,模糊匹配和最长匹配三种模式;Match Action Table提供了表以及如何查表,查表之后进行怎样的动作也都完全由P4程序来实现,称为P4 Deparser,用户可以根据特定需求通过P4编程完成数据处理的Action,包括转发、封装解封装、包头更新等。

Control flow code

类似C程序中的条件逻辑处理结构,这部分的可编程化,把网络数据面的单一功能变得更加自主和智能化,不再是仅完成简单的IP或者某个特定字段的匹配,而是一个相对复杂的可控流程,可以是多个匹配任务的连续,也可以对数据包的包头进行修改,增加,删减等动作。
所谓的协议解析和转发策略一切变得跟软件开发一样简单。

关于我们

益思芯科技(上海)有限公司(简称:益思芯科技)成立于2020年7月,总部位于中国上海漕河泾新兴技术开发区。
团队由国内外网络、交换、存储领域的核心专业人员组成,在网络、交换、存储及高性能CPU等领域具有深厚的技术实力。

公司致力于为通信、互联网行业提供领先的存储与网络芯片解决方案,旨在成为一家具有国际竞争力,以创新引领行业发展,参与制定行业标准的高科技创新公司。

END

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0