張昕怡,潘恒,謝高崗,3
專題:新型網絡技術
可編程網絡數據平面技術進展
張昕怡1,潘恒2,謝高崗1,3
(1.中國科學院計算機網絡信息中心,北京 100190;2.中國科學院計算技術研究所,北京 100190;3. 中國科學院大學,北京 100049)
網絡數據平面執行數據包處理轉發,是網絡性能的決定性因素之一。大帶寬、低時延、可持續演進的網絡基礎設施需要構建高效可編程的網絡數據平面。首先,介紹數據包處理轉發模型,并以此為基礎概述網絡數據平面在性能與可編程性面臨的關鍵挑戰。然后,從數據包查找算法理論與軟/硬件協同實現機制出發,詳細論述其基本思路及關鍵核心技術進展以應對上述關鍵挑戰。最后,探討高效可編程數據平面的未來發展趨勢與技術演進路線。
網絡可編程數據平面;軟/硬件協同設計;數據包處理;網絡內計算
互聯網已成為人類社會的基礎設施,通過數據包查找轉發,實現人機物互聯。數據平面執行數據包查找轉發,是網絡性能的決定性因素之一。4K/8K超高清視頻點播、增強現實/虛擬現實(augmented reality/virtual reality,AR/VR)及物聯網等應用[1-3]的發展,對網絡提出大帶寬、廣連接和低時延等性能需求。受限于芯片器件工藝,僅通過硬件升級和設備堆疊無法滿足服務質量需求。為了解決上述問題,軟件定義網絡(software defined network,SDN)、網絡切片、算網融合及新型網絡體系結構被廣泛研究與應用[4-6]。上述技術要求數據平面在保障高效轉發的同時,提供查找規則、匹配運算、轉發隊列可編程能力,因此,網絡數據平面查找算法與實現機制都面臨新挑戰。
數據平面的基本操作是數據包查找轉發:接收端口收到數據包后,解析數據包相關字段,匹配規則表;根據精確匹配、最長前綴查找或正則表達式匹配結果,執行數據包修改、轉發或者丟棄等操作。不同的網絡設備功能具有不同的規則表與匹配操作。例如,交換機由媒體訪問控制(media access control,MAC)表實現精確匹配,路由器查找路由表執行最長前綴匹配,防火墻查找五元組實現數據包分類,SDN交換機查找多級流表實現轉發,5G云核心網通過報文檢測規則(packet detection rule,PDR)、統一資源定位符(uniform resource locator, URL)規則匹配實現流量計費。
數據包查找轉發是典型的維空間點定位問題,構造最優的查找決策樹已被證明是多項式復雜程度的非確定性完全(non-deterministic polynomial complete,NPC)問題[7]。IPv6的廣泛部署、規則表條目增加、網絡切片與虛擬化轉發表增加、SDN流表字段增加與高頻更新,對數據平面性能與可編程性提出新需求,而可編程性也進一步對性能提出新挑戰。
數據包查找模塊轉發速度將決定網絡設備的轉發速率、隊列長度與丟包率,是網絡性能的決定性因素之一。在5G/B5G網絡環境中,雖然無線側空口傳輸的性能得到大幅度提升,但核心網處理能力和效率受限于數據包處理轉發的性能,成為網絡傳輸的性能瓶頸。面對當前網絡環境中業務流量、系統規模以及功能復雜性的增長,數據平面性能面臨以下挑戰。
●查找速度方面,大帶寬網絡需要數據包高速查找轉發。當鏈路帶寬為100 Gbit/s時,按照最小以太網幀計算,線速數據包轉發吞吐量需達到約150 Mbit/s,即幀間時延約為7 ns。實際上,末級緩存(last level cache, LLC)的訪問通常需要約40 ns,若LLC未命中,訪問內存則需要約100 ns,通用處理平臺上的實現線速轉發成為挑戰。
●存儲容量方面,目前骨干網路由器IPv4路由表項達到百萬級,IPv6路由表項達到十萬級;云計算平臺虛擬路由表規模達到千萬級;云化5G核心網需為數十萬用戶的并發會話獨立配置用戶策略,將在數據平面產生千萬級的規則。大規模規則需要大存儲空間,增加設備制造成本與能耗,也會因內存墻的存在誘發訪存瓶頸,使系統整體處理性能下降。
●更新速度方面,軟件定義網絡與網絡功能虛擬化為網絡帶來極大的靈活性與可編程性,同時,網絡狀態和網絡功能將頻繁動態變化。在5G核心網和云數據中心,業務的多樣性加劇了網絡的動態性和不確定性,系統中規則更新的頻率大幅提升。異步更新會產生大量的查找錯誤,從而使重傳等嚴重影響傳輸性能的問題;同步更新則會直接阻塞查找進程,降低整體處理性能。基于決策樹數據包分類算法具有高更新時間復雜度,要在保持高速查找的同時實現動態增量更新,挑戰巨大。
互聯網體系結構、協議與業務的持續創新需要可編程數據面提供執行、部署與驗證環境。早期的可編程數據面主要基于通用處理器平臺,數據包處理邏輯以軟件方式部署執行,具有良好的靈活性與可編程性。近年來,雖然高性能輸入/輸出(input/output,I/O)架構(DPDK[8]、Netmap[9]、PF_RING ZX[10]等)取得進展,但通用CPU的數據包處理性能有限?;诳删幊探粨Q芯片[11]的網絡數據面雖然可提供部分基礎編程能力與T級處理能力,使用戶通過特定編程語言構建復雜的網絡應用,但仍面臨以下挑戰。
(1)統一抽象
基于可編程交換芯片的網絡數據面通常采用“Match-Action”流水線的抽象結構,可實現無狀態網絡功能,但難以完整實現帶狀態的網絡業務,導致應用范圍受限。如何在現有數據面抽象基礎之上進一步延伸擴展,構建統一、完整的抽象模型,支撐帶復雜狀態數據包運算,需要設計新的數據包處理抽象與范式。
(2)資源受限
可編程交換芯片的計算能力、存儲資源、數據面流水線等多維資源受限,限制了數據面的數據包處理能力,無法支持復雜的數據包操作。如何在空間固定且受限的交換芯片上放置更多的計算邏輯、存儲器件以及流水線結構,不僅是芯片制造工藝所面臨的巨大挑戰,更是交換芯片核心算法設計與實現的系統性難題。
(3)安全威脅
網絡的開放性與可編程性會引入“人”的因素,將增加出錯的風險,影響網絡的可靠性與穩定性;同時,管控分離架構易造成拒絕服務攻擊,導致轉發性能下降。如何對數據面部署的網絡策略進行實時異常檢測與功能驗證,對惡意網絡流量進行安全隔離與處理,保障網絡數據面安全是一個關鍵性挑戰。
網絡數據包查找轉發是網關、交換機、路由器、防火墻等關鍵網絡設備的核心功能,其性能直接決定了相關設備的處理能力、成本以及穩定性。隨著網絡帶寬的增長、網絡規模的擴大以及網絡動態性的增加,現有方案難以滿足大帶寬、大容量、靈活動態的新需求。因此,創新查找轉發關鍵算法和實現機制,突破現有技術性能瓶頸,是實現高效網絡數據平面傳輸與計算的關鍵。
最長前綴查找是路由器的基本操作,隨著骨干路由轉發信息庫(forwarding information base,FIB)的規模不斷擴大和網絡帶寬的迅速增長,單域最長前綴查找算法需要不斷提升查找速率并降低路由轉發表存儲開銷。云計算虛擬路由器平臺由于多個虛擬路由器共存,存在多個FIB,需要在保證低存儲開銷的同時,提升查找與更新速度。隨著IPv6技術的廣泛部署,IP地址前綴長度從IPv4中的32 bit變為128 bit,查找時間與存儲開銷進一步增加。提升路由查找性能,可以基于算法理論構建低存儲開銷與查找時間復雜度的算法,還可以利用規則的分布和特征優化查找結構。對于IPv4最長前綴查找,可以利用IP地址前綴規則非均勻分布特征和片上/片外存儲的性能特點,通過對查找流程和規則存儲拆分,實現存儲空間高效利用的同時達到高速的查找速率[12];對于多虛擬路由表,可以通過挖掘規則前綴特征,設計高效的數據結構和合并方案,實現面向虛擬路由器的高性能、支持快速更新、可擴展的IP地址查找方法[13];對于IPv6最長前綴查找,同樣可以基于規則集的分布,優化查找數據結構降低訪存次數,提升查找速率[14]。
數據包分類算法基于多域規則集(如五元組)對數據包進行查找匹配,是防火墻、入侵檢測、負載均衡系統、虛擬專用網絡(virtual private network,VPN)等網絡設備的基本操作。隨著網絡規模的擴大和網絡功能的復雜化,規則的急劇增加使數據包分類算法面臨的存儲壓力和性能挑戰更加嚴峻。通過預先設定的方案劃分整個規則空間并構造決策樹,能夠實現查找結構體的快速構建[15-16],但是由于忽略了規則的特征,構建決策樹的過程可能產生規則的大規模復制進而增加存儲開銷;此外,不同的決策樹算法在不同的規則集會出現較大的性能波動和差異。通過設計估算不同算法存儲開銷的評估預測模型[17],基于規則特征動態選擇最優的方案構造決策樹,能夠顯著減少規則復制,降低存儲開銷,同時提升查找性能。
流表查找算法本質屬于多域規則匹配,只因軟件定義網絡與網絡功能虛擬化場景規則更新頻繁,需要流表查找算法能夠支持規則集的快速增量更新。傳統的流表查找算法基于哈希表[18]實現規則的高速更新,但是數據包查詢時需要遍歷哈希表,因此查詢速率緩慢。雖然基于預先設定的策略對哈希表進行合并[19]可以減少哈希表的數目,但由于忽略了規則的特征,可能會產生較多的哈希沖突數從而增加驗證時間,影響查詢速率。因此,如何在有效地減少哈希表的數目同時降低哈希沖突數,是實現高效流表查找算法的關鍵。要解決上述問題,一方面可以將合并哈希表產生的沖突數轉化為合并概率(即沖突數越大合并的概率越?。?,進而指導哈希表的合并[20];另一方面,可以利用人工智能中監督學習的方法,通過線下篩選合并方案并完成訓練模型,指導線上基于哈希表的查找結構體的構建,在減少哈希表數目的同時,有效控制哈希沖突概率,實現規則的高速增量更新[21]。
雖然軟件算法的創新始終是實現高效數據平面的技術路線之一,但算法的執行效率與硬件體系結構密切相關?;谟布w系結構設計算法,能夠高效充分利用硬件資源從而提升數據平面性能。因此,通過軟/硬協同的方式實現高效可編程的網絡數據平面成為當前研究的熱點。
專用硬件平臺受限于芯片處理邏輯的設計,不同平臺的可編程性通常與性能成反比,硬件實現的性能與可編程性如圖1所示。在CPU通用軟件平臺上,CPU高度靈活,能夠實現復雜計算場景的需求,但是CPU沒有針對數據包處理設計實現專用的加速邏輯,性能較硬件轉發設備差。此外,云平臺中CPU及內存等資源由多業務共享競爭,無法保障數據平面中負責數據包處理轉發程序的性能?,F場可編程邏輯門陣列(field programmable gate array,FPGA)芯片內集成大量的基本門電路以及存儲器,用戶通過更新FPGA配置文件定義門電路以及存儲器之間的連線,被廣泛用作硬件可編程加速平臺。網絡處理器(network processor,NP)通常由若干微碼處理器和若干硬件協處理器組成,可以基于微碼編程,同時能夠實現高速數據包的處理。專用集成電路(application specific integrated circuit,ASIC)作為定制加速平臺,其硬件電路不可改變,因此也不具備可編程的能力。但是ASIC面向特定應用場景定制開發,因此僅能夠在對應的應用場景發揮硬件平臺強勁的性能。

圖1 硬件實現的性能與可編程性
通過上述分析可知,要實現高性能且可編程的數據平面,需要將通用平臺的靈活性和可編程性與專用硬件的高效性深度融合,軟/硬件協同加速。
基于不同的數據平面架構,通過開發高級編程語言能夠降低網絡數據平面編程門檻,為網絡數據平面的研究和發展帶來更多契機。Click[22]基于C++實現數據包在CPU中的處理邏輯,PX[23]則是面向FGPA平臺的數據包處理語言,而可編程協議無關報文處理(programming protocol- independent packet processors,P4)[24]作為一種協議無關的高級編程語言,能夠屏蔽可編程交換芯片底層硬件邏輯,基于芯片提供的接口對網絡數據平面進行編程,目前應用最為廣泛。P4通過基于高層抽象語言對數據包處理流程進行自定義,實現對數據包處理流程邏輯即時編程的可重配置性,基于自定義的數據處理邏輯實現協議無關性,并且在代碼編寫過程中,P4無須關心底層設備實現細節,因而具備目標設備無關性。借助P4帶來的數據平面編程能力,網絡研究人員可以實現路由器、防火墻等網絡設備功能與網絡協議,加速網絡創新。
同時,基于可編程芯片和P4,網絡具備初步的計算能力,這使傳統以CPU/GPU為中心的計算模式逐漸轉變為以數據為中心的計算模式,網絡與計算進一步深度融合,網絡內計算(in-network computing)這一新型技術得以興起。網絡內計算的核心思想在于通過網絡側與端側的協同,使網絡數據在傳輸的過程中邊轉發邊計算,從而降低端側計算壓力,提升網絡傳輸的通量。當前,網絡內計算技術的發展主要集中在兩個方面。其一是對網絡算力的增強,從而使網絡具備處理更為復雜業務與數據的能力。例如,NetFC[25]設計了基于多表查詢的在網浮點數計算方法;P4AES[26]使網絡具有數據加解密能力;而ZipLine[27]實現了網絡數據的在網壓縮/解壓縮。其二是通過網絡內計算技術加速傳統網絡功能或典型分布式應用。例如,Beamer[28]將負載均衡部分功能實現在可編程交換機上,從而能夠處理40 Gbit/s的HTTP流量;SwRL[29]在可編程交換機上實現了高性能可擴展流量限速器;NetCache[30]利用可編程交換機對網絡的key-value存儲應用進行緩存及快速響應,其性能可以達到每秒20億次查詢;SwitchML[31]和ATP[32]提出了基于可編程交換機的網絡內梯度聚合機制,加速分布式訓練效率;NetSHa[33]將分布式搜索中的答案約減卸載到可編程交換機完成,極大提升檢索效率。
傳統的數據包處理方式基于CPU中斷,即網卡驅動接收數據包后通過中斷通知CPU處理,然后由CPU拷貝數據并交給協議棧。隨著網絡帶寬的增加,海量數據包的處理將產生大量CPU中斷,使系統時延上升、吞吐量下降,同時降低基礎架構的整體效率。DPDK[8]、Netmap[9]、PF_RING ZX[10]等架構基于內核旁路(kernal bypass)技術實現高性能I/O。其中,DPDK可提供高性能的數據包處理庫和用戶空間驅動程序,是目前主流的高性能I/O架構。不同于傳統數據包處理使用CPU中斷方式,DPDK采用輪詢方式實現數據包處理過程。DPDK重載了網卡驅動,該驅動在收到數據包后不產生中斷通知CPU,而是將數據包通過零拷貝技術存入內存,應用層程序通過DPDK提供的接口直接從內存讀取數據包。這種處理方式節省了CPU中斷時間、內存拷貝時間,并向應用層提供了簡單易行且高效的數據包處理方式。
(1)CPU指令優化算法
通用平臺上的網絡數據平面的查找算法由軟件實現。算法或者數據結構的優化可以提升算法查找性能,進而優化網絡數據平面的處理能力。而算法的高效性與體系結構密切相關,利用體系結構特性或CPU指令進一步優化軟件算法。針對數據平面中的單域最長前綴查找算法,可基于CPU體系結構和緩存調度特點,利用訪存局部性實現高通量算法。對基于決策樹的數據包分類算法,可利用CPU比特位操控指令PEXT[34]對每個樹節點制定有效的切割規則,構建高效的查找數據結構并提升查找速率。
(2)網卡卸載
智能網卡( smart network interface card,Smart NIC)[35-38]通過在傳統以太網接口和硬件總線之間,嵌入具有計算和存儲功能的網絡處理器或現場可編程邏輯門陣列,使其具有高度可編程化定制的特點,提升計算和存儲能力。通過使用智能網卡協助CPU處理網絡負載(包括TCP卸載、VxLAN/GRE隧道報文卸載、IPSec[39]加/解密的卸載、防火墻卸載等),能夠有效減輕宿主機CPU負載。以IPSec在智能網卡上的卸載為例,IPSec是一組基于網絡層的安全通信協議族。通過對IP的分組進行加密和認證來保護IP的網絡傳輸協議簇,已部署于VPN、無線網絡和安全網絡虛擬化隧道。當開啟IPSec功能后,IPSec處理模塊會在收到的數據包IP頭和高層協議頭之間插入經復雜計算得到的IPSec頭。而隨著網絡帶寬的增加,頻繁的加/解密操作會消耗大量CPU資源,嚴重影響系統性能。通過將IPSec中的加/解密任務卸載到智能網卡,雖然部分操作仍需要在軟件側完成,但是利用智能網卡硬件優勢能夠顯著提升系統性能。
面向數據中心的專用處理器(data processing unit,DPU)最早由硅谷創業公司Fungible[40]提出,英偉達公司(NVIDIA)在收購邁勒羅斯科技公司(Mellanox Technologies)后,推出BlueField系列DPU[41]。BlueField DPU在傳統智能網卡上嵌入CPU,通過卸載控制平面的任務和一些靈活復雜的數據平面任務,達到釋放宿主CPU資源、提升網絡性能的目的。以DPU加速虛擬網絡交換機(open vSwitch,OVS)[42]為例,不同于Mellanox ConnectX-5[43]在智能網卡實現相對簡單的可編程數據路徑,控制平面仍需要在宿主CPU處理。即當收到報文后,檢查是否在快速路徑已緩存該類報文的處理規則,命中則直接按照對應的規則執行操作,否則傳送至軟件虛擬交換機。BlueField DPU中OVS[44]直接部署在其上ARM(advanced RISC machine)架構的CPU中,而OVS中的快速路徑可卸載到網絡硬件加速器eSwitch,該卸載方案可降低數據面和控制面之間通信的時延,加速網絡數據平面的處理。
對于高效數據平面算法的實現,可以分別從優化算法實現與算法理論創新兩個方面開展。
在優化算法實現方面,由于規則集分布特性和流量特征影響算法性能,通過深入挖掘規則分布特性與流量特征優化算法,能夠極大提升算法性能。隨著人工智能技術的發展與進步,基于人工智能的技術實現流量和規則特征提取及算法優化,是實現高效算法的關鍵解決思路和研究方向。對于高效算法的實現,除了分別從時間復雜度和空間復雜度優化代碼的執行效率和空間存儲,由于算法的執行效率與硬件體系結構密切相關,還可以進一步從體系結構、CPU指令執行的角度實現算法與系統的深度融合。
在算法理論創新方面,通過針對具體的應用場景設計新型數據結構,能夠進一步提升網絡性能。Sketch[45-46]通常用于數據平面測量,能夠在高速網絡環境中實時地存儲流量特征信息,并且僅占用較小的存儲空間,具備在理論上可證明的估計精度與內存的平衡特性。Learned index[47-48]通常用于索引查詢,通過利用機器學習技術得到更好的范圍索引,使用機器學習模型代替傳統的B樹索引,從而在實現存儲高效壓縮的同時保證較高的查詢速率。
優化創新數據包匹配算法是大幅提升網絡數據平面性能的關鍵。如何在使網絡更加智能化的基礎上,更高效準確地提取流量和規則特征,基于具體應用場景對關鍵數據結構進行創新,將是網絡數據平面算法的設計思路和研究方向。
隨著云數據中心、虛擬化等技術的日趨成熟,虛擬服務器逐漸替代裸金屬服務器為不同客戶提供計算、存儲等差異化服務,達到高效利用不同類型資源的目的。單物理機或多物理機中的不同虛擬服務器之間需要通過虛擬網絡進行互聯互通、協同計算。虛擬網絡的性能已逐漸成為影響協同計算效率的關鍵因素。
高性能虛擬化網絡的構建需要從算法與系統兩個層面分別考量與設計。在算法層面上,需要設計靈活高效可擴展的查找轉發機制與數據結構,可針對不同網絡業務類型,快速確定網絡數據包的虛擬轉發路徑與轉發端口,提升轉發效率;在系統方面,需要設計高效的虛擬I/O與緩存機制,減少網絡數據包在虛擬轉發過程中的數據拷貝,提升整體的緩存命中率,提高系統性能。但無論是算法還是系統,需要充分挖掘新型網絡硬件的性能潛力,通過軟/硬協同設計,提升計算設備中的虛擬網絡性能。虛擬轉發、高效可靠虛擬I/O以及軟/硬協同系統設計架構與關鍵算法是未來需要解決的問題。
隨著可編程網絡設備的不斷演進與革新,特別是Mellanox智能網卡、Intel Tofino可編程交換機的出現,數據包在網絡傳輸過程中被計算、處理和轉發。受限于物理極限,網絡內單點設備的計算能力、片上存儲、流水線stage等多維資源受限,無法滿足復雜業務的網絡內計算需求,網絡內多點協同計算成為算網融合發展的一個重要趨勢。
網絡內協同計算的核心在于自動確定數據包的計算內容、邏輯與位置,在滿足靈活性的基礎上保障高性能。為此,構建一個面向服務定制的數據包計算框架顯得尤為重要。該計算框架需要對差異化業務進行全等級多粒度的分析與抽象,形成數據包計算基本操作單元能力集基于開放的編程接口及模板,不同網絡業務可通過數據包計算基本操作單元進行靈活、快速構建,利用框架的運行時系統進行編譯、解析,并將數據包計算基本操作單元精準映射到底層異構平臺進行高效執行。數據包計算統一編程模型與編程語言、數據包計算實時編譯系統以及異構數據面高效實現機制等是亟待解決的問題。
高效可編程數據平面是重要的新型組網實現技術。本文介紹了可編程數據面的轉發模型及面臨的關鍵性挑戰,梳理了高效數據包查找算法與軟/硬件協同實現機制等不同解決途徑的技術路線及發展趨勢。隨著可編程網絡技術的不斷發展,網絡數據面能力得到極大提升,將從傳統“傳輸管道”逐漸向以“數據包計算”為核心的傳算一體執行平臺演進。因此,構建統一的數據包計算模型、框架與實現機制,滿足數據包處理轉發按照業務負載在網絡與計算內自適應執行是未來可編程數據面發展的重要方向之一。
[1] AGIWAL M, ROY A, SAXENA N. Next generation 5G wireless networks: a comprehensive survey[J]. IEEE Communications Surveys & Tutorials, 2016, 18(3): 1617-1655.
[2] NIGHTINGALE J, SALVA-GARCIA P, CALERO J M A, et al. 5G-QoE: QoE modelling for ultra-HD video streaming in 5G networks[J]. IEEE Transactions on Broadcasting, 2018, 64(2): 621-634.
[3] SIRIWARDHANA Y, PORAMBAGE P, LIYANAGE M, et al. A survey on mobile augmented reality with 5G mobile edge computing: architectures, applications, and technical aspects[J]. IEEE Communications Surveys & Tutorials, 2021, 23(2): 1160-1192.
[4] MCKEOWN N, ANDERSON T, BALAKRISHNAN H, et al. OpenFlow[J]. ACM SIGCOMM Computer Communication Review, 2008, 38(2): 69-74.
[5] HONG C Y, MANDAL S, AL-FARES M, et al. B4 and after: managing hierarchy, partitioning, and asymmetry for availability and scale in Google's software-defined WAN[C]// Proceedings of SIGCOMM '18: Proceedings of the 2018 Conference of the ACM Special Interest Group on Data Communication. [S.l:s.n.], 2018: 74-87.
[6] HAN B, GOPALAKRISHNAN V, JI L S, et al. Network function virtualization: challenges and opportunities for innovations[J]. IEEE Communications Magazine, 2015, 53(2): 90-97.
[7] HYAFIL L, RIVEST R L. Constructing optimal binary decision trees is NP-complete[J]. Information Processing Letters, 1976, 5(1): 15-17.
[8] DPDK. Developer quick start guide[EB]. 2022.
[9] RIZZO L. Netmap: a novel framework for fast packet I/O[C]// Proceedings of 21st USENIX Security Symposium. [S.l.:s.n.]. 2012:101-112.
[10] Ntop. PF_RING: high-speed packet capture, filtering and analysis[EB]. 2022.
[11] Intel. 探索英特爾? 智能結構處理器的強大功能[EB]. 2022.
INTEI. Discover the power of the Intel? intellight fabric pracessor[EB]. 2022.
[12] YANG T, XIE G G, LI Y B, et al. Guarantee IP lookup performance with FIB explosion[C]//SIGCOMM '14: Proceedings of the 2014 ACM Conference on SIGCOMM. New York: ACM Press, 2014: 39-50.
[13] LUO L Y, XIE G G, SALAMATIAN K, et al. A trie merging approach with incremental updates for virtual routers[J]. 2013 Proceedings IEEE INFOCOM, 2013: 1222-1230.
[14] ZHANG C Y, XIE G G. Using XorOffsetTrie for high-performance IPv6 lookup in the backbone network[J]. Computer Communications, 2022(181): 438-445.
[15] VAMANAN B, VOSKUILEN G, VIJAYKUMAR T. EffiCuts: optimizing packet classification for memory and throughput[J]. ACM SIGCOMM Computer Communication Review, 2010, 40(4): 207-218.
[16] YINGCHAREONTHAWORNCHAI S, DALY J, LIU A X, et al. A sorted-partitioning approach to fast and scalable dynamic packet classification[J]. IEEE/ACM Transactions on Networking, 2018, 26(4): 1907-1920.
[17] HE P, XIE G G, SALAMATIAN K, et al. Meta-algorithms for software-based packet classification[C]//Proceedings of 2014 IEEE 22nd International Conference on Network Protocols. Piscataway: IEEE Press, 2014: 308-319.
[18] SRINIVASAN V, SURI S, VARGHESE G. Packet classification using tuple space search[C]//Proceedings of the Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication - SIGCOMM '99. New York: ACM Press, 1999.
[19] DALY J, BRUSCHI V, LINGUAGLOSSA L, et al. TupleMerge: fast software packet processing for online packet classification[J]. IEEE/ACM Transactions on Networking, 2019, 27(4): 1417-1431.
[20] ZHANG X Y, SALAMATIAN K, XIE G G. Improving open virtual switch performance through tuple merge relaxation in software defined networks[J]. IEEE Transactions on Network and Service Management, 5592(99): 1.
[21] ZHANG X Y, XIE G G, WANG X, et al. Fast online packet classification with convolutional neural network[J]. IEEE/ACM Transactions on Networking, 2021, 29(6): 2765-2778.
[22] KOHLER E, MORRIS R, CHEN B J, et al. The click modular router[J]. ACM Transactions on Computer Systems, 2000, 18(3): 263-297.
[23] BREBNER G, JIANG W R. High-speed packet processing using reconfigurable computing[J]. IEEE Micro, 2014, 34(1): 8-18.
[24] BOSSHART P, DALY D, GIBB G, et al. p4[J]. ACM SIGCOMM Computer Communication Review, 2014, 44(3): 87-95.
[25] CUI P L, PAN H, LI Z Y, et al. NetFC: enabling accurate floating-point arithmetic on programmable switches[C]//Proceedings of 2021 IEEE 29th International Conference on Network Protocols. Piscataway: IEEE Press, 2021: 1-11.
[26] CHEN X Q. Implementing AES encryption on programmable switches via scrambled lookup tables[C]//SPIN '20: Proceedings of the Workshop on Secure Programmable Network Infrastructure. [S.l:s.n.], 2020: 8-14.
[27] VAUCHER S, YAZDANI N, FELBER P, et al. ZipLine: in-network compression at line speed[C]//Proceedings of the 16th International Conference on emerging Networking EXperiments and Technologies. [S.l.:s.n.], 2020: 399-405.
[28] OLTEANU V, AGACHE A, VOINESCU A, et al. Stateless datacenter load-balancing with beamer[C]//Proceedings of 15th USENIX Symposium on Networked Systems Design and Implementation. [S.l.:s.n.], 2018: 125-139.
[29] HE Y C, WU W F, WEN X M, et al. Scalable on-switch rate limiters for the cloud[C]//Proceedings of IEEE INFOCOM 2021 - IEEE Conference on Computer Communications. Piscataway: IEEE Press, 2021: 1-10.
[30] JIN X, LI X Z, ZHANG H Y, et al. NetCache: balancing key-value stores with fast in-network caching[C]//Proceedings of the 26th Symposium on Operating Systems Principles. New York: ACM Press, 2017.
[31] SAPIO A, CANINI M, HO C Y, et al. Scaling distributed machine learning with in-network aggregation[EB]. 2019.
[32] LAO C, LE Y F, MAHAJAN K, et al. ATP: In-network Aggregation for Multi-tenant Learning[C]//Proceedings of 18th USENIX Symposium on Networked Systems Design and Implementation. [S.l.:s.n.], 2021: 741-761.
[33] ZHANG P H, PAN H, LI Z Y, et al. Accelerating LSH-based distributed search with in-network computation[C]//Proceedings of IEEE INFOCOM 2021 - IEEE Conference on Computer Communications. Piscataway: IEEE Press, 2021: 1-10.
[34] INTEL. Development reference guides:_pext_u32/64[EB]. 2022.
[35] MA X X, YAN, F, WANG Z, et al. Survey on smart network interface card[J]. Journal of Computer Research and Development. 2022, 59(1): 1-21.
[36] INTEL.700 series network adapters[EB]. 2022.
[37] NETRONOME. Agilio open vSwitch TC user guide[EB]. 2022.
[38] NAPATECH. Napatech smart NIC solution for hardware offload[EB]. 2022.
[39] FRANKEL S, KRISHNAN S. IP security and internet key exchange document roadmap RFC 6071[EB]. 2011.
[40] FUNGIBLE . The Fungible data processing unit[EB]. 2022.
[41] NVIDIA. NVIDIA bluefield data processing units[EB]. 2022.
[42] PFAFF B, PETTIT J, KOPONEN T, et al. The design and implementation of open vswitch[C]//Proceedings of 12th USENIX Symposium on Networked Systems Design and Implementation. [S.l.:s.n.], 2015: 117-130.
[43] NVIDIA. OVS offload using ASAP2 direct[EB]. 2022.
[44] NVIDIA. Virtual switch on bluefield smart NIC[EB]. 2022.
[45] CORMODE G, MUTHUKRISHNAN S. An improved data stream summary: the count-Min sketch and its applications[J]. Journal of Algorithms, 2005, 55(1): 58-75.
[46] NAMKUNG H, LIU Z X, KIM D, et al. SketchLib: enabling efficient sketch-based monitoring on programmable switches[C]//Proceedings of 19th USENIX Symposium on Networked Systems Design and Implementation. [S.l.:s.n.], 2022: 743-759.
[47] KRASKA T, BEUTEL A, CHI E H, et al. The case for learned index structures[C]//Proceedings of the 2018 International Conference on Management of Data. New York: ACM Press, 2018.
[48] MARCUS R, ZHANG E, KRASKA T. CDFShop: exploring and optimizing learned index structures[C]//Proceedings of SIGMOD '20: Proceedings of the 2020 ACM SIGMOD International Conference on Management of Data. New York: ACM Press, 2020: 2789-2792.
Progress in programmable network data plane
ZHANG Xinyi1, PAN Heng2, XIE Gaogang1,3
1. Computer Network Information Center, Chinese Academy of Sciences, Beijing 100190,China 2.Institute of Computing Technology, Chinese Academy of Sciences, Beijing 100190,China 3.University of Chinese Academy of Sciences, Beijing 100049,China
Network data plane performs packet processing and forwarding, which is one of the core factors determining the network performance. High bandwidth, low latency and rapid evolution of the network infrastructure require building an efficient and programmable network data plane. The packet processing and forwarding model was firstly introduced, and on this basis, the challenges of the network data plane in the performance and programmability were outlined. Then the basic ideas and core technology progress were elaborated to deal with the above challenges by analyzing the theory of packet processing algorithms and hardware-software codesign implementations. Finally, the trend and technical route of constructing an efficient programmable data plane were discussed.
programmable network data plane, hardware-software codesign, packet processing, in-network computing
The National Key Research and Development Program of China (No.2019YFB1802800)
TP393
A
10.11959/j.issn.1000?0801.2022131
2022?04?30;
2022?06?07
國家重點研發計劃項目(No.2019YFB1802800)
張昕怡(1992? ),女,博士,中國科學院計算機網絡信息中心在站博士后,主要研究方向為計算機網絡系統結構、高性能網絡數據平面。

潘恒(1990?),男,博士,中國科學院計算技術研究所副研究員,主要研究方向為可編程網絡與系統。
謝高崗(1974?),男,博士,中國科學院計算機網絡信息中心研究員,中國科學院大學教授、博士生導師,主要研究方向為計算機網絡體系結構與系統。
