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內存、存儲路由表項,不占用主機存儲資源