魯佳琪,黃芝平,,劉純武,,劉德勝,陳實
?。▏揽茖W(xué)技術(shù)大學(xué) 機電工程與自動化學(xué)院,,湖南 長沙 410073)
摘要:網(wǎng)絡(luò)流量分類技術(shù)為網(wǎng)絡(luò)服務(wù)提供有力保障,在網(wǎng)絡(luò)行為分析和網(wǎng)絡(luò)監(jiān)管方面發(fā)揮重要作用,。設(shè)計并實現(xiàn)了一種基于FPGA+TCAM架構(gòu)的網(wǎng)絡(luò)分流系統(tǒng),,接入高速網(wǎng)絡(luò)信號,恢復(fù)數(shù)據(jù)流信息,,并對其進(jìn)行分流管理,。解決了傳統(tǒng)網(wǎng)絡(luò)分流系統(tǒng)接入速率不高,分流效果差的問題,。最后對系統(tǒng)平臺進(jìn)行了測試,,測試結(jié)果表明,該系統(tǒng)具備在高速網(wǎng)絡(luò)環(huán)境下數(shù)據(jù)流實時分流處理的能力,。
關(guān)鍵詞:網(wǎng)絡(luò)流量,;分流;三態(tài)內(nèi)容可尋址寄存器,;現(xiàn)場可編程門陣列
0引言
網(wǎng)絡(luò)流量分類技術(shù)是指將混合有各種應(yīng)用的流量,,按其相關(guān)特性進(jìn)行分類的技術(shù)。網(wǎng)絡(luò)流量分類一直是學(xué)術(shù)界和產(chǎn)業(yè)界關(guān)注的重點之一,。對學(xué)術(shù)界來說,網(wǎng)絡(luò)流量分類是高性能網(wǎng)絡(luò)協(xié)議和應(yīng)用設(shè)計的基礎(chǔ),;對運營商來說,,網(wǎng)絡(luò)流量分類是網(wǎng)絡(luò)運營管理、網(wǎng)絡(luò)發(fā)展規(guī)劃,、網(wǎng)絡(luò)流量調(diào)度和高效能業(yè)務(wù)前瞻的依據(jù)[1] ,。因此,,進(jìn)行網(wǎng)絡(luò)流量分類相關(guān)領(lǐng)域的研究具有重要的理論和現(xiàn)實意義。但是,,傳統(tǒng)分流設(shè)備由于不能適應(yīng)高速網(wǎng)絡(luò)環(huán)境,,導(dǎo)致處理效率和準(zhǔn)確率不高。傳統(tǒng)設(shè)備的缺點一直制約著網(wǎng)絡(luò)流量分類技術(shù)研究的發(fā)展,。因此,,設(shè)計并實現(xiàn)高接入速率、高處理效率的分流系統(tǒng)迫在眉睫,。
網(wǎng)絡(luò)流量分類技術(shù)分為軟件和硬件兩種主要實現(xiàn)方式,。已有的軟件算法包括:(1)鍵樹結(jié)構(gòu)的分類算法:包括分層樹和擴展樹兩種結(jié)構(gòu)。分層樹結(jié)構(gòu)查找時的回查操作導(dǎo)致其查找速度變慢,;擴展樹結(jié)構(gòu)又由于重復(fù)復(fù)制大量路徑致使算法的空間占用量很大,。(2)計算幾何學(xué)點定位算法:利用這種思想演變而來的各種軟件算法也是目前相對較好的算法,如BV,、HiCuts,、RFC以及改進(jìn)型BV算法(如ABV、AFBV等)等,。其利用不同的技術(shù)提高了網(wǎng)絡(luò)流量的處理速度,,但是存在占用大量存儲空間的缺點[2]。
硬件算法主要以基于三態(tài)內(nèi)容可尋址寄存器(Ternary Content Addressable Memory,,TCAM)的硬件算法為主,。TCAM具有并行全相聯(lián)結(jié)構(gòu),一個時鐘周期就可以獲得匹配結(jié)果[3],。TCAM是由內(nèi)容可尋址寄存器(Content Addressable Memory,,CAM)發(fā)展而來。TCAM相比CAM來說,,每一個匹配位不僅可以存儲“0”或“1”,,還可以存儲“X”來進(jìn)行模糊匹配,匹配范圍更加廣泛,,匹配效率也更高,。盡管TCAM也存在功耗高、存儲量小等缺點,,但是通過分頁TCAM可以降低TCAM的功耗[4],,對TCAM匹配的規(guī)則集進(jìn)行語義等價變換可減少TCAM所需的資源[5],這些研究都彌補了TCAM器件的不足,。
根據(jù)軟硬件算法的優(yōu)缺點對比,,本文系統(tǒng)平臺采用TCAM作為數(shù)據(jù)匹配部分的關(guān)鍵器件。現(xiàn)場可編程門陣列(Field Programmable Gate Array,,F(xiàn)PGA)具有并行處理的優(yōu)勢,,且算法是在底層硬件上實現(xiàn),,相比多核等處理器減少了程序在操作系統(tǒng)上的運行時間,加快了處理速度,?;谝陨蟽?yōu)點,本文采用FPGA作為整體架構(gòu)的核心處理器件,。最終,,設(shè)計并實現(xiàn)了基于FPGA+TCAM架構(gòu)的網(wǎng)絡(luò)分流系統(tǒng),解決了傳統(tǒng)技術(shù)接入速率低,、匹配準(zhǔn)確性差的缺點,,實現(xiàn)了高速網(wǎng)絡(luò)信號快速準(zhǔn)確的分流過濾。
1系統(tǒng)硬件平臺設(shè)計
網(wǎng)絡(luò)流量分類系統(tǒng)的設(shè)計關(guān)鍵在于如何適應(yīng)高速網(wǎng)絡(luò)信號接入的高速率,。其次,,網(wǎng)絡(luò)中的信號是通過數(shù)據(jù)報文的形式進(jìn)行傳輸?shù)模瑢W(wǎng)絡(luò)信號進(jìn)行分類主要是在流的基礎(chǔ)上進(jìn)行,,而流指的是在超時約束下,,具有相同五元組(源IP,目的IP,,源端口號,,目的端口號,IP層協(xié)議號)信息的一組報文的集合,。如何進(jìn)行數(shù)據(jù)報文的流恢復(fù)和管理也是系統(tǒng)設(shè)計的關(guān)鍵之一,。再次,互聯(lián)網(wǎng)新技術(shù),、新應(yīng)用層出不窮,,網(wǎng)絡(luò)協(xié)議格式復(fù)雜,如何快速地實時更新匹配表項也是系統(tǒng)設(shè)計的難點之一,?;谝陨蠋讉€難點將網(wǎng)絡(luò)分流系統(tǒng)具體分為以下幾個模塊:高速網(wǎng)絡(luò)接入模塊、數(shù)據(jù)預(yù)處理單元,、流管理模塊,、匹配模塊、在線管理和深度分析模塊,。圖1是系統(tǒng)平臺的整體功能模塊劃分,。
系統(tǒng)平臺通過高速信號接入模塊將骨干網(wǎng)的高速光纖信號接入系統(tǒng)平臺,首先在預(yù)處理單元中對接入的數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗,、數(shù)據(jù)集成,、數(shù)據(jù)變換等預(yù)處理操作[1] ,然后在流管理單元將分片的數(shù)據(jù)進(jìn)行流恢復(fù),,獲得完整的流信息,。之后將流送入匹配模塊進(jìn)行匹配條目的對比命中操作,最后將命中的結(jié)果送到后端服務(wù)器進(jìn)行更深層次的數(shù)據(jù)分析和處理,。
1.1網(wǎng)絡(luò)信號接入模塊
當(dāng)前骨干網(wǎng)的傳輸速率普遍為10 Gb/s,,設(shè)計的系統(tǒng)平臺要兼容10 Gb/s及以下的網(wǎng)絡(luò)信號速率。因此,,該模塊采用集成化接口,,將10 Gb/s的網(wǎng)絡(luò)數(shù)據(jù)接入平臺。系統(tǒng)設(shè)計有4路接入端口,,接入速率高達(dá)40 Gb/s,,可應(yīng)對包括10G POS(IP over SDH)、10GE,、10G WAN等不同的網(wǎng)絡(luò)信號格式的收發(fā)處理,。
1.2預(yù)處理單元
互聯(lián)網(wǎng)的數(shù)據(jù)規(guī)模異常龐大,單單一條10 Gb/s的鏈路,,按全天平均30%的傳輸負(fù)荷,,每秒產(chǎn)生的流量數(shù)據(jù)為375 MB,一天的流量就要超過32 TB,。如此海量的數(shù)據(jù)對獲取,、存儲、查詢和實時分析都增加了很大的難度,。通過數(shù)據(jù)預(yù)處理可降低后續(xù)的分析規(guī)模,,提高效率。
系統(tǒng)選用FPGA來完成預(yù)處理操作,,其高速并行處理的特性非常適合系統(tǒng)預(yù)處理性能的需求,。FPGA還要完成對其他模塊的配置和管理工作。系統(tǒng)設(shè)計包括高速緩存,、管理網(wǎng)口,、交互接口等多種不同格式的接口模塊,因此,,系統(tǒng)選用Altera Stratix V系列FPGA芯片,。該芯片擁有專用接口可以滿足PCIExpress總線和4路高速接口的接入能力,并且擁有足夠數(shù)量的管腳進(jìn)行其他模塊的管理操作,。
通過編寫程序?qū)崿F(xiàn)數(shù)據(jù)報文的預(yù)處理以及對其他模塊的管理操作,。其中包括數(shù)據(jù)報文恢復(fù)、提取五元組信息,、剔除無關(guān)報文,;對TCAM表項的更新、寄存器動態(tài)配置以及對相應(yīng)操作的仲裁管理[6],;對高速緩存的控制和輸入輸出調(diào)度,;通過PCI Express接口與服務(wù)器通信完成數(shù)據(jù)流后續(xù)分發(fā)處理,;通過管理網(wǎng)口對匹配規(guī)則進(jìn)行在線管理和更新。
1.3流管理模塊
數(shù)據(jù)流的完整性對于匹配操作的準(zhǔn)確性十分重要,,在高速網(wǎng)絡(luò)中,,數(shù)據(jù)是以分組形式傳輸,每個IP包內(nèi)儲存部分?jǐn)?shù)據(jù),。系統(tǒng)為了還原完整的數(shù)據(jù)內(nèi)容就需要進(jìn)行流管理,,包括對數(shù)據(jù)的分片重組和報文亂序重組。流管理模塊緩存處理好的數(shù)據(jù)流,,并建立流表,。如果有新報文接入,就提取該報文的五元組信息,,用該五元組信息對現(xiàn)有流表進(jìn)行HASH運算,,判斷該報文是否屬于原緩存中的數(shù)據(jù)流。如果找到對應(yīng)的流則將該報文添加到該流內(nèi),;否則添加新流并更新流表,。這些操作都要對數(shù)據(jù)進(jìn)行緩存處理。
從系統(tǒng)硬件設(shè)計的穩(wěn)定性方面考慮,,接入速率最高為40 Gb/s,,高速緩存的容量要滿足40 Gb/8=5 GB的存儲空間,而且?guī)捯惨^40 Gb/s,。一般情況下緩存芯片位寬為64 bit,,雙倍速率讀寫,可獲得模塊的最低頻率為40 Gb/s/(64×2)=480 MHz,。因此,,從存儲容量和最低帶寬來考慮,系統(tǒng)設(shè)計有兩組緩存模塊,,頻率可達(dá)533 MHz,,其位寬為64 bit,滿足最低頻率要求,。單片緩存模塊的容量為4 GB,,在內(nèi)存總量上,兩組緩存模塊的容量為8 GB,,也遠(yuǎn)大于5 GB的內(nèi)存容量,。根據(jù)理論分析,該設(shè)計完全滿足40 Gb/s速率網(wǎng)絡(luò)信號的緩存要求,。
1.4匹配模塊
在完成數(shù)據(jù)流恢復(fù)以及預(yù)處理操作之后,,將數(shù)據(jù)流送入匹配模塊根據(jù)表項進(jìn)行匹配操作。TCAM內(nèi)部可存儲匹配表項,因此系統(tǒng)只要向TCAM輸入搜索的內(nèi)容,,就會將此內(nèi)容與匹配的表項進(jìn)行比較,,返回所需要的最優(yōu)項,獲得要執(zhí)行的動作命令地址,,反饋到FPGA中,。隨后FPGA就會根據(jù)得到的命令對匹配到的數(shù)據(jù)流進(jìn)行轉(zhuǎn)發(fā)分類操作,最終實現(xiàn)匹配模塊的功能,。
在系統(tǒng)硬件的開發(fā)中,TCAM的匹配規(guī)則將掉電丟失,,如果將其存儲在FPGA內(nèi)部,,又會占用大量FPGA的內(nèi)存資源。因此,,本文設(shè)計了存儲匹配規(guī)則的Flash模塊,,實行系統(tǒng)開機自動更新匹配規(guī)則,減少配置匹配規(guī)則的麻煩,。
1.5在線管理和深度處理模塊
深度處理功能是將初次匹配成功的數(shù)據(jù)包轉(zhuǎn)發(fā)至后臺服務(wù)器進(jìn)行更深層次的數(shù)據(jù)分類,,該功能主要由PCI Express接口完成[7]。為降低PCI Express總線的開發(fā)難度,,調(diào)用FPGA內(nèi)部專用的資源進(jìn)行開發(fā),,可配置成PCI Express2.0和PCI Express3.0。
PCI Express 2.0使用8b/10b編碼,,單通道速率達(dá)到5 Gb/s,,x8模式下,總線速率可以達(dá)到5 Gb×8b/10b×8=32 Gb/s,。PCI Express 3.0使用128b/130b編碼,,單通道速率達(dá)到8 Gb/s,x8模式下,,總線速率可以達(dá)到8 Gb×128b/130b×8=63.02 Gb/s,,除去數(shù)據(jù)包的開銷等冗余字節(jié),可以完成4路萬兆數(shù)據(jù)的線速傳輸,。
在線管理功能通過一個通信網(wǎng)口實現(xiàn),。平臺的配置和管理命令信息通過網(wǎng)口接入到系統(tǒng)平臺中,實現(xiàn)分流系統(tǒng)的在線配置和管理,。
2基于TCAM+FPGA的字符串匹配模塊設(shè)計
數(shù)據(jù)流的匹配功能是系統(tǒng)設(shè)計的關(guān)鍵,,本節(jié)進(jìn)行更為深入的分析和研究。
2.1硬件匹配原理
基于TCAM的流分類技術(shù)的基本處理流程如圖2所示,??珊唵蔚乩斫鉃閷⒘鞯臉?biāo)志信息輸送進(jìn)匹配轉(zhuǎn)發(fā)引擎,將其與不同匹配規(guī)則進(jìn)行逐條匹配對比,如果命中規(guī)則,,則返回相對應(yīng)的執(zhí)行動作,,分類控制器根據(jù)返回的動作對該數(shù)據(jù)流進(jìn)行轉(zhuǎn)發(fā)或者執(zhí)行其他操作。匹配操作一般所涉及的方面為數(shù)據(jù)包頭信息,,即五元組信息(源地址,、目的地址、源端口,、目的端口,、協(xié)議類型)。
2.2字符串匹配模塊設(shè)計
整個系統(tǒng)的匹配部分由FPGA與TCAM共同配合完成,,過濾的規(guī)則包括五元組信息以及指定位置的應(yīng)用層載荷信息等,。硬件采用Broadcom公司生產(chǎn)的Netlogic系列芯片以及Altera公司的Stratix V系列芯片完成整體系統(tǒng)的構(gòu)架設(shè)計。
根據(jù)TCAM和FPGA的結(jié)構(gòu)以及各總線完成的功能可以得到如圖3所示的硬件連接基本框圖,。其中數(shù)據(jù)總線負(fù)責(zé)匹配數(shù)據(jù)和表項的傳輸以及相關(guān)寄存器的配置,;指令總線負(fù)責(zé)輸入指令編碼;結(jié)果總線負(fù)責(zé)輸出匹配結(jié)果,,包括設(shè)備ID,、最高優(yōu)先級匹配索引等一系列信息。這些總線的管腳都連接到FPGA的通用I/O管腳上并進(jìn)行等長布線,?!?/p>
由于系統(tǒng)接入的速率較高,所以系統(tǒng)設(shè)計中要采用有效的措施提高網(wǎng)絡(luò)數(shù)據(jù)流的匹配過濾效率,。因此,,在算法中將匹配規(guī)則分為兩個部分進(jìn)行匹配,即協(xié)議描述部分和報文描述部分(協(xié)議描述部分完成數(shù)據(jù)流五元組信息匹配工作,,報文描述部分完成數(shù)據(jù)流應(yīng)用層載荷信息匹配工作),,這兩部分的匹配表項分塊存儲在TCAM中,以匹配表項的第一個比特位進(jìn)行區(qū)分,,“0”代表數(shù)據(jù)流將進(jìn)行協(xié)議描述表項的匹配,,“1”表示數(shù)據(jù)流將進(jìn)行報文描述表項的匹配。
具體操作流程如下:首先由TCAM進(jìn)行協(xié)議描述部分的信息匹配,,將數(shù)據(jù)流的五元組信息傳送至TCAM芯片進(jìn)行匹配操作,,如果命中TCAM中的規(guī)則,表明已經(jīng)確定數(shù)據(jù)流的協(xié)議特征,,然后將代表協(xié)議特征的協(xié)議動作地址(Protocol Action ID,,PActID)結(jié)果返回至FPGA中,如果關(guān)心該數(shù)據(jù)流中的應(yīng)用載荷信息,,則添加報文描述標(biāo)志位進(jìn)行二次匹配,,否則直接根據(jù)PActID的處理命令進(jìn)行處理,。在進(jìn)行報文描述的二次匹配時,將對特殊報文的應(yīng)用層關(guān)鍵信息進(jìn)行檢測,,以獲得更為準(zhǔn)確的數(shù)據(jù)流信息,,從而將該重要數(shù)據(jù)流分配至專用后端處理設(shè)備進(jìn)行精準(zhǔn)的分類分析。
3硬件平臺測試
根據(jù)上文的設(shè)計和分析,,實現(xiàn)了基于FPGA+TCAM架構(gòu)的網(wǎng)絡(luò)分流系統(tǒng),。其中包括40 Gb/s高速網(wǎng)絡(luò)信號接口、一個管理系統(tǒng)的通信網(wǎng)口,、8 GB緩存,、TCAM匹配模塊、PCI Express轉(zhuǎn)發(fā)處理接口以及必要的時鐘芯片,、管理接口和電源模塊,。
關(guān)于該系統(tǒng)的測試和評價指標(biāo)主要包括兩個方面,即硬件的捕獲效率和軟件的處理分析速度,。其評價因素包括以下幾項[8]:
(1)系統(tǒng)的吞吐率:分流系統(tǒng)在不丟包的情況下,,所能實時處理的網(wǎng)絡(luò)數(shù)據(jù)最大帶寬,,即系統(tǒng)的吞吐率。
?。?)系統(tǒng)的漏報率(False Negative,,F(xiàn)N):系統(tǒng)在一定時間內(nèi)線速處理捕獲的數(shù)據(jù),但由于系統(tǒng)繁忙而丟失數(shù)據(jù),,即系統(tǒng)會產(chǎn)生漏報,。若流A在系統(tǒng)繁忙時,沒有被系統(tǒng)識別為流A,,那么就存在漏報,。漏報率的定義就是沒有被識別出的流A占整個流量的百分比,即:
?。?)系統(tǒng)的更新性能:在數(shù)據(jù)流分類過程中,,規(guī)則的定義和更新是系統(tǒng)分類處理的重要環(huán)節(jié),過濾規(guī)則的定義要準(zhǔn)確,,更新過程要迅速,。
根據(jù)以上測試評價因素,設(shè)計了如圖4所示的硬件測試方案,。系統(tǒng)平臺接收來自VePAL TX300e測試儀發(fā)出的10G SDH信號,,通過接收模塊接收測試儀發(fā)出的網(wǎng)絡(luò)數(shù)據(jù),之后進(jìn)行一系列的匹配分類操作,,通過PCI Express接口將匹配的數(shù)據(jù)流轉(zhuǎn)發(fā)至服務(wù)器進(jìn)行更為深入的分析,。系統(tǒng)測試主要對吞吐率、漏報率、誤報率(體現(xiàn)匹配規(guī)則的設(shè)置合理性)進(jìn)行測試,,通過測試得到系統(tǒng)平臺的處理性能[6],。
硬件測試結(jié)果表明,網(wǎng)絡(luò)分流系統(tǒng)滿足總帶寬40 Gb/s的吞吐量,,漏報率和誤報率在系統(tǒng)可承受范圍之內(nèi),,總體性能達(dá)到設(shè)計要求。
4結(jié)論
本文設(shè)計并實現(xiàn)了一種基于FPGA+TCAM架構(gòu)的網(wǎng)絡(luò)分流系統(tǒng),,該分流設(shè)備通過測試可以滿足吞吐率等性能評價指標(biāo),。該平臺的研制彌補了傳統(tǒng)分流過濾系統(tǒng)接入帶寬低、處理效率低等缺點,。下一步的研究方向是通過對分類規(guī)則的統(tǒng)計分析,,得到匹配規(guī)則的最優(yōu)設(shè)置,實現(xiàn)匹配條目的壓縮,、分割,,以及通過對多報文快速并行處理來提升系統(tǒng)平臺的整體性能。
參考文獻(xiàn)
?。?] 汪立東,錢麗萍.網(wǎng)絡(luò)流量分類方法與實踐[M].北京:人民郵電出版社,2013.
?。?] 王勇,周晴倫,林寧,等.IP流分類器的設(shè)計與實現(xiàn)[J].電子科技大學(xué)學(xué)報,2007,36(6): 13621365.