苗力心,劉勤讓,汪欣
基于FPGA的軟件定義協(xié)議無關(guān)解析器
苗力心,劉勤讓,汪欣
(國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,河南 鄭州 450002)
隨著信息技術(shù)的繁榮發(fā)展,各種功能的異構(gòu)網(wǎng)絡(luò)層出不窮,異構(gòu)融合網(wǎng)絡(luò)成為下一代網(wǎng)絡(luò)發(fā)展的必然趨勢。實現(xiàn)異構(gòu)網(wǎng)絡(luò)之間的通信,網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備必不可少。傳統(tǒng)的轉(zhuǎn)發(fā)設(shè)備僅支持固定的協(xié)議配置,缺乏可擴展性,無法支持新的網(wǎng)絡(luò)協(xié)議。針對這種情況,提出了一種基于FPGA的軟件定義協(xié)議無關(guān)解析器,通過軟件定義解析流程,給予解析器靈活可編程的特性,無須對硬件設(shè)備進行更改即可完成對多種協(xié)議數(shù)據(jù)包的解析并提取出數(shù)據(jù)包轉(zhuǎn)發(fā)所需的關(guān)鍵信息。通過高性能FPGA平臺對解析器進行了實現(xiàn),并進行了硬件資源開銷和性能的評估。實驗結(jié)果表明,可以完成多種異構(gòu)網(wǎng)絡(luò)協(xié)議的快速解析,得到完整的解析數(shù)據(jù)。
FPGA;軟件定義;解析器;協(xié)議無關(guān)
隨著現(xiàn)代網(wǎng)絡(luò)和信息技術(shù)的飛速發(fā)展,信息的交換與傳輸頻繁地發(fā)生在各式各樣的網(wǎng)絡(luò)設(shè)備之間,一切皆可互聯(lián)成為必然趨勢。各種功能的異構(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ò)等。人們對互聯(lián)的需求促使了異構(gòu)融合網(wǎng)絡(luò)的誕生,支持不同協(xié)議類型的網(wǎng)絡(luò)設(shè)備共同應(yīng)用在同一個網(wǎng)絡(luò)系統(tǒng)中,使信息的互聯(lián)交換變得更為通暢。與此同時,多樣的網(wǎng)絡(luò)系統(tǒng)也帶來了更加豐富的新型網(wǎng)絡(luò)協(xié)議,異構(gòu)網(wǎng)絡(luò)之間的融合要求網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備必須同時支持各種不同的新型協(xié)議,這為網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備的可編程性和可擴展性帶來了嚴峻的挑戰(zhàn)。為了更好地實現(xiàn)信息互聯(lián)以及異構(gòu)協(xié)議網(wǎng)絡(luò)設(shè)備之間數(shù)據(jù)的流暢通信,網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備的升級更新成為急需解決的問題。
在通信網(wǎng)絡(luò)系統(tǒng)中,不同設(shè)備之間的通信都是依靠數(shù)據(jù)包來完成的,數(shù)據(jù)包由包頭和payload負載內(nèi)容組成,識別和提取包頭中相關(guān)字段的過程稱為解析[3]。在高速的網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備中,對數(shù)據(jù)包的包頭信息的解析、識別和提取的效率影響著整個系統(tǒng)的吞吐率,是整個系統(tǒng)性能的關(guān)鍵所在。由于包頭格式的復(fù)雜性,包解析成為限制高速網(wǎng)絡(luò)性能和速率的一個關(guān)鍵瓶頸。數(shù)據(jù)包的長度和包頭格式因網(wǎng)絡(luò)和數(shù)據(jù)包的不同而不同,因此需要提取的標(biāo)識字段與關(guān)鍵字段也不相同,而隨著夾層協(xié)議MPLS、基于EoMPLS的多層MPLS和802.1Q等的加入,包頭格式變得更為復(fù)雜,很難解析。而傳統(tǒng)的報文解析器僅支持固定的協(xié)議類型,一般使用ASIC(application specific integrated circuits)實現(xiàn),存在缺乏可擴展性、靈活性差的缺點,無法靈活處理新的復(fù)雜協(xié)議類型。在異構(gòu)融合網(wǎng)絡(luò)中,如果使用ASIC設(shè)備,那么在添加新的網(wǎng)絡(luò)設(shè)備,即添加新的協(xié)議類型時,需要對轉(zhuǎn)發(fā)設(shè)備進行重新設(shè)計,這無疑將帶來極大的設(shè)備開銷,因此對具備支持多種網(wǎng)絡(luò)協(xié)議類型解析的具有可編程性、可擴展性的解析器的探索勢在必行。
軟件定義網(wǎng)絡(luò)(SDN,software defined network)[4]實現(xiàn)了網(wǎng)絡(luò)控制平面與轉(zhuǎn)發(fā)平面的分離,打破了原先一體化的硬件設(shè)施,將基礎(chǔ)硬件虛擬化并提供標(biāo)準化的基本功能,然后通過管控軟件,控制其基本功能,提供更加開放、靈活、智能的管控服務(wù)。本文將軟件定義的概念應(yīng)用于新型協(xié)議無關(guān)解析器的設(shè)計中,同時在數(shù)據(jù)包的包頭解析的流程中,本文提出了一種基于協(xié)議解析描述符生成的解析流程,描述符可以依據(jù)數(shù)據(jù)包協(xié)議類型生成解析所需要的控制流信息從而達到對任意協(xié)議的支持,即協(xié)議無關(guān)。不同的協(xié)議有不同的描述符結(jié)構(gòu),這些結(jié)構(gòu)信息以流表的形式存儲在存儲單元中。用戶可以通過對控制寄存器進行簡單配置來選擇當(dāng)前解析器支持的協(xié)議類型,即當(dāng)用戶選擇某個協(xié)議時,系統(tǒng)將相對應(yīng)的描述符結(jié)構(gòu)信息以下流表的方式配置到解析器的RAM中,此時解析器便可以解析這一協(xié)議類型的數(shù)據(jù)包。通過這種方式,可以實現(xiàn)控制平面與轉(zhuǎn)發(fā)平面的分離,用戶不需要關(guān)心底層硬件設(shè)備的情況,只添加解析器支持的協(xié)議類型即可。
包頭信息的解析對于網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備來說是必不可少的一個環(huán)節(jié)。通過對包頭信息的解析,可以得知數(shù)據(jù)包的傳輸路徑,并且可以有效對數(shù)據(jù)包進行分類處理,不同類型的包具有不同的功能以及不同的響應(yīng)方式。數(shù)據(jù)包的包頭解析實現(xiàn)途徑主要分為軟件實現(xiàn)方式和硬件實現(xiàn)方式。使用軟件實現(xiàn)數(shù)據(jù)包的解析具有靈活性高、周期短的特點,用戶可以直接修改軟件代碼來實現(xiàn)新協(xié)議的擴展,但軟件實現(xiàn)由于處理速度相對較低,不適用于高速網(wǎng)絡(luò)。硬件實現(xiàn)雖然具有高速穩(wěn)定的優(yōu)點,但由于硬件本身固化,導(dǎo)致硬件實現(xiàn)可重構(gòu)性差,靈活性較低[5]。軟硬件協(xié)同的包解析將是兼具兩者之長的一種完美的解析方式。
SDN實現(xiàn)了控制平面與數(shù)據(jù)平面的解耦分離,抽象了數(shù)據(jù)平面網(wǎng)絡(luò)資源,是實現(xiàn)高速動態(tài)可編程網(wǎng)絡(luò)的理想架構(gòu)。OpenFlow協(xié)議作為最普遍的分離控制平面和數(shù)據(jù)平面的南向接口,依靠增加匹配域?qū)崿F(xiàn)對新協(xié)議的支持,但隨著新協(xié)議越來越多,匹配域變得難以擴展,靈活性受到極大的限制。Yazdinejad等[6]提出了一種OpenFlow V1.3交換機架構(gòu),該架構(gòu)除了提高匹配表的速度和增加處理管道之外,解析器還支持40個包頭解析并且可以通過重寫進行擴展。但這并不能完美解決OpenFlow的局限性,依舊無法支持更多的協(xié)議類型。Liu[7]在FPGA上實現(xiàn)了SDN開關(guān),避免了NetFPGA的延遲,但解析器是固定的,不具備支持新協(xié)議類型的可配置性和靈活性,需要重新寫解析器的VHDL程序。
現(xiàn)場可編程門陣列(FPGA,field programmable gate array)由于具有低功耗、高性能、可重構(gòu)性,被廣泛應(yīng)用于網(wǎng)絡(luò)設(shè)備的設(shè)計,是解決硬件解析架構(gòu)靈活性差的良好平臺。王孝龍等[8]提出了一種支持異構(gòu)協(xié)議解析的可配置解析器設(shè)計,通過配置用戶定義模塊實時更新解析樹以及TCAM和RAM存儲狀態(tài)轉(zhuǎn)移表實現(xiàn)對新型網(wǎng)絡(luò)協(xié)議的支持,并提出了一種基于節(jié)點壓縮的優(yōu)化算法。楊惠等[9]提出了一種基于FPGA的并行多發(fā)可編程解析器,將數(shù)據(jù)包解析過程抽象化3個協(xié)議無關(guān)的中間操作(識別、匹配、提?。⑨槍@些操作分別進行了一系列的優(yōu)化加速,更關(guān)注解析器的性能優(yōu)化問題,無法達到協(xié)議無關(guān)。Bitar等[10]提出了一種基于FPGA的數(shù)據(jù)包解析器結(jié)構(gòu),通過在FPGA上嵌入NoC(network-on-chip)達到400 Gbit/s至800 Gbit/s的吞吐率。此設(shè)計通過一個處理模塊和嵌入NoC的FPGA的多重互連來識別協(xié)議類型。但將NoC嵌入FPGA在當(dāng)前是很復(fù)雜和困難的,暫時不具備實用性。
可編程協(xié)議無關(guān)數(shù)據(jù)包處理語言[11](P4,programming protocol-independent packet processors)是Nick教授等提出的一種用于數(shù)據(jù)平面的高級編程語言,具有協(xié)議無關(guān)、目標(biāo)無關(guān)以及可重構(gòu)特性。Silva等[12]利用P4描述在SDN之中開發(fā)了一種基于FPGA的開源數(shù)據(jù)包解析器架構(gòu),他們直接從包處理的描述中生成高速低延遲的包解析器。這種體系結(jié)構(gòu)采用流水線結(jié)構(gòu)并使用C++框架進行設(shè)計,但增加了邏輯資源的消耗。Benácek等[13]利用P4的思想對解析器生成器進行設(shè)計,將P4的解析圖轉(zhuǎn)換為適合FPGA實現(xiàn)的可合成的VHDL代碼,可以自動生成解析速率為100 Gbit/s的可編程解析器。但相比于手工編寫的VHDL代碼,這個自動生成的解析器延遲和資源開銷更大。
本文提出了一種基于FPGA的軟件定義協(xié)議無關(guān)解析器設(shè)計,通過在解析過程中使用生成協(xié)議解析描述符的方式,用戶只需要對解析器支持的協(xié)議類型進行選擇,解析器即可完成對不同協(xié)議的數(shù)據(jù)包解析。通過對描述符格式進行設(shè)計,解析器可以解析各種依靠數(shù)據(jù)包進行通信的傳輸協(xié)議,如TCP/IP、SRIO協(xié)議、FC光纖通信協(xié)議、以太網(wǎng)802.1協(xié)議、HTTP協(xié)議等。數(shù)據(jù)包主要由“目的IP地址/目的MAC”“源IP地址/源MAC”“凈載負荷”等部分構(gòu)成,包括包頭和包體,包頭根據(jù)協(xié)議不同而長度不同,包含的具體信息也不盡相同。在包頭信息解析的過程中,解析器會根據(jù)當(dāng)前協(xié)議類型生成初始描述符(MF)。在包頭信息解析狀態(tài)的跳轉(zhuǎn)過程中,描述符會進行不斷的修改與添加,描述符中的控制流信息可以將包頭中的關(guān)鍵信息key值提取到描述符末端的關(guān)鍵字段中并在后續(xù)的匹配以及操作模塊使用這些信息,從而實現(xiàn)協(xié)議無關(guān)的解析操作。
數(shù)據(jù)包解析的過程就是對包頭協(xié)議的識別以及關(guān)鍵數(shù)據(jù)信息的提取,基于此,本文提出基于FPGA的軟件定義協(xié)議無關(guān)解析器(SDPIP,software defined protocol independent parser based on FPGA),設(shè)計目標(biāo)是實現(xiàn)用戶軟件定義以及達到協(xié)議無關(guān)。軟件定義可以將解析器的控制層集中,方便用戶對設(shè)備進行編程以及更改,提高解析器的靈活性。在異構(gòu)融合網(wǎng)絡(luò)之中,協(xié)議無關(guān)的解析器為轉(zhuǎn)發(fā)設(shè)備提供了強大的適用性,無須考慮對接設(shè)備支持的協(xié)議類型即可對數(shù)據(jù)包進行快速解析轉(zhuǎn)發(fā),減少了網(wǎng)絡(luò)系統(tǒng)更新時轉(zhuǎn)發(fā)設(shè)備的開銷,便于設(shè)備架構(gòu)部署,符合異構(gòu)融合網(wǎng)絡(luò)的發(fā)展。
解析器的解析流程如圖1所示,SDPIP解析器共有4個接收端口,由4選1模塊、包頭提取FIFO模塊、報文調(diào)度處理模塊、幀頭處理模塊、包緩存模塊以及包處理模塊組成。通過光纖接口接收到的來自交換機或者路由器的數(shù)據(jù)包首先經(jīng)過4選1模塊進入包頭提取FIFO模塊,在此模塊完成包頭信息與payload負載內(nèi)容的分離,同時payload數(shù)據(jù)被發(fā)送至包緩存模塊保存。包頭提取FIFO模塊包含狀態(tài)跟蹤邏輯和緩存區(qū),首先對包頭信息進行協(xié)議類型信息的提取匹配,根據(jù)匹配結(jié)果生成對應(yīng)協(xié)議的初始MF。初始MF由用戶根據(jù)各個協(xié)議類型的解析過程軟件定義,如圖2所示。其中包含數(shù)據(jù)包的協(xié)議類型、包類型、報文頭域段、payload數(shù)據(jù)在緩存區(qū)的偏移地址、保留字段、事務(wù)信息、各類控制流信息、關(guān)鍵字段。
圖1 解析器流程
Figure 1 Parser flow
圖2 描述符結(jié)構(gòu)簡圖
Figure 2 MF structure diagram
圖3 3種協(xié)議的關(guān)鍵字段信息
Figure 3 Key data of three protocols
數(shù)據(jù)包的包頭信息中包含類型域字段和匹配域字段,類型域中的信息表示包頭的協(xié)議類型,匹配域表明當(dāng)前包頭類型需要匹配提取的字段。包頭包含多種協(xié)議類型時,需要根據(jù)當(dāng)前頭類型以及狀態(tài)信息進行向下一層協(xié)議頭類型域的跳轉(zhuǎn)。根據(jù)初始MF提供的信息,可以由首段頭類型以及頭狀態(tài)對下一個報頭類型以及偏移進行判斷并更新包頭解析狀態(tài)轉(zhuǎn)移信息,根據(jù)當(dāng)前頭狀態(tài)以及頭類型還可以進行關(guān)鍵信息的匹配與提取,匹配的規(guī)則存儲在RAM(random access memory)中。提取到的關(guān)鍵信息字段被添加到MF的關(guān)鍵字段域,通過狀態(tài)的跳轉(zhuǎn)迭代進而不斷地對關(guān)鍵信息進行提取,最終形成包含所有關(guān)鍵信息字段的MF。
圖3為ETH協(xié)議、SRIO協(xié)議以及FC協(xié)議這3種常見協(xié)議提取出的關(guān)鍵字段信息,ETH協(xié)議的關(guān)鍵字段信息有源MAC目的MAC、源IP目的IP、VLAN_ID以及包類型;FC協(xié)議的關(guān)鍵字段信息有源ID目的ID、RX_ID以及OX_ID;SRIO協(xié)議的關(guān)鍵字段信息有TT字段、源ID和目的ID。由于各協(xié)議的關(guān)鍵字段信息數(shù)量并不相同,域的位寬設(shè)置為協(xié)議中最長的以太網(wǎng)協(xié)議所需要的位寬176 bit,未使用的位寬將會被保留。
幀頭處理模塊依據(jù)生成的描述符中的包控制流信息進行包的復(fù)制和切分,同時對切分的包進行新的MF的生成,內(nèi)容包括總切片數(shù)量、總長度、各類包的源地址、目的地址以及各類控制信號等。
圖4為報文調(diào)度模塊的狀態(tài)轉(zhuǎn)移圖,通過提取MF中的相應(yīng)控制字段信息,在各個階段對幀頭處理模塊進行相應(yīng)的操作,包括報文透傳(pass through)、復(fù)制報文的幀頭復(fù)制(Pkt_cp)、拆包(Prt_cut)、插入response報文(resp_send)等。首先報文進入模塊后,根據(jù)Pkt_cp_op字段判斷是否為透傳或復(fù)制并進行狀態(tài)轉(zhuǎn)移,再根據(jù)Pkt_cut_op字段決定是否需要切包,所有狀態(tài)都需要根據(jù)數(shù)據(jù)包的事務(wù)類型對是否產(chǎn)生響應(yīng)包進行判斷,同時,跳轉(zhuǎn)至響應(yīng)包狀態(tài)。響應(yīng)包狀態(tài)也同樣需要進行是否發(fā)生透傳復(fù)制以及切包的判斷。
圖4 幀頭處理模塊狀態(tài)轉(zhuǎn)移圖
Figure 4 State transition diagram of frame header processing module
最終由幀頭處理模塊送往slice的內(nèi)容為MF+payload的組合,slice將payload負載內(nèi)容送往目的端口并提取MF中的原始報文頭域段拼接成完整的數(shù)據(jù)包。
本文在Xilinx UltraScal+ XCVU13P 開發(fā)板卡上成功完成了軟件定義協(xié)議無關(guān)解析器的設(shè)計與實現(xiàn),并通過Vivado仿真平臺,以Virtex 7vx980tffg1930-2L為核心芯片,完成了解析器的資源開銷分析與性能仿真。
在實際設(shè)計中,筆者為解析器設(shè)計了4個并行通道,同時對應(yīng)4個通信端口0、1、2、3,提供4x、2x2x、2x1x1x、1x1x1x1x4個模式,用戶可以通過直接配置相應(yīng)的寄存器來選擇對應(yīng)的模式。4x模式時,只開啟端口0,一個端口同時使用4個并行通道,提升單端口解析速率;2x2x模式時,開啟0、1兩個端口,每個端口使用兩個并行通道;2x1x1x時,開啟0、1、2這3個端口,端口0使用兩個并行通道,其他端口各使用一個通道;1x1x1x1x模式時,則4個端口分別使用一個并行通道。每個端口都可以通過配置來選擇支持解析的協(xié)議類型,即解析器在開啟多個端口時可以同時支持多種協(xié)議的并行解析。
表1中給出了硬件資源使用情況,時鐘頻率為312.5 MHz,其余內(nèi)容包括片LUT的數(shù)量、片寄存器的數(shù)量、塊RAM的數(shù)量以及多路復(fù)用器的數(shù)量。
本文將SDPIP的資源使用情況與其他解析器進行了比較,如圖5所示,可以看出,本文提出的軟件定義協(xié)議無關(guān)解析器使用的資源相對較少。
表1 硬件資源使用情況
圖5 硬件資源開銷對比
Figure 5 Comparison of hardware resource overhead
本文提出的軟件定義解析器設(shè)計,其數(shù)據(jù)總線位寬為256 bit,時鐘頻率為312.5 MHz,表明可以達到80 Gbit/s的解析速率。通過軟件定義完成了解析器對ETH協(xié)議、SRIO協(xié)議以及FC協(xié)議的支持,并通過思博倫SPT-N4U標(biāo)準以太網(wǎng)流量測試儀、FC流量測試儀以及SRIO流量發(fā)生器[14]產(chǎn)生標(biāo)準數(shù)據(jù)包,對解析器的多協(xié)議數(shù)據(jù)包解析性能進行了驗證與評估,實驗結(jié)果證明本解析器可以正確地解析數(shù)據(jù)包,并達到80 Gbit/s的解析速率。
圖6是解析器接收標(biāo)準以太網(wǎng)流量測試儀發(fā)送數(shù)據(jù)包時的波形,共發(fā)送8個payload為64 byte的以太網(wǎng)數(shù)據(jù)包,解析器全部收到。圖7中是接收到的數(shù)據(jù)包的包頭結(jié)構(gòu),經(jīng)過驗證符合以太網(wǎng)協(xié)議標(biāo)準,證明本解析器可以正確解析以太網(wǎng)數(shù)據(jù)包。同理,本文還對標(biāo)準SRIO數(shù)據(jù)包和FC數(shù)據(jù)包進行了驗證,并且進行了長時間的拷機測試,各解析器性能對比如圖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的資源開銷比文獻[7]中解析器少40.8%,比文獻[10]中解析器少18.6%,雖然解析速率降低了20%,但支持軟件定義的協(xié)議無關(guān)解析,可編程性與靈活性更高,具有更廣泛的應(yīng)用前景。
圖8 各解析器性能對比
Figure 8 Performance comparison between parsers
針對目前異構(gòu)融合網(wǎng)絡(luò)飛速發(fā)展,轉(zhuǎn)發(fā)設(shè)備的解析器無法支持多種異構(gòu)協(xié)議的問題,本文通過軟件定義的思想,提出了一種基于FPGA的軟件定義協(xié)議無關(guān)解析器,并在FPGA上對該解析器設(shè)計進行了實現(xiàn)。實驗結(jié)果表明,該解析器可以通過軟件定義有效地對多種包頭結(jié)構(gòu)差異明顯的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包進行快速解析,實現(xiàn)了協(xié)議無關(guān)這一功能,在硬件上的開銷比一般的解析器有明顯降低。因此,該解析器可以更好地支持新協(xié)議設(shè)備在異構(gòu)融合網(wǎng)絡(luò)中的部署,減少網(wǎng)絡(luò)系統(tǒng)設(shè)備開銷,符合未來網(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]. 計算機應(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]. 計算機工程與科學(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é)報, 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? ),男,遼寧丹東人,國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心碩士生,主要研究方向為軟件定義互連、FPGA。
劉勤讓(1975? ),男,河南商丘人,國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心研究員,主要研究方向為寬帶信息網(wǎng)絡(luò)、片上網(wǎng)絡(luò)設(shè)計。
汪欣(1986-),男,河南周口人,碩士,主要研究方向為系統(tǒng)結(jié)構(gòu)。
2019?04?22;
2019?06?28
苗力心,352192875@qq.com
國家科技重大專項基金資助項目(No.2016X01012101)
論文引用格式:苗力心, 劉勤讓, 汪欣. 基于FPGA的軟件定義協(xié)議無關(guān)解析器[J]. 網(wǎng)絡(luò)與信息安全學(xué)報, 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.