国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的軟件定義協(xié)議無(wú)關(guān)解析器

2020-04-15 03:38苗力心劉勤讓汪欣
關(guān)鍵詞:數(shù)據(jù)包解析定義

苗力心,劉勤讓?zhuān)粜?/p>

基于FPGA的軟件定義協(xié)議無(wú)關(guān)解析器

苗力心,劉勤讓?zhuān)粜?/p>

(國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,河南 鄭州 450002)

隨著信息技術(shù)的繁榮發(fā)展,各種功能的異構(gòu)網(wǎng)絡(luò)層出不窮,異構(gòu)融合網(wǎng)絡(luò)成為下一代網(wǎng)絡(luò)發(fā)展的必然趨勢(shì)。實(shí)現(xiàn)異構(gòu)網(wǎng)絡(luò)之間的通信,網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備必不可少。傳統(tǒng)的轉(zhuǎn)發(fā)設(shè)備僅支持固定的協(xié)議配置,缺乏可擴(kuò)展性,無(wú)法支持新的網(wǎng)絡(luò)協(xié)議。針對(duì)這種情況,提出了一種基于FPGA的軟件定義協(xié)議無(wú)關(guān)解析器,通過(guò)軟件定義解析流程,給予解析器靈活可編程的特性,無(wú)須對(duì)硬件設(shè)備進(jìn)行更改即可完成對(duì)多種協(xié)議數(shù)據(jù)包的解析并提取出數(shù)據(jù)包轉(zhuǎn)發(fā)所需的關(guān)鍵信息。通過(guò)高性能FPGA平臺(tái)對(duì)解析器進(jìn)行了實(shí)現(xiàn),并進(jìn)行了硬件資源開(kāi)銷(xiāo)和性能的評(píng)估。實(shí)驗(yàn)結(jié)果表明,可以完成多種異構(gòu)網(wǎng)絡(luò)協(xié)議的快速解析,得到完整的解析數(shù)據(jù)。

FPGA;軟件定義;解析器;協(xié)議無(wú)關(guān)

1 引言

隨著現(xiàn)代網(wǎng)絡(luò)和信息技術(shù)的飛速發(fā)展,信息的交換與傳輸頻繁地發(fā)生在各式各樣的網(wǎng)絡(luò)設(shè)備之間,一切皆可互聯(lián)成為必然趨勢(shì)。各種功能的異構(gòu)網(wǎng)絡(luò)系統(tǒng)層出不窮,如支持嵌入式系統(tǒng)的RapidIO網(wǎng)絡(luò)[1]、應(yīng)用于航空電子環(huán)境中的FC-AE網(wǎng)絡(luò)[2]、傳統(tǒng)的以太網(wǎng)網(wǎng)絡(luò)等。人們對(duì)互聯(lián)的需求促使了異構(gòu)融合網(wǎng)絡(luò)的誕生,支持不同協(xié)議類(lèi)型的網(wǎng)絡(luò)設(shè)備共同應(yīng)用在同一個(gè)網(wǎng)絡(luò)系統(tǒng)中,使信息的互聯(lián)交換變得更為通暢。與此同時(shí),多樣的網(wǎng)絡(luò)系統(tǒng)也帶來(lái)了更加豐富的新型網(wǎng)絡(luò)協(xié)議,異構(gòu)網(wǎng)絡(luò)之間的融合要求網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備必須同時(shí)支持各種不同的新型協(xié)議,這為網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備的可編程性和可擴(kuò)展性帶來(lái)了嚴(yán)峻的挑戰(zhàn)。為了更好地實(shí)現(xiàn)信息互聯(lián)以及異構(gòu)協(xié)議網(wǎng)絡(luò)設(shè)備之間數(shù)據(jù)的流暢通信,網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備的升級(jí)更新成為急需解決的問(wèn)題。

在通信網(wǎng)絡(luò)系統(tǒng)中,不同設(shè)備之間的通信都是依靠數(shù)據(jù)包來(lái)完成的,數(shù)據(jù)包由包頭和payload負(fù)載內(nèi)容組成,識(shí)別和提取包頭中相關(guān)字段的過(guò)程稱(chēng)為解析[3]。在高速的網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備中,對(duì)數(shù)據(jù)包的包頭信息的解析、識(shí)別和提取的效率影響著整個(gè)系統(tǒng)的吞吐率,是整個(gè)系統(tǒng)性能的關(guān)鍵所在。由于包頭格式的復(fù)雜性,包解析成為限制高速網(wǎng)絡(luò)性能和速率的一個(gè)關(guān)鍵瓶頸。數(shù)據(jù)包的長(zhǎng)度和包頭格式因網(wǎng)絡(luò)和數(shù)據(jù)包的不同而不同,因此需要提取的標(biāo)識(shí)字段與關(guān)鍵字段也不相同,而隨著夾層協(xié)議MPLS、基于EoMPLS的多層MPLS和802.1Q等的加入,包頭格式變得更為復(fù)雜,很難解析。而傳統(tǒng)的報(bào)文解析器僅支持固定的協(xié)議類(lèi)型,一般使用ASIC(application specific integrated circuits)實(shí)現(xiàn),存在缺乏可擴(kuò)展性、靈活性差的缺點(diǎn),無(wú)法靈活處理新的復(fù)雜協(xié)議類(lèi)型。在異構(gòu)融合網(wǎng)絡(luò)中,如果使用ASIC設(shè)備,那么在添加新的網(wǎng)絡(luò)設(shè)備,即添加新的協(xié)議類(lèi)型時(shí),需要對(duì)轉(zhuǎn)發(fā)設(shè)備進(jìn)行重新設(shè)計(jì),這無(wú)疑將帶來(lái)極大的設(shè)備開(kāi)銷(xiāo),因此對(duì)具備支持多種網(wǎng)絡(luò)協(xié)議類(lèi)型解析的具有可編程性、可擴(kuò)展性的解析器的探索勢(shì)在必行。

軟件定義網(wǎng)絡(luò)(SDN,software defined network)[4]實(shí)現(xiàn)了網(wǎng)絡(luò)控制平面與轉(zhuǎn)發(fā)平面的分離,打破了原先一體化的硬件設(shè)施,將基礎(chǔ)硬件虛擬化并提供標(biāo)準(zhǔn)化的基本功能,然后通過(guò)管控軟件,控制其基本功能,提供更加開(kāi)放、靈活、智能的管控服務(wù)。本文將軟件定義的概念應(yīng)用于新型協(xié)議無(wú)關(guān)解析器的設(shè)計(jì)中,同時(shí)在數(shù)據(jù)包的包頭解析的流程中,本文提出了一種基于協(xié)議解析描述符生成的解析流程,描述符可以依據(jù)數(shù)據(jù)包協(xié)議類(lèi)型生成解析所需要的控制流信息從而達(dá)到對(duì)任意協(xié)議的支持,即協(xié)議無(wú)關(guān)。不同的協(xié)議有不同的描述符結(jié)構(gòu),這些結(jié)構(gòu)信息以流表的形式存儲(chǔ)在存儲(chǔ)單元中。用戶(hù)可以通過(guò)對(duì)控制寄存器進(jìn)行簡(jiǎn)單配置來(lái)選擇當(dāng)前解析器支持的協(xié)議類(lèi)型,即當(dāng)用戶(hù)選擇某個(gè)協(xié)議時(shí),系統(tǒng)將相對(duì)應(yīng)的描述符結(jié)構(gòu)信息以下流表的方式配置到解析器的RAM中,此時(shí)解析器便可以解析這一協(xié)議類(lèi)型的數(shù)據(jù)包。通過(guò)這種方式,可以實(shí)現(xiàn)控制平面與轉(zhuǎn)發(fā)平面的分離,用戶(hù)不需要關(guān)心底層硬件設(shè)備的情況,只添加解析器支持的協(xié)議類(lèi)型即可。

2 相關(guān)工作

包頭信息的解析對(duì)于網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備來(lái)說(shuō)是必不可少的一個(gè)環(huán)節(jié)。通過(guò)對(duì)包頭信息的解析,可以得知數(shù)據(jù)包的傳輸路徑,并且可以有效對(duì)數(shù)據(jù)包進(jìn)行分類(lèi)處理,不同類(lèi)型的包具有不同的功能以及不同的響應(yīng)方式。數(shù)據(jù)包的包頭解析實(shí)現(xiàn)途徑主要分為軟件實(shí)現(xiàn)方式和硬件實(shí)現(xiàn)方式。使用軟件實(shí)現(xiàn)數(shù)據(jù)包的解析具有靈活性高、周期短的特點(diǎn),用戶(hù)可以直接修改軟件代碼來(lái)實(shí)現(xiàn)新協(xié)議的擴(kuò)展,但軟件實(shí)現(xiàn)由于處理速度相對(duì)較低,不適用于高速網(wǎng)絡(luò)。硬件實(shí)現(xiàn)雖然具有高速穩(wěn)定的優(yōu)點(diǎn),但由于硬件本身固化,導(dǎo)致硬件實(shí)現(xiàn)可重構(gòu)性差,靈活性較低[5]。軟硬件協(xié)同的包解析將是兼具兩者之長(zhǎng)的一種完美的解析方式。

SDN實(shí)現(xiàn)了控制平面與數(shù)據(jù)平面的解耦分離,抽象了數(shù)據(jù)平面網(wǎng)絡(luò)資源,是實(shí)現(xiàn)高速動(dòng)態(tài)可編程網(wǎng)絡(luò)的理想架構(gòu)。OpenFlow協(xié)議作為最普遍的分離控制平面和數(shù)據(jù)平面的南向接口,依靠增加匹配域?qū)崿F(xiàn)對(duì)新協(xié)議的支持,但隨著新協(xié)議越來(lái)越多,匹配域變得難以擴(kuò)展,靈活性受到極大的限制。Yazdinejad等[6]提出了一種OpenFlow V1.3交換機(jī)架構(gòu),該架構(gòu)除了提高匹配表的速度和增加處理管道之外,解析器還支持40個(gè)包頭解析并且可以通過(guò)重寫(xiě)進(jìn)行擴(kuò)展。但這并不能完美解決OpenFlow的局限性,依舊無(wú)法支持更多的協(xié)議類(lèi)型。Liu[7]在FPGA上實(shí)現(xiàn)了SDN開(kāi)關(guān),避免了NetFPGA的延遲,但解析器是固定的,不具備支持新協(xié)議類(lèi)型的可配置性和靈活性,需要重新寫(xiě)解析器的VHDL程序。

現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA,field programmable gate array)由于具有低功耗、高性能、可重構(gòu)性,被廣泛應(yīng)用于網(wǎng)絡(luò)設(shè)備的設(shè)計(jì),是解決硬件解析架構(gòu)靈活性差的良好平臺(tái)。王孝龍等[8]提出了一種支持異構(gòu)協(xié)議解析的可配置解析器設(shè)計(jì),通過(guò)配置用戶(hù)定義模塊實(shí)時(shí)更新解析樹(shù)以及TCAM和RAM存儲(chǔ)狀態(tài)轉(zhuǎn)移表實(shí)現(xiàn)對(duì)新型網(wǎng)絡(luò)協(xié)議的支持,并提出了一種基于節(jié)點(diǎn)壓縮的優(yōu)化算法。楊惠等[9]提出了一種基于FPGA的并行多發(fā)可編程解析器,將數(shù)據(jù)包解析過(guò)程抽象化3個(gè)協(xié)議無(wú)關(guān)的中間操作(識(shí)別、匹配、提取),并針對(duì)這些操作分別進(jìn)行了一系列的優(yōu)化加速,更關(guān)注解析器的性能優(yōu)化問(wèn)題,無(wú)法達(dá)到協(xié)議無(wú)關(guān)。Bitar等[10]提出了一種基于FPGA的數(shù)據(jù)包解析器結(jié)構(gòu),通過(guò)在FPGA上嵌入NoC(network-on-chip)達(dá)到400 Gbit/s至800 Gbit/s的吞吐率。此設(shè)計(jì)通過(guò)一個(gè)處理模塊和嵌入NoC的FPGA的多重互連來(lái)識(shí)別協(xié)議類(lèi)型。但將NoC嵌入FPGA在當(dāng)前是很復(fù)雜和困難的,暫時(shí)不具備實(shí)用性。

可編程協(xié)議無(wú)關(guān)數(shù)據(jù)包處理語(yǔ)言[11](P4,programming protocol-independent packet processors)是Nick教授等提出的一種用于數(shù)據(jù)平面的高級(jí)編程語(yǔ)言,具有協(xié)議無(wú)關(guān)、目標(biāo)無(wú)關(guān)以及可重構(gòu)特性。Silva等[12]利用P4描述在SDN之中開(kāi)發(fā)了一種基于FPGA的開(kāi)源數(shù)據(jù)包解析器架構(gòu),他們直接從包處理的描述中生成高速低延遲的包解析器。這種體系結(jié)構(gòu)采用流水線(xiàn)結(jié)構(gòu)并使用C++框架進(jìn)行設(shè)計(jì),但增加了邏輯資源的消耗。Benácek等[13]利用P4的思想對(duì)解析器生成器進(jìn)行設(shè)計(jì),將P4的解析圖轉(zhuǎn)換為適合FPGA實(shí)現(xiàn)的可合成的VHDL代碼,可以自動(dòng)生成解析速率為100 Gbit/s的可編程解析器。但相比于手工編寫(xiě)的VHDL代碼,這個(gè)自動(dòng)生成的解析器延遲和資源開(kāi)銷(xiāo)更大。

本文提出了一種基于FPGA的軟件定義協(xié)議無(wú)關(guān)解析器設(shè)計(jì),通過(guò)在解析過(guò)程中使用生成協(xié)議解析描述符的方式,用戶(hù)只需要對(duì)解析器支持的協(xié)議類(lèi)型進(jìn)行選擇,解析器即可完成對(duì)不同協(xié)議的數(shù)據(jù)包解析。通過(guò)對(duì)描述符格式進(jìn)行設(shè)計(jì),解析器可以解析各種依靠數(shù)據(jù)包進(jìn)行通信的傳輸協(xié)議,如TCP/IP、SRIO協(xié)議、FC光纖通信協(xié)議、以太網(wǎng)802.1協(xié)議、HTTP協(xié)議等。數(shù)據(jù)包主要由“目的IP地址/目的MAC”“源IP地址/源MAC”“凈載負(fù)荷”等部分構(gòu)成,包括包頭和包體,包頭根據(jù)協(xié)議不同而長(zhǎng)度不同,包含的具體信息也不盡相同。在包頭信息解析的過(guò)程中,解析器會(huì)根據(jù)當(dāng)前協(xié)議類(lèi)型生成初始描述符(MF)。在包頭信息解析狀態(tài)的跳轉(zhuǎn)過(guò)程中,描述符會(huì)進(jìn)行不斷的修改與添加,描述符中的控制流信息可以將包頭中的關(guān)鍵信息key值提取到描述符末端的關(guān)鍵字段中并在后續(xù)的匹配以及操作模塊使用這些信息,從而實(shí)現(xiàn)協(xié)議無(wú)關(guān)的解析操作。

3 解析器結(jié)構(gòu)設(shè)計(jì)

數(shù)據(jù)包解析的過(guò)程就是對(duì)包頭協(xié)議的識(shí)別以及關(guān)鍵數(shù)據(jù)信息的提取,基于此,本文提出基于FPGA的軟件定義協(xié)議無(wú)關(guān)解析器(SDPIP,software defined protocol independent parser based on FPGA),設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)用戶(hù)軟件定義以及達(dá)到協(xié)議無(wú)關(guān)。軟件定義可以將解析器的控制層集中,方便用戶(hù)對(duì)設(shè)備進(jìn)行編程以及更改,提高解析器的靈活性。在異構(gòu)融合網(wǎng)絡(luò)之中,協(xié)議無(wú)關(guān)的解析器為轉(zhuǎn)發(fā)設(shè)備提供了強(qiáng)大的適用性,無(wú)須考慮對(duì)接設(shè)備支持的協(xié)議類(lèi)型即可對(duì)數(shù)據(jù)包進(jìn)行快速解析轉(zhuǎn)發(fā),減少了網(wǎng)絡(luò)系統(tǒng)更新時(shí)轉(zhuǎn)發(fā)設(shè)備的開(kāi)銷(xiāo),便于設(shè)備架構(gòu)部署,符合異構(gòu)融合網(wǎng)絡(luò)的發(fā)展。

解析器的解析流程如圖1所示,SDPIP解析器共有4個(gè)接收端口,由4選1模塊、包頭提取FIFO模塊、報(bào)文調(diào)度處理模塊、幀頭處理模塊、包緩存模塊以及包處理模塊組成。通過(guò)光纖接口接收到的來(lái)自交換機(jī)或者路由器的數(shù)據(jù)包首先經(jīng)過(guò)4選1模塊進(jìn)入包頭提取FIFO模塊,在此模塊完成包頭信息與payload負(fù)載內(nèi)容的分離,同時(shí)payload數(shù)據(jù)被發(fā)送至包緩存模塊保存。包頭提取FIFO模塊包含狀態(tài)跟蹤邏輯和緩存區(qū),首先對(duì)包頭信息進(jìn)行協(xié)議類(lèi)型信息的提取匹配,根據(jù)匹配結(jié)果生成對(duì)應(yīng)協(xié)議的初始MF。初始MF由用戶(hù)根據(jù)各個(gè)協(xié)議類(lèi)型的解析過(guò)程軟件定義,如圖2所示。其中包含數(shù)據(jù)包的協(xié)議類(lèi)型、包類(lèi)型、報(bào)文頭域段、payload數(shù)據(jù)在緩存區(qū)的偏移地址、保留字段、事務(wù)信息、各類(lèi)控制流信息、關(guān)鍵字段。

圖1 解析器流程

Figure 1 Parser flow

圖2 描述符結(jié)構(gòu)簡(jiǎn)圖

Figure 2 MF structure diagram

圖3 3種協(xié)議的關(guān)鍵字段信息

Figure 3 Key data of three protocols

數(shù)據(jù)包的包頭信息中包含類(lèi)型域字段和匹配域字段,類(lèi)型域中的信息表示包頭的協(xié)議類(lèi)型,匹配域表明當(dāng)前包頭類(lèi)型需要匹配提取的字段。包頭包含多種協(xié)議類(lèi)型時(shí),需要根據(jù)當(dāng)前頭類(lèi)型以及狀態(tài)信息進(jìn)行向下一層協(xié)議頭類(lèi)型域的跳轉(zhuǎn)。根據(jù)初始MF提供的信息,可以由首段頭類(lèi)型以及頭狀態(tài)對(duì)下一個(gè)報(bào)頭類(lèi)型以及偏移進(jìn)行判斷并更新包頭解析狀態(tài)轉(zhuǎn)移信息,根據(jù)當(dāng)前頭狀態(tài)以及頭類(lèi)型還可以進(jìn)行關(guān)鍵信息的匹配與提取,匹配的規(guī)則存儲(chǔ)在RAM(random access memory)中。提取到的關(guān)鍵信息字段被添加到MF的關(guān)鍵字段域,通過(guò)狀態(tài)的跳轉(zhuǎn)迭代進(jìn)而不斷地對(duì)關(guān)鍵信息進(jìn)行提取,最終形成包含所有關(guān)鍵信息字段的MF。

圖3為ETH協(xié)議、SRIO協(xié)議以及FC協(xié)議這3種常見(jiàn)協(xié)議提取出的關(guān)鍵字段信息,ETH協(xié)議的關(guān)鍵字段信息有源MAC目的MAC、源IP目的IP、VLAN_ID以及包類(lèi)型;FC協(xié)議的關(guān)鍵字段信息有源ID目的ID、RX_ID以及OX_ID;SRIO協(xié)議的關(guān)鍵字段信息有TT字段、源ID和目的ID。由于各協(xié)議的關(guān)鍵字段信息數(shù)量并不相同,域的位寬設(shè)置為協(xié)議中最長(zhǎng)的以太網(wǎng)協(xié)議所需要的位寬176 bit,未使用的位寬將會(huì)被保留。

幀頭處理模塊依據(jù)生成的描述符中的包控制流信息進(jìn)行包的復(fù)制和切分,同時(shí)對(duì)切分的包進(jìn)行新的MF的生成,內(nèi)容包括總切片數(shù)量、總長(zhǎng)度、各類(lèi)包的源地址、目的地址以及各類(lèi)控制信號(hào)等。

圖4為報(bào)文調(diào)度模塊的狀態(tài)轉(zhuǎn)移圖,通過(guò)提取MF中的相應(yīng)控制字段信息,在各個(gè)階段對(duì)幀頭處理模塊進(jìn)行相應(yīng)的操作,包括報(bào)文透?jìng)鳎╬ass through)、復(fù)制報(bào)文的幀頭復(fù)制(Pkt_cp)、拆包(Prt_cut)、插入response報(bào)文(resp_send)等。首先報(bào)文進(jìn)入模塊后,根據(jù)Pkt_cp_op字段判斷是否為透?jìng)骰驈?fù)制并進(jìn)行狀態(tài)轉(zhuǎn)移,再根據(jù)Pkt_cut_op字段決定是否需要切包,所有狀態(tài)都需要根據(jù)數(shù)據(jù)包的事務(wù)類(lèi)型對(duì)是否產(chǎn)生響應(yīng)包進(jìn)行判斷,同時(shí),跳轉(zhuǎn)至響應(yīng)包狀態(tài)。響應(yīng)包狀態(tài)也同樣需要進(jìn)行是否發(fā)生透?jìng)鲝?fù)制以及切包的判斷。

圖4 幀頭處理模塊狀態(tài)轉(zhuǎn)移圖

Figure 4 State transition diagram of frame header processing module

最終由幀頭處理模塊送往slice的內(nèi)容為MF+payload的組合,slice將payload負(fù)載內(nèi)容送往目的端口并提取MF中的原始報(bào)文頭域段拼接成完整的數(shù)據(jù)包。

4 實(shí)驗(yàn)結(jié)果分析

本文在Xilinx UltraScal+ XCVU13P 開(kāi)發(fā)板卡上成功完成了軟件定義協(xié)議無(wú)關(guān)解析器的設(shè)計(jì)與實(shí)現(xiàn),并通過(guò)Vivado仿真平臺(tái),以Virtex 7vx980tffg1930-2L為核心芯片,完成了解析器的資源開(kāi)銷(xiāo)分析與性能仿真。

在實(shí)際設(shè)計(jì)中,筆者為解析器設(shè)計(jì)了4個(gè)并行通道,同時(shí)對(duì)應(yīng)4個(gè)通信端口0、1、2、3,提供4x、2x2x、2x1x1x、1x1x1x1x4個(gè)模式,用戶(hù)可以通過(guò)直接配置相應(yīng)的寄存器來(lái)選擇對(duì)應(yīng)的模式。4x模式時(shí),只開(kāi)啟端口0,一個(gè)端口同時(shí)使用4個(gè)并行通道,提升單端口解析速率;2x2x模式時(shí),開(kāi)啟0、1兩個(gè)端口,每個(gè)端口使用兩個(gè)并行通道;2x1x1x時(shí),開(kāi)啟0、1、2這3個(gè)端口,端口0使用兩個(gè)并行通道,其他端口各使用一個(gè)通道;1x1x1x1x模式時(shí),則4個(gè)端口分別使用一個(gè)并行通道。每個(gè)端口都可以通過(guò)配置來(lái)選擇支持解析的協(xié)議類(lèi)型,即解析器在開(kāi)啟多個(gè)端口時(shí)可以同時(shí)支持多種協(xié)議的并行解析。

4.1 硬件資源開(kāi)銷(xiāo)

表1中給出了硬件資源使用情況,時(shí)鐘頻率為312.5 MHz,其余內(nèi)容包括片LUT的數(shù)量、片寄存器的數(shù)量、塊RAM的數(shù)量以及多路復(fù)用器的數(shù)量。

本文將SDPIP的資源使用情況與其他解析器進(jìn)行了比較,如圖5所示,可以看出,本文提出的軟件定義協(xié)議無(wú)關(guān)解析器使用的資源相對(duì)較少。

表1 硬件資源使用情況

圖5 硬件資源開(kāi)銷(xiāo)對(duì)比

Figure 5 Comparison of hardware resource overhead

4.2 解析性能評(píng)估

本文提出的軟件定義解析器設(shè)計(jì),其數(shù)據(jù)總線(xiàn)位寬為256 bit,時(shí)鐘頻率為312.5 MHz,表明可以達(dá)到80 Gbit/s的解析速率。通過(guò)軟件定義完成了解析器對(duì)ETH協(xié)議、SRIO協(xié)議以及FC協(xié)議的支持,并通過(guò)思博倫SPT-N4U標(biāo)準(zhǔn)以太網(wǎng)流量測(cè)試儀、FC流量測(cè)試儀以及SRIO流量發(fā)生器[14]產(chǎn)生標(biāo)準(zhǔn)數(shù)據(jù)包,對(duì)解析器的多協(xié)議數(shù)據(jù)包解析性能進(jìn)行了驗(yàn)證與評(píng)估,實(shí)驗(yàn)結(jié)果證明本解析器可以正確地解析數(shù)據(jù)包,并達(dá)到80 Gbit/s的解析速率。

圖6是解析器接收標(biāo)準(zhǔn)以太網(wǎng)流量測(cè)試儀發(fā)送數(shù)據(jù)包時(shí)的波形,共發(fā)送8個(gè)payload為64 byte的以太網(wǎng)數(shù)據(jù)包,解析器全部收到。圖7中是接收到的數(shù)據(jù)包的包頭結(jié)構(gòu),經(jīng)過(guò)驗(yàn)證符合以太網(wǎng)協(xié)議標(biāo)準(zhǔn),證明本解析器可以正確解析以太網(wǎng)數(shù)據(jù)包。同理,本文還對(duì)標(biāo)準(zhǔn)SRIO數(shù)據(jù)包和FC數(shù)據(jù)包進(jìn)行了驗(yàn)證,并且進(jìn)行了長(zhǎng)時(shí)間的拷機(jī)測(cè)試,各解析器性能對(duì)比如圖8所示。結(jié)果均表明可以正確解析不同協(xié)議的數(shù)據(jù)包。

圖6 以太網(wǎng)接收數(shù)據(jù)包波形

Figure 6 Ethernet receives packet waveforms

圖7 以太網(wǎng)包頭數(shù)據(jù)

Figure 7 Ethernet packet header data

從圖6可以看出,SDPIP的資源開(kāi)銷(xiāo)比文獻(xiàn)[7]中解析器少40.8%,比文獻(xiàn)[10]中解析器少18.6%,雖然解析速率降低了20%,但支持軟件定義的協(xié)議無(wú)關(guān)解析,可編程性與靈活性更高,具有更廣泛的應(yīng)用前景。

圖8 各解析器性能對(duì)比

Figure 8 Performance comparison between parsers

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

針對(duì)目前異構(gòu)融合網(wǎng)絡(luò)飛速發(fā)展,轉(zhuǎn)發(fā)設(shè)備的解析器無(wú)法支持多種異構(gòu)協(xié)議的問(wèn)題,本文通過(guò)軟件定義的思想,提出了一種基于FPGA的軟件定義協(xié)議無(wú)關(guān)解析器,并在FPGA上對(duì)該解析器設(shè)計(jì)進(jìn)行了實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果表明,該解析器可以通過(guò)軟件定義有效地對(duì)多種包頭結(jié)構(gòu)差異明顯的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包進(jìn)行快速解析,實(shí)現(xiàn)了協(xié)議無(wú)關(guān)這一功能,在硬件上的開(kāi)銷(xiāo)比一般的解析器有明顯降低。因此,該解析器可以更好地支持新協(xié)議設(shè)備在異構(gòu)融合網(wǎng)絡(luò)中的部署,減少網(wǎng)絡(luò)系統(tǒng)設(shè)備開(kāi)銷(xiāo),符合未來(lái)網(wǎng)絡(luò)發(fā)展的需要。

[1] FULLER S. RapidIO: the embedded system interconnect[M] . Piscataway, NJ: Wiley, 2005

[2] LIU B, ZHANG J D, YANG Q M, et al. Modeling and performance analysis of FC-AE-ASM which base on Petri net theory[C]// International Conference on Computational Intelligence and Software Engineering.2011: 1-4.

[3] NGUYN V G, BRUNSTROM A, GRINNEMO K J, et al. SDN/ NFV-based mobile packet core network architectures: a survey[J]. IEEE Communications Surveys & Tutorials, 2017, 19(3): 1567-1602.

[4] KREUTZ D, RAMOS F M, VERISSIMO P E, et al. Software-defined networking: a comprehensive survey[J]. Proceedings of the IEEE, 2015, 103(1): 14-76.

[5] PATI S, NARAYANAN R, MEMIK G, et al. Design and implementation of an FPGA architecture for high-speed network feature extraction[C]//International Conference on Field-Programmable Technology. 2007: 49-56.

[6] YAZDINEJAD A , BOHLOOLI B, JAMSHIDI K. (2018). Efficient design and hardware implementation of the OpenFlow v1. 3 switch on the Virtex-6 FPGA ML605[J]. The Journal of Supercomputing, 2017, 74(3): 1299-1320.

[7] LIU T. Implementing Open flow switch using FPGA based platform[J]. Department of Telematics, 2014.

[8] 王孝龍, 劉勤讓, 林森杰. 一種支持異構(gòu)協(xié)議解析的可配置解析器設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用研究, 2018, 35(6): 1830-1833.

WANG X L, LIU Q R, LIN S J. Configurable parser design for heterogeneous protocols[J]. Application Research of Computers, 2018, 35(6): 1830-1833.

[9] 楊惠, 馮振乾, 厲俊男. 基于FPGA的并行多發(fā)可編程解析器[J]. 計(jì)算機(jī)工程與科學(xué), 2019, 41(1): 24-30.

YANG H, FENG Z Q, LI J N. A multi-concurrent programmable parser based on FPGA[J]. Computer Engineering & Science, 2019, 41(1): 24-30.

[10] BITAR A, ABDELFATTAH M S, BETZ V. Bringing programmability to the data plane: packet processing with a NoC-enhanced FPGA[C]//In 2015 International Conference on Field Programmable Technology (FPT). 2015: 24-31.

[11] BOSSHART P, DALY D, GIBB G, et al. P4: Programming protocol-independent packet processors[J]. SIGCOMM Computer Communication Review, 2014, 44(3): 87-95 .

[12] SILVA J S D, BOYER F R, LANGLOIS J M, et al. P4-compatible high-level synthesis of low latency 100 Gbit/s streaming packet parsers in FPGAs[J]. arXiv preprint arXiv:1711.06613, 2017.

[13] BENáCEK P, PU V, KUBáTOVá H. P4-to-VHDL: automatic generation of 100 Gbit/s packet parsers.[C]//2016 IEEE 24th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM). 2016: 148-155.

[14] 呂平, 董春雷, 劉冬培, 等. 基于FPGA的軟件定義流量發(fā)生器[J]. 通信學(xué)報(bào), 2018, 39(S2): 70-75.

LYU P, DONG C L, LIU D P, et al. Implementation of software defined traffic generator based on FPGA[J]. Journal on Communications, 2018, 39(S2): 70-75.

Software-defined protocol independent parser based on FPGA

MIAO Lixin, LIU Qinrang, WANG Xin

National Digital Switching System Engineering and Technological Research Center, Zhengzhou 450002, China

With the boom of information technology, heterogeneous networks with various functions emerge in endlessly, heterogeneous fusion network has become the inevitable trend of the development of the next generation network. To realize communication between heterogeneous networks, network forwarding equipment is essential. Traditional forwarding devices only support fixed protocol configuration and lack scalability, so they cannot support new network protocols. In view of this situation, a software defined protocol independent parser based on FPGA was proposed. The software defined the parsing process, giving the parser flexible and programmable features. It can analyze multiple protocol packets and extract key information needed for protocol conversion without changing hardware devices. The parser through a high-performance FPGA platform were implemented and hardware resource overhead and performance were evaluated. Experimental results show that it can complete the fast parsing of various heterogeneous network protocols and obtain complete analytical data.

FPGA, software define, parser, protocol independent

The National Science Technology Major Program of China (No.2016X01012101)

TP393

A

10.11959/j.issn.2096?109x.2020013

苗力心(1995? ),男,遼寧丹東人,國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心碩士生,主要研究方向?yàn)檐浖x互連、FPGA。

劉勤讓?zhuān)?975? ),男,河南商丘人,國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心研究員,主要研究方向?yàn)閷拵畔⒕W(wǎng)絡(luò)、片上網(wǎng)絡(luò)設(shè)計(jì)。

汪欣(1986-),男,河南周口人,碩士,主要研究方向?yàn)橄到y(tǒng)結(jié)構(gòu)。

2019?04?22;

2019?06?28

苗力心,352192875@qq.com

國(guó)家科技重大專(zhuān)項(xiàng)基金資助項(xiàng)目(No.2016X01012101)

論文引用格式:苗力心, 劉勤讓, 汪欣. 基于FPGA的軟件定義協(xié)議無(wú)關(guān)解析器[J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 2020, 6(1): 70-76.

MIAO L X, LIU Q R, WANG X. Software-defined protocol independent parser based on FPGA[J]. Chinese Journal of Network and Information Security, 2020, 6(1): 70-76.

猜你喜歡
數(shù)據(jù)包解析定義
二維隱蔽時(shí)間信道構(gòu)建的研究*
三角函數(shù)解析式中ω的幾種求法
民用飛機(jī)飛行模擬機(jī)數(shù)據(jù)包試飛任務(wù)優(yōu)化結(jié)合方法研究
C#串口高效可靠的接收方案設(shè)計(jì)
睡夢(mèng)解析儀
電競(jìng)初解析
對(duì)稱(chēng)巧用解析妙解
成功的定義
修辭學(xué)的重大定義
山的定義
五莲县| 乌兰浩特市| 屏东市| 平陆县| 班玛县| 荔波县| 聊城市| 普洱| 方城县| 庄浪县| 海淀区| 鹰潭市| 衡山县| 小金县| 玉门市| 阿图什市| 清徐县| 肥东县| 平谷区| 徐汇区| 张家口市| 汪清县| 晋城| 乐业县| 定远县| 长海县| 乌苏市| 巴塘县| 逊克县| 龙陵县| 三门县| 黑水县| 鄂伦春自治旗| 论坛| 巴彦县| 岑溪市| 榆中县| 时尚| 临洮县| 昌平区| 丰原市|