《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的千兆網(wǎng)絡數(shù)據(jù)采集系統(tǒng)設計與實現(xiàn)
基于FPGA的千兆網(wǎng)絡數(shù)據(jù)采集系統(tǒng)設計與實現(xiàn)
來源:微型機與應用2011年第21期
朱 晴,吳 寧,顧薛平
(南京航空航天大學 電子信息工程學院,江蘇 南京 210016)
摘要: 介紹了網(wǎng)絡流量管理中的網(wǎng)絡數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)。以Altera StratixGX系列FPGA為平臺,結合Marvell 88E1111網(wǎng)絡芯片,完成了網(wǎng)絡數(shù)據(jù)采集系統(tǒng)。本設計采用SoPC技術,利用Altera提供的千兆以太網(wǎng)IP核,完成FPGA系統(tǒng)無縫連接千兆以太網(wǎng),實現(xiàn)網(wǎng)絡數(shù)據(jù)包采集。
Abstract:
Key words :

摘  要: 介紹了網(wǎng)絡流量管理中的網(wǎng)絡數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)。以Altera StratixGX系列FPGA為平臺,結合Marvell 88E1111網(wǎng)絡芯片,完成了網(wǎng)絡數(shù)據(jù)采集系統(tǒng)。本設計采用SoPC技術,利用Altera提供的千兆以太網(wǎng)IP核,完成FPGA系統(tǒng)無縫連接千兆以太網(wǎng),實現(xiàn)網(wǎng)絡數(shù)據(jù)包采集。
關鍵詞: 千兆以太網(wǎng);SoPC;MAC;PCS;PMA

 隨著互聯(lián)網(wǎng)的迅猛發(fā)展,對網(wǎng)絡管理的需求日益迫切,而流量監(jiān)測和統(tǒng)計分析是整個網(wǎng)絡管理的基礎。為了實現(xiàn)對網(wǎng)絡進行綜合管理,有必要及時全面地收集、管理網(wǎng)絡的流量信息,準確獲取網(wǎng)絡流量數(shù)據(jù),對網(wǎng)絡流量態(tài)勢進行分析,對網(wǎng)絡健康狀況及未來的發(fā)展趨勢作出準確判斷。然而,隨著網(wǎng)絡帶寬的增加和規(guī)模的擴大,大規(guī)模網(wǎng)絡流量采集面臨著數(shù)據(jù)規(guī)模龐大和數(shù)據(jù)到達速度過快的挑戰(zhàn)。為了克服上述困難,通常采用硬件實現(xiàn)完成流量采集功能[1]。當前采用硬件實現(xiàn)的流量采集方法(如Cisco的NetFlow或者InMon的sFlow)都是基于對數(shù)據(jù)報文周期性地采樣來進行流量采集,這種方法存在處理速度緩慢、統(tǒng)計結果不精確、實現(xiàn)代價大、單個流處理訪存次數(shù)多等缺點。
 隨著FPGA的發(fā)展,其內部資源日益豐富,速度和性能大大提高,特別是內部嵌入了大量IP核[2],這些使得在FPGA上進行高速網(wǎng)絡流數(shù)據(jù)的采集和分析成為可能。流量管理系統(tǒng)主要包含網(wǎng)絡數(shù)據(jù)采集系統(tǒng)、網(wǎng)絡數(shù)據(jù)統(tǒng)計與分析和網(wǎng)絡數(shù)據(jù)分流三部分,如圖1所示。

 本系統(tǒng)基于FPGA,獲取RJ45端口的網(wǎng)絡數(shù)據(jù),然后對數(shù)據(jù)進行流量統(tǒng)計和分析,最后根據(jù)分析結果,將網(wǎng)絡數(shù)據(jù)包進行分流再重新轉發(fā)回網(wǎng)絡中。
1 網(wǎng)絡數(shù)據(jù)采集系統(tǒng)總體設計
 本文基于FPGA,重點研究了前端網(wǎng)絡數(shù)據(jù)采集系統(tǒng),該系統(tǒng)總體框圖如圖2所示,網(wǎng)絡數(shù)據(jù)由RJ45端口接入系統(tǒng),經(jīng)Marvell 88E1111和千兆以太網(wǎng)核的解析,獲取完整的數(shù)據(jù)包,暫存在指定地址的片內RAM中進行統(tǒng)計和分析。

 網(wǎng)絡數(shù)據(jù)采集系統(tǒng)主要通過Marvel 88E1111物理層芯片和Altera公司的千兆以太網(wǎng)IP硬核來實現(xiàn),兩者通過標準的SGMII接口連接。
 在發(fā)送數(shù)據(jù)的過程中,88E1111物理層芯片將FPGA的千兆以太網(wǎng)IP硬核產(chǎn)生的高速串行數(shù)據(jù)流經(jīng)RJ45以太網(wǎng)口,由5類雙絞線傳遞出去。在接收數(shù)據(jù)的過程中,88E1111物理層芯片檢測從5類雙絞線傳遞進來的電信號,如果有有效電信號到來,將高速串行數(shù)據(jù)流傳遞給千兆以太網(wǎng)MAC核。
2 物理層器件88E1111
 Altera公司的千兆以太網(wǎng)硬核默認支持的物理層器件有支持10/100 Mb/s的National DP83848C,支持10/100/1000 Mb/s的National DP83865以及支持雙物理層和10/100/1000 Mb/s的Marvell 88E1111。
 Marvell公司的物理層芯片88E1111是一款高性能的芯片,支持包括GMII、RGMII、SGMII、TBI、RTBI等接口的MAC層和物理層的連接方式,可以直接接入千兆以太網(wǎng)MAC或交換機端口,10/100/1000 Mb/s的物理傳輸層的媒介,光纖傳輸線連接方式以及雙絞線的連接方式[3]。88E1111支持的最高速率為1.25 GHz,I/O電平標準為3.3 V LVTTL。系統(tǒng)選擇Marvell 88E1111作為PHY器件。
3 千兆以太網(wǎng)
 以太網(wǎng)技術是一種廣泛應用的網(wǎng)絡技術,千兆以太網(wǎng)在兼容原有以太網(wǎng)技術的基礎上進行了一系列改進,網(wǎng)絡數(shù)據(jù)傳輸速率得到了大幅度提高。特別是IEEE802.3ab(1 000Based-T)千兆網(wǎng)標準的出臺,將5類非屏蔽雙絞線應用在千兆網(wǎng)中,使得網(wǎng)絡性能在原有布線基礎上獲得大幅度提高[4]。如今,千兆網(wǎng)已經(jīng)發(fā)展成為主流的網(wǎng)絡技術。
千兆網(wǎng)兼容了原來以太網(wǎng)標準所規(guī)定的全部技術規(guī)范,其中包括CSMA/CD協(xié)議、以太網(wǎng)幀、全雙工、流量控制等。千兆網(wǎng)的標準化結構包括介質訪問控制(MAC)、物理編解碼(PCS)和物理介質接入(PMA)三個主要部分。
3.1 千兆以太網(wǎng)FPGA硬核
 Altera提供可參數(shù)化的千兆以太網(wǎng)IP核解決方案,該方案可在Altera的CycloneII、CycloneIII、Stratix等系列FPGA上工作,可配置使其包含MAC、PCS和PMA模塊中的一種或多種,選擇相應的接口標準[5]。
構建千兆以太網(wǎng)系統(tǒng)必須先了解MAC、PCS和PMA三個模塊的功能及其帶來的影響。MAC模塊主要用于全雙工模式下的流量控制及MAC幀的發(fā)送和接收,其主要操作有MAC幀的封裝與解包以及錯誤檢測。MAC模塊通過MII/GMII/RGMII接口與PHY器件或者PCS模塊進行通信,同時為用戶提供了基于Aalon-ST的8 bit/32 bit接口[6]。
 PCS和PMA分別代表物理層的物理編碼子層和物理介質接入層,這兩個模塊在配置過程中是可選的。PCS模塊專門負責信道的編解碼、糾錯和擾碼等,可以通過GMII或MII接口訪問,同時提供了TBI接口與物理介質接入層進行通信。PMA模塊主要功能是實現(xiàn)數(shù)據(jù)在物理線路上串\并或并\串轉換,同時連接外部物理介質相關(PMD)的設備,可以驅動銅線或光纖網(wǎng)路進行工作,與PMD設備接口為1.25 Gb/s串行口或者SGMII接口。整個千兆以太網(wǎng)系統(tǒng)模塊關系圖如圖3所示。

 

 

 SGMII是1.25 Gb/s串行數(shù)據(jù)接口,根據(jù)表1內容選定系統(tǒng)中千兆以太網(wǎng)IP核包含MAC、PCS和PMA三個模塊。
3.3 千兆以太網(wǎng)IP核的配置
 Altera提供千兆以太網(wǎng)控制器IP核,通過配置界面可將IP核配置為所需模式并進行IP核參數(shù)設置,配置界面分為以下4個配置頁面[6]。
 (1)Core Configuration:核配置選項,配置以太網(wǎng)功能模塊,是否包含PCS模塊、FIFO模塊,配置接口類型、端口數(shù)等。系統(tǒng)配置包含PCS和FIFO模塊,同時配置PCS接口類型為LVDS I/O(SGMII要求)。
 (2)MAC Options:MAC配置選項,配置MAC模塊功能,系統(tǒng)配置包含MDIO模塊。
 (3)FIFO Options:FIFO存儲器選項,可設置FIFO存儲器類型以及存儲器數(shù)據(jù)長度。
 (4)PCS/SGMII Options:物理介質接入層模塊配置頁面,配置物理層,系統(tǒng)配置包含SGMII橋接口。
4 網(wǎng)絡數(shù)據(jù)采集系統(tǒng)設計
 網(wǎng)絡數(shù)據(jù)采集系統(tǒng)是基于Altera強大的SoPC Builder開發(fā)工具來完成系統(tǒng)設計。SoPC Builder 是一個軟件工具,它屬于一種基于IP或平臺的設計方法。平臺包括Altera的Nios處理器、Avalon總線以及片內外存儲器。利用SoPC Builder,用戶可以很方便地將各種IP模塊通過Avalon總線連接起來,形成一個完整的系統(tǒng)[7]。SoPC Builder已包含一些常用的外設IP模塊,用戶也可自定義外設IP。
Avalon總線標準規(guī)定了Avalon-MM(Memory Mapped)和Avalon-ST(Strming)兩種接口。千兆以太網(wǎng)接口邏輯采用Avalon總線作為與其他模塊的互聯(lián)總線[8]。
4.1 系統(tǒng)介紹
 為更好地實現(xiàn)數(shù)據(jù)鏈路和控制鏈路的分離,提高系統(tǒng)的執(zhí)行效率,千兆以太網(wǎng)模塊通過Avalon-ST接口和用戶程序進行網(wǎng)絡數(shù)據(jù)通信,以提升數(shù)據(jù)流傳遞過程中的效率。同時,系統(tǒng)自定義網(wǎng)絡數(shù)據(jù)接收模塊將千兆以太網(wǎng)解析的數(shù)據(jù)從Avalon-ST接口讀出,并存入指定地址處暫存,等待用戶程序處理。自定義網(wǎng)絡數(shù)據(jù)發(fā)送模塊將處理好的數(shù)據(jù)從RAM中讀出千兆以太網(wǎng)的Avalon-ST接口。
系統(tǒng)自定義千兆以太網(wǎng)控制模塊,通過MAC核的Avalon-MM接口實現(xiàn)對MAC核、PCS和物理芯片的控制。系統(tǒng)詳細結構圖如圖5所示。

4.2 控制模塊設計
 千兆以太網(wǎng)采用Avalon-MM從端口作為控制接口,接口提供了8 bit地址信號線,32 bit的讀寫控制信號,同時還提供了一些狀態(tài)信號。系統(tǒng)通過該控制接口,對MAC、PCS和外部物理器件進行寄存器初始化,實現(xiàn)對MAC、PCS和外部PHY的控制。
 自定義Control模塊是一個Avalon-MM主端口模塊,通過Avalon-MM總線接入MAC控制接口。在Control模塊內部定義了一個狀態(tài)機,如圖6所示,依次實現(xiàn)對千兆以太網(wǎng)各模塊的控制。

 Control模塊首先初始化外部PHY(Marvell 88E1111)的寄存器,啟動外部物理器件;然后,初始化PCS寄存器,實現(xiàn)PCS模塊的幀同步;最后,對MAC寄存器初始化,設置其工作模式并啟動MAC開始工作。
初始化PHY的寄存器是通過MDC/MDIO端口實現(xiàn)的,MDC/MDIO是一個二線的控制端口,MDC是控制時鐘,MDIO是串行的輸入輸出數(shù)據(jù)。自定義Control模塊通過MAC的控制端口,對PHY寄存器初始化。初始化信號通過MAC模塊的翻譯,最終通過MDC/MDIO端口送入到PHY寄存器中。
 初始化PCS和MAC的寄存器都是直接通過Avalon-MM從端口映射實現(xiàn)的。
4.3 自定義收發(fā)模塊設計
 千兆以太網(wǎng)解析模塊通過Avalon-ST接口和用戶程序進行通信。Avalon-ST接口本質上已經(jīng)不同于Avalon-MM接口,它是一種非總線形式的連接,給設備之間提供了總線之外的點對點專用連接,以提升數(shù)據(jù)流傳遞過程中的效率。
 Avalon-ST提供的點到點數(shù)據(jù)傳輸不能直接將網(wǎng)絡數(shù)據(jù)流按網(wǎng)絡數(shù)據(jù)包為單位傳輸?shù)焦潭ㄎ恢谩⒏骶W(wǎng)絡數(shù)據(jù)以包為單位送到RAM指定地址存儲,更方便用戶對網(wǎng)絡數(shù)據(jù)進行統(tǒng)計處理。
 因此,系統(tǒng)自定義網(wǎng)絡數(shù)據(jù)接收模塊將千兆以太網(wǎng)解析的數(shù)據(jù)從Avalon-ST接口讀出,并存入指定地址處暫存,等待用戶程序處理。自定義網(wǎng)絡數(shù)據(jù)發(fā)送模塊將處理好的數(shù)據(jù)從RAM中讀出,并送入千兆以太網(wǎng)的Avalon-ST接口。
5 測試及結果分析
 為了測試千兆以太網(wǎng)的性能,本文采用Stratix IV FPGA與PC機通信的方式對千兆以太網(wǎng)的通信速率進行測試。PC機的硬件平臺為Intel奔騰3.0 GHz CPU,2 GB內存,Broadcom netxtreme gigabit ethernet網(wǎng)卡,TCP/IP最大傳輸單元大小為1 500。測試方法為PC機向StratixIV發(fā)送4 GB的測試數(shù)據(jù),經(jīng)千兆位解析后,重新發(fā)送返回至PC機。測試系統(tǒng)結構圖如圖7所示。

 自定義接收模塊將接收的數(shù)據(jù)重新由發(fā)送模塊發(fā)送回PC機。數(shù)據(jù)傳輸率最高達1 000 Mb/s。
 本文以Altera StratixGX系列FPGA為平臺,結合Marvell 88E1111網(wǎng)絡芯片,實現(xiàn)了千兆網(wǎng)絡數(shù)據(jù)采集系統(tǒng)。設計過程中采用SoPC技術,利用Altera提供的千兆以太網(wǎng)IP核,完成FPGA系統(tǒng)無縫連接千兆以太網(wǎng),實現(xiàn)網(wǎng)絡數(shù)據(jù)采集。測試表明,該系統(tǒng)能有效、高速地滿足網(wǎng)絡管理系統(tǒng)的要求。
參考文獻
[1] 王宏,龔正虎.Hits和Holds:識別大象流的兩種算法[J].軟件學報,2010(6):1392-1402.
[2] 李璇,敖光良.基于FPGA的千兆以太網(wǎng)設計[J].網(wǎng)絡安全技術與應用,2008(5):63-64.
[3] Marvell. 88E1111 Data Sheet Integrated 10/100/1000 Ultra Gigabit Ethernet Transceiver[Z]. 2004-11
[4] IEEE802.3.Part3:Carrier sense multiple access with collision detection(CSMA/CD) acess method and physical layer specification[S],2005.
[5] 柳利軍,熊良芳.基于FPGA的千兆以太網(wǎng)交換芯片的設計[J].微電子學與計算機,2006,23(3):80-82.
[6] Altera Corportion. Triple speed ethernet megacore function user guide[Z]. 2008.
[7] 徐欣,于紅旗. 基于FPGA嵌入式系統(tǒng)設計[M].北京:機械工業(yè)出版社,2005.
[8] 李蘭英.Nios II嵌入式軟核-SOPC設計原理及應用[M].北京:航天航空出版社,2006.

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。