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