智能网卡理解

背景

传统数据中心基于冯诺依曼架构,所有的数据都需要送到CPU进行处理。随着数据中心的高速发展,摩尔定律逐渐失效,CPU的增长速度无法满足数据的爆发式增长,CPU的处理速率已经不能满足数据处理的要求。
在这里插入图片描述
以24核计算型服务器为例,网络功能占用6个core,虚拟化功能占用1个core,可用于VM的core数量为17个,可用CPU资源比例为70%。当网卡升级到100G时,CPU资源基本都被占用,算力资源基本不可用。
计算架构从以CPU为中心的Onload模式,向以数据为中心的Offload模式转变以数据为中心的计算架构成为了趋势。以数据为中心的模式即数据在哪里,计算就部署在哪里当数据在存储资源上,对数据的计算就在存储上执行。当数据在网络中流动时,对数据的处理就在网络上执行。通过架构的演进,典型的通信延时可以从30-40微秒,缩短为3-4微秒。网络计算和智能网卡/DPU成为数据中心计算架构的核心。

智能网卡的诞生

  • 传统网卡面向的用户痛点包括:
  • 随着VXLAN等overlay协议以及OpenFlow、Open vSwitch(OVS)等虚拟交换技术的引入,使得基于服务器的网络数据平面的复杂性急剧增加。
  • 网络接口带宽的增加意味着在软件中执行这些功能会给CPU资源造成难以承受的负载,留给运行应用程序的CPU资源很少或根本没有。
  • 传统网卡固定功能的流量处理功能无法适应SDN和NFV。
  • 在SmartNIC出现之前,解决这些问题的方法大概有:
  • PCI网卡直通(PassThrough)到虚拟机,创建VM专用网卡,从而绕过虚拟机管理程序并处理不同数据包的复杂性
    Note:
    但是,该技术需要额外的网卡,从而增加网卡管理的复杂性.
  • 使用网卡支持的PCI Express单根IO虚拟化(SR-IOV)技术,允许网卡将物理端口映射为多个虚拟端口或虚拟功能(VF),使得每个虚拟端口都可以绑定到VM,从而节省CPU资源并改善网络延迟和整体性能。
    Note:
    这样吞吐量性能和CPU使用效率得到改善,但灵活性却降低了,复杂性也增加了;并且,大多数网卡最多有效支持1GbE端口的8-16个虚拟端口和10GbE端口的40-64个虚拟端口。

最有效的硬件方法Smart NIC,将虚拟交换机功能完全从服务器CPU转移到网卡,释放昂贵的服务器CPU的计算能力以返回给应用程序,从而更好地扩展网卡功能并提供更高的性能。SmartNIC的存在能够:

因此,SmartNIC 技术诞生的初衷是以比普通CPU低得多的成本实现对各种虚拟化功能的支持,如SR-IOV,overlay encap/decap,以及部分vSwitch处理逻辑的offload
另外,SmartNIC可以执行加密/解密、防火墙、TCP / IP和HTTP处理,非常适合高流量的Web服务器。

智能网卡定义

智能网卡是有线网络和计算资源在同一张卡上的融合,通常由网络接口控制器、多核CPU 制成 ,并可选择添加 FPGA 和/或 GPU 。可以把智能网卡看做一个可以编程的网卡,用于加速网络、存储和安全功能。此外,还可以执行虚拟化、负载平衡和数据路径优化。
智能网卡配备了计算能力,允许它们将所有网络功能、安全功能和存储功能从主机服务器卸载,从而释放宝贵的处理能力。释放处理能力使服务器能够专注于更有效地运行关键的应用程序和操作系统。网络虚拟化协议也可以卸载到智能网卡,包括 VXLAN、NVGRE、Geneve协议等等。另外,智能网卡还能执行数据包检查、流表处理、加密、VXLAN 覆盖和NVMe-oF等功能。

智能网卡和传统网卡对比

在这里插入图片描述

在这里插入图片描述

  • 传统网卡:
    早期的网卡仅实现数据链路层和物理层的功能,而端系统CPU负责处理网络协议栈中更高层的逻辑。CPU按照网络协议栈中传输层、路由层的逻辑,负责数据包的封装和解封;网卡则负责更底层的数据链路层帧的封装和解封,以及物理层电气信号的相应处理。

  • 智能网卡
    为适应高速网络,现代网卡硬件中普遍卸载了部分传输层和路由层的处理逻辑(如校验和计算、传输层分片重组等),来减轻CPU的处理负担。甚至有些网卡如RDMA网卡还将整个传输层的处理都卸载到网卡硬件上,以完全解放CPU。得益于这些硬件卸载技术,端系统的网络协议栈处理才能与现有的高速网络相匹配。

智能网卡分类

智能网卡之所以“智能”,即是拥有可编程能力,它并没有固定的分类方式。

  • 根据智能网卡设计采用形式,将它分为:
  • 多核智能网卡,基于包含多个CPU内核的ASIC
  • 基于现场可编程门阵列(FPGA)的智能网卡
  • FPGA增强型智能网卡,它将硬件可编程FPGA与ASIC网络控制器相结合
  • 根据其加速不同的工作负载,将它分为:

基本连接NIC
面向网路加速的智能网卡
面向存储加速的智能网卡
在这里插入图片描述

  • 由于不同的供应商的架构不同,因此SmartNIC可以基于ASIC、FPGA和片上系统(SOC)。
    在这里插入图片描述
  • ASIC具有价格优势,但灵活性有限
    尽管基于ASIC的NIC相对容易配置,但最终功能将受到基于ASIC中定义的功能的限制,这可能会导致某些工作负载无法得到支持。
  • FPGA NIC是高度可编程的,并且可以相对有效地支持几乎任何功能,不过众所周知的是,FPGA最大的问题是编程难度大且价格昂贵。
  • 针对更复杂的用例,SOC是最佳的SmartNIC选择,价格与性能兼具、易于编程且高度灵活。
    在这里插入图片描述

可编程还是性能,二者如何抉择?

从理论上来说若想兼顾高性能和智能,一个最优的智能网卡架构:
将不同场景下各网络协议栈都需具备的相同处理逻辑固化成专用ASIC芯片,而将其余随场景变化的处理逻辑通过可编程芯片定制化实现。

现实面对的困难是,目前对网络协议栈各层的功能没有一个很好的模块化抽象,各层内的各个处理逻辑之间甚至跨层的部分逻辑之间都依据场景高度耦合,难以提取有意义的共性和特性逻辑分别由ASIC和可编程芯片处理。现有智能网卡要想具备足够的可编程能力,能应对各种场景,只能将从上到下各层几乎所有的逻辑都交由可编程芯片实现,牺牲了性能。
若想突破此难题,一种可行的思路是从模块化的角度出发重构现有网络协议栈,在其各层协议中清晰地抽象出共性功能模块以及可依据场景定制的特性模块。从网卡设计的角度出发,区分各种场景下的网络协议栈中到底哪些部分可以由ASIC固化、哪些部分需要灵活地定制逻辑。

智能网卡当下发展

传统智能网卡:慢路径快路径分离

传统智能网卡上没有CPU,需要Host CPU进行管理。传统智能网卡除了具备标准网卡的功能外,主要实现网络业务加速
以NVIDIA产品为例,NVIDIA Networking的CX5系列即为SmartNIC。CX5 支持ASAP2加速,可以把网络相关工作(Fast path)卸载到eSwitch,而Slow path及控制面仍然由Host CPU处理。随着网络速度的提高,传统智能网卡将消耗大量宝贵的CPU内核来进行流量的分类、跟踪和控制。这些昂贵的CPU是为通用应用程序而设计的,而并非为了网络数据包的查找和管理
在这里插入图片描述

新一代智能网卡:DPU

DPU也被称为新一代智能网卡,拥有高性能“CPU+可编程硬件”转发IO数据面加速的PCIe网卡设备,在实现标准网卡功能(NIC/TSO)的同时,还提供灵活的软件定义能力,为云厂商自定义的云基础设施赋能。

智能网卡应用

SmartNIC能够执行加密/解密、防火墙、TCP/IP和HTTP处理。
利用SmartNIC能够将数据包处理工作负载从CPU转移到基于FPGA的SmartNIC。

DDoS 防御

智能网卡可以保护数据中心服务器免受 DDoS 攻击。DDoS 攻击是指个人或组织用大量流量淹没目标网络或服务器,导致目标站点或网络的正常流量被拒绝服务。智能网卡具有阻止 DDoS 攻击的能力。将DDoS 攻击的检测和防御工作从主机服务器卸载到智能网卡上,可以防止系统主 CPU 被 DDoS 攻击淹没,提高了DDoS 防御能力。之所以如此,是因为智能网卡可以被编程为动态丢弃 DDoS 攻击数据包。
F5 声称,与没有智能网卡的服务器相比,配备智能网卡的数据中心服务器可以抵御 300 倍的 DDoS 攻击。此外,智能网卡可以过滤所有入站和出站数据包,类似于 Ip Tables的工作原理,为过滤网络流量提供了一个强大的体系架构。

低时延

智能网卡以其在电子交易中的低延迟而闻名。如今,高性能 25-GbE网卡的延迟在 1,000ns 范围内。使用适当架构的系统、正确的软件和经过调整的智能网卡,可以在接收到网络数据包时对其进行分析,一次四个字节。然后,响应数据包可以在22ns的极快时间内注入到网络中,这比传统的高性能网卡快 40 倍以上。当部署在电子交易中时,这些智能网卡的投资回报率 (ROI) 有时可以在几分之一秒内衡量。

从 CPU 卸载计算任务

CPU 卸载是智能网卡的一个重要价值主张。用户可以将一些较重的计算任务移到智能网卡上,减少CPU的负载。

智能网卡发展

SmartNIC用例包括虚拟化软件定义存储、超融合基础设施以及其他云资源。
在这里插入图片描述
SmartNIC一方面可以卸载并帮助虚拟化网络(加速私有云和公共云,这就是为什么它们有时被称为CloudNIC)的原因,另一方面可以卸载网络和大部分的存储虚拟化,可以减轻SDS和HCI的功能负担,例如压缩、加密、重复数据删除、RAID、报告等。

超融合架构数据中心中,Smart NIC为SDN和虚拟化应用程序提供硬件加速与网络接口紧密结合,并可分布在大型服务器网络中,减小CPU负载,提供额外的边缘计算能力,加速特定应用和虚拟化功能,并且通过正确的语言和工具链支持,为用户提供应用加速即服务的附加价值。

白盒作为最受欢迎的COTS硬件,可以加入插件实现软件定义网络(SDN)和网络功能虚拟化(NFV)的各种计算和网络功能。Smart NIC可以将代码从CPU引入网卡,显著加速用于安全应用的加密/解密或用于深度包检测(DPI)应用程序,降低CPU负载,并且支持灵活的网络可编程性。

各个厂家的智能网卡

目前业界提供基于FPGA的Smart NIC的厂商包括Accolade、BittWare、Enyx、Ethernity、Napatech、Netcope、Reflex CES、Silicom和Solarflare,通常集成自Intel或AMD Xilinx的FPGA来实现。
此外,Broadcom,Cavium,Intel,Kalray,Mellanox,Netronome,Silicom和SolidRun均可提供基于处理器的Smart NIC,使用带有集成处理器内核或FPGA的处理器或智能I/O处理器。
亚马逊和谷歌已经开发了Smart NIC ASIC。

参考

https://www.sdnlab.com/24095.html
https://mp.weixin.qq.com/s/UwXfMkZX22tbpsJ4cbQIEA
https://www.sdnlab.com/25368.html
  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Fiddler 网卡" 是指 Fiddler 软件中用于捕获和分析网络流量的功能。Fiddler 是一款常用的网络调试工具,主要用于分析 HTTP 和 HTTPS 流量,并提供诸如请求和响应的网络性能信息、数据包内容、状态码等详细数据,帮助开发人员调试和优化 Web 应用程序。 Fiddler 网卡在 Fiddler 软件的使用中起到了重要的作用。当我们启动 Fiddler 软件后,它会创建一个虚拟的本地网络代理服务器,并绑定到一个用于拦截网络流量的专用网络接口,这个网络接口就是 Fiddler 网卡。通过配置浏览器或应用程序使用 Fiddler 网卡作为代理服务器,我们可以将浏览器的请求和应用程序的网络流量通过 Fiddler 网卡进行捕获和分析。 Fiddler 网卡的使用可以帮助开发人员诊断和解决网络相关问题。它可以拦截和检查所有通过该网卡的请求和响应,包括浏览器请求的资源、后台应用程序的 API 请求等。通过分析这些网络流量,我们可以查看请求和响应的详细内容、检查请求头和响应头、查看 SSL 证书信息等,从而帮助定位和修复网络传输问题、性能瓶颈、接口异常等。 总而言之,Fiddler 网卡是 Fiddler 软件中重要的组成部分,通过它我们可以方便地捕获和分析网络流量,帮助开发人员进行网络调试和性能优化。它在 Web 开发、接口调试等方面发挥着重要作用,提升了开发效率,帮助我们更好地理解和处理网络通信。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值