楊斌
摘要 隨著互聯(lián)網(wǎng)的高速發(fā)展,網(wǎng)絡(luò)規(guī)模日益龐大,網(wǎng)絡(luò)環(huán)境日益復(fù)雜,使得網(wǎng)絡(luò)安全問題日益嚴(yán)重,對硬件實(shí)現(xiàn)的深度報(bào)文檢測系統(tǒng)也提出了更高的要求。而基于FPGA實(shí)現(xiàn)的報(bào)文檢測系統(tǒng)一直是實(shí)現(xiàn)報(bào)文檢測系統(tǒng)的一個(gè)重要分支,尤其是在商業(yè)領(lǐng)域,占據(jù)著重要的地位,具有很強(qiáng)的實(shí)際研究意義。本文在前人研究的基礎(chǔ)上,設(shè)計(jì)了一種基于FPGA低功耗高速網(wǎng)絡(luò)報(bào)文解析系統(tǒng),本系統(tǒng)采用模塊化設(shè)計(jì),充分利用FPGA并行、流水化處理的優(yōu)勢,并且在FPCA內(nèi)部增加流控信號,提高整個(gè)系統(tǒng)的業(yè)務(wù)承載能力,搭建系統(tǒng)開發(fā)環(huán)境,完成系統(tǒng)關(guān)鍵模塊的仿真和板級驗(yàn)證。
【關(guān)鍵詞】低功耗 高速 報(bào)文解析系統(tǒng) FPGA
1 引言
隨著計(jì)算機(jī)網(wǎng)絡(luò)的高速發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)的規(guī)模不斷壯大,計(jì)算機(jī)網(wǎng)絡(luò)正在經(jīng)濟(jì)和生活的各個(gè)領(lǐng)域迅速普及,信息的獲取、共享和傳播變得更加方便,構(gòu)建在互聯(lián)網(wǎng)上的應(yīng)用也越來越多,整個(gè)社會對互聯(lián)網(wǎng)的依賴性也越來越強(qiáng),實(shí)時(shí)有效的網(wǎng)絡(luò)報(bào)文檢測技術(shù)對網(wǎng)管系統(tǒng)和網(wǎng)絡(luò)監(jiān)控系統(tǒng)越來越重要。
由于在傳統(tǒng)的報(bào)文檢測系統(tǒng)中,整個(gè)系統(tǒng)是工作在一個(gè)恒定的頻率上的,當(dāng)頻率一定時(shí),各個(gè)模塊的最大的處理頻率是一樣的,然而網(wǎng)絡(luò)上的流大小卻是突發(fā)變化的,并不是以最大的流進(jìn)行傳送的,過高的處理頻率雖然滿足模塊的處理要求,但是卻因?yàn)檫^多的消耗資源而引起帶寬的浪費(fèi)。因此,一種低功耗的高速網(wǎng)絡(luò)報(bào)文檢測系統(tǒng)呼之欲出。
有鑒于此,本文提出了一種基于硬件的低功耗的高速網(wǎng)絡(luò)報(bào)文檢測系統(tǒng),達(dá)到在應(yīng)用需求不斷增加的情況下,用硬件實(shí)現(xiàn)網(wǎng)絡(luò)報(bào)文檢測的功能,根據(jù)網(wǎng)絡(luò)的需求,實(shí)時(shí)動(dòng)態(tài)在線調(diào)整頻率,使其能夠根據(jù)用戶要求更加靈活的提供服務(wù)功能。在正常情況下,對傳送的數(shù)據(jù)流量進(jìn)行統(tǒng)計(jì),讀出到達(dá)流量的大小和時(shí)間,再根據(jù)流量大小對應(yīng)查出系統(tǒng)的處理頻率,進(jìn)行動(dòng)態(tài)控制系統(tǒng)自身處理頻率,進(jìn)而調(diào)整系統(tǒng)的實(shí)時(shí)處理能力,實(shí)現(xiàn)對網(wǎng)絡(luò)報(bào)文中內(nèi)容負(fù)載實(shí)時(shí)在線的深度檢測,滿足低功耗的要求,以這種思想為指導(dǎo),對網(wǎng)絡(luò)報(bào)文檢測進(jìn)行了針對性設(shè)計(jì),為網(wǎng)絡(luò)報(bào)文檢測提供更靈活的手段,實(shí)現(xiàn)了根據(jù)用戶的設(shè)置要求來控制處理能力從而達(dá)到一種低功耗的目的。本系統(tǒng)可以連續(xù)地檢測網(wǎng)絡(luò)流量,對網(wǎng)絡(luò)起到實(shí)時(shí)監(jiān)控的作用。
2 報(bào)文解析系統(tǒng)總體設(shè)計(jì)方案
為了解決上述技術(shù)問題,本文提出了一種低功耗的高速網(wǎng)絡(luò)報(bào)文檢測系統(tǒng)??傮w框架如圖1所示,通過硬件實(shí)現(xiàn)網(wǎng)絡(luò)報(bào)文檢測的結(jié)構(gòu),降低了對處理器資源的消耗,采用實(shí)時(shí)動(dòng)態(tài)地控制方法,提升了設(shè)備檢測的靈活性,適用于大規(guī)模的網(wǎng)絡(luò)報(bào)文檢測。系統(tǒng)一共包括八個(gè)模塊,分別是時(shí)間戳模塊、流量檢測模塊、報(bào)文解析模塊、內(nèi)容萃取模塊、匹配控制模塊、綜合判定模塊、格式封裝模塊、頻率控制模塊。
時(shí)間戳模塊用于在到達(dá)系統(tǒng)的報(bào)文中加入時(shí)間標(biāo)簽,為后續(xù)模塊處理提供時(shí)間基準(zhǔn)。
流量檢測模塊用于檢測到達(dá)報(bào)文的數(shù)據(jù)流量信息,為頻率控制模塊對本系統(tǒng)的調(diào)控提供一個(gè)依據(jù)。流量檢測模塊主要功能是轉(zhuǎn)發(fā)報(bào)文并檢測到達(dá)報(bào)文的數(shù)據(jù)流量信息,根據(jù)報(bào)文添加的時(shí)間標(biāo)簽,假設(shè)在時(shí)間t1到t2到達(dá)的數(shù)據(jù)包為n個(gè),第i個(gè)數(shù)據(jù)包為1.比特,則在時(shí)間t1到t2通過的總報(bào)文比特?cái)?shù)為
報(bào)文解析模塊,用于識別其承載報(bào)文協(xié)議類型,為網(wǎng)絡(luò)內(nèi)容的過濾提供數(shù)據(jù)報(bào)文協(xié)議信息及數(shù)據(jù)報(bào)文有效載荷信息。
內(nèi)容萃取模塊可以根據(jù)用戶配置管理要求,靈活準(zhǔn)確地萃取數(shù)據(jù)報(bào)文信息和有效載荷信息。
匹配控制模塊可以根據(jù)萃取的數(shù)據(jù)相關(guān)信息在預(yù)先設(shè)定好的表項(xiàng)中進(jìn)行匹配查找,與用戶配置的TCAM規(guī)則表項(xiàng)中的五元組信息進(jìn)行匹配。匹配控制模塊主要在高速的鏈路下,基于硬件來實(shí)現(xiàn)模式匹配,利用TCAM(Ternary Contenr Accessible Memoery),即三元內(nèi)容尋址內(nèi)存+SRAM( Static RandomAccess Memory),即靜態(tài)隨機(jī)存取存儲器,完成關(guān)鍵字的查找和配送功能,實(shí)現(xiàn)高速鏈路下的匹配,其中TCAM用來放規(guī)則的匹配域,SRAM用來放規(guī)則對應(yīng)實(shí)施動(dòng)作,頻率匹配表如圖1所示。
其中數(shù)據(jù)流量g是在時(shí)間t時(shí)刻通過系統(tǒng)的實(shí)時(shí)數(shù)據(jù)流量,處理頻率f是在通過系統(tǒng)數(shù)據(jù)流量為g時(shí)對整個(gè)系統(tǒng)的處理頻率。
綜合判定模塊可以根據(jù)匹配結(jié)果和用戶設(shè)定的流量閾值對數(shù)據(jù)包進(jìn)行綜合判定,進(jìn)而對數(shù)據(jù)包進(jìn)行相應(yīng)的轉(zhuǎn)發(fā)、存儲、上報(bào)、丟棄等操作。
格式封裝模塊用于對報(bào)文格式頭轉(zhuǎn)換和封裝,將數(shù)據(jù)封裝成MAC幀,再通過10G高速接口將MAC幀傳輸?shù)交ヂ?lián)網(wǎng)或指定的服務(wù)器上。
頻率控制模塊根據(jù)通過系統(tǒng)的實(shí)時(shí)數(shù)據(jù)流量,可以動(dòng)態(tài)自適應(yīng)地調(diào)控系統(tǒng)的處理頻率,進(jìn)而對系統(tǒng)整體處理能力進(jìn)行調(diào)控。頻率控制模塊包括:流量讀取單元,用于讀取流量檢測模塊傳送的數(shù)據(jù)流量信息,并記錄數(shù)據(jù)流量g和時(shí)間t1和t2;數(shù)據(jù)流緩存單元,用于存入所記錄的數(shù)據(jù)流量g和時(shí)間tl和t2;匹配查找單元,根據(jù)記錄的數(shù)據(jù)流量g和時(shí)間t1和t2,在頻率匹配表中查找出對應(yīng)的處理頻率;調(diào)控單元,根據(jù)匹配的處理頻率,調(diào)控系統(tǒng)各個(gè)模塊的處理頻率,使整個(gè)系統(tǒng)模塊在這個(gè)頻率下工作。
本系統(tǒng)的內(nèi)部封裝圖如圖2所示。
內(nèi)部格式包括:時(shí)間戳、匹配命中、匹配結(jié)果、解析結(jié)果,和原始二層幀,其中匹配的狀態(tài)如圖3所示。
其中,l、00表示不關(guān)心;2、01表示不命中;3、11表示命中。
3 報(bào)文檢測系統(tǒng)總體流程
本文所設(shè)計(jì)低功耗的高速網(wǎng)絡(luò)報(bào)文檢測系統(tǒng)的總體流程如圖4所示,首先,時(shí)間戳模塊在到達(dá)數(shù)據(jù)包中加入到達(dá)系統(tǒng)的時(shí)間標(biāo)簽,接著,流量檢測模塊檢測出到達(dá)的網(wǎng)絡(luò)數(shù)據(jù)流量信息,把該信息傳送給頻率控制模塊,同時(shí)把報(bào)文轉(zhuǎn)發(fā)到報(bào)文解析模塊,然后,報(bào)文解析模塊解析出數(shù)據(jù)報(bào)文的協(xié)議信息和有效載荷,并把數(shù)據(jù)報(bào)文協(xié)議信息及數(shù)據(jù)報(bào)文有效載荷信息傳送給內(nèi)容萃取模塊,內(nèi)容萃取模塊會根據(jù)用戶配置的管理要求,萃取出數(shù)據(jù)報(bào)文的協(xié)議信息和有效載荷并傳送給匹配控制模塊進(jìn)行匹配,匹配控制模塊根據(jù)萃取的數(shù)據(jù)相關(guān)信息在預(yù)先設(shè)定好的表項(xiàng)中進(jìn)行匹配查找,并與用戶配置的TCAM規(guī)則表項(xiàng)中的五元組信息進(jìn)行匹配,綜合判定模塊根據(jù)匹配結(jié)果和用戶設(shè)定的流量閾值對數(shù)據(jù)包進(jìn)行綜合判定,如果判定成功則送入格式封裝模塊,否則,丟棄,最后,格式封裝模塊對數(shù)據(jù)報(bào)文進(jìn)行數(shù)據(jù)格式封裝,完成格式頭的轉(zhuǎn)換和封裝,將數(shù)據(jù)封裝出MAC幀,再通過10G高速接口將MAC幀傳送給互聯(lián)網(wǎng)或指定服務(wù)器上。
3.1 綜合判定流程
本文所設(shè)計(jì)低功耗的高速網(wǎng)絡(luò)報(bào)文檢測系統(tǒng)的綜合判定流程如圖5所示,首先,將匹配控制模塊輸出的五元組信息送至TCAM芯片,與用戶配置的TCAM規(guī)則表項(xiàng)中五元組信息進(jìn)行匹配,等待接收匹配結(jié)果,如果是丟棄,則丟棄該報(bào)文,否則將判斷匹配的數(shù)據(jù)是否達(dá)到指定的服務(wù)器,如果是則結(jié)束,否則將匹配的數(shù)據(jù)與用戶配置的數(shù)據(jù)流量閾值進(jìn)行比較,如果超出閾值則丟棄,否則將數(shù)據(jù)轉(zhuǎn)發(fā)到互聯(lián)網(wǎng)上。
3.2 頻率控制流程
本文所設(shè)計(jì)低功耗的高速網(wǎng)絡(luò)報(bào)文檢測系統(tǒng)的頻率控制流程如圖6所示,首先提取流量檢測模塊傳送的數(shù)據(jù)流量信息,并將數(shù)據(jù)流量信息送入流量緩存,然后將數(shù)據(jù)流量信息存入流量緩存并記錄數(shù)據(jù)流量和時(shí)間,接著,根據(jù)記錄的數(shù)據(jù)流量信息,從流量緩存中讀出數(shù)據(jù)流量和時(shí)間,查找頻率匹配表,找出對應(yīng)的處理頻率,最后根據(jù)查找出對應(yīng)的處理頻率,統(tǒng)一調(diào)整時(shí)間戳模塊、流量檢測模塊、報(bào)文解析模塊、內(nèi)容萃取模塊、匹配控制模塊、綜合判定模塊、格式封裝模塊的處理頻率。
4 系統(tǒng)實(shí)現(xiàn)和仿真
本系統(tǒng)采用傳統(tǒng)FPGA開發(fā)“自頂而下”的設(shè)計(jì)方法。“自頂而下”的設(shè)計(jì)方法是從系統(tǒng)級設(shè)計(jì)開始,然后往下劃分二級模塊,再把二級模塊繼續(xù)往劃分,一直劃分下去,直到能夠使用基本模塊或者IP核直接實(shí)現(xiàn)為止?!白皂敹隆钡脑O(shè)計(jì)方法在描述系統(tǒng)功能時(shí)能夠獨(dú)立于芯片之外,在設(shè)計(jì)之初,研發(fā)人員可以擺脫芯片結(jié)構(gòu)的約束,只需要對功能進(jìn)行設(shè)計(jì),這樣可規(guī)避因設(shè)計(jì)方法帶來的風(fēng)險(xiǎn),同時(shí)也可以縮短系統(tǒng)設(shè)計(jì)周期。
本系統(tǒng)選用Xilinx公司的Virtex-6系列芯片作為主要開發(fā)平臺,為了能夠適應(yīng)不斷演化的標(biāo)準(zhǔn)和不斷提高性能需求,Virtex-6系列芯片比Virtex-5系列功耗降低大約50%,并且該系列產(chǎn)品進(jìn)行了組合優(yōu)化,包括靈活性、IP核、收發(fā)器以及開發(fā)工具等支持。考慮到系統(tǒng)中各個(gè)模塊之間數(shù)據(jù)通信的復(fù)雜性,本系統(tǒng)采用Xilinx FPGA的SOPC設(shè)計(jì)方法,在ISE開發(fā)環(huán)境中來實(shí)現(xiàn)系統(tǒng)頂層文件以及其他模塊的設(shè)計(jì),并最終完成系統(tǒng)的編譯、綜合和調(diào)試等工作。
系統(tǒng)仿真主要是對關(guān)鍵信號的時(shí)序仿真和板級驗(yàn)證。板級驗(yàn)證和仿真主要是將比特流文件下載到板卡中,通過ChipScope Pro對系統(tǒng)的信號完整性和電磁干擾進(jìn)行分析。圖7到圖9為發(fā)送和接受信號以及格式封裝模塊FIFO讀寫信號的板級驗(yàn)證和仿真。
5 結(jié)束語
隨著網(wǎng)絡(luò)安全問題日益突出,網(wǎng)絡(luò)規(guī)模日益龐大,網(wǎng)絡(luò)環(huán)境日益復(fù)雜,對報(bào)文檢測系統(tǒng)的要求也越來越高。FPGA實(shí)現(xiàn)報(bào)文檢測系統(tǒng)一直是報(bào)文檢測研究的一個(gè)重要分支。本文在前人研究的基礎(chǔ)上,設(shè)計(jì)實(shí)現(xiàn)了一種基于FPGA的報(bào)文檢測系統(tǒng)。
本文提出了一種低功耗的高速網(wǎng)絡(luò)報(bào)文檢測系統(tǒng),本系統(tǒng),可以通過實(shí)時(shí)的數(shù)據(jù)流量,動(dòng)態(tài)地控制系統(tǒng)自身的處理頻率,實(shí)現(xiàn)對系統(tǒng)實(shí)時(shí)處理能力的在線調(diào)整,進(jìn)而完成對高速網(wǎng)絡(luò)中報(bào)文內(nèi)容負(fù)載深度檢測功能,并大大降低了系統(tǒng)的功耗,可適用于10G高速網(wǎng)絡(luò)環(huán)境,并以并行流水線的方式實(shí)現(xiàn)網(wǎng)絡(luò)報(bào)文檢測,同時(shí)又達(dá)到了低功耗的目的。
參考文獻(xiàn)
[1]張子文,高效深度報(bào)文檢測的研究和實(shí)現(xiàn)[D].國防科學(xué)技術(shù)大學(xué),2008 (11).
[2] Aho A V,Corasick M J.Efficient stringmatching: An aid to bibliographicsearch. Comm. of the ACM, 18 (06): 333-340. 1975.
[3] Commentz-Walter B.A string matchingalgorithm fast on the average.Proc.of ICALP, pages 118-132, July 1979.
[4]Wu S,Manber U.A fast algorithm formulti-pat tern searching [M]. Tech.
R. TR-94-17, Dept of Comp Science Univof Arizona,1994.
[5] Jeffrey E. F. Friedl. Master RegularExpressions.Third Edition[M].0' Reilly Media,Inc. 2007:151-156
[6] SNORT Network Intrusion DetectionSystem[DB/OL] . 2015-12. http: //www.snor t. org.
[7]Bro Intrusion Detection System [DB/OL] . 2015-12. ht tp: //bro-ids. org/Overview. html.
[8]Levandoski J,Sommer E,Strait M.Application Layer Packet Classifierfor Linux [M] . 2 015-12. ht tp: //17-filter. sourceforge. net/.
[9]Qiu Tanga,Lei Jianga,Xin-xing Liua,Qiong Dai.A Real-time Updatable FPGA-based Architecture for Fast RegularExpression Ma tching [J] . Informa tionTechnology and QuantitativeManagement (ITQM 2014). ProcediaComputer Science 31 (2014):852-859.
[lO]Shuhui Chen,Rongxing Lu,A regularexpression matching engine withhybrid memories [J]. Computer Standards& Interfaces. 36 (2014): 880-888.
[11] Yoichi Wakaba, Shinobu, A Flexible AndCompact Regular Expression MatchingEngine Using Partial ReconfigurationFor FPGA[J]. 2013 16th EuromicroConference on Digital SystemDesign. 2013: 293-296.
[12] Yuan Wen, Xingsheng Tang, LihanJu, Tianzhou Chen. PeRex: A powerefficient FPGA-based architecturefor regular expression matching[C].2011 IEEE/ACM InternationalConference on Green Computing andCommunications. 2011:188-193.
[13]Jan van Lunteren, Alexis Guanella.Hardware-Accelerated RegularExpression Matching at Multiple Tensof Gb/s [J]. 2012 Proceedings IEEEINFOCOM, 2012:1737-1774.
[14] Chun-Liang L, Yi-Shan L, Yaw-Chung C.A Hybrid CPU/GPU Pattern-Matching Algorithm for Deep PacketInspection [J] . Plos One, 2015, 10 (10) .
[15] Zhan Y R, Wang Z S. Deep PacketInspection Based on Many-CorePlatform[Jl.Journal of Computer &Communications, 2015, 03 (05) : 1-6.
[16] Yu, Xiaodong. Deep packet inspectionon large datasets:Algorithmic andparallelization techniques foraccelerating regular expressionmatching on many-core processors[J].Dissertations&Theses-Gradworks, 2013.