亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向多模態(tài)網(wǎng)絡(luò)的可編程數(shù)據(jù)處理方法及系統(tǒng)設(shè)計(jì)

        2022-04-29 05:15:20王勁林井麗南陳曉尤佳莉
        通信學(xué)報(bào) 2022年4期
        關(guān)鍵詞:數(shù)據(jù)表數(shù)據(jù)處理數(shù)據(jù)包

        王勁林,井麗南,陳曉,尤佳莉

        (1.中國(guó)科學(xué)院大學(xué)電子電氣與通信工程學(xué)院,北京 100049;2.中國(guó)科學(xué)院聲學(xué)研究所,北京 100190;3.鵬城實(shí)驗(yàn)室,廣東 深圳 518055)

        0 引言

        多模態(tài)網(wǎng)絡(luò)是我國(guó)鄔江興院士團(tuán)隊(duì)為了解決當(dāng)前網(wǎng)絡(luò)結(jié)構(gòu)僵化、IP 單一承載、難以抑制未知網(wǎng)絡(luò)威脅等問(wèn)題而提出的新型網(wǎng)絡(luò)架構(gòu),它將傳統(tǒng)的7 層網(wǎng)絡(luò)結(jié)構(gòu)整合為功能可定義的服務(wù)面、控制面和數(shù)據(jù)面3 個(gè)層次[1]。服務(wù)面負(fù)責(zé)智慧化的網(wǎng)絡(luò)資源調(diào)度和業(yè)務(wù)部署,控制面針對(duì)不同網(wǎng)絡(luò)需求靈活地定制多樣化的路由策略,數(shù)據(jù)面為整個(gè)網(wǎng)絡(luò)的全維可定義特性、多網(wǎng)絡(luò)模態(tài)異構(gòu)兼容特性提供支撐,它由可定義功能的基礎(chǔ)平臺(tái)組成。

        對(duì)于支撐多模態(tài)網(wǎng)絡(luò)的數(shù)據(jù)面,首先,其應(yīng)具有靈活可編程的特性,使網(wǎng)絡(luò)不再被僵硬封閉的設(shè)備、固定的功能模塊綁定,開放網(wǎng)絡(luò)并增強(qiáng)網(wǎng)絡(luò)的可擴(kuò)展和自演化能力。其次,數(shù)據(jù)面應(yīng)兼容多種不同網(wǎng)絡(luò)模態(tài)數(shù)據(jù)包的處理,支持IP、內(nèi)容標(biāo)識(shí)、身份標(biāo)識(shí)、地理空間標(biāo)識(shí)等多種模態(tài)的路由機(jī)制。最后,數(shù)據(jù)面的網(wǎng)絡(luò)節(jié)點(diǎn)還需具有一定的計(jì)算能力,支持以“內(nèi)容”為中心的網(wǎng)絡(luò)數(shù)據(jù)在數(shù)據(jù)面自適應(yīng)地流動(dòng)和處理,滿足多樣化、個(gè)性化的網(wǎng)絡(luò)用戶業(yè)務(wù)需求。

        然而,若要滿足多模態(tài)網(wǎng)絡(luò)數(shù)據(jù)面的上述要求,對(duì)基礎(chǔ)平臺(tái)的數(shù)據(jù)處理能力提出了極大的挑戰(zhàn)。一方面,不同模態(tài)的網(wǎng)絡(luò)在數(shù)據(jù)包格式、路由機(jī)制和傳輸協(xié)議上存在巨大差別。例如,傳統(tǒng)網(wǎng)絡(luò)采用固定長(zhǎng)度、反映地理位置的IP 地址作為標(biāo)識(shí)。路由器使用包含目的地址和下一跳端口的路由表轉(zhuǎn)發(fā)數(shù)據(jù)包。信息中心網(wǎng)絡(luò)(ICN,information-centric networking)采用與位置分離的內(nèi)容名字作為標(biāo)識(shí),其標(biāo)識(shí)長(zhǎng)度不再完全固定[2]。信息中心網(wǎng)絡(luò)中的數(shù)據(jù)包格式和路由策略也發(fā)生了變化,例如命名數(shù)據(jù)網(wǎng)絡(luò)(NDN,named data networking)中路由器使用內(nèi)容緩存表、興趣包緩存表和轉(zhuǎn)發(fā)表處理包[3]。發(fā)布訂閱互聯(lián)網(wǎng)路由模式(PSIRP,publish-subscribe Internet routing paradigm)網(wǎng)絡(luò)中路由器甚至不再需要存儲(chǔ)類似路由表的數(shù)據(jù),直接根據(jù)數(shù)據(jù)包頭中的鏈路標(biāo)識(shí)即可轉(zhuǎn)發(fā)包[4]。

        另一方面,基礎(chǔ)平臺(tái)需要具有不局限于數(shù)據(jù)包處理的、豐富的數(shù)據(jù)處理能力,并支持控制器以可編程的方式部署數(shù)據(jù)處理邏輯,以滿足不同網(wǎng)絡(luò)的數(shù)據(jù)處理需求。除了基本的路由功能,基礎(chǔ)平臺(tái)還需要支持動(dòng)態(tài)網(wǎng)絡(luò)應(yīng)用(如擁塞控制[5-7]、調(diào)度[8]、網(wǎng)絡(luò)測(cè)量[9-11]、主動(dòng)隊(duì)列管理[12-14]、安全性[15]和負(fù)載平衡[16-17]等),從而滿足多模態(tài)網(wǎng)絡(luò)中多樣化、個(gè)性化的用戶業(yè)務(wù)需求。

        綜上,面對(duì)多模態(tài)網(wǎng)絡(luò)數(shù)據(jù)面需要兼容處理多種網(wǎng)絡(luò)數(shù)據(jù)的挑戰(zhàn),本文提出面向多模態(tài)網(wǎng)絡(luò)的數(shù)據(jù)處理方法。首先,使用數(shù)據(jù)類型、偏移和長(zhǎng)度兼容表示數(shù)據(jù)面的多種模態(tài)類型數(shù)據(jù);其次,使用可選擇匹配算法的匹配動(dòng)作數(shù)據(jù)表和一組原子性動(dòng)作,組合出滿足不同網(wǎng)絡(luò)模態(tài)數(shù)據(jù)包處理需求的匹配表;再次,通過(guò)包括多個(gè)匹配動(dòng)作數(shù)據(jù)表和本地?cái)?shù)據(jù)空間的模態(tài)數(shù)據(jù)處理管道形成適用于不同網(wǎng)絡(luò)模態(tài)的數(shù)據(jù)處理單元;最后,利用模態(tài)識(shí)別與分流模塊對(duì)數(shù)據(jù)包進(jìn)行分類并轉(zhuǎn)發(fā)到合適的管道中,利用封裝轉(zhuǎn)發(fā)與多播模塊將管道處理后的數(shù)據(jù)包轉(zhuǎn)發(fā)到物理鏈路上??刂泼嫱ㄟ^(guò)可編程的方式配置數(shù)據(jù)面中的匹配動(dòng)作數(shù)據(jù)表、模態(tài)數(shù)據(jù)處理管道等模塊,滿足多模態(tài)網(wǎng)絡(luò)靈活性、可擴(kuò)展性的要求。

        本文主要的貢獻(xiàn)如下。

        1) 提出一種兼容不同網(wǎng)絡(luò)模態(tài)數(shù)據(jù)處理的數(shù)據(jù)面處理架構(gòu)。使用模態(tài)識(shí)別與分流模塊分類數(shù)據(jù)包,使用模態(tài)數(shù)據(jù)處理管道處理不同網(wǎng)絡(luò)模態(tài)的數(shù)據(jù)包,使用封裝轉(zhuǎn)發(fā)與多播模塊轉(zhuǎn)發(fā)數(shù)據(jù)包,提供了控制面通信接口用于對(duì)上述模塊的編程配置。

        2) 提出一種使用數(shù)據(jù)類型、偏移和長(zhǎng)度表示數(shù)據(jù)的方法。在數(shù)據(jù)面轉(zhuǎn)發(fā)設(shè)備中兼容表示不同網(wǎng)絡(luò)模態(tài)的數(shù)據(jù),以及轉(zhuǎn)發(fā)設(shè)備內(nèi)不同類型的數(shù)據(jù)。所提方法可以將數(shù)據(jù)匹配和動(dòng)作處理過(guò)程與數(shù)據(jù)所屬的模態(tài)或類型解耦,有助于各功能模塊獨(dú)立優(yōu)化。

        3) 提出一種與網(wǎng)絡(luò)模態(tài)無(wú)關(guān)的匹配動(dòng)作數(shù)據(jù)表,以及一套原子性動(dòng)作用于網(wǎng)絡(luò)數(shù)據(jù)處理。其中匹配動(dòng)作數(shù)據(jù)表不再局限于數(shù)據(jù)包字段的匹配,還可用于轉(zhuǎn)發(fā)設(shè)備內(nèi)其他數(shù)據(jù)的匹配。匹配動(dòng)作數(shù)據(jù)表還與具體的匹配算法解耦,網(wǎng)絡(luò)編程人員可以選擇匹配算法庫(kù)中的算法以達(dá)到目標(biāo)功能和性能的需求。

        4) 在通用服務(wù)器上,基于Intel 的數(shù)據(jù)平面開發(fā)套件(DPDK,data plane development kit)實(shí)現(xiàn)面向多模態(tài)網(wǎng)絡(luò)的數(shù)據(jù)處理原型系統(tǒng),并從匹配算法、數(shù)據(jù)類型、模態(tài)數(shù)據(jù)處理管道的數(shù)量等方面對(duì)轉(zhuǎn)發(fā)性能的影響進(jìn)行了測(cè)試。

        1 多模態(tài)網(wǎng)絡(luò)

        全維可定義的多模態(tài)智慧網(wǎng)絡(luò)(PINet,polymorphic smart network)是一種具有多模態(tài)功能呈現(xiàn)、全方位覆蓋、全業(yè)務(wù)承載、智慧化管理控制和內(nèi)生安全特性的新型網(wǎng)絡(luò)體系架構(gòu)[1]。PINet針對(duì)現(xiàn)有網(wǎng)絡(luò)架構(gòu)存在的結(jié)構(gòu)僵化、IP 單一承載、難以抑制未知威脅等問(wèn)題,從網(wǎng)絡(luò)結(jié)構(gòu)的角度來(lái)提升網(wǎng)絡(luò)的功能、性能、效能、安全等性質(zhì),建立從底層到上層全維度可定義的靈活、通用的網(wǎng)絡(luò)架構(gòu)。PINet 將傳統(tǒng)網(wǎng)絡(luò)的7 層參考模型整合為:1) 網(wǎng)絡(luò)功能基礎(chǔ)平臺(tái)組成的數(shù)據(jù)面;2) 支持IP、內(nèi)容、身份和地理空間位置等多模態(tài)標(biāo)識(shí)路由的控制面;3)“感知-決策-執(zhí)行”一體化管理、傳輸與控制閉環(huán)的服務(wù)面。

        多模態(tài)網(wǎng)絡(luò)系統(tǒng)形態(tài)[1]如圖1 所示。圖1 中,數(shù)據(jù)面是支撐控制面多模態(tài)路由策略和服務(wù)面網(wǎng)絡(luò)業(yè)務(wù)的基礎(chǔ)平臺(tái),擬合了路由與資源,數(shù)據(jù)面的物理節(jié)點(diǎn)中擁有狀態(tài)信息(如節(jié)點(diǎn)位置、類型、可信度、故障率等)和資源服務(wù)能力(如算術(shù)邏輯運(yùn)算、存儲(chǔ)、傳輸帶寬等)。多模態(tài)網(wǎng)絡(luò)的軟件定義數(shù)據(jù)面處理流程[1]如圖2 所示,包括幀解析、分組解析、適配處理、分組封裝、交換調(diào)度與隊(duì)列管理。軟件定義的PINet 數(shù)據(jù)面具有兼容性和可擴(kuò)展性,可以支持多種類型的數(shù)據(jù)包格式、多種路由標(biāo)識(shí)、網(wǎng)絡(luò)協(xié)議棧支持標(biāo)準(zhǔn)協(xié)議和各種自定義協(xié)議,從而實(shí)現(xiàn)各種形態(tài)的模態(tài)共存。

        圖1 多模態(tài)網(wǎng)絡(luò)系統(tǒng)形態(tài)

        圖2 多模態(tài)網(wǎng)絡(luò)的軟件定義數(shù)據(jù)面處理流程

        然而不同網(wǎng)絡(luò)模態(tài)在數(shù)據(jù)包格式、路由標(biāo)識(shí)和路由機(jī)制等方面存在巨大差異,如表1 所示。首先,路由標(biāo)識(shí)的長(zhǎng)度和形式不再固定,出現(xiàn)了類似于統(tǒng)一資源定位符(URL,uniform resource locator)的層次化名字、人類不可讀的哈希值等多種路由標(biāo)識(shí);其次,數(shù)據(jù)包類型和路由機(jī)制也有多種形式,例如,PSIRP 網(wǎng)絡(luò)中轉(zhuǎn)發(fā)設(shè)備不再需要保留路由表,而是直接根據(jù)內(nèi)容分組中的鏈路標(biāo)識(shí)路由。

        表1 不同模態(tài)網(wǎng)絡(luò)特性對(duì)比

        在同一物理網(wǎng)絡(luò)中兼容上述不同網(wǎng)絡(luò)模態(tài)對(duì)轉(zhuǎn)發(fā)設(shè)備的能力提出了挑戰(zhàn),針對(duì)不同網(wǎng)絡(luò)模態(tài)增加相應(yīng)的功能模塊,只能暫時(shí)滿足兼容性,面對(duì)未來(lái)可能出現(xiàn)的新型網(wǎng)絡(luò)模態(tài)缺乏可擴(kuò)展性。

        2 面向多模態(tài)網(wǎng)絡(luò)的數(shù)據(jù)處理方法

        2.1 多模態(tài)網(wǎng)絡(luò)數(shù)據(jù)面處理機(jī)制

        本文提出一種面向多模態(tài)網(wǎng)絡(luò)的數(shù)據(jù)面處理機(jī)制,可以在同一物理網(wǎng)絡(luò)域中通過(guò)可編程的方式支持多種網(wǎng)絡(luò)模態(tài),如圖3 所示。其中,數(shù)據(jù)面轉(zhuǎn)發(fā)節(jié)點(diǎn)通過(guò)模態(tài)識(shí)別與分流、模態(tài)數(shù)據(jù)處理管道、封裝轉(zhuǎn)發(fā)與多播以及控制面通信接口這4 個(gè)模塊相互配合完成數(shù)據(jù)包的處理。

        圖3 多模態(tài)網(wǎng)絡(luò)數(shù)據(jù)面處理機(jī)制

        模態(tài)識(shí)別與分流模塊包括一張模態(tài)識(shí)別表和若干隊(duì)列,控制面配置模態(tài)識(shí)別與分流、管道與隊(duì)列的關(guān)系以及管道內(nèi)部數(shù)據(jù)包處理邏輯如圖4 所示??刂破骼每刂泼嫱ㄐ沤涌谂渲眯薷哪B(tài)識(shí)別的規(guī)則以便分離不同網(wǎng)絡(luò)的數(shù)據(jù)包。這些規(guī)則由網(wǎng)絡(luò)編程人員根據(jù)不同模態(tài)數(shù)據(jù)包在協(xié)議字段、進(jìn)入端口等多個(gè)方面的區(qū)別制定,并利用如P4 等網(wǎng)絡(luò)編程語(yǔ)言描述。因?yàn)榫W(wǎng)絡(luò)模態(tài)數(shù)據(jù)包的格式相對(duì)固定且有限,所以模態(tài)識(shí)別的規(guī)則相對(duì)固定。因此,數(shù)據(jù)面交換機(jī)可以利用可編程網(wǎng)卡加速模態(tài)識(shí)別,即在網(wǎng)卡中配置規(guī)則表,當(dāng)網(wǎng)卡接收數(shù)據(jù)包時(shí)直接查表分類,然后通過(guò)隊(duì)列進(jìn)入不同的模態(tài)數(shù)據(jù)處理管道等待處理。這樣可以避免利用CPU 等通用硬件識(shí)別模態(tài)帶來(lái)的時(shí)間損耗[23]。

        數(shù)據(jù)面支持控制器配置管道和隊(duì)列之間的關(guān)系,為多模態(tài)網(wǎng)絡(luò)數(shù)據(jù)的處理提供足夠的靈活性。例如,對(duì)于數(shù)據(jù)流量大的網(wǎng)絡(luò)可以在識(shí)別數(shù)據(jù)包后將其輪詢到多個(gè)隊(duì)列中(如圖4 中的模態(tài)3),每個(gè)隊(duì)列分別連接一個(gè)管道,通過(guò)并聯(lián)的多個(gè)管道提高吞吐量。對(duì)于邏輯功能復(fù)雜的網(wǎng)絡(luò),可以串聯(lián)多個(gè)管道用于解耦功能模塊。

        圖4 控制面配置模態(tài)識(shí)別規(guī)則、管道與隊(duì)列的關(guān)系以及管道內(nèi)部數(shù)據(jù)包處理邏輯

        封裝轉(zhuǎn)發(fā)與多播模塊根據(jù)管道的處理結(jié)果將數(shù)據(jù)包重新封裝(如替換包的某些字段)并轉(zhuǎn)發(fā)到物理鏈路上。此模塊為數(shù)據(jù)包轉(zhuǎn)發(fā)方式提供了多種選擇,如單播到某個(gè)端口、在多個(gè)端口組播、在全部端口泛洪,或者回環(huán)到模態(tài)識(shí)別與分流模塊對(duì)數(shù)據(jù)包進(jìn)行二次處理。

        模態(tài)數(shù)據(jù)處理管道是網(wǎng)絡(luò)數(shù)據(jù)包處理的基本單元,具有網(wǎng)絡(luò)模態(tài)無(wú)關(guān)、協(xié)議無(wú)關(guān)、數(shù)據(jù)類型無(wú)關(guān)的特點(diǎn),多個(gè)管道之間可以通過(guò)串聯(lián)/并聯(lián)的方式連接。管道僅為用戶提供可以組合和編程的基本功能模塊,網(wǎng)絡(luò)運(yùn)營(yíng)商可以通過(guò)編程管道,將其定制為適用于不同網(wǎng)絡(luò)模態(tài)的處理單元。支持的網(wǎng)絡(luò)模態(tài)只需增加模態(tài)識(shí)別規(guī)則,配置相應(yīng)的處理管道即可。此時(shí),網(wǎng)絡(luò)設(shè)備的處理能力不再局限于封閉固定的功能模塊,網(wǎng)絡(luò)設(shè)備內(nèi)的資源可以得到充分的利用。本文將在2.2 節(jié)詳細(xì)介紹管道的內(nèi)部結(jié)構(gòu)和功能。

        控制面通信接口向控制器提供了實(shí)時(shí)、可編程配置網(wǎng)絡(luò)設(shè)備的通信接口。如圖4 所示,控制器可以利用控制面通信接口實(shí)時(shí)地編程配置模態(tài)識(shí)別規(guī)則、管道和隊(duì)列連接關(guān)系、管道內(nèi)部數(shù)據(jù)包處理邏輯以及數(shù)據(jù)包轉(zhuǎn)發(fā)方式??刂破髟谂渲霉艿繮與隊(duì)列Q或管道之間的連接時(shí),需說(shuō)明數(shù)據(jù)包進(jìn)入和流出的方向,如圖4 中箭頭所示。

        本文所提的處理機(jī)制使數(shù)據(jù)面的網(wǎng)絡(luò)設(shè)備不再與特定的網(wǎng)絡(luò)功能捆綁,允許控制器以編程的方式靈活地配置數(shù)據(jù)面網(wǎng)絡(luò)設(shè)備內(nèi)的功能模塊,根據(jù)網(wǎng)絡(luò)需求調(diào)度網(wǎng)絡(luò)設(shè)備內(nèi)的資源。可編程的模態(tài)識(shí)別與分流模塊,以及可定制功能、可連接組合的模態(tài)數(shù)據(jù)處理管道可以支撐在同一物理網(wǎng)絡(luò)內(nèi)融合多種網(wǎng)絡(luò)模態(tài)的需求。

        2.2 兼容多模態(tài)的數(shù)據(jù)處理方法

        模態(tài)數(shù)據(jù)處理管道是兼容處理不同網(wǎng)絡(luò)模態(tài)的關(guān)鍵模塊,本節(jié)首先介紹管道的組成結(jié)構(gòu),然后通過(guò)介紹數(shù)據(jù)表示方法和匹配動(dòng)作數(shù)據(jù)表說(shuō)明管道如何兼容處理不同模態(tài)的數(shù)據(jù)。

        2.2.1 模態(tài)數(shù)據(jù)處理管道

        模態(tài)數(shù)據(jù)處理管道如圖5 所示,管道內(nèi)部使用一個(gè)或多個(gè)匹配動(dòng)作數(shù)據(jù)表描述數(shù)據(jù)包處理邏輯,并提供了可存儲(chǔ)網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)的本地?cái)?shù)據(jù)空間。

        圖5 模態(tài)數(shù)據(jù)處理管道

        管道提供了2 種匹配動(dòng)作數(shù)據(jù)表的配置方式:1) 由控制器初始化匹配動(dòng)作數(shù)據(jù)表,并在網(wǎng)絡(luò)運(yùn)行中安裝/刪除規(guī)則;2) 由控制器初始化匹配動(dòng)作數(shù)據(jù)表,由表內(nèi)的動(dòng)作在網(wǎng)絡(luò)運(yùn)行中安裝/刪除規(guī)則,其中動(dòng)作是在控制器初始化時(shí)配置的。這2 種方式可以同時(shí)使用,控制器可以要求數(shù)據(jù)面匯報(bào)表內(nèi)的規(guī)則情況。這種靈活的轉(zhuǎn)發(fā)規(guī)則配置方式具有以下優(yōu)勢(shì):1) 控制器可以掌握網(wǎng)絡(luò)全局視野;2) 控制器不需要安裝全部規(guī)則,可以緩解負(fù)載壓力;3) 數(shù)據(jù)面自動(dòng)安裝規(guī)則可以在網(wǎng)絡(luò)事件發(fā)生時(shí)快速響應(yīng)。

        管道中的本地?cái)?shù)據(jù)空間為響應(yīng)網(wǎng)絡(luò)事件、改變包轉(zhuǎn)發(fā)邏輯等提供了狀態(tài)信息存儲(chǔ)空間。例如,網(wǎng)絡(luò)應(yīng)用可以在本地?cái)?shù)據(jù)空間中記錄需要跟蹤的網(wǎng)絡(luò)狀態(tài),控制器也可以將響應(yīng)網(wǎng)絡(luò)事件的消息提前存儲(chǔ)在本地空間中。

        2.2.2 數(shù)據(jù)表示方法

        允許管道適應(yīng)不同網(wǎng)絡(luò)模態(tài)數(shù)據(jù)處理的關(guān)鍵在于管道內(nèi)使用了一種靈活的數(shù)據(jù)表示方法。具體而言,本文提出使用數(shù)據(jù)類型、偏移和長(zhǎng)度表示網(wǎng)絡(luò)設(shè)備中可能存在的不同網(wǎng)絡(luò)模態(tài)數(shù)據(jù)。其中數(shù)據(jù)類型說(shuō)明了數(shù)據(jù)在網(wǎng)絡(luò)設(shè)備中的記錄形式,類型可以是數(shù)據(jù)包、本地存儲(chǔ)數(shù)據(jù)、匹配動(dòng)作數(shù)據(jù)表中的數(shù)據(jù),或者是網(wǎng)絡(luò)設(shè)備內(nèi)記錄的節(jié)點(diǎn)屬性等狀態(tài)數(shù)據(jù)。偏移和長(zhǎng)度說(shuō)明了數(shù)據(jù)的相對(duì)起始位置的偏移和長(zhǎng)度。

        雖然網(wǎng)絡(luò)模態(tài)和數(shù)據(jù)類型可能有無(wú)限多種,但是在網(wǎng)絡(luò)設(shè)備中數(shù)據(jù)的記錄形式是有限的。通過(guò)管道對(duì)不同模態(tài)數(shù)據(jù)的隔離,就可以使用有限的數(shù)據(jù)類型表示無(wú)限多種網(wǎng)絡(luò)模態(tài)數(shù)據(jù)。如圖6 所示,管道A 和B 分別處理IP 網(wǎng)絡(luò)和DONA 網(wǎng)絡(luò)的數(shù)據(jù)。管道A 中{數(shù)據(jù)包,34,16}表示相對(duì)IPv6 數(shù)據(jù)包起始位置偏移34 byte、長(zhǎng)度16 byte 的目的地址;管道B 中{數(shù)據(jù)包,56,40}表示相對(duì)DONA 請(qǐng)求消息(本文把消息和數(shù)據(jù)包劃為同一類型)起始位置偏移56 byte、長(zhǎng)度40 byte 的內(nèi)容名。

        圖6 使用數(shù)據(jù)類型、偏移和長(zhǎng)度兼容表示多種網(wǎng)絡(luò)模態(tài)數(shù)據(jù)

        這種數(shù)據(jù)表示方法與網(wǎng)絡(luò)模態(tài)、協(xié)議類型無(wú)關(guān),是為了便于網(wǎng)絡(luò)編程人員描述數(shù)據(jù)處理的抽象邏輯。而且這種數(shù)據(jù)表示方法與網(wǎng)絡(luò)設(shè)備的底層細(xì)節(jié)解耦,可以用于網(wǎng)絡(luò)功能的跨平臺(tái)快速部署,也有利于網(wǎng)絡(luò)設(shè)備的性能獨(dú)立優(yōu)化。

        2.2.3 匹配動(dòng)作數(shù)據(jù)表

        匹配動(dòng)作數(shù)據(jù)表是管道中處理數(shù)據(jù)包的核心部分,本節(jié)通過(guò)介紹匹配動(dòng)作數(shù)據(jù)表的3 個(gè)組成部分,即匹配域、動(dòng)作和數(shù)據(jù),來(lái)解釋其可以適應(yīng)不同網(wǎng)絡(luò)數(shù)據(jù)包處理的原因。

        匹配域說(shuō)明了數(shù)據(jù)包查表所需的匹配字段,匹配字段使用{數(shù)據(jù)類型,偏移,長(zhǎng)度}表示。通過(guò)第2.2.2 節(jié)可知,利用這種數(shù)據(jù)表示方法和模態(tài)數(shù)據(jù)處理管道,可以將無(wú)限類型的網(wǎng)絡(luò)模態(tài)數(shù)據(jù),轉(zhuǎn)換為有限類型的數(shù)據(jù)。因此,匹配字段通過(guò)這種方法表示后,數(shù)據(jù)表可匹配的數(shù)據(jù)不再局限于某種固定的網(wǎng)絡(luò)模態(tài)或固定類型(如數(shù)據(jù)包)。轉(zhuǎn)發(fā)設(shè)備內(nèi)存儲(chǔ)的應(yīng)用數(shù)據(jù)(如元數(shù)據(jù)、流狀態(tài)、全局?jǐn)?shù)據(jù)等)也可以參與到匹配過(guò)程中。這種方法提高了匹配的靈活性,擴(kuò)大了匹配表的使用范圍。

        更進(jìn)一步,為了適應(yīng)不同網(wǎng)絡(luò)的數(shù)據(jù)處理需求,管道將匹配動(dòng)作數(shù)據(jù)表與匹配算法解耦。轉(zhuǎn)發(fā)設(shè)備中的匹配算法庫(kù)為匹配動(dòng)作數(shù)據(jù)表提供多種匹配算法。如圖7 所示,網(wǎng)絡(luò)編程人員可以選擇匹配動(dòng)作表使用的匹配算法。例如,選擇最長(zhǎng)前綴匹配(LPM,longest prefix match)算法用于查找IP 地址;選擇最長(zhǎng)名稱前綴匹配(LNPM,longest name prefix match)算法用于查找層次化內(nèi)容名;選擇直接匹配(DM,direct match)算法,跳過(guò)提取字段匹配的環(huán)節(jié),直接使用動(dòng)作處理數(shù)據(jù)包。DM 算法適用于PSIRP[4]、SRv6[24]等將轉(zhuǎn)發(fā)操作直接記錄在數(shù)據(jù)包字段內(nèi)的網(wǎng)絡(luò)。

        圖7 匹配動(dòng)作數(shù)據(jù)表

        數(shù)據(jù)包與規(guī)則匹配后,網(wǎng)絡(luò)編程人員可以通過(guò)管道提供的具有基本功能的原子性動(dòng)作組合出數(shù)據(jù)包處理邏輯。如圖7 所示,這些動(dòng)作包括字段操作類,如加(add)、減(sub)、賦值(set_field)等;程序邏輯類,如分支(branch)、比較(compare)、跳轉(zhuǎn)(jump)等;表操作類,如添加規(guī)則(add_rule)、刪除規(guī)則(del_rule)等;以及數(shù)據(jù)包操作類,如丟棄(drop)、轉(zhuǎn)發(fā)(output)、泛洪(flood)等。

        值得注意的是,表操作類動(dòng)作可以使網(wǎng)絡(luò)設(shè)備在沒(méi)有控制器的協(xié)助下自動(dòng)增刪表項(xiàng)。以添加規(guī)則為例,網(wǎng)絡(luò)編程人員可以提前將所需增加的規(guī)則內(nèi)容記錄在本地?cái)?shù)據(jù)空間中,利用字段操作類動(dòng)作根據(jù)網(wǎng)絡(luò)狀態(tài)實(shí)時(shí)修改已記錄的規(guī)則內(nèi)容,最后使用add_rule 動(dòng)作將規(guī)則添加到某個(gè)表中。刪除規(guī)則更加簡(jiǎn)單,只需要描述規(guī)則所在表和它的匹配值即可。這種自動(dòng)增刪規(guī)則的方式不僅緩解了控制器的壓力,還可以及時(shí)響應(yīng)網(wǎng)絡(luò)事件。通過(guò)每隔一段時(shí)間向控制器同步表的狀態(tài),保證控制器仍然了解網(wǎng)絡(luò)全局狀態(tài)。

        匹配動(dòng)作數(shù)據(jù)表中的數(shù)據(jù)字段為網(wǎng)絡(luò)應(yīng)用提供了記錄流狀態(tài)的空間。匹配動(dòng)作數(shù)據(jù)表中每個(gè)表項(xiàng)不僅包括匹配域和動(dòng)作,還包括數(shù)據(jù)字段。網(wǎng)絡(luò)編程人員可以利用字段操作類動(dòng)作讀寫數(shù)據(jù)字段中的內(nèi)容。數(shù)據(jù)字段還可以用于記錄動(dòng)作參數(shù),避免因動(dòng)作參數(shù)的變化,導(dǎo)致表項(xiàng)頻繁更新。以圖7 匹配動(dòng)作數(shù)據(jù)表中的規(guī)則為例,網(wǎng)絡(luò)編程人員可以將動(dòng)作中使用的目的地址(10.0.0.2)記錄在表項(xiàng)的數(shù)據(jù)字段中,當(dāng)替換地址發(fā)生變化時(shí),不需要修改動(dòng)作,只需要替換數(shù)據(jù)字段的內(nèi)容即可。而數(shù)據(jù)字段的內(nèi)容可以通過(guò)編程的方式,利用比較和賦值動(dòng)作根據(jù)網(wǎng)絡(luò)狀態(tài)在轉(zhuǎn)發(fā)設(shè)備內(nèi)實(shí)時(shí)更新。

        綜上,本文提出的匹配動(dòng)作數(shù)據(jù)表具有如下優(yōu)點(diǎn)。1) 擴(kuò)大了匹配范圍,匹配動(dòng)作數(shù)據(jù)表不局限于處理固定網(wǎng)絡(luò)模態(tài)或固定類型的數(shù)據(jù)。匹配動(dòng)作數(shù)據(jù)表可以應(yīng)用于多種網(wǎng)絡(luò)模態(tài)數(shù)據(jù)處理,轉(zhuǎn)發(fā)設(shè)備本地的數(shù)據(jù)也可以參與到匹配過(guò)程中,增加了匹配的靈活性。2) 匹配動(dòng)作數(shù)據(jù)表與匹配算法解耦,匹配算法可以被獨(dú)立優(yōu)化,網(wǎng)絡(luò)編程人員可以通過(guò)更新匹配算法庫(kù),將最新的匹配算法應(yīng)用于數(shù)據(jù)包處理中,以滿足新型網(wǎng)絡(luò)應(yīng)用的需求,通過(guò)組合多種不同匹配算法表示復(fù)雜的匹配邏輯。3) 原子性動(dòng)作可以兼容多類型數(shù)據(jù)處理,表操作類動(dòng)作為網(wǎng)絡(luò)應(yīng)用提供了在數(shù)據(jù)面操作表項(xiàng)的能力,緩解了控制器的壓力,提高了網(wǎng)絡(luò)事件響應(yīng)速度。4) 匹配動(dòng)作數(shù)據(jù)表中的數(shù)據(jù)字段為網(wǎng)絡(luò)應(yīng)用提供了記錄流狀態(tài)的空間,還可避免因動(dòng)作參數(shù)變化導(dǎo)致的表項(xiàng)頻繁更新的問(wèn)題。

        3 實(shí)驗(yàn)評(píng)估

        3.1 實(shí)現(xiàn)

        為了驗(yàn)證本文提出的面向多模態(tài)網(wǎng)絡(luò)的數(shù)據(jù)處理方法,基于Intel 的DPDK[25]框架,本文實(shí)現(xiàn)了數(shù)據(jù)面處理原型系統(tǒng)。系統(tǒng)中的模態(tài)識(shí)別功能通過(guò)支持?jǐn)?shù)據(jù)包入端口匹配和掩碼匹配的查找表實(shí)現(xiàn)。系統(tǒng)中的模態(tài)識(shí)別、管道、隊(duì)列等配置可通過(guò)POF[26]南向接口由POX[27控制器配置,也可以利用配置文件在本地配置。管道內(nèi)的匹配動(dòng)作數(shù)據(jù)表可使用4 種匹配算法,即精確匹配(EM,exact match)、LPM、掩碼匹配(MM,mask match)和直接匹配(DM,direct match),可使用的動(dòng)作如表2 所示。

        表2 管道支持的原子性動(dòng)作

        3.2 實(shí)驗(yàn)

        本節(jié)實(shí)驗(yàn)從不同匹配算法的性能對(duì)比、不同數(shù)據(jù)類型對(duì)性能的影響、系統(tǒng)可支持的模態(tài)數(shù)據(jù)處理管道的數(shù)量和性能等方面對(duì)實(shí)現(xiàn)的原型系統(tǒng)進(jìn)行測(cè)試。實(shí)驗(yàn)中對(duì)管道等模塊使用配置文件進(jìn)行本地配置,測(cè)試系統(tǒng)運(yùn)行的服務(wù)器為DELL R740,服務(wù)器使用的處理器為Intel Xeon CPU E7-4809 v4 @2.10 GHz,支持的緩存為32 KB 的L1i 和L1d、256 KB 的L2、20 MB 的L3,使用的內(nèi)存為128 GB的DDR3@1 333 MHz 4 Channels,使用的網(wǎng)卡為Intel XL710 PCI-E 3.0x8 40 GB 和Intel I350 PCI-E 3.0x8 4 GB,使用的DPDK 版本為19.11,使用Sprient TestCenter 產(chǎn)生測(cè)試數(shù)據(jù)包。

        實(shí)驗(yàn)1不同匹配算法的性能對(duì)比

        匹配算法可以讓匹配動(dòng)作數(shù)據(jù)表靈活地適應(yīng)不同類型數(shù)據(jù)包的查找需求,例如LPM[28]算法可以用于IP 地址的路由查找;EM[29]算法可以用于扁平化哈希值的查找;利用了字典樹算法的MM[30]算法可以用于范圍查找和層次化名字的查找;本文所提DM 算法跳過(guò)了匹配過(guò)程,直接執(zhí)行動(dòng)作處理數(shù)據(jù)包,適用于PSIRP、SRv6 等將路由標(biāo)識(shí)記錄在數(shù)據(jù)包頭的網(wǎng)絡(luò)。本文實(shí)現(xiàn)了上述4 種匹配算法,實(shí)驗(yàn)測(cè)試不同的匹配算法對(duì)管道轉(zhuǎn)發(fā)性能的影響。

        通過(guò)本文提出的數(shù)據(jù)表示方法,匹配算法可以與具體的網(wǎng)絡(luò)模態(tài)解耦,不同模態(tài)的數(shù)據(jù)包可以復(fù)用相同的匹配算法。例如DONA 數(shù)據(jù)包和SEANet數(shù)據(jù)包都使用扁平化的名字,它們都可以使用EM算法匹配名字。SEANet 數(shù)據(jù)包作為ID/NA 協(xié)同數(shù)據(jù)包,數(shù)據(jù)包中還會(huì)攜帶網(wǎng)絡(luò)地址。那么可以使用MM 算法匹配網(wǎng)絡(luò)地址。本文提出匹配算法庫(kù)的思想,允許網(wǎng)絡(luò)編程人員根據(jù)需求組合不同的匹配算法以滿足需求。

        如圖8 所示,不同的匹配算法在功能和性能上存在差異。此實(shí)驗(yàn)中使用一個(gè)CPU 邏輯核,處理一個(gè)10 Gbit 網(wǎng)口的流量,CPU 的單個(gè)邏輯核運(yùn)行含有一張匹配動(dòng)作數(shù)據(jù)表的管道,并分別:1) 使用EM 算法處理名字為128 bit、98 byte 長(zhǎng)的DONA 數(shù)據(jù)包;2) 使用MM 算法處理名字為128 bit(例如,/sort/videos/movies/test.mp4/version1/....)、98 byte 長(zhǎng)的NDN 數(shù)據(jù)包;3) 使用LPM 算法處理名字為128 bit、98 byte 長(zhǎng)的IPv6 數(shù)據(jù)包。實(shí)驗(yàn)還測(cè)試了在匹配動(dòng)作數(shù)據(jù)表中安裝500~10 000 等不同數(shù)量規(guī)則對(duì)轉(zhuǎn)發(fā)性能的影響。

        檢測(cè):液體飼料的水分分析一般采用Karl·Fischer化學(xué)水分測(cè)試法[13]。張英等[16]報(bào)道,高效液相色譜檢測(cè)飼料中乳酸、乙酸、丙酸、丁酸等,方法簡(jiǎn)單、準(zhǔn)確、重復(fù)性好。生物傳感器(biosensor),是一種對(duì)生物物質(zhì)敏感并將其濃度轉(zhuǎn)換為電信號(hào)進(jìn)行檢測(cè)的儀器??煽焖贆z測(cè)發(fā)酵飼料中的葡萄糖、氧化酶、乙酸、丙酸、乙醇、甲醇、甲醛、游離賴氨酸和游離谷氨酸等。

        圖8 匹配動(dòng)作數(shù)據(jù)表使用不同匹配算法對(duì)轉(zhuǎn)發(fā)性能的影響

        實(shí)驗(yàn)結(jié)果表明,基于哈希的EM 算法性能更好且實(shí)現(xiàn)了線速轉(zhuǎn)發(fā),掩碼匹配的MM 算法次之,最長(zhǎng)前綴LPM 算法性能最差。在本文實(shí)驗(yàn)中使用一個(gè)CPU 邏輯核運(yùn)行一個(gè)模態(tài)數(shù)據(jù)處理管道,在實(shí)驗(yàn)5 中本文擴(kuò)展使用多個(gè)CPU 邏輯核運(yùn)行多個(gè)管道,測(cè)試轉(zhuǎn)發(fā)性能是否具有可擴(kuò)展性。

        網(wǎng)絡(luò)數(shù)據(jù)包的處理常需要匹配多個(gè)字段,選擇合適的匹配方式可以有效地提高性能。例如,實(shí)驗(yàn)中使用一張MM 表(10 萬(wàn)條表項(xiàng))匹配IPv6 五元組處理98 byte 長(zhǎng)度的數(shù)據(jù)包(一個(gè)CPU 邏輯核運(yùn)行管道),轉(zhuǎn)發(fā)性能為7.822 Gbit。轉(zhuǎn)發(fā)同樣的數(shù)據(jù)包,使用一張EM 表(100 條表項(xiàng))匹配協(xié)議字段,使用一張MM 表(5 萬(wàn)條表項(xiàng))匹配IPv6 的源目的地址、端口,轉(zhuǎn)發(fā)性能提升為8.240 Gbit。使用DM表直接用表2 中的分支比較動(dòng)作匹配10 個(gè)常用的協(xié)議字段,再使用一張MM 表(5 萬(wàn)條表項(xiàng))匹配IPv6的源目的地址、端口,轉(zhuǎn)發(fā)性能提升為8.664 Gbit。

        通過(guò)不同匹配算法性能對(duì)比的實(shí)驗(yàn)可知,僅通過(guò)調(diào)整使用的匹配策略就可以提高轉(zhuǎn)發(fā)性能。由于IPv6 五元組中的協(xié)議字段值固定且有限,因此相比于MM 算法,使用EM 算法可以獲得更高的性能。而DM 表直接省略了匹配過(guò)程,利用指令比較有限的字段,避免了因讀表帶來(lái)的開銷,可以進(jìn)一步提升性能。

        綜上,本文提出的數(shù)據(jù)表示方法使匹配算法與具體的網(wǎng)絡(luò)模態(tài)解耦,實(shí)現(xiàn)匹配算法在不同模態(tài)間的復(fù)用。而匹配算法庫(kù)的思想允許網(wǎng)絡(luò)編程人員根據(jù)需求選擇合適的匹配算法進(jìn)行組合,以達(dá)到最佳性能。在未來(lái)的工作中,本文將使匹配算法插件化,從而使匹配算法庫(kù)快速地支持新的匹配算法。

        實(shí)驗(yàn)2動(dòng)作性能

        動(dòng)作負(fù)責(zé)在數(shù)據(jù)包與規(guī)則匹配后處理數(shù)據(jù)包,管道原子性動(dòng)作的性能如表3 所示,其中,f 為字段,imm 為立即數(shù)。本文在實(shí)驗(yàn)平臺(tái)上測(cè)試了表2中各動(dòng)作執(zhí)行所需的CPU 時(shí)鐘周期。實(shí)驗(yàn)還對(duì)比了處理不同類型的數(shù)據(jù)對(duì)動(dòng)作性能的影響,例如sf (f,imm_64) 為使用64 bit 的數(shù)據(jù)對(duì)一個(gè)數(shù)據(jù)包首部字段賦值,而sf (f,f)則是用一個(gè)數(shù)據(jù)包首部字段對(duì)另一個(gè)相同長(zhǎng)度的數(shù)據(jù)包首部字段賦值。為控制變量,實(shí)驗(yàn)中相同的動(dòng)作使用的測(cè)試數(shù)據(jù)長(zhǎng)度相同。實(shí)驗(yàn)中記錄每個(gè)動(dòng)作指令1 000 000 次所需的CPU 時(shí)鐘周期,然后計(jì)算單次動(dòng)作執(zhí)行所需時(shí)間開銷。

        表3 管道原子性動(dòng)作的性能

        由表3 可知,動(dòng)作中2 個(gè)參數(shù)都為字段類型時(shí)所需時(shí)間更長(zhǎng),因?yàn)樵黾恿艘粋€(gè)字段的加載時(shí)間。根據(jù)表3 中的數(shù)據(jù),執(zhí)行sf(f,imm_64)需要7 個(gè)CPU 時(shí)鐘周期,執(zhí)行sf(f,f)需要13 個(gè)CPU 時(shí)鐘周期,可計(jì)算出加載一個(gè)字段所需時(shí)間為6 個(gè)CPU 時(shí)鐘周期(在本文實(shí)驗(yàn)平臺(tái)上約為3 ns)。在所有動(dòng)作中,增加表項(xiàng)動(dòng)作所需的時(shí)間最長(zhǎng),約為382 ns。進(jìn)一步進(jìn)行測(cè)試,利用POX 控制器每秒可以向管道添加8 624 條表項(xiàng),即每條表項(xiàng)添加時(shí)間為0.115 ms。顯然,如果表項(xiàng)內(nèi)容不需要控制器協(xié)助即可獲得,那么使用動(dòng)作添加表項(xiàng)所需的時(shí)間更短,可用于在數(shù)據(jù)面有動(dòng)態(tài)處理表項(xiàng)需求的網(wǎng)絡(luò)模態(tài)(如NDN、SEANet 等)。

        為了適應(yīng)不同模態(tài)的數(shù)據(jù)包,本文提出使用數(shù)據(jù)類型、偏移和長(zhǎng)度表示網(wǎng)絡(luò)設(shè)備內(nèi)的數(shù)據(jù)。用網(wǎng)絡(luò)設(shè)備內(nèi)有限的數(shù)據(jù)類型(立即數(shù)、數(shù)據(jù)包字段、元數(shù)據(jù)、表項(xiàng)數(shù)據(jù)和全局?jǐn)?shù)據(jù))代替可能無(wú)限多種不同模態(tài)的數(shù)據(jù)包類型。

        在實(shí)驗(yàn)2 中,測(cè)試動(dòng)作使用的字段全部為數(shù)據(jù)包首部字段,但是本文提出的動(dòng)作適用的數(shù)據(jù)類型并不局限于數(shù)據(jù)包字段,這為不同模態(tài)數(shù)據(jù)處理提供了靈活性。實(shí)驗(yàn)3 測(cè)試數(shù)據(jù)類型是否會(huì)對(duì)動(dòng)作性能產(chǎn)生影響。實(shí)驗(yàn)選用set_field(p1,p2)動(dòng)作進(jìn)行測(cè)試,測(cè)試中set_field 動(dòng)作的p1 參數(shù)始終為64 bit的數(shù)據(jù)包首部字段,變換p2 參數(shù)分別為64 bit 的立即數(shù)、數(shù)據(jù)包首部字段、元數(shù)據(jù)、表項(xiàng)數(shù)據(jù)、全局?jǐn)?shù)據(jù)。在實(shí)驗(yàn)平臺(tái)上不同參數(shù)的set_field 動(dòng)作分別執(zhí)行1 000 000 次,計(jì)算平均每次執(zhí)行所需的CPU時(shí)鐘周期數(shù)。

        動(dòng)作處理不同類型數(shù)據(jù)所需的CPU 時(shí)鐘周期如圖9 所示,動(dòng)作中使用數(shù)據(jù)包字段、元數(shù)據(jù)、表項(xiàng)數(shù)據(jù)和全局?jǐn)?shù)據(jù)的表項(xiàng)轉(zhuǎn)發(fā)數(shù)據(jù)包的時(shí)延比使用立即數(shù)的高。原因是這些動(dòng)作需要額外加載一次數(shù)據(jù),而立即數(shù)可以直接使用。但是,加載不同類型數(shù)據(jù)(如數(shù)據(jù)包字段、元數(shù)據(jù)、表項(xiàng)數(shù)據(jù)、全局?jǐn)?shù)據(jù)),數(shù)據(jù)包的轉(zhuǎn)發(fā)時(shí)延是相同的。因?yàn)樵谒袆?dòng)作執(zhí)行前,管道會(huì)統(tǒng)一獲取所有類型數(shù)據(jù)的基址,然后利用偏移和長(zhǎng)度獲取數(shù)據(jù),所以數(shù)據(jù)類型不會(huì)對(duì)性能產(chǎn)生影響。

        圖9 動(dòng)作處理不同類型數(shù)據(jù)所需的CPU 時(shí)鐘周期

        使用數(shù)據(jù)類型、偏移和長(zhǎng)度表示網(wǎng)絡(luò)設(shè)備中的數(shù)據(jù),一方面,可以屏蔽不同網(wǎng)絡(luò)模態(tài)數(shù)據(jù)包的差異,將它們統(tǒng)一認(rèn)作數(shù)據(jù)包類型,由網(wǎng)絡(luò)編程人員根據(jù)各模態(tài)數(shù)據(jù)包的區(qū)別,填寫不同匹配動(dòng)作數(shù)據(jù)表所需匹配和處理的字段位置;另一方面,在不降低動(dòng)作性能的情況下,擴(kuò)展了動(dòng)作的能力,使動(dòng)作不再局限于數(shù)據(jù)包字段處理,提高了數(shù)據(jù)面的編程能力。

        實(shí)驗(yàn)4數(shù)據(jù)長(zhǎng)度對(duì)動(dòng)作性能的影響

        不同模態(tài)的數(shù)據(jù)包所需處理的數(shù)據(jù)長(zhǎng)度可能不同,如傳統(tǒng)網(wǎng)絡(luò)中存在32 bit 和128 bit 這2 種地址長(zhǎng)度,使用層次化命名的網(wǎng)絡(luò)(如NDN、CCN)其名字長(zhǎng)度則更加多變。數(shù)據(jù)包處理中常需要進(jìn)行名字替換、字段修改等操作。此實(shí)驗(yàn)測(cè)試不同長(zhǎng)度的字段對(duì)動(dòng)作性能產(chǎn)生的影響。

        實(shí)驗(yàn)4 中使用set_field(p1,p2)動(dòng)作測(cè)試,p1、p2 為長(zhǎng)度相同的數(shù)據(jù)包字段。實(shí)驗(yàn)中測(cè)試了set_field 動(dòng)作處理16~192 bit 的數(shù)據(jù),包括字節(jié)對(duì)齊的數(shù)據(jù)和非對(duì)齊的數(shù)據(jù)。實(shí)驗(yàn)中對(duì)不同參數(shù)長(zhǎng)度的set_field 動(dòng)作分別執(zhí)行1 000 000 次,計(jì)算平均每次執(zhí)行所需的時(shí)間。

        動(dòng)作處理數(shù)據(jù)的長(zhǎng)度對(duì)性能的影響如圖10 所示。圖10 中,符號(hào)<表示非對(duì)齊數(shù)據(jù),例如,<32表示長(zhǎng)度在16 bit 和32 bit 之間的非對(duì)齊數(shù)據(jù)。從圖10 可以看出,1) 在沒(méi)有對(duì)數(shù)據(jù)加載功能優(yōu)化前,動(dòng)作的執(zhí)行時(shí)間隨著處理數(shù)據(jù)的長(zhǎng)度增加,在數(shù)據(jù)長(zhǎng)度超過(guò)64 bit 時(shí)增加明顯;2) 處理64 bit 的數(shù)據(jù)所需時(shí)間最短,這是由于實(shí)驗(yàn)平臺(tái)處理器的總線位寬為64 bit,相比于加載其他長(zhǎng)度的數(shù)據(jù)速度更快;3) 動(dòng)作處理非字節(jié)對(duì)齊的數(shù)據(jù)所需時(shí)間更長(zhǎng);4) 在使用因特網(wǎng)數(shù)據(jù)流單指令序列擴(kuò)展技術(shù)對(duì)數(shù)據(jù)加載功能優(yōu)化后,動(dòng)作執(zhí)行時(shí)間減少,在數(shù)據(jù)長(zhǎng)度超過(guò)64 bit 時(shí),性能提升明顯。

        圖10 動(dòng)作處理數(shù)據(jù)的長(zhǎng)度對(duì)性能的影響

        綜上,在本文的實(shí)驗(yàn)平臺(tái)上,數(shù)據(jù)長(zhǎng)度對(duì)動(dòng)作性能有明顯的影響。網(wǎng)絡(luò)編程人員在編寫網(wǎng)絡(luò)數(shù)據(jù)處理功能時(shí)可以據(jù)此選擇合適的數(shù)據(jù)長(zhǎng)度,例如,當(dāng)需要在網(wǎng)絡(luò)設(shè)備內(nèi)記錄臨時(shí)數(shù)據(jù)時(shí),長(zhǎng)度為64 bit的數(shù)據(jù)在未來(lái)的動(dòng)作處理中性能更好。

        實(shí)驗(yàn)5模態(tài)數(shù)據(jù)處理管道性能測(cè)試

        本文提出的面向多模態(tài)網(wǎng)絡(luò)的數(shù)據(jù)處理方法中,模態(tài)數(shù)據(jù)處理管道是適應(yīng)不同網(wǎng)絡(luò)模態(tài)的關(guān)鍵部分。網(wǎng)絡(luò)編程人員可以使用多個(gè)管道處理不同網(wǎng)絡(luò)的數(shù)據(jù),也可以通過(guò)多個(gè)管道提高單個(gè)網(wǎng)絡(luò)的吞吐。

        實(shí)驗(yàn)5 測(cè)試同時(shí)運(yùn)行多個(gè)管道對(duì)轉(zhuǎn)發(fā)性能的影響。實(shí)驗(yàn)中每個(gè)管道都使用一個(gè)CPU 邏輯核運(yùn)行,每個(gè)管道內(nèi)部都安裝一張使用LPM算法的匹配數(shù)據(jù)動(dòng)作表,匹配數(shù)據(jù)動(dòng)作表中匹配IPv6 數(shù)據(jù)包五元組。實(shí)驗(yàn)中使用Sprient TestCenter 產(chǎn)生98 byte、40 Gbit的IPv6 數(shù)據(jù)包進(jìn)行測(cè)試。

        運(yùn)行管道數(shù)量對(duì)轉(zhuǎn)發(fā)性能的影響如圖11 所示。從圖11 可以看出,當(dāng)運(yùn)行1~8 個(gè)管道時(shí),吞吐量是線性增長(zhǎng)的。這說(shuō)明各管道的性能平均,沒(méi)有受到其他管道的影響。但是當(dāng)運(yùn)行的管道數(shù)量從8 增加到16 時(shí),吞吐量增長(zhǎng)幅度較小,沒(méi)有達(dá)到40 Gbit的吞吐量。這是因?yàn)閷?shí)驗(yàn)平臺(tái)使用的PCI-E 3.0x8 無(wú)法滿足40 Gbit 數(shù)據(jù)的雙向轉(zhuǎn)發(fā),其PCI-E 的極限性能為32 Gbit。

        圖11 運(yùn)行管道數(shù)量對(duì)轉(zhuǎn)發(fā)性能的影響

        實(shí)驗(yàn)5 說(shuō)明,通過(guò)管道隔離不同模態(tài)的網(wǎng)絡(luò),并保證性能獨(dú)立不受其他網(wǎng)絡(luò)的影響是可行的。但是需要注意網(wǎng)絡(luò)設(shè)備的其他部分是否存在性能瓶頸。

        4 結(jié)束語(yǔ)

        針對(duì)多模態(tài)網(wǎng)絡(luò)在數(shù)據(jù)面中面臨的兼容多種路由標(biāo)識(shí)、網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)處理的問(wèn)題,本文提出了一種兼容多種模態(tài)的可編程數(shù)據(jù)處理方法。該方法利用模態(tài)識(shí)別與分流模塊、模態(tài)數(shù)據(jù)處理管道、封裝轉(zhuǎn)發(fā)與多播模塊和控制面通信接口4 個(gè)部分,使數(shù)據(jù)面可以通過(guò)編程的方式完成數(shù)據(jù)包的網(wǎng)絡(luò)模態(tài)識(shí)別、不同模態(tài)數(shù)據(jù)包的定制化處理、靈活的數(shù)據(jù)包封裝與轉(zhuǎn)發(fā)。其中,模態(tài)數(shù)據(jù)處理管道可以適應(yīng)不同網(wǎng)絡(luò)數(shù)據(jù)處理的關(guān)鍵在于,本文使用數(shù)據(jù)類型、偏移和長(zhǎng)度兼容表示多種類型數(shù)據(jù),并使用可以選擇匹配算法、利用原子性動(dòng)作處理數(shù)據(jù)、支持記錄流狀態(tài)的匹配動(dòng)作數(shù)據(jù)表,組成管道的數(shù)據(jù)包處理邏輯。本文在通用服務(wù)器上基于Intel 的DPDK 框架實(shí)現(xiàn)了一個(gè)多模態(tài)網(wǎng)絡(luò)數(shù)據(jù)處理原型系統(tǒng),并從匹配算法、數(shù)據(jù)類型、執(zhí)行的動(dòng)作、動(dòng)作處理數(shù)據(jù)的長(zhǎng)度和多管道并行對(duì)系統(tǒng)性能的影響等方面進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,模態(tài)數(shù)據(jù)處理管道可以隔離不同模態(tài)的網(wǎng)絡(luò)且性能獨(dú)立,匹配算法的類型、處理數(shù)據(jù)的長(zhǎng)度會(huì)影響系統(tǒng)轉(zhuǎn)發(fā)性能,而不同的數(shù)據(jù)類型不會(huì)對(duì)轉(zhuǎn)發(fā)性能產(chǎn)生影響。未來(lái)的工作將在可編程硬件(如FPGA)上實(shí)現(xiàn)本文所提出的模態(tài)識(shí)別與分類模塊,以及以插件的方式在匹配算法庫(kù)中擴(kuò)展匹配算法。

        猜你喜歡
        數(shù)據(jù)表數(shù)據(jù)處理數(shù)據(jù)包
        認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
        ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
        湖北省新冠肺炎疫情數(shù)據(jù)表
        黨員生活(2020年2期)2020-04-17 09:56:30
        基于列控工程數(shù)據(jù)表建立線路拓?fù)潢P(guān)系的研究
        SmartSniff
        基于希爾伯特- 黃變換的去噪法在外測(cè)數(shù)據(jù)處理中的應(yīng)用
        圖表
        基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
        基于VSL的動(dòng)態(tài)數(shù)據(jù)表應(yīng)用研究
        河南科技(2014年24期)2014-02-27 14:19:25
        視覺(jué)注意的數(shù)據(jù)包優(yōu)先級(jí)排序策略研究
        久天啪天天久久99久孕妇| 国产国拍亚洲精品mv在线观看| 久久国产精久久精产国| 对白刺激的老熟女露脸| 精品人妻日韩中文字幕| 蜜臀久久99精品久久久久久| 久久久久久久岛国免费观看| AV教师一区高清| 翘臀诱惑中文字幕人妻| 国产欧美日韩中文久久| 欧美gv在线观看| 国产一区二区欧美丝袜| 日韩精品一区二区三区影音视频| 色综合久久无码五十路人妻| 国产手机在线αⅴ片无码观看| 一区二区三区国产美女在线播放 | 中文亚洲第一av一区二区| 成人影院在线视频免费观看| 国产精品自在线拍国产| 日本久久久免费高清| 精品人妻日韩中文字幕| 人人妻人人澡人人爽欧美一区双| 国内精品久久久久久久影视麻豆| 久久久久国产精品四虎| 亚洲国产av一区二区四季| 国产好大好硬好爽免费不卡| 国产成人拍精品免费视频| 久久精品国产亚洲av专区| 国内精品久久久久影院优| 国产乱子伦精品免费无码专区| 少妇av免费在线播放| 美丽的小蜜桃在线观看| 97人妻碰碰视频免费上线| 2021国产精品一区二区在线| 久久精品国产亚洲av网站 | 不卡高清av手机在线观看| 99在线国产视频| 日本视频一区二区三区在线观看| 国产亚洲2021成人乱码| 99国产精品久久久蜜芽| 日本女优五十路中文字幕|