算力網路城域RDMA在家寬網路中的應用探索
算力網路城域RDMA在家寬網路中的應用探索
一、傳統TCP/IP網路傳輸困境
1.1 傳統乙太網路端對端傳輸系統開銷過大
在描述通訊過程時的軟硬體關係時,我們通常會將模型劃分為使用者層Userspace、核心Kernel以及硬體Hardware。
Userspace和Kernel實際上使用的是同一塊實體內存,但是出於安全考慮,Linux將內存劃分為用戶空間和內核空間。使用者層沒有權限存取和修改核心空間的記憶體內容,只能透過系統呼叫陷入核心態,Linux的記憶體管理機制比較複雜。
一次典型的基於傳統乙太網路的通訊過程的可以如下圖所示進行分層:
這個模型的資料流向大致是像上圖這個樣子,資料首先需要從使用者空間複製一份到核心空間,這次複製由CPU完成,將資料區塊從使用者空間複製到核心空間的Socket Buffer中。核心中軟體TCP/IP協定堆疊為資料添加各層頭部和校驗資訊。最後網路卡會透過DMA從記憶體複製數據,並透過實體連結傳送給對端的網路卡。
而對端是完全相反的過程:硬體將資料包DMA拷貝到記憶體中,然後CPU會對資料包進行逐層解析和校驗,最後將資料複製到用戶空間。上述過程中的關鍵點是需要CPU全程參與整個資料的處理過程,即從用戶空間拷貝資料到核心空間、以及對資料進行組裝和解析等,資料量大的情況下,這將對CPU將造成很大的負擔。
傳統網路中,“節點A給節點B發訊息”實際上做的是“把節點A內存中的一段數據,通過網絡鏈路搬移到節點B的內存中”,而這一過程無論是發端還是收段,都需要CPU的指揮與控制,包括網卡的控制,中斷的處理,封包的封裝與解析等等。
上圖中左邊的節點在記憶體用戶空間中的數據,需要經過CPU拷貝到核心空間的緩衝區中,然後才可以被網卡訪問,這期間數據會經過軟體實現的TCP/IP協議棧,加上各層頭部和校驗碼,如TCP頭,IP頭等。網路卡透過DMA拷貝核心中的資料到網卡內部的緩衝區中,進行處理後透過實體連結傳送給對端。
對端收到資料後,會進行相反的過程:從網路卡內部儲存空間,將資料經由DMA拷貝到記憶體核心空間的緩衝區中,然後CPU會透過TCP/IP協定棧進行解析,將資料取出來拷貝到使用者空間。可以看到,即使有了DMA技術,上述過程還是對CPU有較強的依賴。
1.2 TCP協定本身在長肥管道場景下存在天然不足
- TCP長肥管道的兩大特徵
①傳輸時延(發送時延)很小:收發包速度很快,非常短的時間就能把大量的資料送到網路上。
②傳播時延很大:資料包從傳送到網路開始,要經過很長的時間(比起發送延遲)才能傳送到接收端。
- LFN對TCP效能的影響
①LFN的頻寬延遲積很大(發送很快,傳播到另外一端需要很長時間),導致會有大量的資料包滯留在傳播途中TCP流控演算法會在視窗變成0時停止發送。但原始的TCP頭部的視窗大小欄位是16位的,因此視窗大小最大為65535字節,這就將發送方發送但未被確認的資料的總長度限製到了65536字節。參考計算65535*8/1024/1024=0.5Mbps,那麼假設發送速度夠快的前提下,在傳播時延為100毫秒的網路裡,只要5Mbps的頻寬就可以做到在第一個bit還沒到達接收端時,發送端就已經發送完了最後一個bit, 然後窗口變成0,停止發送數據,還要等待至少100毫秒發送端才能收到接收端發回的接收窗口通告,然後才能打開窗口繼續發送,意味著最多只能使用到5Mbps的頻寬,因此不能充分利用網路。------由此提出了視窗擴大選項以聲明更大的視窗。
②LFN的高延時會導致管線枯竭
根據TCP的擁塞控制,丟失分組會導致連接進行擁塞控制,即便是由於冗餘ACK而進入了快速恢復,也會使得擁塞窗口降低一半,而如果是由於超時進入了慢啟動,則擁塞窗口會變為1,無論是哪一種情形,發送方允許被發送的資料量都大量減小了,這會使得管道枯竭,網路通訊速度急劇下降。
③LFN不利於TCP協定的RTT測量
按TCP協議,每個TCP連線只有一個RTT計時器, 同一時間,只有一個報文做RTT測量,啟動RTT計時的資料在沒有被ACK前, TCP無法進行下一次RTT的測量。而在長肥管道中,傳播時延很大,這意味著RTT的測試週期很大。
④LFN導致收端tcp亂序
長肥管的發送速度非常快(發送延遲),TCP對每個位元組資料使用一個32bit無符號的序號來進行識別。TCP定義了最大的封包段生存時間(MSL)來限制封包在網路中的生存時間。但在LFN網路上,由於序號空間是有限的,在已經傳送了4294967296個位元組以後序號會被重複使用。如果網路快到在不到一個MSL的時候序號就發生了迴繞,網路中就會有兩個具有相同序號的不同的封包段,接收方將無法區分它們的順序。在一個千兆位元網路(1000Mb/s)只需要34秒就可以完成4294967296個位元組的發送。
二、XDP的整體框架
2.1 基本原理
RDMA(Remote Direct Memory Access)意為遠端直接位址訪問,透過RDMA,本端節點可以「直接」存取遠端節點的記憶體。所謂“直接”,指的是可以像訪問本地內存一樣,繞過傳統以太網複雜的TCP/IP網絡協議棧讀寫遠端內存,而這個過程對端是不感知的,而且這個讀寫過程的大部分的工作是由硬體而不是軟體完成。而使用了RDMA技術之後,這個過程可以簡單的表示成下面的示意圖:
同樣是把本端記憶體中的一段數據,複製到對端記憶體中,在使用了RDMA技術時,兩端的CPU幾乎不用參與資料傳輸過程(只參與控制面)。本端的網路卡直接從記憶體的用戶空間DMA拷貝資料到內部儲存空間,然後硬體進行各層封包的組裝後,透過實體連結傳送到對端網路卡。對端的RDMA網卡收到資料後,剝離各層封包頭及校驗碼,透過DMA將資料直接拷貝到用戶空間記憶體中。RDMA將伺服器應用資料直接由記憶體傳送到智慧網卡(固化RDMA協定),由智慧網路卡硬體完成RDMA傳輸封包封裝,解放了作業系統和CPU。
2.2 核心優勢
1)Zero Copy(零拷贝):无需将数据拷贝到操作系统内核态并处理数据包头部的过程,传输延迟会显著减小。
2)Kernel Bypass(核心旁路) :不需要作業系統核心參與,資料通路中沒有繁瑣的處理標頭邏輯,不僅會使延遲降低,而且也大大節省了CPU的資源。
3)Protocol Offload(協定卸載): RDMA通訊可以在遠端節點CPU不參與通訊的情況下,對記憶體進行讀寫,這其實是把封包封裝和解析放到硬體中做了。比較傳統的乙太網路通信,雙方CPU都必須參與各層報文的解析,如果資料量大且交互頻繁,對CPU來講將是一筆不小的開銷,而這些被佔用的CPU運算資源本來可以做一些更有價值的工作。
相較於傳統以太網,RDMA技術同時做到了更高頻寬和更低時延,所以其在頻寬敏感的場景中——比如海量數據的交互,時延敏感——比如多個計算節點間的數據同步的場景下得以發揮其作用。
2.3 RDMA網路基本分類
目前,大致上有三類RDMA網絡,分別是InfiniBand、RoCE(RDMA over Converged Ethernet,RDMA過融合乙太網路)和iWARP(RDMA over TCP,網際網路廣域RDMA協定)。RDMA最早專屬於Infiniband網路架構,從硬體層級確保可靠傳輸,而RoCE和iWARP都是基於乙太網路的RDMA技術。
1) 無限頻寬
InfiniBand是一種專為RDMA設計的網絡, 由IBTA(InfiniBand Trade Association)在2000年提出,其規定了一整套完整的鏈路層到傳輸層(非傳統OSI七層模型的傳輸層,而是位於其之上)規範,主要採用Cut-Through轉送模式(直通轉送模式)以減少轉送時延,基於Credit的流控機制(基於信用的流控機制)以確保無丟包。但IB也存在不可避免的成本缺陷。由於無法相容於現有以太網,除了需要支援IB的網卡之外,企業如果想部署的話還要重新購買配套的交換設備。
2)RoCE
RoCE有兩個版本:RoCEv1基於乙太網路鏈路層實現,v1版本網路層仍然使用了IB規範,而v2使用了UDP+IP作為網路層,使得封包也可以被路由,只能在L2層傳輸;RoCEv2基於UDP承載RDMA,可部署於三層網路。
RoCE可以被認為是IB的“低成本解決方案”,部署RoCE網路需要支援RDMA專用智慧網卡,不需要專用交換器和路由器(支援ECN/PFC等技術,降低丟包率),其建網成本在三種rdma網路模型中最低。
3)iWARP
傳輸層為iWARP協議,iWARP是乙太網路TCP / IP協定中TCP層實現,支援L2 / L3層傳輸,大型組網TCP連接會消耗大量CPU,所以應用很少。
iWARP只要求網路卡支援RDMA,不需要專用交換器和路由器,建網成本介於InfiniBand和RoCE之間。
2.4 實現對比
Infiniband技術先進,但是價格高昂,應用局限在HPC高效能運算領域,隨著RoCE和iWARPC的出現,RDMA的使用成本進一步,從而推動了RDMA技術普及。
在高效能儲存、運算資料中心中採用這三類RDMA網絡,都可以大幅降低資料傳輸時延,並為應用程式提供更高的CPU資源可用性。
其中InfiniBand網路為資料中心帶來極致的效能,傳輸時延低至百納秒,比乙太網路設備延時低一個量級;
RoCE和iWARP網路為資料中心帶來超高性價比,基於乙太網路承載RDMA,充分利用了RDMA的高效能和低CPU使用率等優勢,同時網路建置成本也不高;
基於UDP協定的RoCE比基於TCP協定的iWARP效能更好,結合無損乙太網路的流控技術,解決了丟包敏感的問題,RoCE網路已廣泛應用於各行業高效能資料中心。
三、RDMA在家寬網路中的應用探索
在「網路強國、數位中國、智慧社會」等國家策略的全面推進下,數位化、網路化、智慧化的數位家庭已成為智慧城市理念在家庭層面的體現,「十四五」規劃與2035遠景目標中,數位家庭被定位為建構「美好數位生活新圖景」的重要組成部分,在新一代資訊科技的支持下,數位家庭正向智慧家庭不斷演進,完成從「數位」到「智慧」的轉變。目前,中國智慧家庭市場規模逐年擴大,中國已成為全球最大的智慧家庭市場消費國,佔據全球約50%~60%的市場份額(數據來源:CSHIA,艾梅數據,國家統計局)。根據賽迪顧問研究預計,2030年中國智慧家庭市場規模將達到15,700億元,2021—2030年平均複合成長率(CAGR)高達14.6%。
伴隨著家寬市場規模的快速發展是:
① 家寬無差異化、盡力而為的服務方式與業務差異化、確定性網路品質需求間的矛盾
目前寬頻存取對不同業務網路連線不做差異化區別,以盡力而為方式提供服務,在擁塞時所有業務優先順序相同,採用的處理策略相同。但業務對網路品質要求不同,對時延丟包等敏感度不同,部分時延敏感業務如遊戲、雲端電腦等需要確定性網路保障,為確保使用者體驗,在網路擁塞丟包時,使用者體驗急劇下降,因此在擁塞時對此類業務需要不同的處理策略。
② 頻寬提升與長肥管道場景體驗劣化間的矛盾
根據工信部統計數據,全國100Mbps以上寬頻用戶佔比超過94%,但用戶在存取遠距離內容時仍有卡頓、下載速度慢的問題。原因不是接入頻寬不足,而是底層TCP協定擁塞控制演算法在長肥管道(LFN)場景下的天然不足。TCP為幾十年前的協議,已無法適應目前的網路狀態與應用需求,亟需新的協定與演算法來確保長肥管道場景下的業務體驗。
綜上,從產業趨勢來看,在家寬網路算力化升級的浪潮之下,RDMA技術相較於TCP而言,能夠實現運算和網路的深度融合。將資料直接從一台電腦的記憶體傳輸到另一台計算機,無需雙方作業系統的介入,不需要經過處理器耗時的處理,最終達到高頻寬、低延遲和低資源佔用率的效果。