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

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

3天内不再提示

如何实现DPU加速数据包转向逻辑呢?

丽台科技 来源:NVIDIA英伟达 2023-09-19 10:00 次阅读

NVIDIA DOCA 框架旨在简化 NVIDIA BlueField DPU 和 ConnectX 智能网卡的编程和应用程序开发。它通过 SDK、运行时二进制文件和高级 API 提供与网络应用程序相关的高级抽象构建块,使开发者能够快速创建应用程序和服务。

NVIDIA DOCA Flow 是 DOCA 框架中最新更新的一组软件驱动程序和一个转向库。它在用户空间中运行,并能够从 CPU 卸载与网络相关的操作。这又使得应用程序能够以低延迟来处理高数据包吞吐量的工作负载,从而节省 CPU 资源并降低功耗。

DOCA Flow 还有效地优化了 BlueField DPU 和 ConnectX 智能网卡的利用率。DOCA 是释放 BlueField DPU 加速引擎潜力的关键,而 DOCA Flow 允许快速访问加速引擎以实现数据包转向逻辑。

简化并加速开发

DOCA Flow 提供 C 语言库 API,用于定义基于硬件的数据包处理流水线,抽象化了 BlueField DPU 和 ConnectX 智能网卡的硬件功能。这使开发者能够为数据中心和云网络构建高性能和可扩展的应用程序,以编程的方式定义和控制网络流量,实施网络策略,并有效管理资源。

DOCA Flow 补充并扩展了 DPDK 的核心编程功能,提供了专为 NVIDIA BlueField DPU 和网卡量身定制的额外优化功能。此外,DOCA Flow 还提供了实现基本数据包处理流水线的构建块,从而简化了网络堆栈的复杂性,可用于流行的网络用例以及更复杂的用例,例如:最长前缀匹配(LPM)、IPsec 加解密,以及创建或修改访问控制列表(ACL)中的条目。

使用预先创建的网络构建块可以让您专注于创建应用程序,而无需编写低级的数据包处理例程。这减少了上市时间,并使您能够专注于应用程序的核心,因为构建块已经针对性能进行了有效优化。DOCA Flow 构建块使软件开发更加简单,各种经验级别的开发者都可以使用。

为什么需要 DPU

现代工作负载和软件定义网络导致 CPU 核心上产生巨大的网络开销。数据中心和云网络现在的起始速率是 25 或 100 Gbps,并向 200 甚至 400 Gbps 扩展,这需要 CPU 核心以极高的速度处理网络流量的分类、跟踪、处理和转向。

计算虚拟化通过在主机虚拟机和容器之间内部生成更多的东/西流量来增大网络需求,并增加 Overlay 网络封装和为分段来与其他服务器或存储设备进行外部通信。因此,对 CPU 增加了更多的网络需求。

CPU 核心成本高昂,并且不太适合高效的网络数据包处理。高带宽任务消耗了更多的 CPU 核心,给服务器宝贵的计算基础设施带来不必要的压力,否则这些基础设施可以更有效地用于租户工作负载和应用程序数据处理。

相比之下,像智能网卡和 DPU 等专用硬件经过专门设计,可以有效地处理大规模的快速数据移动,与标准 CPU 相比,可以降低功耗、散热和总体成本。

执行管道

DOCA Flow 库提供的 API 可以使用 BlueField DPU 和 ConnectX 智能网卡中的硬件功能来构建通用和可重复使用的执行管道,其中每个管道可能包括匹配标准(数据包分类)和一组操作。

分类能够识别应该应用相应逻辑的传入数据包,而操作则会有所不同,并实现适合每个数据包分类的逻辑。使用分类和操作作为构建块为开发硬件加速的网络应用程序(包括网关、防火墙、负载均衡器等)提供了一种灵活的方法。

如前所述,DOCA Flow 执行管道中的操作各不相同,例如:对 MAC 地址应用网络地址转换(NAT)逻辑、更改源或目的地 IP 地址、应用 Overlay 封装、更改报头字段、增加计数器以测量流量等数据包操作。操作可能包括通过使用策略监控流量,将流量转发到不同的队列——软件队列或发夹目标、端口镜像或数据包采样以进行调试和合法拦截,以及丢弃数据包以强制执行策略或访问控制——所有这些都完全卸载到 DPU 或网卡硬件。

管道可以通过从一个管道到另一个管道的转发操作链接在一起,以形成一个完整的转向树,其定义了传入数据包的路径。在对数据包执行预定义操作之后,数据包可以被转发到另一个管道以进行进一步的操作或检查,也可以被转发到软件队列、硬件发夹队列或者被发送或丢弃。

16ea475e-5690-11ee-939d-92fbcf53809c.png

图1:管道链接构建网络逻辑,因为每个管道都处理唯一的标准、操作和转发,从而形成数据包控制的转向树

转向树

通过实现通用网络功能逻辑,可以使用转向树在 DPU 或网卡上创建基于硬件的网络应用程序。这使得数据包能够被有效地分类,从而可以对每个数据包应用适当的操作。使用转向树概念提供了多种好处,包括:

为每个数据流定制处理逻辑

将数据包定向到特定操作或目的地的通用性

自适应结构,可根据不断变化的条件轻松调整大小

灵活的框架,允许添加新的管道类型,以满足不断发展的需求

优化资源使用,最大限度地减少冗余,实现共享匹配和操作

NVIDIA DOCA Flow 用例

在为 BlueField DPU 和 ConnectX 智能网卡开发网络流水线时,DOCA Flow 是简化应用程序开发工作的基本要素。用例适用于企业数据中心、电信和云环境,尤其是那些专注于需要高效数据包处理的网络基础设施和安全的环境。

此外,它被设计用于处理涉及以极高的速率建立和删除流水线的场景,并且每秒可以管理数百万个数据包交换。其适用于软件定义网络应用程序、数据分析、虚拟交换、人工智能推理、网络安全和其他数据包处理应用程序。它支持基于预定策略或其他标准的接收、检查报文头和有效负载、跟踪连接以及检查、重新路由、复制或丢弃数据包之类的操作。

Open vSwitch 虚拟交换机

Open vSwitch(OVS)通过编程扩展实现了大规模的网络自动化,旨在实现虚拟机(VM)和容器等虚拟化环境中的高效网络交换。通过 DOCA Flow,可以在用户空间数据平面中实现 DPU 加速虚拟交换机(vSwitch),允许任何配备 DPU 的服务器充当网络交换机、路由器或有状态负载均衡器。

这不仅提供了将 vSwitch 用于多个 VNF 的灵活性,同时也显著提高了小数据包吞吐量并降低了延迟,从而通过增强 DPU 的网络性能来加速通信,并助力连接用户的南北流量,以及 AI 和分布式应用程序的东西流量。

下一代防火墙

现代防火墙需要以更高的速率检查数据,以应对新的威胁。然而,随着网络速度的提高,CPU 上的负载会增加。这可能导致延迟增加、数据包丢失和网络吞吐量降低。要在不牺牲延迟的情况下支持更高的速度和更严格的安全要求是非常复杂的,并且部署足够多的传统防火墙来处理增加的流量是成本高昂的。

DOCA Flow 支持为每台托管 DPU 的服务器开发智能网络过滤器。借助此过滤器,流量的解析和转向将基于预定义的策略,且不会产生 CPU 开销。它可以用于创建分布式下一代防火墙(NGFW),通过使用 DPU 上的专用加速器和 Arm 核心来根据适当流过滤和转发数据包,以及管理 NGFW 的数据平面卸载和控制平面,每台服务器可以实现接近 100Gbps 的吞吐量。

使用 DOCA Flow 可以提供一种经济高效的解决方案,将数据包处理从 CPU 卸载到 DPU,以超越传统硬件解决方案的方式提高性能并降低成本。它在不牺牲服务器性能的情况下提供了高级安全功能,如入侵防御。它还可以在网卡/ DPU 中实现更快的网络流量检查。

虚拟网络功能

DOCA Flow 可以加速虚拟化网络功能(VNF),如路由器、负载均衡器、防火墙、内容交付网络(CDN)服务等。电信供应商可以通过开发在 BlueField DPU 上运行的 VNF 来替换专有硬件,并在商用服务器上执行虚拟化工作负载。

通过使用 DPU 进行 VNF 加速,实现了更高效、更灵活的解决方案,与商用服务器相比,减少了设备、空间、散热和电力需求。所有这些都有助于解决基于冷却和空间的限制,为 5G、人工智能、物联网和边缘计算带来新的机遇。

边缘应用程序

DOCA Flow 是需要高网络速度和 I/O 处理能力的边缘工作负载的理想解决方案,例如内容交付网络和视频分析系统。边缘的主机应用程序可以使用 DOCA Flow 进行设计,在安装在通用服务器中的 DPU 上运行,从而消除了对昂贵的专有硬件设备的需求。通过使用 DPU 加速和 Arm 核心,需要更少的服务器 CPU 核心,从而允许使用更少量的服务器,且需要更少的能量消耗、更少的冷却和更少的机架空间占用。这种方法在资本支出和运营支出方面都能节省成本。

总结

DOCA Flow 库可以简化现代应用程序的开发,在数据包处理中提供加速的网络吞吐量和延迟改进,从而为开发者提供帮助。对于用商用现货(COTS)服务器平台上托管的虚拟化应用程序取代专有裸机硬件解决方案的应用程序来说尤其如此。

该库由几个用于高效网络卸载的构建块组成,包括实现基本的数据包处理流水线、最长前缀匹配(LPM)和互联网协议安全(IPsec)的加解密。不久将在连接跟踪(CT)和访问控制列表(ACL)中添加增强功能,以创建或修改访问控制条目。有关 DOCA Flow 参考应用程序的示例,请参阅 DOCA Reference Applications 文档。

通过利用 DOCA Flow 的功能,组织可以在需要高吞吐量和低延迟的用例中最大限度地降低成本、加快服务部署并优化硬件利用率。






审核编辑:刘清

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

    关注

    0

    文章

    17

    浏览量

    6272
  • 交换机
    +关注

    关注

    21

    文章

    2640

    浏览量

    99639
  • 计数器
    +关注

    关注

    32

    文章

    2256

    浏览量

    94567
  • DPU
    DPU
    +关注

    关注

    0

    文章

    358

    浏览量

    24176
  • 加解密
    +关注

    关注

    0

    文章

    18

    浏览量

    6517

原文标题:利用 NVIDIA DOCA Flow 实现 DPU 加速数据包转向逻辑

文章出处:【微信号:Leadtek,微信公众号:丽台科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux系统收发网络数据包的工作过程

    Linux 服务器收到网络数据包,需要经过哪些处理,一步步将数据传给应用进程的?应用进程发送数据包时,Linux 又是如何操作将数据包发送
    发表于 06-08 12:34 537次阅读
    Linux系统收发网络<b class='flag-5'>数据包</b>的工作过程

    DPDK在AI驱动的高效数据包处理应用

    传统的数据包处理方式是数据包先到内核最后再到用户层进行处理。这种方式会增加额外的延迟和CPU开销,严重影响数据包处理的性能。 DPDK 绕过内核,在用户空间中实现快速
    的头像 发表于 02-25 11:28 944次阅读
    DPDK在AI驱动的高效<b class='flag-5'>数据包</b>处理应用

    esp8266怎么做才能每秒发送更多的数据包

    数据包的速度,即每秒大约 50 个 UDP 数据包。高波特率唯一改变的是,在数据包较大的情况下,我可以以与轻量级数据包相同的速度发送数据包
    发表于 07-22 08:00

    odbus实现主机对从设备读取数据包和从设备写入数据包

    六.modbus实现主机对从设备读取数据包和从设备写入数据包1.准备好硬件上能精确到1ms的定时器2. 先完成一个MODBUS所需要的软件上的定时器void Timer2_Init(void
    发表于 02-22 07:59

    什么是DPU

    ,能以线速或网络中的可用速度解析、处理数据,并高效地将数据传输到GPU和CPU。 各种灵活和可编程的加速引擎,可以卸载AI、机器学习、安全、电信和存储等应用,并提升性能。 所有这些DPU
    发表于 11-03 10:55

    网络数据包捕获机制研究

    网络数据包捕获威廉希尔官方网站 ,是实现入侵检测、网络安全审计的关键威廉希尔官方网站 。本文改进了国外传统的数据包捕获函数库Libpcap 捕获数据包的方案。原方案在网卡捕获到
    发表于 09-01 10:09 9次下载

    基于Jpcap的数据包捕获器的设计与实现

    本文研究了以太网数据包的捕获机制,实现了基于JPcap的网络数据包捕获工具,其基本原理是通过调用Jpcap库捕获本地网络上的所有数据包,然后对数据包
    发表于 01-15 13:47 38次下载

    数据包过滤原理

    数据包过滤威廉希尔官方网站 数据包过滤原理              数据包过滤威廉希尔官方网站 是防火墙最常用的威廉希尔官方网站 。对于一
    发表于 06-16 23:44 4613次阅读
    <b class='flag-5'>数据包</b>过滤原理

    什么是数据包

    什么是数据包? 您在互联网上做的一切都涉及到数据包。例如,您接收的每个网页都以一系列数据包的形式传入,您发送的每封电子邮件都以一系列数据包的形式传出。以
    发表于 08-03 09:13 2024次阅读

    高速数据包处理硬件加速威廉希尔官方网站

    链路带宽的剧增给高速网络数据包处理带来了极大的挑战。传统的纯软件网络数据包处理在性能上已不能满足需要。当前网络处理器、多核芯片等针对高性能网络数据包处理提供了件加
    发表于 05-28 16:24 0次下载
    高速<b class='flag-5'>数据包</b>处理硬件<b class='flag-5'>加速</b>威廉希尔官方网站

    网络数据包分析软件wireshark的基本使用

    Wireshark(前称Ethereal)是一个网络数据包分析软件。网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据
    的头像 发表于 09-29 14:48 3035次阅读

    简述Linux系统收发网络数据包的过程

    Linux 服务器收到网络数据包,需要经过哪些处理,一步步将数据传给应用进程的?应用进程发送数据包时,Linux 又是如何操作将数据包发送
    的头像 发表于 05-05 10:04 632次阅读
    简述Linux系统收发网络<b class='flag-5'>数据包</b>的过程

    使用 NVIDIA BlueField DPU 加速 Suricata IDS / IPS

    中。但是,DPI 的实施也会对网络性能产生重大影响。 使用 NVIDIA BlueField DPU 可降低执行深度数据包检测的成本和性能影响。 Suricata 概述 Suricata 是一款高性能、开源的网络分析和威胁检测应用程序,供私有和共有组织使用,并供主要供应商
    的头像 发表于 05-27 17:45 650次阅读
    使用 NVIDIA BlueField <b class='flag-5'>DPU</b> <b class='flag-5'>加速</b> Suricata IDS / IPS

    Linux如何操作将数据包发送出去

      Linux 服务器收到网络数据包,需要经过哪些处理,一步步将数据传给应用进程的?应用进程发送数据包时,Linux 又是如何操作将数据包
    的头像 发表于 06-17 16:00 1045次阅读
    Linux如何操作将<b class='flag-5'>数据包</b>发送出去

    请问高端网络芯片如何处理数据包

    随着网络芯片带宽的持续提升,其内部数据包处理单元的工作负载也随之增加。然而,如果处理单元无法与网络接口的传入速率相匹配,将无法及时处理数据包,这不仅会导致数据包随机丢失,更会降低网络的吞吐量。
    的头像 发表于 04-02 16:36 630次阅读
    请问高端网络芯片如何处理<b class='flag-5'>数据包</b><b class='flag-5'>呢</b>?