互聯網絡蓬勃發展的今天,在網絡入侵檢測系統(NIDS)中,大部分的網絡入侵檢測設備幾乎都依賴于一些基于特征碼檢測的字符串匹配算法,而字符串匹配算法的實現幾乎都是由軟件來實現的。目前應用比較成功的實例有,Snort軟件使用字符串匹配算法對包含特征碼的數據包進行檢測。但是軟件在內容字節流中進行搜索匹配時,需要在不同的處理單元中/內搬移或讀取數據,這對于高速實現線速(OC-48)的檢測系統來說,帶來了很大的處理負荷。因此,如果采用硬件在數據包進入內存之前實現字符串匹配這一功能,將大大減少后端軟件操作的處理負載。
基于IXP2400和FPGA的系統結構
IXP2400是英特爾公司推出的第二代網絡處理器芯片,大量應用于寬帶接入、防火墻、NIDS和負載均衡等系統中,它能滿足OC-48網絡線速的處理要求。玉衡銥達公司設計開發的骨干網絡監控系統采用了IXP2400作為數據包主處理器,FPGA作為協處理器的硬件架構來實現,系統結構框圖如圖1所示。
如圖1所示,系統外接了4個千兆光口,用以接收和發送數據包,它是整個監控系統和骨干網絡的交際通道。光口數據包通過光模塊進入PMC-Sierra公司的MAC3386芯片。接收數據包時,以太網幀數據包從千兆光口進入MAC3386,MAC3386對數據包進行解碼后通過POS PHY3接口進入FPGA的FIFO單元,同時對進入FPGA的數據包進行模式字符串(Pattern-String)的匹配操作,處理后的數據包通過POS PHY3接口傳輸到IXP2400的MSF單元進行下一步的處理。發送時,FPGA只需要將IXP2400發送來的數據包通過POS PHY3接口傳輸給MAC3386,MAC3386對數據包進行編碼后發送給光模塊,光模塊通過光口將數據包發送出去。IXP2400提供了一組數據總線來訪問外部設備寄存器,IXP2400中稱之為慢端口(Slow Port)。在這里,和FPGA相連的慢端口總線的一部分功能是作為寫入FPGA的模式字符串通道。

圖1:基于IXP2400和FPGA的系統結構示意圖。
POS PHY3是一種標準化的網絡傳輸接口,接口數據傳輸速率為2.5Gbps,最大支持OC-48的傳輸速率接口。POS PHY3包括接收和發送兩組32位總線,工作頻率為104MHz,峰值吞吐率為3.2Gbps。支持2.5Gbps數據包的全雙工操作。POS PHY3接口接收時序圖如圖2所示。

圖2:POS PHY3接口接收邏輯時序圖。
該時序圖描述了POS PHY3接口接收數據包時,數據流在POS PHY3總線上的傳輸方式和相關的控制信號關系。關于更進一步的詳細描述可以參考POS PHY3接口標準文檔。
系統采用時鐘同步設計,在時鐘上升沿進行數據采樣,與FPGA相連的MAC3386、IXP2400的工作時鐘由FPGA的DCM單元提供,可以保證數據采集的同步和穩定性。
CAM的設計
本設計中,由于要實現幾路32B的模式字符串匹配,需要占用大量的RAM存儲單元,同時還得為數據包緩存FIFO保留一定的存儲單元,綜合幾家FPGA芯片廠商RAM的存儲容量,決定選用賽靈思的Virtex2或Virtex Pro系列的FPGA芯片,因為對于相同規模的邏輯資源和寄存器資源來說, Virtex2或Virtex Pro系列的FPGA芯片的RAM容量比其他廠商都要多幾倍。
FPGA中,與RAM存儲單元相關的資源有三類:Block RAM、LUT、寄存器。這三類資源可以通過配置和粘合邏輯(Glue Logic)實現為不同類型和位寬大小的單端口/雙端口RAM、ROM、CAM、FIFO等。FPGA中CAM的實現和配置非常靈活,CAM是實現模式字符串模式匹配的核心資源。
CAM即內容可尋址存儲器。CAM這種存儲器在其每個存儲單元都包含了一個內嵌的比較邏輯,CAM基于內容尋址,通過硬件電路并行查找,實現快速匹配。一般來說在一個時鐘周期內,寫入CAM的待比較數據和其內部存儲的每一個數據進行比較,并返回與端口數據相同的內部數據存儲的地址和是否匹配的標識符。CAM的這種并行處理特性使得它在數據分選領域倍受青睞,被廣泛應用在以太網網址搜尋、路由器中的地址交換表、高速數據處理等方面。
CAM對于高速的數據包模式字符串匹配查找操作來說,我們需要足夠快的時間來完成,如果按照POS PHY3接口標準來說,必須保證寄存器建立(Setup)時間和CAM一次查找匹配時間之和小于1個周期10ns(一般情況下,FPGA設計中的保持(Hold Up)時間都可以滿足,可以不予考慮)。根據FPGA芯片廠商數據手冊提供的性能基準數據,我們配置CAM存儲器選用的資源是Block RAM,配置的地址匹配類型選擇的是非編碼地址的多匹配方式(Multi Match Unencoded),選用該項配置的CAM32_32完成一次匹配查找的操作時間為7ns左右,CAM32_32的配置大小是32位位寬,32個存儲單元的地址深度。
對于POS PHY3的接口標準來說,數據傳輸操作周期為10ns,根據性能基準數據,我們因此除去寄存器的建立時間(<2ns),完成一次CAM匹配操作是完全可以和POS PHY3的接口標準相匹配的。根據數據包在POS PHY3接口的傳輸字節情況和實際設計需要,我們設計了一個CAM-heap來完成數據包的一路32B模式字符串的匹配操作。一個CAM-heap是由4個相同結構和配置的CAM32_32組成。CAM32_32是根據設計需要由自己配置定義的,其配置端口示意圖如圖3所示。

圖3:CAM32_32端口示意圖。
模式字符串匹配實現過程
在NIDS檢測系統中,先將協議解碼后的域值與事先精心提取的攻擊特征(規則)提取相應的字段,即模式字符串,然后從數據包包頭和凈載荷中進行查找匹配模式字符串,從中發現潛在的攻擊行為?;谀J阶址哪J狡ヅ涫且豁梻鹘y而成熟的入侵檢測技術,提供了很高的準確性與廣泛性。例如:目前網絡應用中大部分使用了一種被稱為智能隧道(Smart Tunnel)的技術,其特點是:服務端(或接收端)沒有綁定任何固定的端口,客戶端(或發起端)可以自行使用任意隨機端口連接服務器,如P2P(點到點)應用(如各種P2P 下載工具、IP電話等)、IMS(實時消息系統 如MSN、Yahoo Pager)、網絡在線游戲等。他們避開了防火墻、NIDS 產品。但是我們可以通過上層的協議識別和動態分析網絡報文中包含的協議特征,發現其所在協議,提取相關的幾段模式字符串,然后遞交給模式字符串模式匹配引擎(FPGA)進行處理。
模式字符串匹配過程可以用紙帶傳輸的過程來進行描述。假設一條紙帶上附有數據包的全部內容(abcd..xyz0123456789.。.),從包頭sop字段ABCD開始一直到包結束eop字段,依次單個字符的向前流動,有一個匹配字符串xyz0123456789模板和該數據包進行匹配。當字符串的流入模板長度等于模式匹配字符串長度后就進行比較,數據包字符串每向前流進一個字符,模式匹配字符串就和數據包流入的字符串匹配一次,直到數據包最后的字符串流入模板,查找結束。如果字符串流入直至流出過程中,數據包中存在與模板字符串相同的序列,則說明匹配成功,否則沒有模板匹配字符串。上例中,當流入模板的數據包字符串為xyz0123456789時,則指示該匹配成功。
MAC3386傳輸數據包給FPGA與紙帶傳輸數據包類似,只不過在POS PHY3接口傳輸數據包時是每周期4字符/字節。FPGA進行模式字符串匹配時,在CAM-heap中每周期進行一次4個輸入字符串的匹配操作。采用并行操作的原理,使用4個CAM模塊一個周期進行4個字符/字節的匹配操作。
舉例說明4個CAM單元的操作關系:假設輸入數據包的某段內容是ABCD EFGH IJKL,要匹配的模式字符串是CD EFGH IJ,先將要匹配的模式字符串按照一定規則寫入4個CAM單元中。數據包傳輸FPGA時第一個周期傳入的是ABCD,第二個周期傳入的是EFGH,第三個周期傳入的是IJKL,在第二個周期到來后,開始進行字符串的匹配操作。
第二個周期進行匹配時,CAM1輸入待匹配的字符串是ABCD(匹配失?。?;CAM2輸入待匹配的字符串是BCDE (匹配失?。?;CAM3輸入待匹配的字符串是CDEF(匹配成功);CAM4輸入待匹配的字符串是DEFG(匹配成功),所有的匹配地址都保存于寄存器中。
第三個周期進行匹配時,CAM1輸入待匹配的字符串是EFGH(匹配成功);CAM2輸入待匹配的字符串是FGHI(匹配成功);CAM3輸入待匹配的字符串是GHIJ(匹配成功);CAM4輸入待匹配的字符串是HIJL(匹配失?。?。所有的匹配地址都保存于寄存器中。
因為我們匹配是8個字符的字符串,因此在第二個周期CAM3匹配成功后,到第三個周期CAM3的匹配成功,根據一定的邏輯關系和算匹配地址中匹配情況,就可以知道該字符串是否匹配成功。
我們把完成一個標準模式字符串匹配的4個CAM稱之為一個CAM-heap,一個CAM-heap完成一路字符串的匹配查找。如果一個完整的數據包都流經模式字符串模板后,綜合每周期保存匹配地址的寄存器的結果,就可以知道流入的字符串是否和模式字符串匹配。在進行模式字符串的匹配之前,需要先將模式字符串進行4字節的分段,不同段的4個字節寫入不同的CAM單元和不同CAM單元的不同地址中。因為一個CAM-heap可以完成一路字符串的匹配查找,因此我們可以設計幾個CAM-heap并行操作來完成幾路模式字符串的匹配。匹配的模式字符串路數需要根據所選FPGA芯片RAM資源大小來決定。
FPGA的設計實現
模式字符串的FPGA輸入是通過IXP2400的慢端口來寫入的。在接收數據包之前,FPGA譯碼慢端口控制信號,通過IXP2400的慢端口接收模式字符串并寫入FPGA的ROM中。要匹配的模式字符串接收完畢后,設置CAM寫使能信號WE,將幾路模式字符串按照一定格式分別寫入不同的CAM單元中,然后進行下一步的字符串匹配操作。
接收的數據包按照數據流的先后順序寫入FPGA的FIFO中,先入先出。模式字符串匹配完成后,在FIFO出口端添加一個模式字符串的匹配標識頭,來描述該數據包與模式字符串的匹配情況(包括與哪一個數據包匹配還是幾個同時匹配,還是沒有匹配),該匹配標識頭添加在數據包頭,作為數據包內容的一部分發送給IXP2400。IXP2400在接收數據包時,對接收的數據包頭進行解碼,便可知道該數據包的模式字符串模式的匹配情況,以便進行下一步的動作。
從模式字符串匹配實現過程來看,數據包的流入過程和匹配過程是同時進行的,也就是模式字符串匹配過程的時間開銷隱藏在數據包的接收階段,接收完畢,模式字符串匹配結束。數據包只有在接收完畢后,才能決定發送什么樣的數據包字符串匹配標識頭,因此數據包在FPGA芯片中的延時為數據包的輸入延時,按照網絡傳輸最大數據包為1,514B計算,則數據包的最大延時為1514/4=379個周期,按照10ns一個周期計算延時為3.79um。
FPGA芯片的配置模式靈活,包括主串模式、從串模式、并行的SelectMap模式和邊界掃描JTAG模式。經過配置后的FPGA芯片就可以正常工作了。但是基于SRAM的FPGA芯片掉電后,配置文件會自動丟失,因此需要為FPGA芯片配置一塊閃存PROM來保存FPGA的下載文件,這樣掉電后的FPGA以后也能正常工作。
本文小結
本文講述了一種使用FPGA的CAM資源快速實現模式字符串的匹配查找方法,使用在線速(OC-48)的網絡監控系統中,大大減少了后端軟件操作的處理負載。系統設計時,選用的FPGA型號為Virtex2的XC2V2000-5,使用了FPGA中大量的Block RAM存儲單元來構造CAM,采用了并行的設計思想,OC-48處理了3路模式字符串的模式匹配。經過工程實際測試,FPGA模塊很好地實現了3路模式字符串的模式匹配功能,達到了系統的設計要求。
責任編輯:gt
相關推薦
理解Verilog編碼技巧掌握FPGA中狀態機的寫法掌握非重疊序列檢測代器Verilog代碼編寫
發燒友學院發表于 2020-04-21 00:00
?
21696次閱讀

整個傳送流的復用器分為復用預處理、輸入和復用3部分。預處理部分是對多路傳送流的PSI(節目特殊信息)....
發表于 2020-08-25 16:19?
0次閱讀

研究者Jain解釋道,一種特殊的微環境能促進卵巢腫瘤細胞與血管在一起進行共培養,隨后腫瘤就能與血細胞....
發表于 2020-08-25 15:22?
65次閱讀

Cypress公司推出的EZ-USB FX2LP系列USB接口芯片是集成了USB2.0協議的微處理器....
發表于 2020-08-25 15:19?
20次閱讀

我拿了Zynq FPGA,就像'XC7Z020CLG400ABX1521DKRTKL5291A1C'這樣的數字,這是什么意思?
我理...
發表于 2020-08-25 15:08?
0次閱讀

隨著分級診療、“五大急救中心”建設的不斷推進,POCT多項目聯檢的需求越來越大,但在此之前尚沒有同時....
發表于 2020-08-25 14:57?
42次閱讀

該器件包含一個片上32 KHz振蕩器和一個內部16MHz高頻振蕩器。該時鐘通過可編程時鐘分頻器路由,....
發表于 2020-08-25 14:49?
19次閱讀

本次新增的38家實體,主要涉及華為云、華為OpenLab在國內外的子公司,以及華為收購的以色列IT公....
發表于 2020-08-25 14:25?
107次閱讀

按照傳輸數據的方式劃分,可以分為串行總線和并行總線。串行總線中,二進制數據逐位通過一根數據線發送到目....
發表于 2020-08-25 14:13?
37次閱讀

在英特爾,我們堅信技術能夠讓每個人的生活變得豐富多彩并推動全球進步。這是英特爾自創立以來矢志不渝的指....
發表于 2020-08-25 14:12?
102次閱讀

我喜歡使用verilog,vivado2017.1設計處理器(MIPS32),設備是Virtex7 vc707。
我已經使用BRAM作為主存儲器...
發表于 2020-08-25 13:19?
0次閱讀

今年高通也加快了對5G中低端芯片的部署,除了集成5G基帶芯片的驍龍765G,驍龍768G外,高通還將....
發表于 2020-08-25 13:13?
77次閱讀

7月31日,諾基亞發布今年第二季度財報,凈銷售額50.9億歐元,同比下降11%;營業利潤為4.23億....
發表于 2020-08-25 11:54?
212次閱讀

目前,我國驅動芯片絕大數都是進口產品。施偉坦言,目前韓系廠商仍主導AMOLED驅動芯片市場,他們毋庸....
發表于 2020-08-25 11:41?
79次閱讀

有消息稱華為Mate40系列將會采用雙平臺設計---有海思麒麟芯片,也有第三方芯片。不過目前該消息并....
發表于 2020-08-25 11:39?
129次閱讀

目前已經有格科微、匯頂等數家芯片設計公司可以穩定提供LCD驅動芯片,且TFT-LCD已大量轉往TDD....
發表于 2020-08-25 11:34?
58次閱讀

除基帶芯片以外,5G 時代 Massive MIMO 的引入會使得天線數量大幅增多,4G 的 2×2....
發表于 2020-08-25 11:26?
155次閱讀

據了解,有記者嘗試買了一個產品,進行測試。拆開產品的包裝,是一個火柴盒大小的塑料盒,記者按使用說明書....
發表于 2020-08-25 11:21?
126次閱讀

為主動應對新一輪科技革命與產業變革,支撐服務創新驅動發展,2017年2月以來,教育部積極推進新工科建....
發表于 2020-08-25 11:07?
118次閱讀

肖亞慶前往北方華創科技集團股份有限公司、小米亦莊產業園、施耐德(北京)中低壓電器有限公司開展調研,參....
發表于 2020-08-25 11:04?
163次閱讀

機器人將半導體裝備業務確定為三大業務板塊之一,2018年5月,公司集中整合資源成立半導體裝備事業部,....
發表于 2020-08-25 10:53?
130次閱讀

N5P作為改良版,仍在開發中,規劃2021年量產,相較于第一代5nm,功耗進一步降低10%、性能提升....
發表于 2020-08-25 10:34?
131次閱讀

8月24日,中國聯通中訊郵電咨詢設計院有限公司執行董事、總經理張涌分享了對5G技術與電競結合的全新思....
發表于 2020-08-25 10:30?
205次閱讀

音圈馬達加持的臺積電已制造10億顆7nm芯片。近日,臺積電在其官方博客中透露,該公司今年7月迎來了一....
發表于 2020-08-25 10:00?
52次閱讀

SD卡作為新型移動存儲設備,以體積小、速度快、抗震動、通用性強的特點各受青睞。以SD卡作為存儲介質來....
發表于 2020-08-25 09:42?
218次閱讀

我們建議的設置如下:
希望ADC工作在200 MHz,采樣速率為200 MSPS。
最初,為了避免FPGA內部操作和AD...
發表于 2020-08-25 09:23?
0次閱讀

然而時間進入2020年,一方面受全球新冠肺炎疫情的影響,另一方面韓國大干快上5G節奏下被遮掩的問題逐....
發表于 2020-08-25 09:08?
40次閱讀

AC/DC開關電源適配器芯片(或稱模塊),只要配合一些阻容元件和一個開關變壓器,就可以做成一個基本的....
發表于 2020-08-25 09:07?
54次閱讀

現在的大學生一般都在學STM32、51、430等等,但是FPGA很少有人來學習,請問FPGA適合大學生來學習么?它的最...
發表于 2020-08-25 08:10?
0次閱讀

近日, 日本東京——索尼公司宣布推出兩款 GNSS 全球導航衛星定位接收系統芯片 CXD5610GF....
發表于 2020-08-24 17:50?
283次閱讀

實時流盤一直是數據采集技術的最大瓶頸,它直接制約了采集存儲設備的實時存儲能力。為此,可考慮利用多個硬....
發表于 2020-08-24 17:01?
113次閱讀

FPGA是通過邏輯組合電路來實現各種功能的器件。由于FPGA內部集成了大量的邏輯資源和可配置的I/O....
發表于 2020-08-24 16:56?
109次閱讀

系統框圖如圖1所示。FPGA控制單元采用 A1tera公司Cyclone II系列的EP2C5F25....
發表于 2020-08-24 16:53?
44次閱讀

在封裝技術的走勢方面,鄭力預測,疫情的爆發,使得人們的很多活動都從線下搬到了線上,這對5G及新一代信....
發表于 2020-08-24 16:46?
140次閱讀

充分利用現有工程設計與預算資源的一種方式是創建能部署到多個太空任務中的靈活的有效負載。SEAKR工程....
發表于 2020-08-24 16:45?
72次閱讀

第二個是上海嘉定工業區。它是經市政府批準設立的市級工業園區。園區總面積為78.05平方公里,其中用于....
發表于 2020-08-24 16:42?
448次閱讀

盡管晶圓代工模式滿足了市場的部分需求,但還談不到將取代IDM模式?!耙云放旗柟膛c技術掌握為前提,ID....
發表于 2020-08-24 16:38?
110次閱讀

電容式傳感器是將被測量的變化轉換成電容量變化的一種裝置。電容式傳感器具有結構簡單、分辨力高、工作可靠....
發表于 2020-08-24 16:36?
67次閱讀

“雷克沙 HL260 隱形移動加密硬盤”主機使用國密 SM4 技術,針對數據流直接硬件加密。通過主機....
發表于 2020-08-24 16:35?
139次閱讀

從全球集成電路產業現狀和發展經驗來看,芯片設計、晶圓制造和封裝測試的價值量比例一般為3∶4∶3。20....
發表于 2020-08-24 16:32?
57次閱讀

目前,芯翼信息科技目前量產的核心產品是一顆 NB-IoT SoC XY1100,該芯片是世界首款集成....
發表于 2020-08-24 16:28?
248次閱讀

從允許參與5G建設到禁止,英國政府上個月對于華為政策的緊急掉頭,可能令該國5G的推出時間推遲三年之多....
發表于 2020-08-24 16:14?
185次閱讀

一個典型示例是,智能門鎖可以區分您和陌生人,或者根據需要學會識別快遞員和其他訪客。試想一下,設備還能....
發表于 2020-08-24 16:07?
446次閱讀

NXP i.MX RT106L跨界處理器主要針對低成本本地語音識別應用。是專用于邊緣側的離線嵌入式本....
發表于 2020-08-24 16:03?
82次閱讀

Arduino Portenta H7,它是Arduino Pro 平臺中的第一款高性能工業級開發板....
發表于 2020-08-24 16:00?
184次閱讀

脈沖發生電路產生探測脈沖,高速的A/D轉換器對脈沖及其反射回波信號進行采樣,使用異步FIFO作為A/....
發表于 2020-08-24 15:46?
58次閱讀

目前,雖然面臨著嚴峻的國際環境,華為最新一代 NB-IoT 芯片 Boudica 200 依然即將推....
發表于 2020-08-24 15:27?
103次閱讀

MRAM技術使用磁態進行數據存儲。在兩種狀態之間切換磁極化不需要原子的運動,因此MRAM器件沒有磨損....
發表于 2020-08-24 15:14?
64次閱讀

額溫槍最近經歷了很多故事,市場一直保持著相當的熱度。在之前我們的微信文章《戰“疫”必備的額溫槍,來看....
發表于 2020-08-24 14:59?
329次閱讀

比如,我們可以在財報中看到,在營收規模略有回落的情況下,紫光國微的利潤額和利潤率都反而在持續提升,這....
發表于 2020-08-24 14:52?
341次閱讀

前有臺積電的 CoWoS,Intel 的 Foveros,現在三星也公布了自家的 3D 封裝技術 X....
發表于 2020-08-24 14:39?
133次閱讀

華為鯤鵬生態相關負責人表示,潤和軟件是華為鯤鵬的戰略合作伙伴,在芯片、操作系統、云平臺軟件、行業解決....
發表于 2020-08-24 14:31?
200次閱讀

Molex莫仕旗下 BittWare 公司是以 FPGA 技術著稱的企業級 NVMe 計算存儲領域的....
發表于 2020-08-24 14:31?
88次閱讀

不過,“政策性市場有規模上限,新能源汽車要實現持續快速發展,必須依靠非政策性市場”,李偉利分析認為,....
發表于 2020-08-24 14:14?
172次閱讀

觸控屏走進汽車座艙并不是新鮮事,但是像Model 3這樣將觸摸屏用得如此極致,還是很有顛覆性的,從中....
發表于 2020-08-24 14:12?
104次閱讀

電荷泵鎖相環的鎖定檢測電路設計,包括模擬鎖定檢測和數字鎖定檢測兩種方法。其中,模擬檢測電路采用經鑒頻....
發表于 2020-08-24 14:11?
33次閱讀

nRF52832協議是2.4g私有協議藍牙5.0,在協議方面可以兼容nRF51822(NRF51822是2.4g私有協議藍牙4.0)
NRF52...
發表于 2020-08-24 11:13?
0次閱讀

小梅哥? 芯航線 特權同學 鋯石 黑金?這幾家的視頻怎么樣?買哪家的板子會好一些?
A...
發表于 2020-08-24 06:52?
0次閱讀

為什么,8位位寬的信號[7:0]data_1 ,通過一條連線wire,到另一條 輸入端口 [7:0]data_2,只是一條線就把8位數據同時傳...
發表于 2020-08-23 22:34?
0次閱讀

紅外線遙控是目前最廣泛采用的一種遙控技術之一,具有功能強、成本低、功耗低等特點,廣泛使用自家電、玩具等產品中...
發表于 2020-08-21 17:25?
404次閱讀

你好
在7系列和超級FPGA器件中,可以回讀捕獲的任何寄存器數據嗎?
例如:CLB寄存器,Blcok RAM寄存器,...
發表于 2020-08-21 10:59?
0次閱讀

大家好
在virtex 5 FPGA用戶指南ug190中,它說:
“Virtex-5 FPGA中的時鐘管理磁貼(CMT)包括兩個D...
發表于 2020-08-21 09:16?
0次閱讀

評論