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

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

3天内不再提示

解惑P4编程语言的常见误区

电子设计 来源:SDNLAB 作者:张渐修 2020-12-04 11:55 次阅读

作者简介:张渐修,任职于上海同悦信息科技有限公司从事SDN/P4交换机的市场推广工作。

OpenFlow从诞生之日起就与SDN划起了等号,时至今日仍然有用户在寻求SDN方案时潜意识在寻求OpenFlow的支持。实际上,随着SDN的逐步演进,软件定义网络更多是一种设计思路与设计理念,SDN网络的设计经历了螺旋式发展。近几年SDN之父Nick教授身体力行的开始改造OpenFlow,网络设备第一次和计算设备一样具有了可编程的能力。和OpenFlow刚刚面世一样,用于网络设备编程的P4编程语言也存在众多误解。本文的主要目的就是解惑P4编程语言的几个常见误区。

误区一:P4就是Openflow2.0

这一误区产生的主要原因是斯坦福大学的Nick Mckeown教授在OpenFlow之后马不停蹄地开始P4的设计与推广,因此很容易让人以为P4就是OpenFlow的新版本。虽然两者之间是超集的关系,但是P4绝不是已经停止更新的OpenFlow新版本。

由ONF组织推动的OpenFlow在发展到1.6版本后停止更新,ONF组织也历经与On.Lab和P4.org两大组织的合并。OpenFlow本身只是SDN南向接口的一种,是控制器向转发设备传递命令的一种方式;而P4 (Programming protocol-independent packet processors)则是一种编写协议无关的包处理器的高级编程语言,它可以令设备实现OpenFlow同样的功能,但是它的愿景远不是仅仅实现更灵活的openflow,它要给予数据平面与计算平面一样无与伦比的可编程性。传统上无论是OpenFlow设备还是非OpenFlow设备大部分都是按照固定流水线执行指令,在芯片现有功能内闪转腾挪而不能越雷池半步。P4语言则是要打破藩篱,让数据平面设备也具备在线实现新功能的能力。尤为与FPGA这种现场可编程门阵列不同的是,FPGA提供的是半定制电路,需要采用VHDL或者Verilog等语言来实现硬件的重构,每个逻辑单元的功能在重编程(烧写)时确定。

所以P4是数通芯片的新一次尝试,与OpenFlow只是定义一个南向接口截然不同。

误区二:只有Tofino芯片可以支持P4

这个误区仍然与Nick教授有很大关系。Nick作为SDN之父在看到OpenFlow面临的诸多落地困局后于2013年的ACM SIGCOM发表《Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN》一文,并且作为创始人成立了Barefoot公司。因此Barefoot公司推出的Tofino系列芯片天然支持P4。但是一个好汉三个帮,即使Nick宣称可编程的数据芯片存在诸多优点,在商业落地时也面临行业巨头的打压与客户的质疑,因此P4语言并不是Nick或者Barefoot公司的私有产品,它由P4.org社区运作推广,希望借助社区的力量来找到应用场景和市场,近期P4社区刚刚与ONF组织合并。

目前支持P4编程的数据平面芯片既可以是传统的网络处理器(NPU),也可以是上文提到的FPGA芯片,更不用说在CPU上可以模拟P4的各种行为,还有大神在GPU上开展P4的研究工作。

误区三:P4只支持可编程芯片

P4语言并不是学术界灵光闪现的成果,它是业界在OpenFlow的前期探索后的成果,谷歌在其中发挥了重大作用。时至今日谷歌现网仍然有很多运行OpenFlow协议的设备,因此当网络走向可编程走向更加开放,如何利旧就是个现实问题。而P4作为一种语言本身就是对网络行为的描述,所以只要能够让传统非可编程网络芯片可以理解由P4定义的转发流水线就能让传统芯片也支持P4定义的行为。

目前谷歌的SDN网络正在向可编程迈进,传统设备通过抽象层的转译也可以支持P4语言,因此传统厂商支持P4不是不行而是可为不可为的问题,毕竟业界老大哥携压倒性市场份额狂奔在另一条路上。

误区四:P4语言是Python一样的高级语言

P4虽然是高级语言但是属于针对特定领域的DSL语言,它和Python等计算机高级语言相比有很大的差别,首先P4语言需要考虑物理资源的限制,P4最终管控的是资源有限的数据平面转发芯片,所以注定不会像CPU所处的计算平面具有超高的外置Memory资源;也正是这个原因,p4代码并不具备高级语言的通用移植性,在A平台的可运行代码在B平台不一定可以工作,所以每个支持P4语言的厂家都会提供自家产品的架构模型和编译器,用户需要在编译时选择相应物理平台来实现可落地的代码。

P4-16版本推出的目的就是提升目标无关性,通过语言与架构分离和灵活的数据模型支持多种目标设备。

误区五: P4代码就是SDN

如同基于OpenFlow实现的SDN,其最重大的改进是逻辑上的集中控制,在大规模数据中心和WAN网络接入这种全局视角可以更好的解决网络拥塞等传统网络的问题。利用P4来实现可编程的设备,他们完成的也只是数据平面的工作,实现报文的转发流程还需要控制平面的参与。因此在OpenFlow时代诞生了OpenDaylight和ONOS等SDN控制器项目;P4语言的协议独立意味着不会原生支持任何协议,P4语言只是描述报文头部格式以及程序中需要的协议字段。所以并没有解决控制层面的问题。P4优化了数据平面的实现,但是控制层面的工作一点也不能少。

无论是采用传统OSPF/BGP路由协议,或者是沿用SDN控制器都可以实现对P4设备的控制。Opendaylight和ONOS都提供远程控制插件,可以Runtime实现控制流的发送。

P4的诞生是SDN演进的自然结果,如同OpenFlow刚刚出现面临的不解一样,P4作为新生事物也存在一些误区,相信随着P4-16的推出以及P4.org与ONF的合并,P4将获得更多的关注与落地。当然这一切也取决于Intel的态度。

编辑:hfy

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

    关注

    21

    文章

    2625

    浏览量

    99337
  • 可编程芯片
    +关注

    关注

    0

    文章

    51

    浏览量

    18613
  • python
    +关注

    关注

    56

    文章

    4784

    浏览量

    84502
  • sdn
    sdn
    +关注

    关注

    3

    文章

    254

    浏览量

    44768
收藏 人收藏

    评论

    相关推荐

    逻辑异或的常见误区及解决方法

    逻辑异或(Exclusive OR,简称XOR)在理解和应用过程中,确实存在一些常见误区。以下是对这些误区的分析以及相应的解决方法: 一、常见误区
    的头像 发表于 11-19 09:56 162次阅读

    编程语言误区常见问题

    误区一:编程语言的选择 常见问题: 初学者在选择编程语言时,往往会被市场上的热门
    的头像 发表于 11-15 09:35 217次阅读

    三星平泽P4一期产线调整:将同时生产DRAM和NAND Flash

    据韩国媒体报道,三星电子已决定调整其平泽园区P4产线第一期的产能分配,以应对市场需求的快速变化。这一决策标志着三星电子在半导体生产策略上的重要调整。
    的头像 发表于 11-13 14:19 224次阅读

    eda的常见误区和解决方案

    探索性数据分析(EDA)是数据分析过程中的重要步骤,它涉及对数据的初步检查和分析,以便更好地理解数据集的特征和结构。 误区1:忽视数据清洗 常见误区: 在没有彻底清洗数据的情况下就开始进行EDA
    的头像 发表于 11-13 10:59 261次阅读

    P4在SDN中的重要性

    ,数据平面依赖于固定功能,仅能使用有限数量的协议来转发数据包。P4(独立于编程协议的数据包处理器)语言的出现使得对SDN数据平面进行编程成为可能,这将SDN推向了一个新的水平。
    的头像 发表于 11-06 10:10 243次阅读
    <b class='flag-5'>P4</b>在SDN中的重要性

    混合动力系统构型P0到P4介绍

    在混合动力技术的不断演进中,不同的动力系统构型为汽车工业注入了新的活力。每一种构型都具备独特的技术特点和应用场景,从P0到P4,本文将深入探讨每种构型的优势与挑战,为读者提供全面而深入的了解。 1
    的头像 发表于 09-16 12:09 783次阅读
    混合动力系统构型<b class='flag-5'>P</b>0到<b class='flag-5'>P4</b>介绍

    三星平泽P4/P5芯片工厂建设延期至2026年

    三星电子近日宣布,其位于韩国平泽的P4/P5芯片工厂建设计划将发生重大调整,原定于加速推进的项目现已决定推迟至2026年。这一变动旨在优先保障位于美国得克萨斯州泰勒市的晶圆厂建设,显示出三星在全球产能布局上的战略调整。
    的头像 发表于 09-04 17:00 650次阅读

    小区户外P4全彩高清LED广告屏性能特点和显示效果解析

    户外全彩LED显示屏的发展历史悠久,几年前的小区户外P10是户外广告传媒的“宠儿”,但随着生产工艺的进步,客户对清晰度的要求越来越高,户外P3、P4应运而生,接过P10/
    的头像 发表于 09-04 15:25 278次阅读

    鞍山163.18平米户外P4条栅屏安装完工

    近期,我公司在鞍山成功完成了一项特殊项目——163.18㎡户外P4条栅屏的安装,这一项目的圆满完成,不仅展示了我们的技术实力,更体现了我们对品质及细节的追求。鞍山P4户外LED条栅屏安装完工单条立式
    的头像 发表于 09-04 15:14 197次阅读
    鞍山163.18平米户外<b class='flag-5'>P4</b>条栅屏安装完工

    三星确认平泽P4工厂1c nm DRAM内存产线投资

    据韩国媒体最新报道,三星电子已正式确认在平泽P4工厂投资建设先进的1c nm DRAM内存产线,并预计该产线将于明年6月正式投入运营。这一举措标志着三星电子在半导体技术领域的又一次重要布局。
    的头像 发表于 08-13 14:29 498次阅读

    P4 Suite for FPGA面市 P4 Suite for FPGA主要功能解析

              基本简介 P4 Suite for FPGA是一款 综合性工具套件, 可在数字网络的不同领域提供广泛功能,该套件能够以高达200 Gbps甚至更高的数据传输速率支持FPGA。这一
    的头像 发表于 07-25 14:55 934次阅读

    三星P4工厂战略调整:优先建设存储器产线

    在半导体产业风云变幻的当下,三星电子再次做出重大战略调整,宣布其平泽P4工厂的建设重心将发生转变。据韩媒最新报道,由于代工业务经营状况的持续恶化以及设计变更等复杂因素,三星电子决定暂停P4工厂第二期
    的头像 发表于 07-17 10:47 519次阅读

    使用P4和Vivado工具简化数据包处理设计

    电子发烧友网站提供《使用P4和Vivado工具简化数据包处理设计.pdf》资料免费下载
    发表于 01-26 17:49 0次下载
    使用<b class='flag-5'>P4</b>和Vivado工具简化数据包处理设计

    plc常见编程语言有哪几种

    PLC(可编程逻辑控制器)常见编程语言有五种,被称为IEC 61131-3标准编程语言。这些
    的头像 发表于 01-24 17:59 5707次阅读

    MES需求六大常见误区

    电子发烧友网站提供《MES需求六大常见误区.docx》资料免费下载
    发表于 12-21 11:08 0次下载