智能网卡的网络加速技术

news2024/10/6 18:27:20

2021年9月25日,由“科创中国”未来网络专业科技服务团指导,江苏省未来网络创新研究院、网络通信与安全紫金山实验室联合主办、SDNLAB社区承办的2021中国智能网卡研讨会中,多家机构谈到了智能网卡的网络加速实现,我们对此进行整理,以飨读者。

网络加速的起源

传统数据中心基于冯诺依曼架构,所有的数据都需要送到CPU进行处理。随着数据中心的高速发展,摩尔定律逐渐失效,CPU的增长速度无法满足数据的爆发式增长,CPU的处理速率已经不能满足数据处理的要求。

图1:通用服务器处理网络负载的消耗情况

以24核计算型服务器为例,网络功能占用6个core,虚拟化功能占用1个core,可用于VM的core数量为17个,可用CPU资源比例为70%。当网卡升级到100G时,CPU资源基本都被占用,算力资源基本不可用。

计算架构从以CPU为中心的Onload模式,向以数据为中心的Offload模式转变。以数据为中心的计算架构成为了趋势。以数据为中心的模式即数据在哪里,计算就部署在哪里。当数据在存储资源上,对数据的计算就在存储上执行。当数据在网络中流动时,对数据的处理就在网络上执行。通过架构的演进,典型的通信延时可以从30-40微秒,缩短为3-4微秒。网络计算和智能网卡/DPU成为数据中心计算架构的核心。

图2:NVIDIA DPU功能框架

智能网卡/DPU通过集成多个面向不同应用的加速引擎,进行数据平面卸载,通过内嵌的ARM处理器或者其他协处理器进行控制平面的卸载。

在网络功能卸载方面,硬件替代CPU完成专业设备NFV后处理逻辑,实现硬件加速。同时,网络功能卸载将观察点从硬件交换机延伸到主机侧,实现网络端到端运维可视化。

网络加速的技术架构

业界主流智能网卡有四种实现方案:SoC、NP、FPGA、ASIC。

SoC方案在终端市场应用较成熟,硬件需要根据客户需求定制,部署周期较长,但是计算效率高,适合成熟算法及应用,功耗较低。

NP方案生态封闭,主流厂商已不再发布路标,不支持重编程,难以解耦,成本高于FPGA,但是功耗较低。

FPGA方案生态开放,在数据中心场景中得到广泛应用,可以重复编程实现特定应用,适合演进中的算法及应用,适用于网络转发等并行计算场景,该方案处理时延低,支持虚拟化,功耗适中。

ASIC方案,其硬件根据用户需求定制,开发成本昂贵,生产周期长,不具备灵活性,但是计算效率高,功耗较低,适合大规模成熟算法及应用。

网络加速技术

智能网卡实现的网络加速有多种,除基本的网络功能外,还包括RoCEv2、VXLAN、OVS ct功能、TF-vRouter虚拟路由、kTLS/IPSec加速等技术。智能网卡的网络加速技术可以进一步细分为网络功能的加速以及网络能力的虚拟化。这里仅列举常见的几种技术及其应用。

OVS卸载技术,SmartNIC 负责L2转发,通过额外的处理逻辑实现部分vSwitch功能,能够卸载部分网络流量(例如基于Tc Flower Offload功能),支持对网络数据包包头的处理(如Push/Pop VLAN Tag、VXLAN Encap/Decap)。

Connection Tracking offload可以实现L3/L4 Firewall功能。

Header Re-write Offload 能够对packet header进行set/copy/add操作,可以实现路由、NAT等功能。

VIRTIO-net网络虚拟化技术。传统加速方式通过软件优化比如DPDK实现VM对网络设备的访问。大量的资源和时间损耗在软件层面,当前网络和PCIe设备的性能优势没有彻底发挥出来。智能网卡支持SR-IOV和VIRTIO技术,实现了IO硬件虚拟化,虚拟机可以直接访问网卡硬件设备的寄存器和DMA内存,同时借助于FPGA和SoC将OVS数据和控制平面完全卸载,大大提升了数据传输和处理的性能。SRIOV技术引入了两种虚拟化设备,PF和VF,在大多数虚拟机场景下,VM里的设备映射到不同的VF上,每增加一个虚机时,需要新增VF与其绑定。VF的配置和管理均由VMM完成。在裸金属场景,PF通常被用来作为网络或存储设备,PF的资源在FPGA加载时生成,当资源不足时,分配新的PF。PF设备的管理通过智能网卡SOC来管理。当增加PF时,SOC上将对应的PF设备使能,然后通知Host端添加新的设备。当不再需要PF设备时,通过SoC disable释放资源。

网络加速的技术实现

智能网卡的本质能力是实现网络加速,在2021中国智能网卡研讨会中,包括中国移动、电信等企业的智能网卡产品,采用了多种智能网卡技术架构,实现了不同的网络加速功能。

中国移动IT云和网络云采用混合SDN方案,面向不同业务提供虚拟机或裸机部署能力,面向虚拟化场景,引入智能网卡突破提升vSwitch转发性能和数据处理能力;面向裸机场景,引入智能网卡构建弹性裸金属服务。面向虚拟化场景,将vSwitch转发面卸载至智能网卡中,提升转发性能及表项规格。软件vSwitch依靠CPU转发,通过将转发面卸载到硬件网卡,实现主机侧CPU零消耗,满足25G、100G网卡及后续更大带宽线速转发要求,提升块表规格到百万级甚至千万级,满足SBC等大规格网元部署需求。

图3:电信智能网卡协议栈

天翼云高级工程师、硬件加速组负责人孙晓宁在《天翼云智能网卡产品的前世、今生和未来》中介绍了电信ASIC架构的智能网卡中采用的网络加速技术,包括RDMA的代表性技术,以及RoCEv2、VXLAN隧道技术和OVS ct功能。

芯启源基于NP-SoC实现的全可编程DPU芯片具备网络报文处理引擎、流处理器引擎、接口引擎和加速硬件,支持高效的网络报文处理,具备极高的编程自由度。其基于DPU芯片的Agilio智能网卡支持OVS卸载,支持内核TC-Flower、DPDK RTE_FLOW,支持vRouter卸载,也支持Contrail 内核卸载。

迈普SNC5000-2S-NPDH1智能网卡,采用国产CPU飞腾+FPGA架构,在网络加速方面实现了VXLAN、GENEVE卸载、VIRTIO-NET模式卸载、SR-IOV卸载。OVS-DP通过FPGA实现硬件加速,用于卸载转发策略,实现数据快速转发。控制面卸载通过内嵌CPU实现,用于openflow协议运行和北向通信,支持OVS-DPDK。

腾讯智能网卡采用FPGA+SoC架构,网络加速技术实现方面自研vDPA,支持VIRTIO-net卸载,能够实现虚拟化性能零损耗,数据面直通,软硬结合跟踪脏页的功能。自研VIRTIO-net硬件后端核心IP,自研vSwitch Fastpath硬件卸载;自研vSwitch offload高度软硬协同的硬件驱动层。借助自研技术,智能网卡网络性能大幅度提升,PPS提升到40Mpps+,带宽提升到100Gbps。网络功能全部offload到智能网卡上,彻底消除Host CPU占用。内存带宽零抢占,高速网络流量在Host内存只穿越一次,降低内存带宽占比高造成对租户应用内存访问的影响。

Intel FPGA IPU C6000平台采用FPGA+x86 CPU架构,支持OVS卸载、NVMe over Fabric、RoCE卸载。

阿里通过主机协议栈延时优化、网络动态延时优化,将高性能网络的时延降低1个数量级。通过端网协同的网络流控,多路径优化和全链路网络QoS等机制来降低网络动态延时,减少网络拥塞,故障时快速切换,保障大小流之间的公平性,有效处理网络incast。其中端侧通过智能网卡/DPU的硬件卸载来优化网络协议处理。其自研的高性能网络协议,包括HPCC拥塞控制算法、Multi-path、xRD传输方式,去PFC实现Lossy RDMA,进一步优化长尾延时,增加RDMA扩展性。其自研的高性能网卡,实现了自研高性能网络协议卸载,目前已经落地云存储。

锐文科技推出的RAYMAX xSmartNIC智能网卡,支持SR-IOV、VIRTIO,支持Open vSwitch卸载,VXLAN、NVGRE tunnel加载及卸载,通过智能网卡的卸载应用,把耗费CPU大量资源的数据层查找卸载到智能网卡中,可提升超过30%吞吐量。

浪潮智能网卡采用了FPGA+CPU架构,FPGA提供了接近ASIC的处理能力,而X86为异常处理、存储和安全业务提供了高速处理能力。通过硬件方式实现了VIRTIO-net,数据面基于FPGA的可编程硬件网络包处理,SoC侧处理异常报文和控制面,支持OVS、VLAN、VXLAN、Conntrack Table以及IPSec等,减少Host端CPU负载,降低报文的延迟和抖动。

锐捷网络新推出的湛卢1.0 2*25G网卡产品,采用了FPGA+x86 CPU架构。该智能网卡产品基于RTE_Flow的流表卸载模型,支持开源OVS和锐捷商用vSwitch(RG-S1000v)。同时支持DPDK/SPDK的二次合作开发,支持VIRTIO-net、OVS全卸载,支持裸金属网络卸载。

英伟达的BlueField-2采用SoC架构设计,最大200Gbps带宽,内置ConnectX-6 Dx网卡芯片,支持RDMA,同时支持TLS/IPSec。以IPSec+VXLAN通信场景为例,通常情况下(X86+普通网卡),Throughput能达到21.2Gbps,采用DPU卸载方式能够达到88.9Gbps。如果达到90G处理速率,理想情况下需要消耗60个CPU核,采用DPU卸载方式,只需要消耗10个CPU 核,CPU核资源节省了83.3%。

小 结

智能网卡进入高速发展期,行业内的主流厂家凭借其技术积累及应用场景,采用了多样化的技术架构,实现了效果差异的网络加速。正像赵慧玲女士在致辞中讲到的,产业发展呼吁加快标准化进程。技术标准化、规范化对于产业的发展起着积极作用。

(免费订阅,永久学习)学习地址: Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化/高性能专家-学习视频教程-腾讯课堂

更多DPDK相关学习资料有需要的可以自行报名学习,免费订阅,永久学习,或点击这里加qun免费
领取,关注我持续更新哦! ! 

原文链接:https://cloud.tencent.com/developer/article/1892174

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/37203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

金枪鱼群优化算法(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

跑步需要哪些运动装备?跑步装备选购指南

跑步是一项有氧运动,是富有韵律性的运动,在运动过程中,血液可以供给心肌足够的氧气;氧气能充分酵解体内的糖分,还可消耗体内脂肪,增强和改善心肺功能,预防骨质疏松。 而在跑步的时候选择好自己的运动装备&…

代码随想录训练营第32天|LeetCode 122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II

参考 代码随想录 题目一:LeetCode 122.买卖股票的最佳时机II 按照自己的想法,无非就是在最低点买入,在最高点卖出,因此只需要找到成对的极小值和极大值,就可以计算利润了。代码实现如下: class Solutio…

使用姿势估计构建 姿势校正器

我们中的许多人大部分时间都在办公桌前弯腰驼背,身体前倾看着电脑屏幕,或者瘫坐在椅子上。如果你像我一样,只有当你的脖子或肩膀在数小时后受伤,或者你有偏头痛时,你才会想起你的不良姿势。如果有人可以提醒您坐直不是…

SpringBoot配置文件(学习笔记)

目录 一、配置文件概述 配置文件的作用 配置文件的格式 二、application.properties 配置文件 基本语法 读取配置文件 三、application.yml 配置文件 基本语法 读取yml中的配置 1、yml配置的简单读取 2、读取yml 配置中不同数据类型及 null​编辑 2、读取yml配置文…

Python基础知识入门(三)

Python基础知识入门(一) Python基础知识入门(二) 一、元组类型 元组是用英文小括号 () 把所有元素包裹起来,元组里面的每一个数据叫作元素。每个元素之间都要用 英文逗号 ( , ) 隔开。例如:(1,2,3)。 注意…

Head First设计模式(阅读笔记)-04.工厂模式

披萨订购 假设要完成披萨订购的功能,披萨的种类很多,比如 GreekPizz、CheesePizz 等,披萨店会根据用户需要的披萨种类制作披萨,制作的流程包括prepare->bake->cut->box 简单实现 下面代码的实现十分简单清晰,…

从0到0.1学习 lambda表达式(Java版)

编码几年时间,有一个东西似乎一直也逃不过去,那就是lambda表达式。 无论是c#,Python还是Java,lambda的思想都是共通的。但以下的语法和实例为java。 现在就来说说这个看似很难的lambda表达式 什么是lambda表达式? l…

【owt-server】m88分支和m59-server

OWT 单独有个webrtc的仓库,里面有m88的分支Merged Upgrade sdk to m88 for webrtc node #1026 提交记录 主干merge Merge pull request #1026 from starwarfan/mst-88webrtc-m88 目录 构建修改

【信管2.2】项目管理知识体系与组织结构

项目管理知识体系与组织结构上一次课中,我们已经学过了项目以及项目管理的概念,这些内容帮我们认识到了项目到底是个什么东西,有什么特点,和运营有什么区别等等。今天我们就继续沿着项目这件事说下去,我们将一起探讨一…

【知识网络分析】共引网络(co-citation)

共引网络(co-citation) 1 读取本地文献构建共引网络数据集2 网络数据集精简3 社团群体划分4 节点中心度相关指标计算1 读取本地文献构建共引网络数据集 RC.networkCoCitation()方法中的参数与RC.networkCitation()方法中的参数功能一致。该案例中使用的数据集同样为2020-202…

SpringBoot框架保姆级笔记一看就会

文章目录 文章目录文章目录[toc]1️⃣ 简介一. 什么是 [IoC](https://so.csdn.net/so/search?qIoC&spm1001.2101.3001.7020) 容器?二. AOP面向切面编程三. SSM整合四. HttpServletRequest五. HttpServletResponse六. Cookie 与 Session七. Cookie八. Session九…

Java异常01:Error 和 Exception

什么是异常 # 实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的实际要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据…

最全面的SpringMVC教程(一)——SpringMVC简介

前言 本文为SpringMVC相关教程,下边将对SpringMVC进行简单介绍,具体包含:对MVC架构的回顾,什么是SpringMVC,SpringMVC编程示例(包含配置版示例、注解版示例),初识SpringMVC&#xff…

NM DEV Mathematics for Java 【suanshu.net免费】

NM Dev是一个面向对象、高性能、经过广泛测试和专业记录的数学编程库,在S2上运行。自 2010 年开发以来,它是大量经过编码的数值算法,因此它们是可靠的面向对象、统一和可测试的。编程经验或数学知识很少的用户可以通过快速组合类轻松地为他或…

备战 2023 春招,P7 大咖手打 26 大后端面试专题神技,1500 题解析助力

年过后,不少人已经蓄势待发,信心满满地准备投递简历,到处面试,在不同的 Offer 之中择优而栖。 与此同时,也有人会悔恨自己这半年进步不大,每天噼里啪啦敲代码,但面对那些不能再熟悉的 Java 面试…

大数据毕设选题 - 生成对抗网络的照片上色动态算法设计与实现(深度学习 opencv python)

文章目录1 前言1 课题背景2 GAN(生成对抗网络)2.1 简介2.2 基本原理3 DeOldify 框架4 First Order Motion Model1 前言 🔥 Hi,大家好,这里是丹成学长的毕设系列文章! 🔥 对毕设有任何疑问都可以问学长哦! 这两年开始…

Linux项目后端部署及JDKTomcatMySQL安装

前言 上一篇文章简单的分享了在VMware上安装linux系统,本篇文章将要分享的内容是使用linux系统完成项目的部署 一、前置准备工作 在Windows系统中,我们要在开发环境下才能进行项目的开发。那么在linux系统中也是,在安装完linux系统后&#xf…

NoSuchMethodError的常见原因和通用解决方式

目录 环境信息 问题描述 错误分析 解决方法 常见原因 1.第三方包,作用域不对导致应用没导入该包 2.编译时和运行时使用的版本不一样 3.JDK版本不一样 4.多个同路径、同名的类 1.代码复制场景 2.代码移动场景 排查步骤 附录 Maven仲裁机制: …

为啥这么人选择iPhone

01.听音乐(10元/月) 歌曲很全 多个终端支持 果子自带的Music app 在那个设备都可以使用, 包括MacBook Pro,iPhone,iPad,iwatch等 02.周边配件方便购买 03.遇到问题好解决 04.使用稳定,不会有广告&#x…