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

智能网卡的网络加速技术相关推荐

  1. 智能网卡-提升网络性能的新选择

    一.智能网口介绍 智能网卡(Smart NIC)是一种专用于网络数据处理的高性能网卡,采用了定制芯片.高速网络接口和强大的软件支持,可以为数据中心和企业网络提供更快.更安全.更可靠的网络连接和数据传输 ...

  2. 常见网络加速技术浅谈(二)

    上一篇我们看了一些网络加速的技术,它们致力于减少处理每个网络数据包所需要的CPU时间,要么是把一些网络协议的运算卸载(offload)到网卡,要么是减少数据拷贝对CPU资源的消耗.在上一篇我们说过,网 ...

  3. 网络加速技术浅析(二)

    上一篇我们看了一些网络加速的技术,它们致力于减少处理每个网络数据包所需要的CPU时间,要么是把一些网络协议的运算卸载(offload)到网卡,要么是减少数据拷贝对CPU资源的消耗.在上一篇我们说过,网 ...

  4. 常见网络加速技术浅谈(一)

    TCP/IP协议栈简介 当用户需要向网络发送数据的时候,用户实际上是通过应用程序来完成这项工作.应用程序向一个描述了对端连接的文件描述符(File Description)写数据. 之后位于操作系统内 ...

  5. 网络加速_神奇黑科技出现:双WiFi网络加速技术

    对于爱玩手游的用户来说,可能经常要面临的一个问题是:房间面积太大,在不同房间的Wi-Fi信号强度不一样,这就导致想要好好的玩游戏,就要固定在某个房间,甚至还有不少人特意安装了两个路由器. 今天,iQO ...

  6. 从网络虚拟化,看智能网卡发展史

    5G的到来无疑将加速网络虚拟化的进程,在电信领域,网络虚拟化不仅在核心网,也在网络的边缘.但是,仅仅通过软件解决方案不能提供足够的网络可靠性和服务质量,而具有高级可编程功能智能网卡(Smart NIC ...

  7. 网卡VXLAN的offload技术介绍

    1.1 offload技术概述 首先要从术语offload说起,offload指的是将一个本来有软件实现的功能放到硬件上来实现,这样就可以将本来在操作系统上进行的一些数据包处理(如分片.重组等)放到网 ...

  8. SD-RTN——毫秒级网络加速带来全新的体验

    近几年网络直播视频.VR/AR.竞技游戏.大数据.4K高清视频的快速增长,正在将毫秒级网络加速技术推向历史发展的潮头.用户的预期越来越高,他们期待"最好"的在线体验,网络延迟会直接 ...

  9. 网络加速原理与方法:静态CDN、动态CDN、全站加速、GAAP、AIA、CLB跨地域部署

    一.概念辨析:网络延迟与网络波动 (1) 网络延迟 网络延迟是指各式各样的数据在网络介质中通过网络协议(如TCP/IP)进行传输,如果信息量过大不加以限制,超额的网络流量就会导致设备反应缓慢,造成网络 ...

最新文章

  1. C#.NET操作数据库通用类(MS SQL Server篇)
  2. 全球及中国智能电网产业十四五规划方向及投资决策建议报告2021年版
  3. 关于优酷开放SDk之setOnAdCountListener和setOnNetworkSppedListener
  4. mysql myisam key_buffer_size_MyISAM中key_buffer_size的设置_MySQL
  5. vCenter如何逃离Windows的坑(转)
  6. 设计模式 - 观察者模式(Observer Pattern) Java内置 用法
  7. java判断string字符串是不是json格式
  8. HTTP Error 500.30 - ANCM In-Process Start Failure 解决方法
  9. mysql什么时候产生临时表_什么时候会用到临时表?MySQL临时表的使用总结
  10. 怎样检测和应对数据集的Outliers
  11. 专家警告全球芯片短缺可能持续到 2022 年之后
  12. 21个令程序员泪流满面的瞬间 ...
  13. 微信公众号wx.getlocation
  14. Python爬虫神器pyppeteer,对 js 加密降维打击
  15. java.sql.SQLException: Access denied for user ''@'localhost' (using password: YES)出现原因及解决方法
  16. 分布式项目-谷粒商城。
  17. 计算机关闭这些程序,电脑中哪些进程可以关闭? 节约资源
  18. 【纯新手】小白的第一次面试经过(字节跳动-懂车帝)
  19. 县级融媒体中心建设工作调研报告
  20. SmartSeed Smart Seed Generation for Efficient Fuzzing

热门文章

  1. 绿色债券数据集2016.01-2021.11年
  2. 神经网络与深度学习(一):神经网络与数字识别
  3. “顶流”长沙,如何发展MCN?
  4. matlab的imshow python中cv2.imshow及plt.imshow相关测试
  5. 【C语言】实现两个字符串的连接(不使用库函数),即把字符串b连接到字符串a后面。
  6. VS code C语言输出位数
  7. 视频目标检测与轨迹跟踪代码案例
  8. TCP/IP sysctl命令参数
  9. VS2010连接数据库的操作(SQLServer2005/2008 以及Access2007/2003等)
  10. 接口参数加解密,代码无侵入这样做方便多了