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

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

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

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

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

 

 

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

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

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

 自定義接收模塊將接收的數(shù)據(jù)重新由發(fā)送模塊發(fā)送回PC機(jī)。數(shù)據(jù)傳輸率最高達(dá)1 000 Mb/s。
 本文以Altera StratixGX系列FPGA為平臺(tái),結(jié)合Marvell 88E1111網(wǎng)絡(luò)芯片,實(shí)現(xiàn)了千兆網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)。設(shè)計(jì)過(guò)程中采用SoPC技術(shù),利用Altera提供的千兆以太網(wǎng)IP核,完成FPGA系統(tǒng)無(wú)縫連接千兆以太網(wǎng),實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)采集。測(cè)試表明,該系統(tǒng)能有效、高速地滿足網(wǎng)絡(luò)管理系統(tǒng)的要求。
參考文獻(xiàn)
[1] 王宏,龔正虎.Hits和Holds:識(shí)別大象流的兩種算法[J].軟件學(xué)報(bào),2010(6):1392-1402.
[2] 李璇,敖光良.基于FPGA的千兆以太網(wǎng)設(shè)計(jì)[J].網(wǎng)絡(luò)安全技術(shù)與應(yī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)交換芯片的設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2006,23(3):80-82.
[6] Altera Corportion. Triple speed ethernet megacore function user guide[Z]. 2008.
[7] 徐欣,于紅旗. 基于FPGA嵌入式系統(tǒng)設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2005.
[8] 李蘭英.Nios II嵌入式軟核-SOPC設(shè)計(jì)原理及應(yīng)用[M].北京:航天航空出版社,2006.

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