• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于DPDK和LX2160A的高效數(shù)據(jù)包捕獲方法研究與應(yīng)用

      2020-11-26 20:19:44楊勇
      電子技術(shù)與軟件工程 2020年21期
      關(guān)鍵詞:網(wǎng)絡(luò)接口網(wǎng)卡報(bào)文

      楊勇

      (中興通訊股份有限公司 廣東省深圳市 518057)

      1 概述

      隨著5G 通信網(wǎng)絡(luò)基礎(chǔ)設(shè)施規(guī)模部署,大流量、高速率、低延時(shí)等特點(diǎn)的業(yè)務(wù)將會(huì)日漸上線。為了承載更多5G 業(yè)務(wù)流量和用戶需求,通信運(yùn)營服務(wù)商對(duì)通信網(wǎng)絡(luò)設(shè)備提出了更嚴(yán)格的要求,即要求支持高可用、高帶寬、海量連接數(shù)、低時(shí)延等特點(diǎn)。另外在聚焦5G 技術(shù)的優(yōu)化設(shè)計(jì)時(shí),要注重資源利用率、吞吐率等的提升與研究,逐漸轉(zhuǎn)變傳統(tǒng)的設(shè)計(jì)理念[2]。面對(duì)高帶寬數(shù)據(jù)處理需求,這些設(shè)備的CPU 須具備高效數(shù)據(jù)包捕獲處理能力。

      數(shù)據(jù)平面開發(fā)套件DPDK,區(qū)別于 Linux 操作系統(tǒng)通用性設(shè)計(jì)目標(biāo),DPDK 致力于提供快速數(shù)據(jù)包處理的函數(shù)庫與用戶態(tài)網(wǎng)卡等驅(qū)動(dòng)集合,聚焦于網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)包的高性能捕獲處理。恩智浦LX2160A 多核CPU 處理器是Layerscape 系列中性能最高的成員,尤其適合于極具挑戰(zhàn)性的高性能網(wǎng)絡(luò)應(yīng)用。

      本文主要研究基于DPDK 和LX2160A 的數(shù)據(jù)包捕獲應(yīng)用方案。本文先是通過仔細(xì)研究DPDK 的技術(shù)特點(diǎn)和價(jià)值。接著詳細(xì)介紹了LX2160A 芯片技術(shù)特征,用于高效數(shù)據(jù)包捕獲的數(shù)據(jù)通道加速架構(gòu)及其關(guān)鍵組成部件和DPAA2 虛擬對(duì)象概念,還有在具體實(shí)踐應(yīng)用時(shí)需使用的接口文件。然后本文給出基于DPDK 和LX2160A 高效數(shù)據(jù)包捕獲的設(shè)計(jì)方法,以及在三層網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)包捕獲應(yīng)用的測試方法;最后用測試結(jié)果表明,本文所述的數(shù)據(jù)包捕獲方法效果好,具備可行性和可用性。

      2 DPDK的技術(shù)特點(diǎn)與價(jià)值

      2.1 DPDK主要的技術(shù)特點(diǎn)

      (1)巨頁[3]:報(bào)文捕獲與發(fā)送時(shí),使用內(nèi)存大頁HUGEPAGE,顯著降低TLB miss,同時(shí)借助內(nèi)存多通道交錯(cuò)訪問,顯著提升內(nèi)存訪問效率。

      (2)用戶態(tài)驅(qū)動(dòng)[4]:使用應(yīng)用程序空間下驅(qū)動(dòng)程序,大幅避免了不必要的內(nèi)存拷貝和系統(tǒng)調(diào)用,有利于快速迭代優(yōu)化。

      (3)CPU 親和性與獨(dú)占特性:將指定線程綁定到特定CPU 核上運(yùn)行,避免線程在不同vcpu 間頻繁切換,保證更多的cache 命中,也可以避免操作系統(tǒng)調(diào)度的性能消耗。

      (4)無鎖隊(duì)列:提供內(nèi)存池和無鎖環(huán)形緩存管理,加快報(bào)文數(shù)據(jù)交換效率。

      (5)軟件調(diào)優(yōu):使用cache 緩存行對(duì)齊處理和預(yù)取數(shù)據(jù),實(shí)現(xiàn)多元數(shù)據(jù)批量操作。

      以上這些技術(shù)特點(diǎn),也是針對(duì)傳統(tǒng)的內(nèi)核態(tài)數(shù)據(jù)包捕獲過程的瓶頸點(diǎn)做了改進(jìn)。影響數(shù)據(jù)包捕獲性能的主要原因有內(nèi)存訪問、系統(tǒng)開銷和TCP/IP 協(xié)議棧的處理三個(gè)方面[5]。操作系統(tǒng)傳統(tǒng)的內(nèi)核態(tài)包捕獲過程,先是網(wǎng)卡收到報(bào)文,觸發(fā)收?qǐng)?bào)中斷;接著CPU 將數(shù)據(jù)包從網(wǎng)卡緩存空間拷貝至內(nèi)核內(nèi)存空間,經(jīng)過內(nèi)核協(xié)議棧處理后,再將數(shù)據(jù)包拷貝到用戶態(tài)內(nèi)存空間。在此數(shù)據(jù)包處理過程中,消耗大量CPU 資源用來處理中斷、內(nèi)存拷貝以及系統(tǒng)調(diào)用[6]。

      2.2 DPDK的價(jià)值探討

      DPDK 最初是英特爾等幾家公司開發(fā)的高性能包處理軟件框架,在X86 平臺(tái)下使用,幾乎支持所有Intel 網(wǎng)卡,起到了抬高Intel 硬件產(chǎn)品身價(jià)的作用。在2017年,DPDK 項(xiàng)目正式成為Linux基金會(huì)旗下的項(xiàng)目。在Linux 基金會(huì)的管理下,DPDK 提供一個(gè)更加中立的環(huán)境,促進(jìn)對(duì)DPDK 愛好者之間的協(xié)作交流,實(shí)現(xiàn)跨多個(gè)CPU 架構(gòu)更快地處理數(shù)據(jù)包和網(wǎng)卡(NIC)適配。目前,DPDK不僅支持Intel 硬件產(chǎn)品,正在支持越來越多的廠商硬件產(chǎn)品,包括Intel、Nxp、Cavium、網(wǎng)訊等硬件廠商產(chǎn)品。

      DPDK 包含庫在內(nèi)的數(shù)據(jù)平面開發(fā)套件,能夠滿足多種CPU架構(gòu)上運(yùn)行的數(shù)據(jù)包捕獲處理要求,還能對(duì)業(yè)務(wù)負(fù)載進(jìn)行加速。通過快速地?cái)?shù)據(jù)包處理,DPDK 在網(wǎng)絡(luò)設(shè)備和虛擬化設(shè)備中得到廣泛應(yīng)用。

      3 LX2160A芯片包處理架構(gòu)與應(yīng)用方案

      3.1 主要技術(shù)特征

      擁有16 個(gè)Cortex-A72 CPU,運(yùn)行頻率高達(dá)2.2GHz;支持最多16 個(gè)以太網(wǎng)端口;支持的以太網(wǎng)速率包括每秒1、2.5、10、25、40、50 和100GB;支持114Gbps L2 以太網(wǎng)交換機(jī)。

      3.2 DPAA2關(guān)鍵部件的作用

      (1)Mgmt Complex(簡稱MC):DPAA2 硬件資源對(duì)象不直接呈現(xiàn)給應(yīng)用程序使用,而是被虛擬化成多種DPAA2 邏輯對(duì)象供應(yīng)用程序使用。MC 建立DPAA2 硬件資源對(duì)象和DPAA2 邏輯對(duì)象的映射關(guān)系,封裝訪問DPAA2 邏輯對(duì)象的API 接口,供應(yīng)用程序使用DPAA2 邏輯對(duì)象。

      (2)WRIOP:負(fù)責(zé)管理DPAA2 對(duì)象的讀寫訪問接口、數(shù)據(jù)包解析以及查詢匹配等轉(zhuǎn)發(fā)處理。

      (3)QBMan:用于收發(fā)包隊(duì)列管理以及收發(fā)報(bào)緩存管理。

      (4)Accelerators:這是加速器引擎,包括加密和安全加速器、模式匹配加速器、數(shù)據(jù)壓縮/解壓縮加速器以及DMA 控制器等。

      (5)AIOP:這是可編程的多核微引擎,可應(yīng)用于高效分組報(bào)文處理。

      在數(shù)據(jù)包捕獲應(yīng)用場景,MC、WRIOP 和QBMan,是必選對(duì)象;Accelerators 和AIOP 是可選對(duì)象,主要用于數(shù)據(jù)面業(yè)務(wù)功能設(shè)計(jì)。

      3.3 常用的DPAA2數(shù)據(jù)包處理對(duì)象[7][8]

      (1)DPMAC:作為虛擬MAC 接口,用于訪問物理MAC 接口。

      (2)DPNI:作為虛擬網(wǎng)絡(luò)接口,應(yīng)用程序包處理直接配置該類型網(wǎng)絡(luò)接口,支持基本的網(wǎng)絡(luò)協(xié)議處理以及業(yè)務(wù)卸載等功能。

      (3)DPSW:支持?jǐn)?shù)據(jù)通道的二層交換功能,能夠?qū)崿F(xiàn)不同網(wǎng)絡(luò)接口之間數(shù)據(jù)包交換處理以及鏡像處理等。

      (4)DPBP:負(fù)責(zé)數(shù)據(jù)通道緩存管理和隊(duì)列管理。

      (5)DPIO:作為數(shù)據(jù)通道基本網(wǎng)絡(luò)接口,MC 通過DPIO 訪問QBMan 資源。

      DPAA2 對(duì)象有很多,以上對(duì)象是用戶態(tài)數(shù)據(jù)捕獲應(yīng)用時(shí)需要使用的對(duì)象。

      3.4 DPAA2包捕獲應(yīng)用初始化

      在使用DPAA2 包捕獲應(yīng)用時(shí),需要完成一些必要的初始化操作,操作如下:

      (1)加載MC 固件,作為訪問DPAA2 對(duì)象的驅(qū)動(dòng)。

      (2)配置Data Path Configuration(DPC)文件,完成MC 工作參數(shù)配置以及單板網(wǎng)絡(luò)接口工作模式、協(xié)商模式以及帶寬等配置。

      (3)配置Data Path Layout(DPL)文件,定義MC 需要?jiǎng)?chuàng)建的DPAA2 工作對(duì)象,包括Data Path Resource Container(DPRC)、DPNI 以及包含關(guān)系等。

      (4)在完成MC 固件加載和DPL 文件配置后,通過操作復(fù)位寄存器便可啟動(dòng)MC。

      (5)Virtual Function I/O(VFIO)映射,安全的把設(shè)備I/O、中斷、DMA 等展現(xiàn)到用戶空間,在用戶空間完成設(shè)備驅(qū)動(dòng)的框架。

      上述幾步操作可在系統(tǒng)BOOT 啟動(dòng)階段執(zhí)行,到了應(yīng)用程序運(yùn)行階段,還可以根據(jù)需要?jiǎng)討B(tài)修改DPAA2 對(duì)象屬性。

      4 DPDK的數(shù)據(jù)包處理應(yīng)用

      4.1 實(shí)踐應(yīng)用背景

      本文所述的實(shí)踐應(yīng)用,要處理多種報(bào)文類型的數(shù)據(jù)報(bào)文。經(jīng)過業(yè)務(wù)架構(gòu)和軟件架構(gòu)設(shè)計(jì),依據(jù)業(yè)務(wù)類別將要處理的數(shù)據(jù)報(bào)文分成3 類,分別是系統(tǒng)管理面、協(xié)議控制面和數(shù)據(jù)面的報(bào)文,每類報(bào)文所需最大帶寬為10G。這3 類數(shù)據(jù)報(bào)文分別走不同的物理鏈路達(dá)到CPU 網(wǎng)卡接口,使得這3 類數(shù)據(jù)報(bào)文都能夠得到高優(yōu)先級(jí)處理,簡化并發(fā)處理場景的軟件架構(gòu)復(fù)雜度,系統(tǒng)數(shù)據(jù)報(bào)吞吐量也得到了極具提升。本文在圍繞LX2160A CPU 設(shè)計(jì)的硬件板卡上,設(shè)計(jì)基于DPDK 的高性能數(shù)據(jù)包捕獲應(yīng)用方案。

      4.2 使用的LX2160A芯片硬件資源

      基于上述應(yīng)用背景,系統(tǒng)方案規(guī)劃LX2160A 芯片出3 個(gè)10G以太網(wǎng)接口,連接3 條不同的物理鏈路,用于收發(fā)不同報(bào)文類別的數(shù)據(jù)報(bào)文。軟件架構(gòu)方案設(shè)計(jì)3 個(gè)收發(fā)報(bào)線程,分別獨(dú)立部署于3個(gè)vcpu 核,設(shè)置親和性和排他屬性。

      4.3 數(shù)據(jù)包捕獲與應(yīng)用

      總結(jié)數(shù)據(jù)包捕獲處理主要步驟如下:

      (1)初始化DPAA2 包處理對(duì)象,見3.4 節(jié)描述。

      (2)使用rte_eal_init 函數(shù)接口,初始化EAL 環(huán)境,完成包處理線程創(chuàng)建、親和性設(shè)置以及內(nèi)存訪問通道等設(shè)置。

      (3)使用rte_pktmbuf_pool_create 等函數(shù)接口,初始化DPDK Mbuf、Mempool 內(nèi)存池。

      (4)使用rte_eth_rx_queue_setup 函數(shù)接口初始化收包隊(duì)列;使用rte_eth_tx_queue_setup 函數(shù)接口,初始化發(fā)包隊(duì)列。

      (5)使用rte_eth_dev_configure 等函數(shù)接口,初始化網(wǎng)絡(luò)接口。

      (6)使用rte_eal_remote_launch 函數(shù)接口,掛接APP 數(shù)據(jù)包處理接口。

      (7)使用rte_eth_rx_burst 函數(shù)接口,從網(wǎng)絡(luò)接口接收數(shù)據(jù)包;使用rte_eth_tx_burst 函數(shù)接口,從網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù)包。

      經(jīng)過以上幾個(gè)步驟的操作,便可以實(shí)現(xiàn)從指定網(wǎng)絡(luò)接口循環(huán)收發(fā)數(shù)據(jù)包。對(duì)于一些業(yè)務(wù)處理性能要求很高的網(wǎng)絡(luò)設(shè)備,數(shù)據(jù)包捕獲、解析以及業(yè)務(wù)應(yīng)用處理往往是并行處理的軟件架構(gòu)[9],實(shí)現(xiàn)高效數(shù)據(jù)包處理。本文研究的數(shù)據(jù)包捕獲與應(yīng)用的項(xiàng)目便是采用數(shù)據(jù)包捕獲與業(yè)務(wù)處理分離的軟件架構(gòu)。在捕獲數(shù)據(jù)包之后,根據(jù)包文特征傳遞給特定的業(yè)務(wù)應(yīng)用處理。

      4.4 測試小結(jié)

      按照上述方案完成軟件設(shè)計(jì)后,通過如下操作,測試本文提出方案的實(shí)踐效果。

      (1)連接測試的網(wǎng)絡(luò)接口:在基于LX2160A CPU 構(gòu)建的三層網(wǎng)絡(luò)設(shè)備板卡上,采用DPDK 數(shù)據(jù)包處理框架,從16 個(gè)MAC 中選擇一個(gè)作為測試網(wǎng)絡(luò)接口;使用一個(gè)數(shù)據(jù)測試儀接口與該接口相連。

      (2)構(gòu)建測試數(shù)據(jù)流量:選擇一種較為常見的電信運(yùn)營商集采測試場景的業(yè)務(wù)配置,配置OSPF 路由協(xié)議,建立測試路徑;在測試儀構(gòu)造10G 流量的1024 字節(jié)長度的數(shù)據(jù)流。

      (3)分析數(shù)據(jù)包處理性能:CPU 收到收到數(shù)據(jù)報(bào)文后,更換接收?qǐng)?bào)文的以太幀幀頭的MAC 信息,然后從接收MAC 接口發(fā)送給測試儀,觀察測試儀收發(fā)報(bào)文數(shù)量一致,符合應(yīng)用要求。

      5 結(jié)束語

      基于LX2160A 的硬件環(huán)境進(jìn)行收發(fā)流驗(yàn)證,驗(yàn)證結(jié)果表明:不帶業(yè)務(wù)負(fù)載時(shí),接收數(shù)據(jù)包的性能近乎于線速;帶業(yè)務(wù)負(fù)載時(shí),對(duì)比BPF[10]數(shù)據(jù)包捕獲方案,基于DPDK 的數(shù)據(jù)包捕獲性能提升近十倍;數(shù)據(jù)包捕獲后會(huì)交付給業(yè)務(wù)模塊,該交互處理邏輯還有優(yōu)化空間,優(yōu)化后數(shù)據(jù)包吞吐量還將會(huì)有明顯提高。

      基于LX2160A 這種具備豐富核資源且?guī)в芯W(wǎng)絡(luò)加速功能的硬件架構(gòu)環(huán)境,將數(shù)據(jù)包捕獲和業(yè)務(wù)負(fù)載分配到不同的CPU 硬件核,實(shí)現(xiàn)數(shù)據(jù)包捕獲和工作負(fù)載處理并發(fā)處理,從而簡化硬件成本、簡化軟件架構(gòu)復(fù)雜度和加快產(chǎn)品上市時(shí)間。

      猜你喜歡
      網(wǎng)絡(luò)接口網(wǎng)卡報(bào)文
      在DDS 中間件上實(shí)現(xiàn)雙冗余網(wǎng)卡切換的方法
      變電站網(wǎng)絡(luò)接口物理防護(hù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
      汽車電器(2022年9期)2022-11-07 02:16:24
      CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
      淺析反駁類報(bào)文要點(diǎn)
      中國外匯(2019年11期)2019-08-27 02:06:30
      Server 2016網(wǎng)卡組合模式
      淺析CTC與GSM-R系統(tǒng)網(wǎng)絡(luò)接口及路由配置改進(jìn)措施
      ATS與列車通信報(bào)文分析
      挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
      網(wǎng)絡(luò)設(shè)置管理
      满城县| 萨迦县| 吉木乃县| 天镇县| 专栏| 肇庆市| 阿拉善盟| 昌江| 周口市| 安泽县| 上林县| 扎鲁特旗| 松江区| 桑日县| 宣城市| 枣阳市| 留坝县| 海城市| 榆林市| 库尔勒市| 海原县| 綦江县| 沈丘县| 亳州市| 西林县| 昭平县| 米易县| 蚌埠市| 巴青县| 汾阳市| 吉首市| 武陟县| 体育| 昌吉市| 怀仁县| 曲麻莱县| 博白县| 茶陵县| 宾阳县| 金塔县| 乌鲁木齐市|