P4用软件实现和硬件实现的区别

摘要:我们目前看到从可配置性有限的固定功能网络设备向具有完全可编程处理流水线的网络设备的转变。这种发展的一个突出例子是P4,它提供了一种语言和参考架构模型来设计和编程网络设备。这个参考模型的核心元素是可编程匹配动作表,它定义了网络数据包的处理步骤。在本文中,我们演示了这些表,我们使用它们来创建自己的建模框架,它们是设备性能的关键驱动因素。

P4可编程器件有各种各样的底层硬件架构,如基于CPU的系统或ASIC,代表了这两个领域的两端。基于CPU的P4目标平台性能有限,但易于扩展。ASIC P4目标拥有专用的P4处理流水线,可编程性有限,但性能高度优化。为了反映这些基本差异,我们的建模框架结合了不同的方法来精确地建模和预测支持P4的设备的性能。

01

INTRODUCTION

2014年,博斯哈特等人[1]引入了P4,一种用于软件可编程网络设备的特定领域语言。随后,各种支持P4的硬件和软件设备出现了。只要有合适的P4程序,这种设备几乎可以承担任何数据包处理任务,只受其特定硬件能力的限制。本文分析了这种高度灵活和可扩展的分组处理系统的性能,即延迟、抖动、吞吐量和资源消耗。

Dang等人[2]和Rotsos等人[3]使用基准来确定网络设备的性能。他们的结果表明,网络设备可以根据其专业化程度进行分类,例如,为特定目的构建的高度专业化的ASIC或依赖于通用处理器的灵活的基于软件的设备。

我们的论文调查了两个设备组的两个不同代表的性能。作为硬件目标,我们分析了一个专门构建的英特尔Tofino交换ASIC。由于高度的并行性和缺乏缓存,该设备在性能方面表现突出。由于其固定数量的可编程流水线级,实现了硬件目标典型的低延迟、低抖动特性。资源限制因素是所需功能的复杂性和使程序适合目标资源。我们的软件目标使用t4p4s P4编译器,它产生DPDK兼容的[4]代码,运行在商业现成的(COTS)基于CPU的系统上。这是典型的CPU系统,t4p4s行为受许多因素影响,包括中断、内存层次和缓存大小[5]。虽然实现了更低的吞吐量和更高的延迟,但优势在于P4程序的复杂性和定制功能实际上没有限制。

在P4,数据包处理任务表示为数据包或元数据上的一系列匹配和操作。作为每个P4程序的中心,匹配动作性能对于理解整个分组处理流水线的性能至关重要。因此,我们分析这个组件时特别关注不同目标平台之间的差异。基于我们的测量,我们推导出两个被调查目标平台的性能模型,反映了每个平台的单独硬件限制。

本文的贡献可以总结如下: 提供了一个关于最终用户感兴趣的属性的P4目标的细粒度分类。深入分析了P4项目的匹配动作表,最后介绍了一种基于其核心组件——匹配动作表来预测P4设备性能的新型建模技术。

本文其余部分的结构如下。第二节讨论相关工作。第三节讨论了P4的背景、关键性能指标和目标设备的特性。我们的方法和测量设置分别在第四节和第五节中介绍。随后,第六节详细阐述了我们的CPU性能模型,而第七节介绍了我们的ASIC资源模型。第八节是本文的结论。

02

相关著作

由于作为理解网络设备的性能特征的手段的基准测试的概念被很好地探索,所以存在各种相关的讨论。

Rotsos等人[3]介绍了OFLOPS,一个OpenFlow交换机的基准测试套件。他们的套件用不同的OpenFlow规则对交换机行为进行了基准测试。他们指出,OpenFlow交换机的不同硬件和软件实现之间的交换机性能有很大差异。Dang等人[2]提出了一个类似基准测试套件的想法,但专门针对具有P4功能的设备(如CPU或FPGA)进行性能评估。比较P4的广泛实施,他们仍然在他们的表现调查抽象,但集中在P4程序的组成部分。

除此之外,我们提供了针对P4表的见解,重点是P4的最新版本,即P416。

舒尔茨等人[6]对外部P4函数的不同实现方式的性能进行了深入的讨论,即加密图形散列法。它们为不同的P4目标增加了外部散列功能,即CPU、NPU和FPGA。此扩展的性能影响通过全面的基准测试进行调查,揭示了每个平台的巨大性能差异。此外,他们表明,该功能最多只需要目标总资源的2 %。在对Netronome智能网卡的P4实现的性能研究中,Harkous等人[7]探讨了报头解析和修改的影响以及匹配动作表应用的影响。他们提出了一个描述高吞吐量场景中可观察到的延迟的模型。我们通过增加研究参数的粒度来改进所提供的见解。此外,不同目标之间的比较将个人的测量放在适当的位置。Geyer等人[8]在航空电子应用的背景下研究P4。他们在不同的目标上对P4航空电子全双工交换以太网(AFDX)的实现进行了基准测试。他们的调查显示,目标平台之间的延迟不同,但延迟与现有的专用AFDX硬件相当。

P4的一个吸引人的特性,不仅仅是对航空电子设备,是它的设计促进了程序行为的简化验证,例如,在P4没有环路。刘等人[9]和内维斯等人[10]演示了使用断言来识别应用程序中的错误的程序的验证。诺特兹利等人[11]采用了一种不同的代码正确性方法。基于P4程序,他们自动创建测试用例来检查正确的程序编译。我们的P4设备模型将预测从正确性扩展到了性能

前面的例子表明,P4程序的性能是高度特定于目标的。因此,我们的论文以特定于目标的方式测量这些属性。我们的建模方法也反映了目标的特异性,提出了基于所研究平台的根本不同的硬件架构的模型,从而实现了更准确的预测。

03

可编程网络设备

> P4 Programming Language

P4提供了一种新的方法,允许网络运营商对定制的网络设备行为进行编程。这是一种以数据包为中心的语言,侧重于应用匹配动作表。抽象架构模型定义了一系列控制块。这些控制块由一个解析器(从位序列构造数据包)和它的对应部分组成,执行依赖于报头的动作和数据包修改。因此,解析器、匹配动作控制块,和deparser 描述了P4架构基本组成部分。具体来说,例如可用控制块的数量、附加元信息或附加功能的可用性,在不同的网络设备之间有所不同。因此,P4介绍了硬件的抽象表示,总结了它的设计和功能。

P4的核心是匹配动作表。它们被设计成允许组合多组关键字,例如特定的标题字段,以确定动作。表条目在运行时由控制平面提供。可以将一系列不同的匹配动作表应用于分组,以实现分组处理任务。[1]

> 关键性能指标 (Key Performance Indicator, KPI)

关键性能指标概述了网络硬件感兴趣的属性。在本次讨论中,我们区分两组关键性能指标:

P4 target selection properties P4目标选择属性是确定满足预期服务质量水平的P4目标的相关标准。这些属性包括资源消耗、功能性和设置时间(resource consumption, functionality, and setup time)。根据程序的复杂性,资源消耗可能会限制能够运行程序的潜在设备。与此相反,功能性指的是设备对标准化P4功能以及附加功能的支持——通过所谓的P4外部设备提供。如果所需的外部环境不可用,定义自定义功能的能力可以提供一个替代方案。最后,设置时间是部署和启动P4程序和设备所需的时间。假设大多数P4设备很少被提供,我们忽略这个非功能性属性(包括编译时)来进行讨论。

用性能要求选择底层硬件实现

Runtime properties 运行时属性主要通过吞吐量、延迟和抖动来定义。典型地,一个目标是最高的可用吞吐量,这仍然允许设备运行而不受分组丢失的损害。与此相反,延迟应该保持尽可能低,而数据包延迟的变化,即观察到的抖动,应该尽可能小。我们将设备入口和出口端口之间的延迟以及抖动视为该延迟的波动。

> Classes of Programmable Devices

P4可用于各种可编程器件。表1提供了使用第三节中定义的关键性能指标的概述。基于通用COTS CPU,这些系统使用软件实现来提供任意功能。虽然这通常是以性能为代价的,但它在功能性和复杂性方面提供了灵活性。CPU的处理能力限制了这些系统的吞吐量,中断和缓存效应可能会影响延迟和抖动。

NPU是一个多核架构,由针对数据包处理进行优化的内核组成。可编程网卡可以配备这样的NPU。其优化的体系结构提供了高吞吐量性能和始终如一的低延迟。然而,由于网络处理器是特殊的硬件,比固定功能的网卡有更少的尺寸,这些好处是以降低灵活性为代价的。

可通过硬件描述语言(HDLs)编程,FPGAs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值