0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

P4:网络转发平面编程

星星科技指导员 来源:volansys 作者:Komal Shah 2022-12-08 16:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着物联网设备的巨大增长、数据流量的增加、新协议以及私有云和公共云的不断增长,网络世界的创新步伐正在加快。网络的未来已经超越了分离SDN的数据和控制平面,而是在ASIC深处对转发逻辑进行编程。现在,技术正在从传统的固定架构硅开关转向灵活的可编程开关。新的可编程ASIC允许支持自定义协议以及现在和未来的协议。这需要新的更高级别的域特定语言来简化转发平面的写入。每个ASIC制造商都必须提出自己的自定义语言,这更多地依赖于硬件架构。将转发平面逻辑从一个网络ASIC制造商移植到另一个制造商将需要大量的努力,而且非常痛苦。这产生了对独立于底层硬件和协议的标准语言的需求。

什么是P4?

P4(独立于编程协议的数据包处理器)是一种特定于域的开源编程语言,专为编程可重新配置的网络管道而设计。P4语言是公共语言,由 p4.org 联盟开发,该联盟包括网络,云系统和学术机构领域的各种公司。最初,P4是为网络交换机的数据平面编程而设计的,但其范围已扩大到涵盖可编程网络元素,例如硬件或软件交换机,网络接口卡,路由器或其他数据包处理系统。

P4 编译器:P4 如何独立于目标?

从过去几年来看,很明显,任何网络设备中数据平面处理的数据包大致可以分为三个基本阶段。1)解析器块:负责数据包识别和提取,2)控制块:负责匹配+操作,3)解析器:负责形成所需的出口数据包。网络芯片就是以这种方式构建的,并且是独立于协议的。P4 是可以为任何目标设备编译以指定如何在数据平面中处理数据包的语言。P4 编译器的体系结构通过分离语言和目标模型来帮助使其独立于目标。P4 具有前端开源和后端松散,使其独立于目标。每个芯片供应商都可以实现自己的编译器后端以映射到其硬件架构。P4 的架构还有助于通过定义自己的模型,然后编写 p4 后端来支持相同的硬件细节。

pYYBAGORo1aAS3fEAAC2MRXtKbc530.png

图 1:P4 编译器体系结构

每个芯片制造商只需要拥有与其硬件兼容的P4编译器工具链,用户可以独立于供应商的依赖编写自己的P4程序,在不影响速度的情况下进行编译和运行。用户只需要专注于实际的数据包处理逻辑,而无需担心底层硬件。编译器将为硬件生成运行时代码。图 2 显示了 P4 为数据平面编程提供的核心组件。

pYYBAGORo1yAaPv6AAD9jGhreWo497.png

图 2:P4 组件

P4 有何益处?

适用于所有可编程网络设备的开源语言。易于携带

由于P4程序可以由用户编写,因此有助于保留新IP的所有权。现在不再需要与芯片供应商或有时他们的客户共享新功能规范,从而保留知识产权保护

P4 使新协议的部署变得更加简单,消耗的时间更少

在不同应用程序中使用的网络设备需要不同的协议集。使用 P4,用户可以根据其应用程序仅实现所需的协议,并删除其应用程序不需要的协议。因此,可用资源可以得到有效利用

编程数据平面现在使用软件,您可以使用P4编写程序,在硬件上进行编译和加载,从而提供诸如软件重用,数据隐藏,库创建,硬件和软件组件分离,轻松软件升级和轻松调试等好处

使用 P4 的挑战

自定义专有语言可以更好地控制可编程网络硬件,因为它仅为此而设计。P416 确实支持 extern 方法以满足此类自定义硬件特定要求,但在 P4 中使用 extern 使其不那么便携

哈希、ECMP、组播、广播、镜像、排队、调度和校验和等功能很少非常依赖于硬件。使用通用 P4 解决所有目标并完全访问硬件很困难

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

P4开辟了很多机会,并改变了网络芯片的设计方式。P4架构给出了设计完全可编程芯片的示例模型和想法。展望未来,所有传统交换机将很快转换为具有完全软件定义数据和控制平面的可编程交换机。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20148

    浏览量

    247109
  • 交换机
    +关注

    关注

    23

    文章

    2868

    浏览量

    103914
  • 编译器
    +关注

    关注

    1

    文章

    1669

    浏览量

    51080
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何使用ipv4_nat模块实现SNAT转发

    ;, 0}; cmd_ifconfig(5,argument_list1); 问题:在自己的PC机器上设置了一个路由 route ADD -p 172.16.100.59mask
    发表于 09-29 06:08

    网络配线架选择平面的还是斜口的呢

    在选择配线架时,平面(直口)和斜口(45°或15°斜面)的设计各有优缺点,具体选择需根据实际需求、安装环境、维护频率等因素综合考量。以下是详细对比及建议: 一、平面配线架(直口) 特点: 端口呈水平
    的头像 发表于 09-15 09:57 329次阅读

    汽车电子开发必看:基于Perforce P4实现ISO 26262合规认证的版本管理解决方案

    目前全球唯一通过ISO 26262认证的版本控制系统Perforce P4!从代码管理到审计追溯,保障研发的每一步都经得起严苛审核。龙智正在为更多车企和零部件厂商提供合规支持,欢迎交流~
    的头像 发表于 09-09 14:38 2050次阅读
    汽车电子开发必看:基于Perforce <b class='flag-5'>P4</b>实现ISO 26262合规认证的版本管理解决方案

    逐点半导体携手真我为P4系列智能手机带来旗舰级视觉体验

    专业的图像和显示处理方案提供商逐点半导体今日宣布, 新发布的真我P4 5G、真我P4 Pro 5G智能手机搭载逐点半导体 X7 Gen 2视觉处理器。该处理器通过集成的分布式渲染解决方案,可降低
    的头像 发表于 08-30 16:58 900次阅读

    还在用“大砖头”调试ESP32-P4?3cm*6cm ESP32P4-TINY开发板来了,开源!便宜!好用!

    的ESP32-P4芯片,双核RISC-V、360MHz主频,性能强到能跑图像处理、多任务并行,但市面上很多开发板为了堆性能,做得像块砖……我们当时就想:能不能既榨干P4
    的头像 发表于 08-28 18:03 960次阅读
    还在用“大砖头”调试ESP32-<b class='flag-5'>P4</b>?3cm*6cm ESP32<b class='flag-5'>P4</b>-TINY开发板来了,开源!便宜!好用!

    【汽车行业案例】重型汽车制造商Scania:采用版本管理平台Perforce P4实现敏捷交付与合规审计

    汽车行业案例】揭秘重型卡车巨头如何用Perforce P4构建单一可信源,实现敏捷交付与合规审计。
    的头像 发表于 08-07 17:30 1055次阅读
    【汽车行业案例】重型汽车制造商Scania:采用版本管理平台Perforce <b class='flag-5'>P4</b>实现敏捷交付与合规审计

    汽车开发团队必看:汽车软件开发的五大挑战及应对解决方案Perforce P4

    Perforce P4作为唯一通过ISO 26262认证的版本控制系统,凭借其强大的分支管理、全球协作能力与DevOps集成,正为全球领先车企提供高效、安全、可追溯的数据管理支撑。
    的头像 发表于 07-24 11:30 640次阅读
    汽车开发团队必看:汽车软件开发的五大挑战及应对解决方案Perforce <b class='flag-5'>P4</b>

    游戏、汽车、影视制作等行业大厂都在用的版本控制解决方案:Perforce P4 六大核心优势

    版本控制早已不只是“管理代码”——它已成为支撑多团队协同开发的核心平台。Perforce P4 凭什么成为全球领先企业的首选?本文从性能、安全、扩展性等维度一一为你剖析。
    的头像 发表于 07-10 15:22 592次阅读
    游戏、汽车、影视制作等行业大厂都在用的版本控制解决方案:Perforce <b class='flag-5'>P4</b> 六大核心优势

    【版本控制教程】如何使用Unreal Engine 5 + UE源代码控制(Perforce P4

    项目越大,越需要靠谱的版本控制系统。Perforce P4不仅是Epic官方推荐的源代码控制工具,更是大厂团队协作的核心支持之一。如何配置P4+UE?手把手教你怎么用↓↓↓
    的头像 发表于 06-25 11:22 1144次阅读
    【版本控制教程】如何使用Unreal Engine 5 + UE源代码控制(Perforce <b class='flag-5'>P4</b>)

    Git vs Perforce P4:版本控制系统选型指南(附适用场景、团队类型)

    Git适合小团队灵活开发,而Perforce P4更擅长管理大型项目与二进制资产。但你真的了解它们各自最适合的使用场景吗?或许不是“非此即彼”,而是“如何共存”,推荐一读!
    的头像 发表于 06-19 17:04 1075次阅读
    Git vs Perforce <b class='flag-5'>P4</b>:版本控制系统选型指南(附适用场景、团队类型)

    主流版本控制工具Git vs Perforce P4:架构模式、性能、大文件管理及分支管理对比详解

    Git vs Perforce P4,如何选型?架构模式、性能、大文件管理、分支策略四大维度对比,帮你全面了解两者的核心差异,选择更合适你团队需求的版本控制系统。
    的头像 发表于 06-13 14:52 578次阅读
    主流版本控制工具Git vs Perforce <b class='flag-5'>P4</b>:架构模式、性能、大文件管理及分支管理对比详解

    直观易用的版本控制客户端:Perforce P4 One简介及常见问题解答

    P4 One界面简洁、操作直观,特别适合处理图像、3D模型、视频等二进制资产的创意团队。无论是P4老用户还是新手,都能快速上手,关键是——完全免费!
    的头像 发表于 06-05 10:12 739次阅读
    直观易用的版本控制客户端:Perforce <b class='flag-5'>P4</b> One简介及常见问题解答

    Perforce P4产品简介:无限扩展+全球协作+安全管控+工具集成

    P4中文版产品简介,由龙智整理,欢迎下载&交流探讨。来看看为什么3A游戏、虚拟制片、半导体团队都在用P4进行版本控制。还未用过的小伙伴,也欢迎联系免费体验!
    的头像 发表于 05-30 13:32 568次阅读
    Perforce <b class='flag-5'>P4</b>产品简介:无限扩展+全球协作+安全管控+工具集成

    【版本控制】Perforce P4服务器安全配置指南(附常见漏洞、详细配置参数)

    安全提示近期,Perforce产品安全团队发现部分暴露在公网的P4(原HelixCore)服务器存在潜在的配置风险,可能导致源代码泄露或未经授权的访问。网络安全是Perforce的首要任务。作为
    的头像 发表于 05-21 17:15 645次阅读
    【版本控制】Perforce <b class='flag-5'>P4</b>服务器安全配置指南(附常见漏洞、详细配置参数)

    Perforce品牌及产品名更新:涵盖版本控制Perforce P4(原Helix Core)、静态代码分析Perforce QAC(原Helix QAC)等

    Perforce推出全新P4平台及P4 One客户端!从广为人知的“P4”到Helix Core到Perforce P4,此次品牌重塑是一次初心回归,也是对开发者和数字创作团队需求的深
    的头像 发表于 03-28 15:04 1104次阅读
    Perforce品牌及产品名更新:涵盖版本控制Perforce <b class='flag-5'>P4</b>(原Helix Core)、静态代码分析Perforce QAC(原Helix QAC)等