本文转载自:
https://post.smzdm.com/p/a20wr43n/?sort_tab=hot%2F
仅供学习之用,如有侵权联系删除;
有一天女票拿出来这么一个东西问iN“这是啥?”
这东西叫做网卡,但是似乎现在已经有很多人并没有见过了。
现在大多数人使用计算机的时候往往都会直接将网线接入到计算机主板网口中。
所以很多人对于网卡的概念几乎是不存在的。这些人只知道——哦连上网了。
但对于网卡的具体运作方式还是不清楚的。
在本世纪初期,也就是大约20年前,随着南北桥的技术出现,一些计算机系统的设计方案中低速的连接例如USB、串口、ISA接口都被分到了南桥芯(ICH,IO路径控制器)片来处理,同时南桥芯片本身有一定的处理和标记能力因此,在南桥上标记设备的MAC地址就成了可能。
能标记MAC地址其实就已经完成了网络的数据链路层的工作了。
于是为了更加集成化主板的功能,很多厂商就开始在主板上安排上了一个一枚网络芯片:
其实,这枚芯片是物理层设备(PHY),比数据链路层要低一个等级。主要负责网络信号的收发,并不进行网络信号的处理。
它的引脚会直接引入到我们的RJ45接口上面,甚至网卡接口上的LED灯也是这个芯片提供的闪烁信号。
那么网络数据谁来处理呢?——自然是CPU了。这也是解释了为什么iN在之前那篇怎么测试网络速度的文章中提到的,CPU速度不够会导致网络性能降低。
而高性能的独立网卡,本身上面并不是题图那种只有一个芯片的网卡。
而是上面布满了各种不同的芯片,这些芯片不仅仅负责了物理层链路的信号建立,还替代CPU在做MAC地址的标定和处理、网络数据的缓存、数据帧的封装等一系列的工作。一句话——专业IT设备上没有一个电阻是没有用的。
独立网卡的速度和任务负载也就和CPU并没有太大的关系了。
同时,我们来看一下现代系统的结构:以Intel为例子,传统意义上的北桥芯片现在已经集成在了CPU之内,同时CPU对外引出几十条PCIE的通道。传统意义上南桥也变为了“平台路径控制器”(PCH)
这里有什么问题呢?这种体系结构下,快速通道都直连在CPU上:
类似于你的显卡、内存等需要大量带宽的设备,都是直接接在了CPU上面
而为了让主板上能接入更多的设备,则分给PCH一个固定量的PCIE通道,例如8条PCIE通道,让接入PCH的设备共用这些通道传输数据。
这样一来,你接在PCH上的网络芯片本身就分配不到多少带宽了,例如一个8X的PCIE 3.0的通道,只有8GB的带宽,看似即便是10Gbps的网卡你也可以很轻松的跑满,只不过,这个公用带宽还要分给硬盘、USB等设备来使用,这时候你的系统就会出现带宽瓶颈。
而且你的网络设备接收完了网络数据要送去哪里?还是CPU,这时候事情就更有意思了,这些来自网络的带宽需求不仅仅挤占你的“外车道”,还会一并挤占你的“内车道”。
对于普通的用户的个人计算机来说,通常网络的传输流量比较小,但是如果一台电脑被用作NAS等生产力工具,在一个工作组内为多人提供视频剪辑、文件存储等服务。这时候接在PCH上的内置网卡效率就捉襟见肘了。
应该做的,就是要部署一个真正的独立网卡了,让它绕过PCH直接向CPU传输数据。
这就是一个“看地图”的过程
在很多主板的说明书上都会给你注明每条PCIe插槽的上有设备或者是共享设备,在生产力工具里面,你唯一要做的就是均衡直通CPU的PCIe插槽的使用取舍,让流量大需求带宽大的设备尽量的使用CPU直通通道,而让一些流量需求小的设备来使用PCH的通道。这样你才可以在一台计算机上真正的跑到10G、40G甚至100G。
1.什么是网卡?
网卡是计算机与局域网互连的设备
网卡,又称为网络适配器或网络接口卡NIC(Network interface Card),是构成计算机网络系统中最基本的、最重要的和必不可少的连接设备,计算机主要通过网卡接入网络.
网卡历史:上世纪80年代末期,国外微机界已经预测,90年代计算机使用的环境就是网络,事实上也确实如此.局域网的发展在整个计算机网络领域中有相当大的影响。网卡即局域网与计算机的连接设备.
网卡是局域网中连接计算机和传统介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质的访问控制、数据的编码与解码以及数据缓存的功能.
2.网卡的演进
网络在早期发展时,应用、数据都很少,网络的速率也很低,只有10M/100M等.而发展到现在,特别是大数据时代,数据成爆发性增长,这就要求网络的速率更高,延时也更小.
3.网卡的主要功能
网卡在TCP/IP模型中,工作在物理层及数据链路层,用于接收和发送计算机数据.
发送数据时,加上首部和尾部;接收数据时,剥去首部和尾部
链路管理:主要是CSMA/CD(冲突检测的载波监听多路访问)的实现
编码与译码:物理层数据的编码与译码
网卡主要功能
代表固定的网络地址
数据的发送与接收
数据的封装与解封
网卡包括OSI模型的物理层和数据链路层。
物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口.
数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能.
4.服务器网卡介绍
服务器专用网卡 vs 普通网卡
相对于服务器专用网卡来说,普通网卡指应用在普通PC、工作站、消费级电子产品中的网卡,对网卡的可靠性、安全性等要求不高。而服务器与普通PC工作站的不同在于,服务器一直处于工作中,且要求长时间稳定运行,这就要求服务器网卡具有以下特点:
数据传输速度快
服务器时刻处于大数据计算、交换过程中,普通网卡的10Mbps、100Mbps的数据已不满足大数据流量网络,当前服务器常用的网卡速率为10Gbps、25Gbps等;
CPU占用率低
服务器的CPU是不停工作的,处理着大量的数据。如果一台服务器的大部分时间都在为网卡提供数据响应,势必会影响到对其他任务的处理速度。服务器网卡有自带的控制芯片,可以处理一些CPU任务,从而减少CPU的计算开销;
安全性能高
如果服务器的网卡出现故障,则服务器将无法接收、发送数据,相当于宕机,所以高可靠性是服务器网卡的一个要求。服务器网卡大都具有容错功能,如intel的AFT(网卡出错冗余)、ALB(网卡负载均衡)等技术.
5.服务器网卡的分类
NIC:Network interface Card
特指以太网卡,支持TCP/IP协议,应用于以太网络中
Network Card, Gigabit , LC Fiber Optic,2 Ports , PCIE 2.0 X4-8086-1522-2
CNA :Converged Network Adapter
融合网卡,本质上是以太网卡,但支持FCoE功能(FC over Ethernet)
Other Cards , FCoE-SFP Interface , 2 ports , PCIE 2.0 X8-Vendor ID 19a2-Device ID 0710|0714-4
HBA:Host Bus Adapter
特指FC网卡,支持FC协议,连接存储或光纤交换机
Single Port FC HBA Card , PCIE 2.0 X4|PCIE 1.0 X8-Vendor ID 10DF-Device ID F100-1,8Gbps,Fiber Channel Multimode LC Optic Interface
HCA:Host Channel Adapter
特指Infiniband网卡,即IB卡,应用于高带宽、低时延的高性能计算项目中;
Other Cards , Infiniband MCX353A-FCBT,FDR Single port-56Gb/sPCIE 3.0 X8-Vendor ID 15b3-Device ID 1003-1
6.网卡接口介绍
7.业界网卡主流厂商
当前主流芯片厂家有intel、broadcom、cavium和Mellanox.
Intel是以太网卡领域重要厂商,基于DPDK构建生态,持续在网卡发力
Avago收购Emulex、broadcom后的以太业务后,成立新的母公司Broadcom,整合NIC业务,发力云场景.
Cavium聚焦FC HBA业务,发力存储HBA场景.
Mellanox:业界infiniband唯一厂商,应用于极致性能场景,如HPC,同时也提供以太解决方案.目前已被NVIDIA收购.
8.SmartNIC概念介绍
微软Azure提出SmartNIC的概念,SmartNIC通过从服务器CPU卸载网络处理工作负载提高数据中心的服务器性能。用FPGA等加速网卡处理能力;Azure的计算规模定义是Milion级计算实例,Exabyte级存储空间,Pbps级网络带宽.VM之间通过vSwitch互连,vSwitch需要根据VM进行调度和流控.所以说到底复杂度会出现在vSwitch中,微软实现这个调度的算法称为VFP(Virtual Filtering Platform),通过VFP来给网卡调度数据流:
标准网卡(NIC)和智能网卡(Smart NIC)的根本区别在于Smart NIC从主机CPU卸载的处理量.Smart NIC是围绕FPGA平台设计的,FPGA被设计为接受本地化编程,在硬件实现上,NIC和FPGA不需要做在一起,FPGA通过CCIX连入一个自带网卡的SoC.
9.SmartNIC产业发展趋势
2020年,全球市场SmartNIC总量约为25亿美金,其中销售收入以CAGR 10%的速度在增长
高速率如25GE,50GE,100GE,200GE端口到2022年,占比约为45%左右发货量,主要在新建公有云中,总销售占比在60%左右;
未来几年智能网卡保持60%-70%左右的增长率,普通网卡呈现下降趋势
10.SmartNIC实现
10-1.实现形式
基于DPU(数据处理单元)的SmartNIC十分火热,SmartNIC跟传统NIC有什么区别,它们的作用是什么?
NIC是插入服务器或存储盒以实现到以太网网络连接的PCIe卡.
基于DPU的SmartNIC不仅具有简单的连接性,而且还可以在NIC上实现网络流量处理实现数据加速.
由于SmartNIC卡提供商产品架构体系不同,导致业界对基于DPU的SmartNIC的定义完全集中在技术实现上,这导致基于某种技术实现SmartNIC的厂商认为,只有他们制造的NIC类型才有资格成为SmartNIC,但这是有问题的,因为基于DPU(数据处理单元)的SmartNIC可以基于ASIC,FPGA和片上系统(SOC)技术实现.
10-2.SmartNIC不同实现技术对比
不同技术实现形式都在成本、编程的简易性和灵活性方面有各种权衡
ASIC具有很高的成本效益,可以提供最佳的价格性能,但其灵活性有限。虽然基于ASIC的NIC(例如Mellanox ConnectX-5)可以具有相对容易配置的可编程数据路径,但最终功能将受到基于ASIC中定义的功能的限制.
FPGA NIC(例如Mellanox Innova-2 Flex相比之下)是高度可编程的,并且可以花费足够的时间和精力来相对有效地支持几乎任何功能(在可用门的限制内),然而,众所周知,FPGA难以编程且价格昂贵.
因此,对于更复杂的用例,SOC(如Mellanox BlueField DPU可编程SmartNIC)提供了似乎是基于DPU的最佳SmartSmart实施选项:良好的价格性能,易于编程且高度灵活.
11.Mellanox ConnectX-5 VPI/InnovaFlex FPGA卡
Innova-2具有PCIe 4.0 x8主机连接性和双端口SFP28 25GbE功能。板载PCIe交换机允许管理员使用Xilinx FPGA在网络流量路径中配置卡以进行高速数据包处理,或者将其配置为暴露给主机系统和网络以进行计算负载的设备.Xilinx FPGA具有4GB板载DDR4-2400存储器.
MelaNox加速交换和分组处理(ASAP2)技术允许通过在NIC硬件中处理数据平面来卸载vSwitc/vRouter,同时保持控制平面未被修改.在没有相关CPU负载的情况下,vSwitc/vRouter性能显著提高.
由CONTROX-5支持的vSwitc/ vRouter卸载功能包括覆盖网络(例如,VxLAN、NVGRE、MPLS、GNYVE和NSH)报头的封装和去封装,以及内部分组的无状态卸载、分组报头的NAT功能等等.
-每个端口高达100Gb/s连通性
-业界领先的吞吐量、低延迟、低CPU利用率和高消息率
-利用多主机技术最大化数据中心ROI
-基于主机链接技术的存储和机器学习的创新架构设计
-X86、Power、ARM和基于GPU的计算和存储平台的智能互连
-先进的存储能力,包括NVMe卸载能力
-支持灵活流水线编程的智能网络适配器
-包括网络功能虚拟化(NFV)在内的虚拟化网络中的前沿性能
-启用高效的服务链接能力
-高效的I/O合并,降低数据中心成本和复杂性
12.Intel Arria10 FPGA网卡
Intel Arria 10设备相比同类设备可提供高出一个速度等级的内核性能及高达 20% 的最高频率优势.
此外,Arria 10系列提供可编程逻辑行业的仅有20nm的基于ARM的SoC,可提供高达1.5 GHz的时钟速度.Arria 10系列还为FPGA中的浮点运算提供了第一个强化支持,实现了新的DSP性能水平.
功耗低,可编程功耗技术 — 降低了低性能电路的器件功耗,同时在需要的地方实现卓越性能
智能电压 ID — 器件以更低的电压运行,而且不会影响性能
VCC 电源管理器 — 器件工作在不同电压电平下,获得更高性能或者更低功耗
低静态功耗 — 选择具有较低最大静态功耗的器件,业界唯一基于20nm ARM的SoC
多种SoC选择,具有双核ARM® Cortex®-A9 MPCoreTM 硬核处理器系统 (HPS)
现有的28nm Arria V SoC设计移植到Arria 10 SoC,无需修改处理器代码
特性
针对存储NoF卸载场景
SoC FPGA,ARM核心运行Linux和NoF控制面
第三方RoCEv2协议栈
13.Intel Stratix 10 FPGA网卡
英特尔 Stratix 10 FPGA和SoC在性能、功效、密度和系统集成度方面拥有业界领先的优势.
产品宣传特点:
异构 3D 系统封装 (SiP)集成
HBM2 DRAM 集成封装带来最高的内存带宽
支持58 Gbps PAM4和 30 Gbps NRZ 的双模收发器
具有550 万个逻辑元件 (LE) 的最高密度 FPGA 架构
符合 IEEE 754 标准的单精度 浮点数字信号处理 (DSP) 吞吐量高达每秒 10 万亿次浮点运算 (TFLOPS)
具有最全面安全功能的安全设备管理器 (SDM)
集成四核 64 位ARM* Cortex*-A53 硬处理器系统,主频高达 1.5 GHz
业经优化和验证的补充型英特尔 Enpirion® 电源解决方案
14.SmartNIC网卡设计考虑
随着VxLan等隧道协议的引入和虚拟交换的复杂行为,基于服务器的网络数据平面的复杂性大大提高;增加网络接口带宽意味着在软件中执行这些功能会在CPU资源上产生不能承受的负载,造成剩余CPU资源过少;SDN的关键需求是网络数据平面必须互换等需求,要求SmartNIC卡在设计时,需要考虑以下因素:
可编程硬件
Programmable ASIC (Mellanox/Broadcom/QLogic)
FPGA (Intel/Xilinx)
SOC (Huawei/Netronome)
通用处理器
ARM
ATOM(Intel x86)
功率能耗:>75w超出PCIe插槽供电,需外接电源,随着处理性能提升,功耗必然增长,尤其又引入了多核处理器
安全隔离:SmartNIC(即NIC)是检查网络流量,阻止攻击和加密传输的第一个/最简单/最佳的位置.
能够实现复杂的基于服务器的网络数据平面功能,包括多个匹配动作处理,隧道终止和发起,计量及流量统计
通过固件加载或客户编程来支持可替换的数据平面,对可执行的功能几乎没有预定的限制
与现有的开源生态系统无缝集成,最大限度地提高软件功能
15.SmartNIC进展综述
没有SmartNIC配合纯软overlay转发性能很差,必然无法推进
SmartNIC无论采用Programmable ASIC、FPGA、SOC,只是实现手段不同,并无技术高低
关键看落地推进速度
SmartNIC接口的标准化
消除运营商被绑定的顾虑
运营商自己不做,所以也明白或多或少被lock-in,但最低要求是接口标准的开放、不私有
SmartNIC技术成熟
公有云已开始灰度测试
预计会在一两年内成熟井喷
对电信云承载网络方案,还需要考虑控制面(路由协议、路由信息传输、路由规格)
可把路由协议跑到SmartNIC上的通用CPU,下沉控制面,比如SRv6
SmartNIC独立的DDR内存、存储路由表项,不占用主机存储资源
本文转载自:
https://zhuanlan.zhihu.com/p/639034074?utm_id=0
仅供学习之用,如有侵权删除;