當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]互聯(lián)網(wǎng)絡(luò)蓬勃發(fā)展的今天,在網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)(NIDS)中,大部分的網(wǎng)絡(luò)入侵檢測(cè)設(shè)備幾乎都依賴于一些基于特征碼檢測(cè)的字符串匹配算法,而字符串匹配算法的實(shí)現(xiàn)幾乎都是由軟件來實(shí)現(xiàn)的。目前應(yīng)用比較成功的實(shí)例有,Snor

互聯(lián)網(wǎng)絡(luò)蓬勃發(fā)展的今天,在網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)(NIDS)中,大部分的網(wǎng)絡(luò)入侵檢測(cè)設(shè)備幾乎都依賴于一些基于特征碼檢測(cè)的字符串匹配算法,而字符串匹配算法的實(shí)現(xiàn)幾乎都是由軟件來實(shí)現(xiàn)的。目前應(yīng)用比較成功的實(shí)例有,Snort軟件使用字符串匹配算法對(duì)包含特征碼的數(shù)據(jù)包進(jìn)行檢測(cè)。但是軟件在內(nèi)容字節(jié)流中進(jìn)行搜索匹配時(shí),需要在不同的處理單元中/內(nèi)搬移或讀取數(shù)據(jù),這對(duì)于高速實(shí)現(xiàn)線速(OC-48)的檢測(cè)系統(tǒng)來說,帶來了很大的處理負(fù)荷。因此,如果采用硬件在數(shù)據(jù)包進(jìn)入內(nèi)存之前實(shí)現(xiàn)字符串匹配這一功能,將大大減少后端軟件操作的處理負(fù)載。

基于IXP2400和FPGA的系統(tǒng)結(jié)構(gòu)

IXP2400是英特爾公司推出的第二代網(wǎng)絡(luò)處理器芯片,大量應(yīng)用于寬帶接入、防火墻、NIDS和負(fù)載均衡等系統(tǒng)中,它能滿足OC-48網(wǎng)絡(luò)線速的處理要求。玉衡銥達(dá)公司設(shè)計(jì)開發(fā)的骨干網(wǎng)絡(luò)監(jiān)控系統(tǒng)采用了IXP2400作為數(shù)據(jù)包主處理器,F(xiàn)PGA作為協(xié)處理器的硬件架構(gòu)來實(shí)現(xiàn),系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

如圖1所示,系統(tǒng)外接了4個(gè)千兆光口,用以接收和發(fā)送數(shù)據(jù)包,它是整個(gè)監(jiān)控系統(tǒng)和骨干網(wǎng)絡(luò)的交際通道。光口數(shù)據(jù)包通過光模塊進(jìn)入PMC-Sierra公司的MAC3386芯片。接收數(shù)據(jù)包時(shí),以太網(wǎng)幀數(shù)據(jù)包從千兆光口進(jìn)入MAC3386,MAC3386對(duì)數(shù)據(jù)包進(jìn)行解碼后通過POS PHY3接口進(jìn)入FPGA的FIFO單元,同時(shí)對(duì)進(jìn)入FPGA的數(shù)據(jù)包進(jìn)行模式字符串(Pattern-String)的匹配操作,處理后的數(shù)據(jù)包通過POS PHY3接口傳輸?shù)絀XP2400的MSF單元進(jìn)行下一步的處理。發(fā)送時(shí),F(xiàn)PGA只需要將IXP2400發(fā)送來的數(shù)據(jù)包通過POS PHY3接口傳輸給MAC3386,MAC3386對(duì)數(shù)據(jù)包進(jìn)行編碼后發(fā)送給光模塊,光模塊通過光口將數(shù)據(jù)包發(fā)送出去。IXP2400提供了一組數(shù)據(jù)總線來訪問外部設(shè)備寄存器,IXP2400中稱之為慢端口(Slow Port)。在這里,和FPGA相連的慢端口總線的一部分功能是作為寫入FPGA的模式字符串通道。


圖1:基于IXP2400和FPGA的系統(tǒng)結(jié)構(gòu)示意圖。

POS PHY3是一種標(biāo)準(zhǔn)化的網(wǎng)絡(luò)傳輸接口,接口數(shù)據(jù)傳輸速率為2.5Gbps,最大支持OC-48的傳輸速率接口。POS PHY3包括接收和發(fā)送兩組32位總線,工作頻率為104MHz,峰值吞吐率為3.2Gbps。支持2.5Gbps數(shù)據(jù)包的全雙工操作。POS PHY3接口接收時(shí)序圖如圖2所示。


圖2:POS PHY3接口接收邏輯時(shí)序圖。

該時(shí)序圖描述了POS PHY3接口接收數(shù)據(jù)包時(shí),數(shù)據(jù)流在POS PHY3總線上的傳輸方式和相關(guān)的控制信號(hào)關(guān)系。關(guān)于更進(jìn)一步的詳細(xì)描述可以參考POS PHY3接口標(biāo)準(zhǔn)文檔。

系統(tǒng)采用時(shí)鐘同步設(shè)計(jì),在時(shí)鐘上升沿進(jìn)行數(shù)據(jù)采樣,與FPGA相連的MAC3386、IXP2400的工作時(shí)鐘由FPGA的DCM單元提供,可以保證數(shù)據(jù)采集的同步和穩(wěn)定性。

CAM的設(shè)計(jì)

本設(shè)計(jì)中,由于要實(shí)現(xiàn)幾路32B的模式字符串匹配,需要占用大量的RAM存儲(chǔ)單元,同時(shí)還得為數(shù)據(jù)包緩存FIFO保留一定的存儲(chǔ)單元,綜合幾家FPGA芯片廠商RAM的存儲(chǔ)容量,決定選用賽靈思的Virtex2或Virtex Pro系列的FPGA芯片,因?yàn)閷?duì)于相同規(guī)模的邏輯資源和寄存器資源來說, Virtex2或Virtex Pro系列的FPGA芯片的RAM容量比其他廠商都要多幾倍。

FPGA中,與RAM存儲(chǔ)單元相關(guān)的資源有三類:Block RAM、LUT、寄存器。這三類資源可以通過配置和粘合邏輯(Glue Logic)實(shí)現(xiàn)為不同類型和位寬大小的單端口/雙端口RAM、ROM、CAM、FIFO等。FPGA中CAM的實(shí)現(xiàn)和配置非常靈活,CAM是實(shí)現(xiàn)模式字符串模式匹配的核心資源。

CAM即內(nèi)容可尋址存儲(chǔ)器。CAM這種存儲(chǔ)器在其每個(gè)存儲(chǔ)單元都包含了一個(gè)內(nèi)嵌的比較邏輯,CAM基于內(nèi)容尋址,通過硬件電路并行查找,實(shí)現(xiàn)快速匹配。一般來說在一個(gè)時(shí)鐘周期內(nèi),寫入CAM的待比較數(shù)據(jù)和其內(nèi)部存儲(chǔ)的每一個(gè)數(shù)據(jù)進(jìn)行比較,并返回與端口數(shù)據(jù)相同的內(nèi)部數(shù)據(jù)存儲(chǔ)的地址和是否匹配的標(biāo)識(shí)符。CAM的這種并行處理特性使得它在數(shù)據(jù)分選領(lǐng)域倍受青睞,被廣泛應(yīng)用在以太網(wǎng)網(wǎng)址搜尋、路由器中的地址交換表、高速數(shù)據(jù)處理等方面。

CAM對(duì)于高速的數(shù)據(jù)包模式字符串匹配查找操作來說,我們需要足夠快的時(shí)間來完成,如果按照POS PHY3接口標(biāo)準(zhǔn)來說,必須保證寄存器建立(Setup)時(shí)間和CAM一次查找匹配時(shí)間之和小于1個(gè)周期10ns(一般情況下,F(xiàn)PGA設(shè)計(jì)中的保持(Hold Up)時(shí)間都可以滿足,可以不予考慮)。根據(jù)FPGA芯片廠商數(shù)據(jù)手冊(cè)提供的性能基準(zhǔn)數(shù)據(jù),我們配置CAM存儲(chǔ)器選用的資源是Block RAM,配置的地址匹配類型選擇的是非編碼地址的多匹配方式(Multi Match Unencoded),選用該項(xiàng)配置的CAM32_32完成一次匹配查找的操作時(shí)間為7ns左右,CAM32_32的配置大小是32位位寬,32個(gè)存儲(chǔ)單元的地址深度。

對(duì)于POS PHY3的接口標(biāo)準(zhǔn)來說,數(shù)據(jù)傳輸操作周期為10ns,根據(jù)性能基準(zhǔn)數(shù)據(jù),我們因此除去寄存器的建立時(shí)間(<2ns),完成一次CAM匹配操作是完全可以和POS PHY3的接口標(biāo)準(zhǔn)相匹配的。根據(jù)數(shù)據(jù)包在POS PHY3接口的傳輸字節(jié)情況和實(shí)際設(shè)計(jì)需要,我們?cè)O(shè)計(jì)了一個(gè)CAM-heap來完成數(shù)據(jù)包的一路32B模式字符串的匹配操作。一個(gè)CAM-heap是由4個(gè)相同結(jié)構(gòu)和配置的CAM32_32組成。CAM32_32是根據(jù)設(shè)計(jì)需要由自己配置定義的,其配置端口示意圖如圖3所示。


圖3:CAM32_32端口示意圖。

模式字符串匹配實(shí)現(xiàn)過程

在NIDS檢測(cè)系統(tǒng)中,先將協(xié)議解碼后的域值與事先精心提取的攻擊特征(規(guī)則)提取相應(yīng)的字段,即模式字符串,然后從數(shù)據(jù)包包頭和凈載荷中進(jìn)行查找匹配模式字符串,從中發(fā)現(xiàn)潛在的攻擊行為?;谀J阶址哪J狡ヅ涫且豁?xiàng)傳統(tǒng)而成熟的入侵檢測(cè)技術(shù),提供了很高的準(zhǔn)確性與廣泛性。例如:目前網(wǎng)絡(luò)應(yīng)用中大部分使用了一種被稱為智能隧道(Smart Tunnel)的技術(shù),其特點(diǎn)是:服務(wù)端(或接收端)沒有綁定任何固定的端口,客戶端(或發(fā)起端)可以自行使用任意隨機(jī)端口連接服務(wù)器,如P2P(點(diǎn)到點(diǎn))應(yīng)用(如各種P2P 下載工具、IP電話等)、IMS(實(shí)時(shí)消息系統(tǒng) 如MSN、Yahoo Pager)、網(wǎng)絡(luò)在線游戲等。他們避開了防火墻、NIDS 產(chǎn)品。但是我們可以通過上層的協(xié)議識(shí)別和動(dòng)態(tài)分析網(wǎng)絡(luò)報(bào)文中包含的協(xié)議特征,發(fā)現(xiàn)其所在協(xié)議,提取相關(guān)的幾段模式字符串,然后遞交給模式字符串模式匹配引擎(FPGA)進(jìn)行處理。

模式字符串匹配過程可以用紙帶傳輸?shù)倪^程來進(jìn)行描述。假設(shè)一條紙帶上附有數(shù)據(jù)包的全部內(nèi)容(abcd..xyz0123456789...),從包頭sop字段abcd開始一直到包結(jié)束eop字段,依次單個(gè)字符的向前流動(dòng),有一個(gè)匹配字符串xyz0123456789模板和該數(shù)據(jù)包進(jìn)行匹配。當(dāng)字符串的流入模板長度等于模式匹配字符串長度后就進(jìn)行比較,數(shù)據(jù)包字符串每向前流進(jìn)一個(gè)字符,模式匹配字符串就和數(shù)據(jù)包流入的字符串匹配一次,直到數(shù)據(jù)包最后的字符串流入模板,查找結(jié)束。如果字符串流入直至流出過程中,數(shù)據(jù)包中存在與模板字符串相同的序列,則說明匹配成功,否則沒有模板匹配字符串。上例中,當(dāng)流入模板的數(shù)據(jù)包字符串為xyz0123456789時(shí),則指示該匹配成功。

MAC3386傳輸數(shù)據(jù)包給FPGA與紙帶傳輸數(shù)據(jù)包類似,只不過在POS PHY3接口傳輸數(shù)據(jù)包時(shí)是每周期4字符/字節(jié)。FPGA進(jìn)行模式字符串匹配時(shí),在CAM-heap中每周期進(jìn)行一次4個(gè)輸入字符串的匹配操作。采用并行操作的原理,使用4個(gè)CAM模塊一個(gè)周期進(jìn)行4個(gè)字符/字節(jié)的匹配操作。

舉例說明4個(gè)CAM單元的操作關(guān)系:假設(shè)輸入數(shù)據(jù)包的某段內(nèi)容是ABCD EFGH IJKL,要匹配的模式字符串是CD EFGH IJ,先將要匹配的模式字符串按照一定規(guī)則寫入4個(gè)CAM單元中。數(shù)據(jù)包傳輸FPGA時(shí)第一個(gè)周期傳入的是ABCD,第二個(gè)周期傳入的是EFGH,第三個(gè)周期傳入的是IJKL,在第二個(gè)周期到來后,開始進(jìn)行字符串的匹配操作。

第二個(gè)周期進(jìn)行匹配時(shí),CAM1輸入待匹配的字符串是ABCD(匹配失敗);CAM2輸入待匹配的字符串是BCDE (匹配失敗);CAM3輸入待匹配的字符串是CDEF(匹配成功);CAM4輸入待匹配的字符串是DEFG(匹配成功),所有的匹配地址都保存于寄存器中。

第三個(gè)周期進(jìn)行匹配時(shí),CAM1輸入待匹配的字符串是EFGH(匹配成功);CAM2輸入待匹配的字符串是FGHI(匹配成功);CAM3輸入待匹配的字符串是GHIJ(匹配成功);CAM4輸入待匹配的字符串是HIJL(匹配失敗)。所有的匹配地址都保存于寄存器中。

因?yàn)槲覀兤ヅ涫?個(gè)字符的字符串,因此在第二個(gè)周期CAM3匹配成功后,到第三個(gè)周期CAM3的匹配成功,根據(jù)一定的邏輯關(guān)系和算匹配地址中匹配情況,就可以知道該字符串是否匹配成功。

我們把完成一個(gè)標(biāo)準(zhǔn)模式字符串匹配的4個(gè)CAM稱之為一個(gè)CAM-heap,一個(gè)CAM-heap完成一路字符串的匹配查找。如果一個(gè)完整的數(shù)據(jù)包都流經(jīng)模式字符串模板后,綜合每周期保存匹配地址的寄存器的結(jié)果,就可以知道流入的字符串是否和模式字符串匹配。在進(jìn)行模式字符串的匹配之前,需要先將模式字符串進(jìn)行4字節(jié)的分段,不同段的4個(gè)字節(jié)寫入不同的CAM單元和不同CAM單元的不同地址中。因?yàn)橐粋€(gè)CAM-heap可以完成一路字符串的匹配查找,因此我們可以設(shè)計(jì)幾個(gè)CAM-heap并行操作來完成幾路模式字符串的匹配。匹配的模式字符串路數(shù)需要根據(jù)所選FPGA芯片RAM資源大小來決定。

FPGA的設(shè)計(jì)實(shí)現(xiàn)

模式字符串的FPGA輸入是通過IXP2400的慢端口來寫入的。在接收數(shù)據(jù)包之前,F(xiàn)PGA譯碼慢端口控制信號(hào),通過IXP2400的慢端口接收模式字符串并寫入FPGA的ROM中。要匹配的模式字符串接收完畢后,設(shè)置CAM寫使能信號(hào)WE,將幾路模式字符串按照一定格式分別寫入不同的CAM單元中,然后進(jìn)行下一步的字符串匹配操作。

接收的數(shù)據(jù)包按照數(shù)據(jù)流的先后順序?qū)懭隖PGA的FIFO中,先入先出。模式字符串匹配完成后,在FIFO出口端添加一個(gè)模式字符串的匹配標(biāo)識(shí)頭,來描述該數(shù)據(jù)包與模式字符串的匹配情況(包括與哪一個(gè)數(shù)據(jù)包匹配還是幾個(gè)同時(shí)匹配,還是沒有匹配),該匹配標(biāo)識(shí)頭添加在數(shù)據(jù)包頭,作為數(shù)據(jù)包內(nèi)容的一部分發(fā)送給IXP2400。IXP2400在接收數(shù)據(jù)包時(shí),對(duì)接收的數(shù)據(jù)包頭進(jìn)行解碼,便可知道該數(shù)據(jù)包的模式字符串模式的匹配情況,以便進(jìn)行下一步的動(dòng)作。

從模式字符串匹配實(shí)現(xiàn)過程來看,數(shù)據(jù)包的流入過程和匹配過程是同時(shí)進(jìn)行的,也就是模式字符串匹配過程的時(shí)間開銷隱藏在數(shù)據(jù)包的接收階段,接收完畢,模式字符串匹配結(jié)束。數(shù)據(jù)包只有在接收完畢后,才能決定發(fā)送什么樣的數(shù)據(jù)包字符串匹配標(biāo)識(shí)頭,因此數(shù)據(jù)包在FPGA芯片中的延時(shí)為數(shù)據(jù)包的輸入延時(shí),按照網(wǎng)絡(luò)傳輸最大數(shù)據(jù)包為1,514B計(jì)算,則數(shù)據(jù)包的最大延時(shí)為1514/4=379個(gè)周期,按照10ns一個(gè)周期計(jì)算延時(shí)為3.79um。

FPGA芯片的配置模式靈活,包括主串模式、從串模式、并行的SelectMap模式和邊界掃描JTAG模式。經(jīng)過配置后的FPGA芯片就可以正常工作了。但是基于SRAM的FPGA芯片掉電后,配置文件會(huì)自動(dòng)丟失,因此需要為FPGA芯片配置一塊閃存PROM來保存FPGA的下載文件,這樣掉電后的FPGA以后也能正常工作。

本文小結(jié)

本文講述了一種使用FPGA的CAM資源快速實(shí)現(xiàn)模式字符串的匹配查找方法,使用在線速(OC-48)的網(wǎng)絡(luò)監(jiān)控系統(tǒng)中,大大減少了后端軟件操作的處理負(fù)載。系統(tǒng)設(shè)計(jì)時(shí),選用的FPGA型號(hào)為Virtex2的XC2V2000-5,使用了FPGA中大量的Block RAM存儲(chǔ)單元來構(gòu)造CAM,采用了并行的設(shè)計(jì)思想,OC-48處理了3路模式字符串的模式匹配。經(jīng)過工程實(shí)際測(cè)試,F(xiàn)PGA模塊很好地實(shí)現(xiàn)了3路模式字符串的模式匹配功能,達(dá)到了系統(tǒng)的設(shè)計(jì)要求。



來源:零八我的愛0次

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉