專利名稱:10g網(wǎng)絡(luò)性能測(cè)試儀流量接收、抓取和統(tǒng)計(jì)電路組件的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于高速網(wǎng)絡(luò)及其網(wǎng)絡(luò)設(shè)備性能測(cè)試中網(wǎng)絡(luò)性能測(cè)試技術(shù)領(lǐng)域。
背景技術(shù):
網(wǎng)絡(luò)性能測(cè)試是指測(cè)試網(wǎng)絡(luò)系統(tǒng)和網(wǎng)絡(luò)設(shè)備的性能,并對(duì)網(wǎng)絡(luò)系統(tǒng)和網(wǎng)絡(luò)設(shè)備的性能進(jìn)行評(píng)價(jià)。性能測(cè)試關(guān)注被測(cè)對(duì)象的具體性能指標(biāo),如吞吐量、延遲、丟失率等,是準(zhǔn)確地評(píng)價(jià)在不同網(wǎng)絡(luò)負(fù)載下被測(cè)網(wǎng)絡(luò)或網(wǎng)絡(luò)設(shè)備的性能的一種重要手段。測(cè)試系統(tǒng)完成對(duì)被測(cè)網(wǎng)絡(luò)或被測(cè)設(shè)備的測(cè)試功能,由被測(cè)設(shè)備(DUTDevice Under Test)、測(cè)試執(zhí)行器(也稱為“測(cè)試儀”)和測(cè)試監(jiān)控器(也稱為“監(jiān)控機(jī)”)這三部分組成。測(cè)試儀實(shí)現(xiàn)測(cè)試端口,完成測(cè)試的基本功能,包括測(cè)試流量的產(chǎn)生和接收、測(cè)試統(tǒng)計(jì)量的測(cè)量、路由報(bào)文的產(chǎn)生和報(bào)文截取等。在高速網(wǎng)絡(luò)性能測(cè)試中,一般用PC機(jī)作為測(cè)試監(jiān)控器,測(cè)試監(jiān)控器也稱為“監(jiān)控機(jī)”,提供用戶交互界面,包括測(cè)試參數(shù)的設(shè)定、測(cè)試結(jié)果的分析和顯示等;在網(wǎng)絡(luò)性能測(cè)試中,采用主動(dòng)測(cè)量方法,測(cè)試儀主動(dòng)地生成和發(fā)送測(cè)試流量,經(jīng)過(guò)被測(cè)設(shè)備轉(zhuǎn)發(fā)回到測(cè)試儀,測(cè)試儀分析測(cè)試流量,從而得出網(wǎng)絡(luò)或網(wǎng)絡(luò)設(shè)備的性能指標(biāo)。流量接收、抓取與統(tǒng)計(jì)電路組件是測(cè)試儀的重要組成部分,完成測(cè)試流量的接收、抓取和統(tǒng)計(jì)功能,實(shí)現(xiàn)相關(guān)測(cè)試對(duì)象性能指標(biāo)的測(cè)試。
在國(guó)內(nèi)外,測(cè)試流量接收、抓取和統(tǒng)計(jì)的實(shí)現(xiàn)有硬件和軟件二種方法。單純用軟件來(lái)實(shí)現(xiàn)測(cè)試流量接收、抓取和統(tǒng)計(jì),速率較低且實(shí)時(shí)性太差,無(wú)法滿足高速網(wǎng)絡(luò)或網(wǎng)絡(luò)設(shè)備的性能測(cè)試需求,在10G網(wǎng)絡(luò)條件下,唯有采用硬件方法實(shí)現(xiàn)才能達(dá)到rfc1242、rfc2544規(guī)定的性能測(cè)試要求。而硬件方法實(shí)現(xiàn)也可采用專用集成電路(ASIC)器件來(lái)實(shí)現(xiàn),只是ASIC器件一旦設(shè)計(jì)成型,內(nèi)部邏輯和功能就無(wú)法改變,升級(jí)性和可擴(kuò)展性較差。因此,我們采用FPGA技術(shù)來(lái)實(shí)現(xiàn)測(cè)試流量的接收、抓取和統(tǒng)計(jì)。這目前在國(guó)內(nèi)外各類文獻(xiàn)中還未見(jiàn)有任何報(bào)道。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一個(gè)可實(shí)時(shí)高速地實(shí)現(xiàn)測(cè)試流量接收、抓取和統(tǒng)計(jì)且升級(jí)性和可擴(kuò)展性較好的10G網(wǎng)絡(luò)性能測(cè)試儀流量接收、抓取和統(tǒng)計(jì)電路組件。
本發(fā)明的特征在于它由以下各個(gè)電路部分組成APL4 IPCore接收器簡(jiǎn)稱IPCore電路,它的數(shù)據(jù)輸入端與外部的幀控制器即Framer的相應(yīng)輸出端相連;B數(shù)據(jù)分路電路,它的轉(zhuǎn)換為FPGA時(shí)序的數(shù)據(jù)輸入端與上述IPCore電路的相應(yīng)輸出端相連;C協(xié)議幀上交電路,它的數(shù)據(jù)包輸入端與上述數(shù)據(jù)分路電路相應(yīng)的輸出端相連;D數(shù)據(jù)分析預(yù)處理電路,它的數(shù)據(jù)包輸入端與上述數(shù)據(jù)分路電路的相應(yīng)輸出端相連,以便對(duì)所接收的數(shù)據(jù)包作預(yù)處理操作;E數(shù)據(jù)包抓取電路,它的數(shù)據(jù)包輸入端與上述數(shù)據(jù)分析預(yù)處理電路的相應(yīng)輸出端相連,以便對(duì)數(shù)據(jù)包進(jìn)行抓?。煌瑫r(shí)它的SRAM數(shù)據(jù)端口與外部SRAM相應(yīng)端口互連;F因特網(wǎng)信息包搜索協(xié)議包即ping包的統(tǒng)計(jì)電路,它的數(shù)據(jù)包輸入端與上述數(shù)據(jù)分析預(yù)處理電路的相應(yīng)輸出端相連,以便完成ping包的統(tǒng)計(jì)工作,其中包括總包數(shù)、總延遲和當(dāng)前延遲的統(tǒng)計(jì);G流統(tǒng)計(jì)電路,它的數(shù)據(jù)流輸入端與上述數(shù)據(jù)分析預(yù)處理電路的相應(yīng)輸出端相連,以便實(shí)現(xiàn)對(duì)數(shù)據(jù)流的性能狀況的統(tǒng)計(jì);H協(xié)議幀存儲(chǔ)器,它的協(xié)議幀輸入端與上述協(xié)議幀上交電路的相應(yīng)輸出端相連;I流統(tǒng)計(jì)結(jié)果存儲(chǔ)器共5個(gè),它們的數(shù)據(jù)端口分別與上述流統(tǒng)計(jì)電路的相應(yīng)端口互連;JCPU接口電路,它的各輸出端分別與上述數(shù)據(jù)包抓取電路、數(shù)據(jù)分析預(yù)處理電路、協(xié)議幀上交電路、流統(tǒng)計(jì)電路的相應(yīng)輸出端相連;CPU接口電路的各輸入端與上述數(shù)據(jù)包抓取電路、ping包統(tǒng)計(jì)電路、流統(tǒng)計(jì)電路、各個(gè)流統(tǒng)計(jì)結(jié)果存儲(chǔ)器、協(xié)議幀存儲(chǔ)器的相應(yīng)輸出端相連;同時(shí),上述CPU接口電路還有一個(gè)PORTX即通信接口收發(fā)的與外部互連的端口;其中,數(shù)據(jù)分路電路B包括B1輸入寄存器,它的數(shù)據(jù)包輸入端與上述IPCore電路的相應(yīng)輸出端相連;B2第一、第二輸出寄存器,即輸出寄存器1、2,它們的數(shù)據(jù)包輸入端分別與上述輸入寄存器的相應(yīng)輸出端相連;其中協(xié)議幀上交電路C包括C1協(xié)議幀篩選電路,包括C1a幀類型判別邏輯電路,它的數(shù)據(jù)包輸入端與上述數(shù)據(jù)分路電路中第2輸出寄存器的相應(yīng)輸出端相連;C1b數(shù)據(jù)鎖存器,它的使能信號(hào)輸入端、幀數(shù)據(jù)輸入端分別與上述幀類型判別邏輯電路的相應(yīng)輸出端相連;C2有效數(shù)據(jù)檢測(cè)邏輯電路,它的幀數(shù)據(jù)輸入端與上述協(xié)議幀篩選電路中的數(shù)據(jù)鎖存器的相應(yīng)輸出端相連;
C3數(shù)據(jù)寄存器,它的數(shù)據(jù)輸入端與上述有效數(shù)據(jù)檢測(cè)邏輯電路的輸出端相連;C4存儲(chǔ)空間計(jì)數(shù)器,上述有效數(shù)據(jù)檢測(cè)邏輯電路輸出的計(jì)數(shù)使能信號(hào)即有效信號(hào)經(jīng)加1計(jì)數(shù)器后送往上述存儲(chǔ)空間計(jì)數(shù)器的相應(yīng)輸入端,加1后的值送往上述加1計(jì)數(shù)器;C5空間閾值寄存器,它的配置值輸入端與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;C6時(shí)間閾值寄存器,它的配置值輸入端與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;C7內(nèi)部時(shí)鐘計(jì)數(shù)器,每個(gè)時(shí)鐘周期計(jì)數(shù)器加1;C8第一比較器,它的兩個(gè)輸入端分別與上述空間閾值寄存器、存儲(chǔ)空間計(jì)數(shù)器的相應(yīng)輸出端相連;C9第二比較器,它的兩個(gè)輸入端分別與上述時(shí)間閾值寄存器、內(nèi)部時(shí)鐘計(jì)數(shù)器的兩個(gè)輸出端相連;C10中斷清除寄存器,它的中斷清除信號(hào)輸入端與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;它的兩個(gè)清零信號(hào)輸出端分別與上述存儲(chǔ)空間計(jì)數(shù)器、內(nèi)部時(shí)鐘計(jì)數(shù)器的相應(yīng)輸入端相連;C11中斷控制邏輯電路,它的兩個(gè)中斷生成信號(hào)輸入端分別與上述第一、第二比較器的相應(yīng)輸出端相連,它的中斷清除信號(hào)輸入端與上述中斷清除寄存器的相應(yīng)輸出端相連;上述C2~C12各個(gè)電路共同組成中斷電路,把從上述協(xié)議幀篩選電路C1送來(lái)的協(xié)議幀通過(guò)上述數(shù)據(jù)寄存器C3存儲(chǔ)于上述協(xié)議幀存儲(chǔ)器H,然后由上述中斷控制邏輯電路的中斷請(qǐng)求方式通過(guò)上述用J表示的CPU接口電路的PORTX輸出提交給上層軟件處理;其中,上述數(shù)據(jù)分析預(yù)處理電路D包括D1端口計(jì)數(shù)電路完成端口統(tǒng)計(jì)和數(shù)據(jù)的轉(zhuǎn)發(fā)操作,它包括D1a幀數(shù)與字節(jié)數(shù)計(jì)數(shù)邏輯電路,一個(gè)輸入端與上述數(shù)據(jù)分路電路中第1輸出寄存器的相應(yīng)輸出端相連;D1b幀數(shù)計(jì)數(shù)器,上述幀數(shù)與字節(jié)數(shù)計(jì)數(shù)邏輯電路的幀數(shù)值輸出端經(jīng)加1加法器后與該幀數(shù)計(jì)數(shù)器的輸入端相連,加1后幀數(shù)計(jì)數(shù)值又送回上述幀數(shù)與字節(jié)數(shù)計(jì)數(shù)邏輯電路,同時(shí)又送往上述用J表示的CPU接口電路;D1c字節(jié)數(shù)計(jì)數(shù)器,上述幀數(shù)與字節(jié)數(shù)計(jì)數(shù)邏輯電路的字節(jié)數(shù)輸出端經(jīng)過(guò)一個(gè)+α加法器后與該字節(jié)數(shù)計(jì)數(shù)器的輸入端相連,+α后的字節(jié)數(shù)又送往上述幀數(shù)與字節(jié)數(shù)計(jì)數(shù)邏輯電路;同時(shí),又送往上述用J表示的CPU接口電路的;α值是一個(gè)設(shè)定值;D2協(xié)議幀過(guò)濾電路,它把接收到的幀中所有協(xié)議幀過(guò)濾掉,它包括D2a幀類型判別邏輯電路,它的輸入端與上述端口計(jì)數(shù)電路中的幀數(shù)與字節(jié)數(shù)計(jì)數(shù)邏輯電路的相應(yīng)輸出端相連;D2b數(shù)據(jù)鎖存器,它的數(shù)據(jù)輸入端與使能信號(hào)輸入端分別與上述幀類型判別邏輯電路D2a的相應(yīng)輸出端相連;D3幀頭剝離電路,它把上級(jí)電路輸出的PPP數(shù)據(jù)幀或MAC幀幀頭去除,包括D3a數(shù)據(jù)緩沖器一,其輸入端接上述協(xié)議幀過(guò)濾電路中數(shù)據(jù)鎖存器的輸出端;D3b數(shù)據(jù)緩沖器二,其輸入端接上述數(shù)據(jù)緩沖器一的輸出端;D3c數(shù)據(jù)字拼接控制狀態(tài)機(jī),它的兩個(gè)輸入端分別接上述數(shù)據(jù)緩沖器一、二的相應(yīng)輸出端;D4流與ping數(shù)據(jù)標(biāo)記電路,它檢查每一個(gè)數(shù)據(jù)包是否帶有流標(biāo)簽,再在邊帶信息上作相應(yīng)標(biāo)記,即流標(biāo)記信號(hào)str和ping包標(biāo)記信號(hào)png,它包括D4a流與ping數(shù)據(jù)判別邏輯電路,它的輸入端接上述幀頭剝離電路中數(shù)據(jù)字拼接控制狀態(tài)機(jī)的相應(yīng)輸出端;D4b4拍延遲寄存器,其輸入端接上述流與ping數(shù)據(jù)判別邏輯電路的輸出端;D5背景流過(guò)濾電路,它對(duì)流標(biāo)簽中用可選項(xiàng)域標(biāo)記的背景流進(jìn)行過(guò)濾,包括D5a背景流判別邏輯電路,其輸入端與上述流與ping數(shù)據(jù)標(biāo)記電路中4拍延遲寄存器的輸出端相連;同時(shí),還有兩個(gè)輸入端與上述流與ping數(shù)據(jù)判別邏輯電路中的流標(biāo)記信號(hào)str、ping包標(biāo)記信號(hào)png相連;D5b數(shù)據(jù)鎖存器,它的數(shù)據(jù)輸入端、str信號(hào)輸入端、png信號(hào)輸入端與使能信號(hào)輸入與上述背景流判別邏輯電路的相應(yīng)輸出端相連;D6錯(cuò)誤包標(biāo)記電路,它對(duì)接收到的每一個(gè)IPv4包進(jìn)行頭校驗(yàn)和計(jì)算并根據(jù)校驗(yàn)和是否有誤,在該數(shù)據(jù)包邊帶信息處加上相應(yīng)標(biāo)記,即校驗(yàn)和標(biāo)記chk,正確為0,錯(cuò)誤為1,并進(jìn)行校驗(yàn)和出錯(cuò)的包數(shù)的統(tǒng)計(jì),它包括D6a校驗(yàn)和檢查邏輯電路,它的數(shù)據(jù)、str信號(hào)、png信號(hào)輸入端分別與上述背景流過(guò)濾電路中數(shù)據(jù)鎖存器的相應(yīng)輸出端相連;D6b錯(cuò)誤包計(jì)數(shù)器,上述校驗(yàn)和檢查邏輯電路的輸出端經(jīng)一個(gè)加1加法器后與該錯(cuò)誤包計(jì)數(shù)器的輸入端相連,加1后的錯(cuò)誤包數(shù)送回校驗(yàn)和檢查邏輯電路,同時(shí)送往上述用J表示的CPU接口電路;D7路由錯(cuò)誤計(jì)數(shù)電路,它判別每一個(gè)接收到的數(shù)據(jù)包是否發(fā)生路由錯(cuò)誤,加上相應(yīng)邊帶信息即路由錯(cuò)誤標(biāo)記mis,并進(jìn)行路由錯(cuò)誤包的計(jì)數(shù);同時(shí)把數(shù)據(jù)分三路轉(zhuǎn)發(fā),把加好邊帶信息的數(shù)據(jù)分別送往下一個(gè)數(shù)據(jù)包抓取電路、流統(tǒng)計(jì)電路及ping包統(tǒng)計(jì)電路;所述路由錯(cuò)誤統(tǒng)計(jì)電路包括D7a目的端口檢查邏輯電路,它的數(shù)據(jù)輸入端、str信號(hào)輸入端、png信號(hào)輸入端和chk信號(hào)輸入端分別與上述錯(cuò)誤包計(jì)數(shù)電路D6中校驗(yàn)和檢查邏輯電路的相應(yīng)輸出端相連,而數(shù)據(jù)包的本地端口號(hào)輸入端與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;D7b路由錯(cuò)計(jì)數(shù)器,上述目的端口檢查邏輯電路的一個(gè)輸出端經(jīng)過(guò)一個(gè)加1加法器后與該錯(cuò)誤包計(jì)數(shù)器的相應(yīng)輸入端相連,再把加1后的路由錯(cuò)誤包數(shù)返回上述目的端口檢查邏輯電路;D7c4拍延遲寄存器,它的數(shù)據(jù)輸入端、str信號(hào)輸入端、png信號(hào)輸入端、chk信號(hào)輸入端分別與上述目的端口檢查邏輯電路的相應(yīng)輸出端相連;D7d輸出鎖存器一,它的數(shù)據(jù)包輸入端、使能信號(hào)str信號(hào)輸入端分別與上述4拍延遲寄存器的相應(yīng)輸出端相連;該鎖存器一的輸出端與上述流統(tǒng)計(jì)電路G的相應(yīng)輸入端相連;D7e輸出鎖存器二,它的數(shù)據(jù)輸入端、使能信號(hào)png信號(hào)分別與上述4拍延遲寄存器的相應(yīng)輸出端相連;該鎖存器二的輸出端與上述ping包統(tǒng)計(jì)電路的輸入端相連;其中,上述數(shù)據(jù)包抓取電路對(duì)數(shù)據(jù)分析預(yù)處理電路送來(lái)的數(shù)據(jù)執(zhí)行數(shù)據(jù)包抓取操作,它包括E1IP地址匹配電路,它對(duì)輸入數(shù)據(jù)包進(jìn)行源、目的地址的匹配性檢查,并在邊帶信息上加上相應(yīng)標(biāo)記即源地址匹配信號(hào)sip、目的地址匹配信號(hào)dip后轉(zhuǎn)發(fā)給下級(jí)電路,它包括E1aIP地址匹配邏輯電路,它的數(shù)據(jù)輸入端、校驗(yàn)和標(biāo)記chk輸入端分別與上述路由錯(cuò)誤計(jì)數(shù)電路D7中的4拍延遲寄存器D7c的相應(yīng)輸出端相連,它的路由錯(cuò)誤標(biāo)記mis信號(hào)輸入端與上述目的端口檢查邏輯電路D7a的相應(yīng)輸出端相連;該IP地址匹配邏輯電路的目的IP地址及匹配規(guī)則、源IP地址及匹配規(guī)則輸入端分別與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;E1b3拍延遲寄存器,它的數(shù)據(jù)輸入端、chk信號(hào)輸入端、mis信號(hào)輸入端分別與上述IP地址匹配邏輯電路的相應(yīng)輸出端相連;E2包頭協(xié)議與長(zhǎng)度字段匹配電路,它對(duì)接收到的數(shù)據(jù)包進(jìn)行協(xié)議號(hào)、長(zhǎng)度的匹配性檢查,并在數(shù)據(jù)包的邊帶信息上加上相應(yīng)標(biāo)記即協(xié)議號(hào)匹配信號(hào)pro、長(zhǎng)度1匹配信號(hào)len1、長(zhǎng)度2匹配信號(hào)len2后轉(zhuǎn)發(fā)給下一級(jí)電路,它包括E2a包頭協(xié)議與長(zhǎng)度字段匹配邏輯電路,它的數(shù)據(jù)輸入端、校驗(yàn)和標(biāo)記chk輸入端、路由錯(cuò)誤標(biāo)記mis輸入端分別與上述IP地址匹配電路E1中的3拍延遲寄存器E1b的相應(yīng)輸出端相連,它的源地址匹配信號(hào)sip輸入端、目的地址匹配信號(hào)dip輸入端分別與上述IP地址匹配邏輯電路E1a的相應(yīng)輸出端相連;它的長(zhǎng)度1及匹配規(guī)則、長(zhǎng)度2及匹配規(guī)則、協(xié)議號(hào)及匹配規(guī)則輸入端分別與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;所謂協(xié)議號(hào)是指IPv4和IPv6報(bào)文頭的協(xié)議字段;所謂長(zhǎng)度1、長(zhǎng)度2是給定的報(bào)文長(zhǎng)度值;E2b1拍延遲寄存器,它的數(shù)據(jù)輸入端、chk信號(hào)輸入端、mis信號(hào)輸入端、sip信號(hào)輸入端、dip信號(hào)輸入端分別與上述包頭協(xié)議與長(zhǎng)度字段匹配邏輯電路的相應(yīng)輸出端相連;E3觸發(fā)器匹配電路,它對(duì)從上級(jí)電路接收到的數(shù)據(jù)包選取的部分內(nèi)容進(jìn)行觸發(fā)信息即trigger匹配,并在數(shù)據(jù)包的邊帶信息上加上相應(yīng)標(biāo)記即觸發(fā)器匹配信號(hào)trig1、trig2、trig3、trig4后轉(zhuǎn)發(fā)給下一級(jí)電路,它包括E3a觸發(fā)器匹配邏輯電路,它的數(shù)據(jù)輸入端、校驗(yàn)和標(biāo)記chk輸入端、路由錯(cuò)誤標(biāo)記mis輸入端、源地址匹配標(biāo)記sip輸入端、目的地址匹配標(biāo)記dip輸入端分別與上述包頭協(xié)議與長(zhǎng)度字段匹配電路中的1拍延遲寄存器E2b的相應(yīng)輸出端相連,它的另外3個(gè)邊帶信息pro、len1、len2輸入端分別與上述包頭協(xié)議與長(zhǎng)度字段匹配邏輯電路E2a的相應(yīng)輸出端相連;它的4個(gè)觸發(fā)信息即trigger1、2、3、4及相應(yīng)匹配規(guī)則的4個(gè)輸入端與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;其中,所述的len1、len2是表示長(zhǎng)度字段的邊帶信息,pro是指IPv4的protocol字段或IPv6的next header字段的邊帶信息,即協(xié)議號(hào)匹配信號(hào);trig1~trig4是表示4個(gè)用于trigger規(guī)則的匹配信息,其中任一個(gè)trigger是一組匹配規(guī)則,完成對(duì)一個(gè)IP包某一區(qū)域內(nèi)特定值的檢查比較;E3b5拍延遲寄存器,它的數(shù)據(jù)輸入端、各邊帶信息chk、mis、sip、dip、pro、len1、len2輸入端分別與上述觸發(fā)器匹配邏輯電路E3a的相應(yīng)輸出端相連;E4數(shù)據(jù)抓取控制電路,它根據(jù)配置的抓取方案對(duì)照數(shù)據(jù)包中的各邊帶標(biāo)記決定一個(gè)數(shù)據(jù)包是否應(yīng)該寫(xiě)到外部SRAM中去,生成SRAM寫(xiě)請(qǐng)求信號(hào);它包括E4a抓取控制邏輯電路,它的各邊帶信息chk、mis、sip、dip、pro、len1、len2輸入端與上述觸發(fā)器匹配電路中5拍延遲寄存器E3b相連,另4個(gè)邊帶信息trig1~trig4與上述觸發(fā)器匹配電路中的觸發(fā)器匹配邏輯電路E3a相連;
E4b數(shù)據(jù)鎖存器,它的數(shù)據(jù)輸入端、使能信號(hào)分別與上述5拍延遲寄存器E3b、抓取控制邏輯電路E4a的相應(yīng)輸出端相連;E5SRAM仲裁電路,同時(shí)接收來(lái)自上述抓取控制電路的寫(xiě)請(qǐng)求和來(lái)自用J表示的CPU接口電路的讀請(qǐng)求,生成符合片外SRAM時(shí)序的讀寫(xiě)控制信號(hào),其中,來(lái)自上述CPU接口電路的讀請(qǐng)求具有更高優(yōu)先級(jí),它包括E5a讀寫(xiě)仲裁邏輯電路,它與上述CPU接口電路互連,而它的另一個(gè)輸入端與上述數(shù)據(jù)鎖存器E4b的相應(yīng)輸出端相連,該讀寫(xiě)仲裁邏輯電路又與片外SRAM互連;其中,ping包的統(tǒng)計(jì)電路實(shí)現(xiàn)ping數(shù)據(jù)包的總包數(shù)、總延遲和最后一個(gè)包的延遲的統(tǒng)計(jì),它包括F1數(shù)據(jù)包檢測(cè)邏輯電路;F2延遲提取邏輯電路;F1、F2這兩個(gè)電路的輸入端分別與上述數(shù)據(jù)分析預(yù)處理電路中路由錯(cuò)誤計(jì)數(shù)電路內(nèi)輸出寄存器二的兩個(gè)輸出端相連;F3ping包數(shù)目寄存器,它的輸入端與上述數(shù)據(jù)包檢測(cè)邏輯電路的輸出端相連;F4總延遲寄存器,它存儲(chǔ)總延遲統(tǒng)計(jì)的結(jié)果;F5加法器,它的兩個(gè)輸入端分別接延遲提取邏輯電路和總延遲寄存器的相應(yīng)輸出端,而該加法器的輸出端與總延遲寄存器的輸入端相連;F6當(dāng)前延遲寄存器,它的輸入端與上述延遲提取邏輯電路的輸出端相連;其中,流統(tǒng)計(jì)電路,它包括G1每流延遲統(tǒng)計(jì)電路,它對(duì)包括最大延遲、最小延遲和總延遲在內(nèi)的每流數(shù)據(jù)包傳輸延遲進(jìn)行統(tǒng)計(jì)并予以記錄,供用J表示的CPU接口電路讀取,它包括G1a流編號(hào)提取邏輯電路,它的數(shù)據(jù)輸入端與上述數(shù)據(jù)分析預(yù)處理電路中路由錯(cuò)誤計(jì)數(shù)電路內(nèi)輸出寄存器一的輸出端相連;G1b延遲提取邏輯電路,它的輸入端與上述流編號(hào)提取邏輯電路的輸入端是并接的;G1c總延遲寄存器;G1d加法器,它的兩個(gè)輸入端分別和上述延遲提取邏輯電路和總延遲寄存器的輸出端相連;G1e最大延遲寄存器;G1f比較器一,它的兩個(gè)輸入端分別和上述最大延遲寄存器和延遲提取邏輯電路的各個(gè)輸出端相連;G1g最小延遲寄存器;
G1h比較器二,它的兩個(gè)輸入端分別和上述最小延遲寄存器和延遲提取邏輯電路的各一個(gè)輸出端相連;G1i2路數(shù)據(jù)選擇器一,它的兩個(gè)輸入端分別和上述最大延遲寄存器和延遲提取邏輯電路的各一個(gè)輸出端相連;G1j2路數(shù)據(jù)選擇器二,它的兩個(gè)輸入端分別和上述最小延遲寄存器和延遲提取邏輯電路的各一個(gè)輸出端相連;G1k寫(xiě)數(shù)據(jù)寄存器,它的三個(gè)輸入端分別和上述加法器和兩個(gè)數(shù)據(jù)選擇器一、二的輸出端相連;G1l讀數(shù)據(jù)寄存器,它的數(shù)據(jù)輸出端口與上述總延遲寄存器、最大延遲寄存器、最小延遲寄存器的輸入端相連;G1m讀寫(xiě)地址寄存器,它的數(shù)據(jù)輸入端與上述流編號(hào)提取邏輯電路的輸出端相連;G2每流亂序統(tǒng)計(jì)電路,它統(tǒng)計(jì)每流的丟包數(shù)、亂序和重傳計(jì)數(shù)信息,并存儲(chǔ)統(tǒng)計(jì)結(jié)果,供用J表示的CPU接口電路讀取,它包括G2a流編號(hào)提取邏輯電路,它的數(shù)據(jù)輸入端與上述數(shù)據(jù)分析預(yù)處理電路中路由錯(cuò)誤計(jì)數(shù)電路內(nèi)輸出寄存器一的輸出端相連;G2b包序號(hào)提取邏輯電路,它的數(shù)據(jù)輸入端與上述流編號(hào)提取邏輯電路G2a的輸入端并接;G2c丟失包數(shù)目寄存器;G2d重傳包數(shù)目寄存器;G2e亂序包數(shù)目寄存器;G2fRFC1242窗口機(jī)制控制器,它的4個(gè)輸入端分別與上述包序號(hào)提取邏輯電路G2b以及丟失包、重傳包、亂序包各個(gè)數(shù)目寄存器的輸出端相連;G2g寫(xiě)數(shù)據(jù)寄存器,它的輸入端與上述RFC1242窗口機(jī)制控制器的輸出端相連;G2h讀數(shù)據(jù)寄存器,它的數(shù)據(jù)輸出端與上述丟失包、重傳包、亂序包各個(gè)數(shù)目寄存器的輸入端相連;G2i讀寫(xiě)地址寄存器,它的數(shù)據(jù)輸入端與上述流編號(hào)提取邏輯電路G2a的輸出端相連;G3實(shí)時(shí)延遲統(tǒng)計(jì)電路,它根據(jù)流標(biāo)簽中可選項(xiàng)域來(lái)決定對(duì)哪一條流進(jìn)行實(shí)時(shí)延遲統(tǒng)計(jì),并存儲(chǔ)相應(yīng)統(tǒng)計(jì)結(jié)果,供用J表示的CPU接口電路讀取,它包括G3a延遲提取邏輯電路,它的數(shù)據(jù)輸入端與上述數(shù)據(jù)分析預(yù)處理電路中路由錯(cuò)誤計(jì)數(shù)電路內(nèi)輸出寄存器一的輸出端相連;
G3b延遲寄存器,它的輸入端與上述延遲提取邏輯電路的輸出端相連;G3c寫(xiě)數(shù)據(jù)寄存器,它的輸入端與上述延遲寄存器的輸出端相連;G3d下一地址寄存器;G3e寫(xiě)地址寄存器,它的輸入端與上述下一地址寄存器的輸出端相連,而它的輸出端經(jīng)過(guò)一個(gè)加1加法器后與上述下一地址寄存器的輸入端相連,加1后的值返回該寫(xiě)地址寄存器G4延遲分布統(tǒng)計(jì)電路,它根據(jù)流標(biāo)簽中可選項(xiàng)域決定對(duì)哪一條流做延遲分布統(tǒng)計(jì),統(tǒng)計(jì)結(jié)果存儲(chǔ)并供用J表示的CPU接口電路讀取,它包括G4a延遲提取邏輯電路,它的數(shù)據(jù)輸入端與上述數(shù)據(jù)分析預(yù)處理電路中路由錯(cuò)誤計(jì)數(shù)電路內(nèi)輸出寄存器一的輸出端相連;G4b數(shù)據(jù)比較電路,它的兩個(gè)輸入端分別與上述延遲提取邏輯電路G4a、用J表示的CPU接口電路的15個(gè)延遲區(qū)間端點(diǎn)寄存器的輸出端相連;G4c讀寫(xiě)地址寄存器,它的輸入端與上述數(shù)據(jù)比較電路G4b的輸出端相連;G4d區(qū)間內(nèi)延遲個(gè)數(shù)寄存器;G4e讀數(shù)據(jù)寄存器,它的數(shù)據(jù)輸出端與上述區(qū)間內(nèi)延遲個(gè)數(shù)寄存器的輸入端相連;G4f寫(xiě)數(shù)據(jù)寄存器,它的數(shù)據(jù)輸入端與上述區(qū)間內(nèi)延遲個(gè)數(shù)寄存器的輸出端相連;G5每流統(tǒng)計(jì)電路,它統(tǒng)計(jì)接收到的包括每流字節(jié)數(shù)、總包數(shù)在內(nèi)的數(shù)據(jù),并存儲(chǔ)供用J表示的CPU接口電路讀取,它包括G5a流編號(hào)提取邏輯電路,它的數(shù)據(jù)入端與上述數(shù)據(jù)分析預(yù)處理電路中路由錯(cuò)誤計(jì)數(shù)電路內(nèi)輸出寄存器一的輸出端相連;G5b字節(jié)數(shù)目寄存器;G5c包數(shù)目寄存器;G5d讀數(shù)據(jù)寄存器,它的兩個(gè)數(shù)據(jù)輸出端分別與上述字節(jié)數(shù)目寄存器、包數(shù)目寄存器的輸入端相連;G5e寫(xiě)數(shù)據(jù)寄存器,上述包數(shù)目寄存器的輸出值加1后送往該寫(xiě)數(shù)據(jù)寄存器的輸入端,上述字節(jié)數(shù)目寄存器的輸出值加α后送往該寫(xiě)數(shù)據(jù)寄存器的輸入端;G5f讀寫(xiě)地址寄存器,它的輸入端與上述流編號(hào)提取邏輯電路G5a的輸出端相連;其中,5個(gè)流統(tǒng)計(jì)結(jié)果存儲(chǔ)器I,它分另與上述每流延遲統(tǒng)計(jì)電路中、每流亂序統(tǒng)計(jì)電路中、延遲分布統(tǒng)計(jì)電路中以及每流統(tǒng)計(jì)電路中讀數(shù)據(jù)寄存器的輸入端相連,而與它們的寫(xiě)數(shù)據(jù)寄存器、讀寫(xiě)地址寄存器的各輸出端相連;該5個(gè)流統(tǒng)計(jì)結(jié)果存儲(chǔ)器的輸入端還與上述實(shí)時(shí)延遲統(tǒng)計(jì)電路中寫(xiě)數(shù)據(jù)寄存器、寫(xiě)地址寄存器的各輸出端相連;
其中,CPU接口電路用J表示,它根據(jù)外部CPU指令完成各配置寄存器的配置以及各統(tǒng)計(jì)結(jié)果的提交,它包括J1CPU地址寄存器;J2CPU控制信號(hào)寄存器;J3CPU數(shù)據(jù)總線三態(tài)調(diào)度邏輯電路,它的輸入端與上述CPU控制信號(hào)寄存器的輸出端相連;上述電路J1~J3分別與外部CPU相應(yīng)輸出端相連;J4地址譯碼器,它的輸入端與上述CPU地址寄存器的輸出端相連;J5狀態(tài)寄存器組,它的輸入端分別和上述數(shù)據(jù)分析預(yù)處理電路中的幀數(shù)計(jì)數(shù)器D1b、字節(jié)計(jì)數(shù)器D1c、錯(cuò)誤包計(jì)數(shù)器D6b、路由錯(cuò)計(jì)數(shù)器D7b的各輸出端相連,它的輸入端還和上述ping包統(tǒng)計(jì)電路中的ping包數(shù)目寄存器F3、總延遲寄存器F4、當(dāng)前延遲寄存器F6的各輸出端相連;J6配置寄存器組,它的各輸出端分別連接到上述數(shù)據(jù)包抓取電路、數(shù)據(jù)分析預(yù)處理電路、協(xié)議幀上交電路、流統(tǒng)計(jì)電路的各相連輸入端;◆J7外部SRAM數(shù)據(jù)寄存器,它的輸入端與數(shù)據(jù)包抓取電路的SRAM仲裁電路相連;◆J8流統(tǒng)計(jì)結(jié)果存儲(chǔ)器數(shù)據(jù)寄存器組,它的各輸入端分別與上述5個(gè)流統(tǒng)計(jì)結(jié)果存儲(chǔ)器的各輸出端相連;◆J9協(xié)議幀存儲(chǔ)器數(shù)據(jù)寄存器,它的各輸入端與上述協(xié)議幀存儲(chǔ)器的輸出端相連;上述地址譯碼器J4的各輸出端分別和上述J5~J9各電路的輸入端相連;上述CPU數(shù)據(jù)總線三態(tài)調(diào)度邏輯電路的各輸入端分別和上述狀態(tài)寄存器組、外部SRAM數(shù)據(jù)寄存器以及協(xié)議幀存儲(chǔ)器數(shù)據(jù)寄存器的各輸出端相連;同時(shí),又與上述流統(tǒng)計(jì)結(jié)果存儲(chǔ)器數(shù)據(jù)寄存器組互連;它的輸出端則與上述配置寄存器組的輸入端相連。
本高速測(cè)試流量性能分析設(shè)備支持兩種模式10G POS和10G Ethernet LAN/WAN的模式。它實(shí)現(xiàn)了從一個(gè)OC192或10G Ethernet接口接收測(cè)試數(shù)據(jù)包,進(jìn)行實(shí)時(shí)統(tǒng)計(jì)和抓取,從而得到各種性能指標(biāo)并將抓取后的數(shù)據(jù)存入片外SRAM供CPU讀取。該設(shè)備同時(shí)支持IPv4和IPv6的性能測(cè)試,能夠?qū)崿F(xiàn)最小20字節(jié)數(shù)據(jù)包的線速度處理,并支持CPU實(shí)時(shí)讀取各種性能指標(biāo)。
圖1 流標(biāo)簽結(jié)構(gòu)圖;圖2 測(cè)試系統(tǒng)總體構(gòu)成;圖3 測(cè)試儀背板、主板和主控板連接情況;
圖4 測(cè)試儀主板結(jié)構(gòu)框圖;圖5 測(cè)試儀主板接收FPGA內(nèi)部結(jié)構(gòu)圖;圖6 數(shù)據(jù)分路電路;圖7 協(xié)議幀上交電路;圖8 數(shù)據(jù)分析預(yù)處理電路;圖9 數(shù)據(jù)包抓取電路;圖10 ping包統(tǒng)計(jì)電路;圖11 流統(tǒng)計(jì)電路;圖12 CPU接口電路。
具體實(shí)施例方式
本高速測(cè)試流量性能分析設(shè)備實(shí)現(xiàn)對(duì)于由本測(cè)試儀發(fā)送端口發(fā)出并經(jīng)被測(cè)設(shè)備(DeviceUnder Test,DUT)轉(zhuǎn)發(fā)的高速測(cè)試流量進(jìn)行接收和分析,從而從測(cè)試流量中統(tǒng)計(jì)(Stat.)各種性能指標(biāo),并根據(jù)用戶要求對(duì)各種符合要求的數(shù)據(jù)包進(jìn)行抓取(Capture)。本設(shè)備內(nèi)部采用128bit數(shù)據(jù)線加上若干位邊帶信息的格式,因此內(nèi)部工作時(shí)鐘采用100MHz即可滿足對(duì)10Gbps數(shù)據(jù)進(jìn)行實(shí)時(shí)分析的要求。本設(shè)備能夠通過(guò)統(tǒng)計(jì)獲得的性能指標(biāo)包括端口計(jì)數(shù)、包錯(cuò)誤計(jì)數(shù)、路由錯(cuò)誤計(jì)數(shù)、每流計(jì)數(shù)、延遲分布統(tǒng)計(jì)、實(shí)時(shí)延遲統(tǒng)計(jì)、每流延遲計(jì)數(shù)、丟包計(jì)數(shù)、亂序包計(jì)數(shù)、重傳包計(jì)數(shù),利用本硬件電路得到的這些性能指標(biāo),上層軟件經(jīng)過(guò)處理可進(jìn)一步獲得吞吐量、丟失率、背靠背特性等性能指標(biāo);此外,該設(shè)備還可根據(jù)下列用戶需求對(duì)數(shù)據(jù)包進(jìn)行匹配并抓取IP源地址和目的地址、包頭協(xié)議字段、包長(zhǎng)度、部分?jǐn)?shù)據(jù)包內(nèi)容。
本設(shè)備中,對(duì)于測(cè)試數(shù)據(jù)流性能指標(biāo)的統(tǒng)計(jì)和對(duì)于數(shù)據(jù)包的抓取是基于流標(biāo)簽進(jìn)行的。流標(biāo)簽(signature)是由測(cè)試儀發(fā)送方電路填入的位于IP分組數(shù)據(jù)部分的與各種性能指標(biāo)有關(guān)的標(biāo)記。它的結(jié)構(gòu)如圖1所示。
本設(shè)備大部分電路模塊的設(shè)計(jì)思路是這樣的當(dāng)收到一個(gè)數(shù)據(jù)分組時(shí),根據(jù)操作目的找到流標(biāo)簽或IP報(bào)頭中相應(yīng)字段,據(jù)此得到某些性能指標(biāo)或進(jìn)行進(jìn)一步操作。
整個(gè)測(cè)試儀系統(tǒng)由三部分組成監(jiān)控機(jī)(monitor)、測(cè)試儀(tester)和被測(cè)設(shè)備(DUT),連接情況如圖2所示。測(cè)試儀完成測(cè)試的基本功能,包括測(cè)試流量的產(chǎn)生和接收、測(cè)試統(tǒng)計(jì)量的測(cè)量、路由報(bào)文的產(chǎn)生和報(bào)文截取等。監(jiān)控機(jī)通過(guò)消息機(jī)制完成對(duì)測(cè)試儀的控制,并負(fù)責(zé)與用戶的交互,包括測(cè)試參數(shù)的設(shè)定、測(cè)試結(jié)果的分析和顯示等。在測(cè)試系統(tǒng)中,測(cè)試儀的各測(cè)試接口與被測(cè)路由器的各接口直接相連,測(cè)試儀和監(jiān)控機(jī)之間通過(guò)100M以太網(wǎng)相連。當(dāng)有多臺(tái)測(cè)試儀參與測(cè)試時(shí),各測(cè)試儀同監(jiān)控機(jī)使用100M Hub進(jìn)行連接,由監(jiān)控機(jī)完成各測(cè)試儀之間的協(xié)調(diào)工作。
測(cè)試儀(tester)包含了整個(gè)測(cè)試系統(tǒng)中的硬件電路設(shè)計(jì),其各板卡連接圖如圖3所示。主板用于實(shí)現(xiàn)測(cè)試流量的生成和分析;主控板用于實(shí)現(xiàn)各主板之間的同步以及測(cè)試儀之間的級(jí)聯(lián);背板負(fù)責(zé)各測(cè)試儀主板和主控板之間控制信息的交互。
測(cè)試儀主板是測(cè)試儀中最重要的部分,其外部接口及內(nèi)部電路結(jié)構(gòu)如圖4所示。它包括CPU控制模塊、同步級(jí)聯(lián)電路模塊、以太網(wǎng)通訊模塊(圖中未畫(huà)出)、FPGA流量生成與統(tǒng)計(jì)接收模塊和10G光接口模塊。
本發(fā)明在Altera公司的Stratix GX EP1SGX40DF1020C6型號(hào)的FPGA器件上得到了實(shí)現(xiàn)。分布在該器件周圍并與其直接相連的外圍芯片主要是幀控制器Framer芯片和靜態(tài)存儲(chǔ)器SRAM芯片,其工作環(huán)境如圖4所示。實(shí)際工作時(shí),F(xiàn)PGA通過(guò)SPI4.2接口從Framer接收測(cè)試數(shù)據(jù)流量;然后,測(cè)試數(shù)據(jù)流量在FPGA內(nèi)部經(jīng)過(guò)一步步地分析,從而得到各種性能指標(biāo)并存儲(chǔ)于內(nèi)部的寄存器或內(nèi)部開(kāi)辟出的RAM中,同時(shí)符合用戶匹配要求的一部分?jǐn)?shù)據(jù)被抓取后存儲(chǔ)于FPGA外部的SRAM中。FPGA內(nèi)部的數(shù)據(jù)寬度采用128bit,內(nèi)部處理時(shí)鐘采用100MHz時(shí)鐘。
下面結(jié)合附圖詳細(xì)介紹本發(fā)明的數(shù)據(jù)流程。
首先,如圖5所示,從framer芯片而來(lái)的符合SPI4.2接口規(guī)范的622MHz的16bit差分?jǐn)?shù)據(jù)被PL4 IPCore接收器所接收。經(jīng)過(guò)PL4 IPCore接收器的處理,這些16bit的差分?jǐn)?shù)據(jù)被轉(zhuǎn)化成128bit的單端數(shù)據(jù)信號(hào),并以符合Atlantic接口規(guī)范的信號(hào)形式輸出。
數(shù)據(jù)分路電路通過(guò)Atlantic接口從PL4 IPCore接收器接收數(shù)據(jù),然后它將數(shù)據(jù)復(fù)制成兩路,一路送往數(shù)據(jù)分析預(yù)處理電路,用來(lái)進(jìn)行統(tǒng)計(jì)和抓取,另一路送往協(xié)議幀上交電路,用于上層協(xié)議軟件之間的交互。這兩路數(shù)據(jù)的構(gòu)成最初都包含協(xié)議幀和數(shù)據(jù)幀,其中數(shù)據(jù)幀既有帶流標(biāo)簽的數(shù)據(jù)幀,也有不帶流標(biāo)簽的數(shù)據(jù)幀,帶有流標(biāo)簽的幀中還有一部分封裝的是ping包。
對(duì)于送往數(shù)據(jù)分析預(yù)處理電路的一路數(shù)據(jù),如圖8所示,這些數(shù)據(jù)先后依次經(jīng)過(guò)的電路結(jié)構(gòu)以及相應(yīng)的處理操作如下所述。
端口計(jì)數(shù)電路進(jìn)行幀數(shù)目計(jì)數(shù)和接收字節(jié)數(shù)目計(jì)數(shù)。幀數(shù)與字節(jié)數(shù)計(jì)數(shù)邏輯每檢測(cè)到一幀的結(jié)束標(biāo)志就將幀數(shù)計(jì)數(shù)器加1;同時(shí)當(dāng)它每檢測(cè)到一個(gè)有效的數(shù)據(jù)字時(shí),若該數(shù)據(jù)字不是一幀的結(jié)束,則將字節(jié)計(jì)數(shù)器加16(128bit=16字節(jié)),否則將字節(jié)計(jì)數(shù)器加上該數(shù)據(jù)字中的有效字節(jié)數(shù)。同時(shí),數(shù)據(jù)無(wú)改變地輸入到下一級(jí)電路。
協(xié)議幀過(guò)濾電路本路數(shù)據(jù)用來(lái)統(tǒng)計(jì)和抓取,因此這里將協(xié)議幀濾除掉。幀類型判別邏輯根據(jù)幀頭的協(xié)議字段的值來(lái)判斷正在處理的幀是IP數(shù)據(jù)幀還是協(xié)議幀,若是IP數(shù)據(jù)幀,則打開(kāi)數(shù)據(jù)鎖存器令其通過(guò),否則不予通過(guò)。經(jīng)過(guò)這一過(guò)濾電路處理后的數(shù)據(jù)將只剩下IP數(shù)據(jù)幀。
幀頭剝離電路為進(jìn)一步方便數(shù)據(jù)的處理,將IP數(shù)據(jù)幀的幀頭剝掉。先將相繼接收到的兩個(gè)數(shù)據(jù)字存儲(chǔ)于兩個(gè)緩沖器中,然后由數(shù)據(jù)字拼接控制狀態(tài)機(jī)負(fù)責(zé)各取兩個(gè)緩沖器中的部分?jǐn)?shù)據(jù)拼接成一個(gè)新的128bit字,送到下一級(jí)電路。經(jīng)過(guò)幀頭剝離電路處理后的數(shù)據(jù)完全由IP包組成。
流與Ping數(shù)據(jù)標(biāo)記電路剛到達(dá)這里的IP包既有帶有流標(biāo)簽的IP包,也有不帶有流標(biāo)簽的IP包,其中還有一部分是ping包,相互之間沒(méi)有區(qū)分標(biāo)志。由于后續(xù)電路要對(duì)流數(shù)據(jù)(即帶有流標(biāo)簽的IP包)和ping包特殊處理,因此這里用邊帶信息將它們區(qū)分出來(lái)。流與Ping數(shù)據(jù)判別邏輯通過(guò)檢測(cè)流標(biāo)簽和IP包頭protocol字段(或next header字段),甄別出流數(shù)據(jù)和ping包,并分別用邊帶信息str和png來(lái)標(biāo)記。
背景流過(guò)濾電路背景流判別邏輯通過(guò)檢查流標(biāo)簽中的Option字段來(lái)判斷當(dāng)前IP包是否屬于背景流,若是背景流則不予通過(guò)。
錯(cuò)誤包計(jì)數(shù)電路重新計(jì)算流標(biāo)簽校驗(yàn)和與IPv4包頭校驗(yàn)和,檢查是否有錯(cuò)誤發(fā)生,若發(fā)現(xiàn)錯(cuò)誤,則錯(cuò)誤包計(jì)數(shù)器加1;同時(shí)再加1bit邊帶信息chk,用來(lái)記錄當(dāng)前IP包是否為錯(cuò)包。
路由錯(cuò)計(jì)數(shù)電路將流標(biāo)簽中DstPort域的值和本地端口號(hào)進(jìn)行比較,若不等,則路由錯(cuò)計(jì)數(shù)器加1;同時(shí)再加1bit邊帶信息mis與延遲4個(gè)時(shí)鐘節(jié)拍的數(shù)據(jù)一起同步輸出給數(shù)據(jù)包抓取電路,用來(lái)記錄當(dāng)前IP包是否發(fā)生路由錯(cuò)誤。另外,本路由錯(cuò)計(jì)數(shù)電路還將流數(shù)據(jù)和ping包分別輸送給流統(tǒng)計(jì)電路和Ping包統(tǒng)計(jì)電路,流數(shù)據(jù)和ping包的識(shí)別分別根據(jù)邊帶信息str和png的值來(lái)決定。
IP包從路由錯(cuò)計(jì)數(shù)電路輸出后分為三路一路送往數(shù)據(jù)包抓取電路,用來(lái)根據(jù)用戶需求進(jìn)行抓??;一路送往流統(tǒng)計(jì)電路,用來(lái)得到各種與流相關(guān)的性能指標(biāo);另一路送往Ping包統(tǒng)計(jì)電路,用來(lái)對(duì)ping包的包數(shù)及延遲等進(jìn)行統(tǒng)計(jì)。
下面先介紹被送往數(shù)據(jù)包抓取電路的IP包的情況,如圖9所示。
首先,數(shù)據(jù)穿過(guò)IP地址匹配電路,進(jìn)行IP地址域的匹配。根據(jù)由CPU配置的源IP地址及匹配規(guī)則、目的IP地址及匹配規(guī)則,檢查IP包頭中的源IP地址和目的IP地址域,對(duì)于符合匹配規(guī)則的IP包分別在邊帶信息sip和dip上打上相應(yīng)標(biāo)記。然后,數(shù)據(jù)又穿過(guò)包頭協(xié)議與長(zhǎng)度字段匹配電路,該電路根據(jù)CPU配置的匹配規(guī)則檢查IP包頭的protocol字段(IPv4)或next header字段(IPv6)以及長(zhǎng)度字段,其中長(zhǎng)度匹配支持兩個(gè)規(guī)則的匹配,因此這個(gè)過(guò)程共產(chǎn)生3bit邊帶信息(pro,len1和len2)。接下來(lái),數(shù)據(jù)在穿過(guò)trigger匹配電路時(shí),完成4個(gè)用戶trigger規(guī)則的匹配,產(chǎn)生4bit邊帶信息(trig1,trig2,trig3和trig4)。一個(gè)trigger是一組匹配規(guī)則,可以完成對(duì)一個(gè)IP包某一區(qū)域內(nèi)特定位的檢查比較。
下一步,數(shù)據(jù)及其邊帶信息輸入到數(shù)據(jù)抓取控制電路,其中的抓取控制邏輯根據(jù)各邊帶信息的值決定數(shù)據(jù)是否抓取,若決定抓取,則讓數(shù)據(jù)通過(guò)該電路,送入SRAM仲裁電路。最后,SRAM仲裁電路同時(shí)處理數(shù)據(jù)抓取控制電路的寫(xiě)SRAM請(qǐng)求和CPU接口電路的讀請(qǐng)求,產(chǎn)生正確的SRAM讀寫(xiě)控制信號(hào)。
接下來(lái)再詳細(xì)介紹從路由錯(cuò)計(jì)數(shù)電路送往流統(tǒng)計(jì)電路的一路數(shù)據(jù),如圖11所示。
在流統(tǒng)計(jì)電路中,所有IP包都是流數(shù)據(jù),這些流數(shù)據(jù)被同時(shí)并行地輸入給實(shí)時(shí)延遲統(tǒng)計(jì)電路、延遲分布統(tǒng)計(jì)電路、每流統(tǒng)計(jì)電路、每流延遲統(tǒng)計(jì)電路和每流亂序統(tǒng)計(jì)電路。
在實(shí)時(shí)延遲統(tǒng)計(jì)電路中,每個(gè)IP包的流標(biāo)簽中的時(shí)間戳被提取下來(lái),然后用本地時(shí)鐘計(jì)數(shù)器的值減去時(shí)間戳便得到延遲。在本電路中,每得到一個(gè)延遲便把它寫(xiě)入到第1個(gè)流統(tǒng)計(jì)結(jié)果存儲(chǔ)器中。
在延遲分布統(tǒng)計(jì)電路中,仍類似前面所述的得到延遲值,然后將這個(gè)延遲值與CPU配置好的15個(gè)延遲區(qū)間端點(diǎn)進(jìn)行比較,得出它屬于0——15哪個(gè)區(qū)間,這個(gè)區(qū)間號(hào)便是相應(yīng)的統(tǒng)計(jì)結(jié)果存儲(chǔ)位置地址。然后從第2個(gè)流統(tǒng)計(jì)結(jié)果存儲(chǔ)器中的該存儲(chǔ)位置讀出該區(qū)間延遲個(gè)數(shù),加1后再寫(xiě)回該地址。
在每流統(tǒng)計(jì)電路中,每個(gè)IP包的流標(biāo)簽中的DstNo域被提取下來(lái),作為相應(yīng)的統(tǒng)計(jì)結(jié)果存儲(chǔ)位置地址。根據(jù)這個(gè)地址,從第3個(gè)流統(tǒng)計(jì)結(jié)果存儲(chǔ)器中的該存儲(chǔ)位置讀出IP包數(shù)目和字節(jié)數(shù)目,更新后再存入原位置。
在每流延遲統(tǒng)計(jì)電路中,類似前面所述的得到延遲值,并把IP包的流標(biāo)簽中的DstNo域作為相應(yīng)的統(tǒng)計(jì)結(jié)果存儲(chǔ)位置地址。根據(jù)這個(gè)地址,從第4個(gè)流統(tǒng)計(jì)結(jié)果存儲(chǔ)器中的該存儲(chǔ)位置讀出最小延遲、最大延遲和總延遲,更新后再存入原位置。具體更新做法為最小延遲取原值和新延遲值的最小值,最大延遲取原值和新延遲值的最大值,總延遲取原值和新延遲值的和。
在每流亂序統(tǒng)計(jì)電路中,仍把IP包的流標(biāo)簽中的DstNo域提取下來(lái)作為相應(yīng)的統(tǒng)計(jì)結(jié)果存儲(chǔ)位置地址,同時(shí)還需要提取流標(biāo)簽中的包序號(hào)sequence域。應(yīng)用RFC 1242中所述的窗口機(jī)制,結(jié)合接收包的包序號(hào)以及維護(hù)的窗口值,不斷修改第5個(gè)流統(tǒng)計(jì)結(jié)果存儲(chǔ)器中的丟失包數(shù)目、重傳包數(shù)目和亂序包數(shù)目。
此外,從路由錯(cuò)計(jì)數(shù)電路輸出的還有一路IP數(shù)據(jù)送往了Ping包統(tǒng)計(jì)電路,對(duì)接收到的ping包的包數(shù)目、總延遲和當(dāng)前延遲進(jìn)行了統(tǒng)計(jì)。
最后,在數(shù)據(jù)流的第一個(gè)分叉處,即數(shù)據(jù)分路電路處,還有一路數(shù)據(jù)被送往協(xié)議幀上交電路。如圖7所示,在協(xié)議幀上交電路內(nèi)部,數(shù)據(jù)先經(jīng)過(guò)協(xié)議幀篩選電路將IP數(shù)據(jù)幀濾除掉,只剩下協(xié)議幀。然后,協(xié)議幀到達(dá)中斷電路,首先被存入?yún)f(xié)議幀存儲(chǔ)器,再根據(jù)一定條件產(chǎn)生中斷,請(qǐng)求CPU來(lái)處理所有緩存的協(xié)議幀。產(chǎn)生中斷的條件是,協(xié)議幀存儲(chǔ)器中有數(shù)據(jù),并且協(xié)議幀存儲(chǔ)器的空間占用已經(jīng)超過(guò)空間閾值或自上一中斷請(qǐng)求以來(lái)的空閑時(shí)間已經(jīng)超過(guò)一個(gè)時(shí)間閾值,便產(chǎn)生一次中斷。
權(quán)利要求
1.10G網(wǎng)絡(luò)性能測(cè)試儀流量接收、抓取和統(tǒng)計(jì)電路器件,其特征在于,它是用現(xiàn)場(chǎng)可編程門陣列即FPGA實(shí)現(xiàn)的一個(gè)大規(guī)模可編程數(shù)字集成電路器件,它由以下各個(gè)電路部分組成APL4 IPCore接收器簡(jiǎn)稱IPCore電路,它的數(shù)據(jù)輸入端與外部的幀控制器即Framer的相應(yīng)輸出端相連;B數(shù)據(jù)分路電路,它的轉(zhuǎn)換為FPGA時(shí)序的數(shù)據(jù)輸入端與上述IPCore電路的相應(yīng)輸出端相連;C協(xié)議幀上交電路,它的數(shù)據(jù)包輸入端與上述數(shù)據(jù)分路電路相應(yīng)的輸出端相連;D數(shù)據(jù)分析預(yù)處理電路,它的數(shù)據(jù)包輸入端與上述數(shù)據(jù)分路電路的相應(yīng)輸出端相連,以便對(duì)所接收的數(shù)據(jù)包作預(yù)處理操作;E數(shù)據(jù)包抓取電路,它的數(shù)據(jù)包輸入端與上述數(shù)據(jù)分析預(yù)處理電路的相應(yīng)輸出端相連,以便對(duì)數(shù)據(jù)包進(jìn)行抓?。煌瑫r(shí)它的SRAM數(shù)據(jù)端口與外部SRAM相應(yīng)端口互連;F因特網(wǎng)信息包搜索協(xié)議包即ping包的統(tǒng)計(jì)電路,它的數(shù)據(jù)包輸入端與上述數(shù)據(jù)分析預(yù)處理電路的相應(yīng)輸出端相連,以便完成ping包的統(tǒng)計(jì)工作,其中包括總包數(shù)、總延遲和當(dāng)前延遲的統(tǒng)計(jì);G流統(tǒng)計(jì)電路,它的數(shù)據(jù)流輸入端與上述數(shù)據(jù)分析預(yù)處理電路的相應(yīng)輸出端相連,以便實(shí)現(xiàn)對(duì)數(shù)據(jù)流的性能狀況的統(tǒng)計(jì);H協(xié)議幀存儲(chǔ)器,它的協(xié)議幀輸入端與上述協(xié)議幀上交電路的相應(yīng)輸出端相連;I流統(tǒng)計(jì)結(jié)果存儲(chǔ)器共5個(gè),它們的數(shù)據(jù)端口分別與上述流統(tǒng)計(jì)電路的相應(yīng)端口互連;JCPU接口電路,它的各輸出端分別與上述數(shù)據(jù)包抓取電路、數(shù)據(jù)分析預(yù)處理電路、協(xié)議幀上交電路、流統(tǒng)計(jì)電路的相應(yīng)輸出端相連;CPU接口電路的各輸入端與上述數(shù)據(jù)包抓取電路、ping包統(tǒng)計(jì)電路、流統(tǒng)計(jì)電路、各個(gè)流統(tǒng)計(jì)結(jié)果存儲(chǔ)器、協(xié)議幀存儲(chǔ)器的相應(yīng)輸出端相連;同時(shí),上述CPU接口電路還有一個(gè)PORTX即通信接口收發(fā)的與外部互連的端口;其中,數(shù)據(jù)分路電路B包括B1輸入寄存器,它的數(shù)據(jù)包輸入端與上述IPCore電路的相應(yīng)輸出端相連;B2第一、第二輸出寄存器,即輸出寄存器1、2,它們的數(shù)據(jù)包輸入端分別與上述輸入寄存器的相應(yīng)輸出端相連;其中協(xié)議幀上交電路C包括C1協(xié)議幀篩選電路,包括C1a幀類型判別邏輯電路,它的數(shù)據(jù)包輸入端與上述數(shù)據(jù)分路電路中第2輸出寄存器的相應(yīng)輸出端相連;C1b數(shù)據(jù)鎖存器,它的使能信號(hào)輸入端、幀數(shù)據(jù)輸入端分別與上述幀類型判別邏輯電路的相應(yīng)輸出端相連;C2有效數(shù)據(jù)檢測(cè)邏輯電路,它的幀數(shù)據(jù)輸入端與上述協(xié)議幀篩選電路中的數(shù)據(jù)鎖存器的相應(yīng)輸出端相連;C3數(shù)據(jù)寄存器,它的數(shù)據(jù)輸入端與上述有效數(shù)據(jù)檢測(cè)邏輯電路的輸出端相連;C4存儲(chǔ)空間計(jì)數(shù)器,上述有效數(shù)據(jù)檢測(cè)邏輯電路輸出的計(jì)數(shù)使能信號(hào)即有效信號(hào)經(jīng)加1計(jì)數(shù)器后送往上述存儲(chǔ)空間計(jì)數(shù)器的相應(yīng)輸入端,加1后的值送往上述加1計(jì)數(shù)器;C5空間閾值寄存器,它的配置值輸入端與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;C6時(shí)間閾值寄存器,它的配置值輸入端與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;C7內(nèi)部時(shí)鐘計(jì)數(shù)器,每個(gè)時(shí)鐘周期計(jì)數(shù)器加1;C8第一比較器,它的兩個(gè)輸入端分別與上述空間閾值寄存器、存儲(chǔ)空間計(jì)數(shù)器的相應(yīng)輸出端相連;C9第二比較器,它的兩個(gè)輸入端分別與上述時(shí)間閾值寄存器、內(nèi)部時(shí)鐘計(jì)數(shù)器的兩個(gè)輸出端相連;C10中斷清除寄存器,它的中斷清除信號(hào)輸入端與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;它的兩個(gè)清零信號(hào)輸出端分別與上述存儲(chǔ)空間計(jì)數(shù)器、內(nèi)部時(shí)鐘計(jì)數(shù)器的相應(yīng)輸入端相連;C11中斷控制邏輯電路,它的兩個(gè)中斷生成信號(hào)輸入端分別與上述第一、第二比較器的相應(yīng)輸出端相連,它的中斷清除信號(hào)輸入端與上述中斷清除寄存器的相應(yīng)輸出端相連;上述C2~C12各個(gè)電路共同組成中斷電路,把從上述協(xié)議幀篩選電路C1送來(lái)的協(xié)議幀通過(guò)上述數(shù)據(jù)寄存器C3存儲(chǔ)于上述協(xié)議幀存儲(chǔ)器H,然后由上述中斷控制邏輯電路的中斷請(qǐng)求方式通過(guò)上述用J表示的CPU接口電路的PORTX輸出提交給上層軟件處理;其中,上述數(shù)據(jù)分析預(yù)處理電路D包括D1端口計(jì)數(shù)電路完成端口統(tǒng)計(jì)和數(shù)據(jù)的轉(zhuǎn)發(fā)操作,它包括D1a幀數(shù)與字節(jié)數(shù)計(jì)數(shù)邏輯電路,一個(gè)輸入端與上述數(shù)據(jù)分路電路中第1輸出寄存器的相應(yīng)輸出端相連;D1b幀數(shù)計(jì)數(shù)器,上述幀數(shù)與字節(jié)數(shù)計(jì)數(shù)邏輯電路的幀數(shù)值輸出端經(jīng)加1加法器后與該幀數(shù)計(jì)數(shù)器的輸入端相連,加1后幀數(shù)計(jì)數(shù)值又送回上述幀數(shù)與字節(jié)數(shù)計(jì)數(shù)邏輯電路,同時(shí)又送往上述用J表示的CPU接口電路;D1c字節(jié)數(shù)計(jì)數(shù)器,上述幀數(shù)與字節(jié)數(shù)計(jì)數(shù)邏輯電路的字節(jié)數(shù)輸出端經(jīng)過(guò)一個(gè)+α加法器后與該字節(jié)數(shù)計(jì)數(shù)器的輸入端相連,+α后的字節(jié)數(shù)又送往上述幀數(shù)與字節(jié)數(shù)計(jì)數(shù)邏輯電路;同時(shí),又送往上述用J表示的CPU接口電路的;α值是一個(gè)設(shè)定值;D2協(xié)議幀過(guò)濾電路,它把接收到的幀中所有協(xié)議幀過(guò)濾掉,它包括D2a幀類型判別邏輯電路,它的輸入端與上述端口計(jì)數(shù)電路中的幀數(shù)與字節(jié)數(shù)計(jì)數(shù)邏輯電路的相應(yīng)輸出端相連;D2b數(shù)據(jù)鎖存器,它的數(shù)據(jù)輸入端與使能信號(hào)輸入端分別與上述幀類型判別邏輯電路D2a的相應(yīng)輸出端相連;D3幀頭剝離電路,它把上級(jí)電路輸出的PPP數(shù)據(jù)幀或MAC幀幀頭去除,包括D3a數(shù)據(jù)緩沖器一,其輸入端接上述協(xié)議幀過(guò)濾電路中數(shù)據(jù)鎖存器的輸出端;D3b數(shù)據(jù)緩沖器二,其輸入端接上述數(shù)據(jù)緩沖器一的輸出端;D3c數(shù)據(jù)字拼接控制狀態(tài)機(jī),它的兩個(gè)輸入端分別接上述數(shù)據(jù)緩沖器一、二的相應(yīng)輸出端;D4流與ping數(shù)據(jù)標(biāo)記電路,它檢查每一個(gè)數(shù)據(jù)包是否帶有流標(biāo)簽,再在邊帶信息上作相應(yīng)標(biāo)記,即流標(biāo)記信號(hào)str和ping包標(biāo)記信號(hào)png,它包括D4a流與ping數(shù)據(jù)判別邏輯電路,它的輸入端接上述幀頭剝離電路中數(shù)據(jù)字拼接控制狀態(tài)機(jī)的相應(yīng)輸出端;D4b4拍延遲寄存器,其輸入端接上述流與ping數(shù)據(jù)判別邏輯電路的輸出端;D5背景流過(guò)濾電路,它對(duì)流標(biāo)簽中用可選項(xiàng)域標(biāo)記的背景流進(jìn)行過(guò)濾,包括D5a背景流判別邏輯電路,其輸入端與上述流與ping數(shù)據(jù)標(biāo)記電路中4拍延遲寄存器的輸出端相連;同時(shí),還有兩個(gè)輸入端與上述流與ping數(shù)據(jù)判別邏輯電路中的流標(biāo)記信號(hào)str、ping包標(biāo)記信號(hào)png相連;D5b數(shù)據(jù)鎖存器,它的數(shù)據(jù)輸入端、str信號(hào)輸入端、png信號(hào)輸入端與使能信號(hào)輸入與上述背景流判別邏輯電路的相應(yīng)輸出端相連;D6錯(cuò)誤包標(biāo)記電路,它對(duì)接收到的每一個(gè)IPv4包進(jìn)行頭校驗(yàn)和計(jì)算并根據(jù)校驗(yàn)和是否有誤,在該數(shù)據(jù)包邊帶信息處加上相應(yīng)標(biāo)記,即校驗(yàn)和標(biāo)記chk,正確為0,錯(cuò)誤為1,并進(jìn)行校驗(yàn)和出錯(cuò)的包數(shù)的統(tǒng)計(jì),它包括D6a校驗(yàn)和檢查邏輯電路,它的數(shù)據(jù)、str信號(hào)、png信號(hào)輸入端分別與上述背景流過(guò)濾電路中數(shù)據(jù)鎖存器的相應(yīng)輸出端相連;D6b錯(cuò)誤包計(jì)數(shù)器,上述校驗(yàn)和檢查邏輯電路的輸出端經(jīng)一個(gè)加1加法器后與該錯(cuò)誤包計(jì)數(shù)器的輸入端相連,加1后的錯(cuò)誤包數(shù)送回校驗(yàn)和檢查邏輯電路,同時(shí)送往上述用J表示的CPU接口電路;D7路由錯(cuò)誤計(jì)數(shù)電路,它判別每一個(gè)接收到的數(shù)據(jù)包是否發(fā)生路由錯(cuò)誤,加上相應(yīng)邊帶信息即路由錯(cuò)誤標(biāo)記mis,并進(jìn)行路由錯(cuò)誤包的計(jì)數(shù);同時(shí)把數(shù)據(jù)分三路轉(zhuǎn)發(fā),把加好邊帶信息的數(shù)據(jù)分別送往下一個(gè)數(shù)據(jù)包抓取電路、流統(tǒng)計(jì)電路及ping包統(tǒng)計(jì)電路;所述路由錯(cuò)誤統(tǒng)計(jì)電路包括D7a目的端口檢查邏輯電路,它的數(shù)據(jù)輸入端、str信號(hào)輸入端、png信號(hào)輸入端和chk信號(hào)輸入端分別與上述錯(cuò)誤包計(jì)數(shù)電路D6中校驗(yàn)和檢查邏輯電路的相應(yīng)輸出端相連,而數(shù)據(jù)包的本地端口號(hào)輸入端與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;D7b路由錯(cuò)計(jì)數(shù)器,上述目的端口檢查邏輯電路的一個(gè)輸出端經(jīng)過(guò)一個(gè)加1加法器后與該錯(cuò)誤包計(jì)數(shù)器的相應(yīng)輸入端相連,再把加1后的路由錯(cuò)誤包數(shù)返回上述目的端口檢查邏輯電路;D7c4拍延遲寄存器,它的數(shù)據(jù)輸入端、str信號(hào)輸入端、png信號(hào)輸入端、chk信號(hào)輸入端分別與上述目的端口檢查邏輯電路的相應(yīng)輸出端相連;D7d輸出鎖存器一,它的數(shù)據(jù)包輸入端、使能信號(hào)str信號(hào)輸入端分別與上述4拍延遲寄存器的相應(yīng)輸出端相連;該鎖存器一的輸出端與上述流統(tǒng)計(jì)電路G的相應(yīng)輸入端相連;D7e輸出鎖存器二,它的數(shù)據(jù)輸入端、使能信號(hào)png信號(hào)分別與上述4拍延遲寄存器的相應(yīng)輸出端相連;該鎖存器二的輸出端與上述ping包統(tǒng)計(jì)電路的輸入端相連;其中,上述數(shù)據(jù)包抓取電路對(duì)數(shù)據(jù)分析預(yù)處理電路送來(lái)的數(shù)據(jù)執(zhí)行數(shù)據(jù)包抓取操作,它包括E1IP地址匹配電路,它對(duì)輸入數(shù)據(jù)包進(jìn)行源、目的地址的匹配性檢查,并在邊帶信息上加上相應(yīng)標(biāo)記即源地址匹配信號(hào)sip、目的地址匹配信號(hào)dip后轉(zhuǎn)發(fā)給下級(jí)電路,它包括E1aIP地址匹配邏輯電路,它的數(shù)據(jù)輸入端、校驗(yàn)和標(biāo)記chk輸入端分別與上述路由錯(cuò)誤計(jì)數(shù)電路D7中的4拍延遲寄存器D7c的相應(yīng)輸出端相連,它的路由錯(cuò)誤標(biāo)記mis信號(hào)輸入端與上述目的端口檢查邏輯電路D7a的相應(yīng)輸出端相連;該IP地址匹配邏輯電路的目的IP地址及匹配規(guī)則、源IP地址及匹配規(guī)則輸入端分別與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;E1b3拍延遲寄存器,它的數(shù)據(jù)輸入端、chk信號(hào)輸入端、mis信號(hào)輸入端分別與上述IP地址匹配邏輯電路的相應(yīng)輸出端相連;E2包頭協(xié)議與長(zhǎng)度字段匹配電路,它對(duì)接收到的數(shù)據(jù)包進(jìn)行協(xié)議號(hào)、長(zhǎng)度的匹配性檢查,并在數(shù)據(jù)包的邊帶信息上加上相應(yīng)標(biāo)記即協(xié)議號(hào)匹配信號(hào)pro、長(zhǎng)度1匹配信號(hào)len1、長(zhǎng)度2匹配信號(hào)len2后轉(zhuǎn)發(fā)給下一級(jí)電路,它包括E2a包頭協(xié)議與長(zhǎng)度字段匹配邏輯電路,它的數(shù)據(jù)輸入端、校驗(yàn)和標(biāo)記chk輸入端、路由錯(cuò)誤標(biāo)記mis輸入端分別與上述IP地址匹配電路E1中的3拍延遲寄存器E1b的相應(yīng)輸出端相連,它的源地址匹配信號(hào)sip輸入端、目的地址匹配信號(hào)dip輸入端分別與上述IP地址匹配邏輯電路E1a的相應(yīng)輸出端相連;它的長(zhǎng)度1及匹配規(guī)則、長(zhǎng)度2及匹配規(guī)則、協(xié)議號(hào)及匹配規(guī)則輸入端分別與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;所謂協(xié)議號(hào)是指IPv4和IPv6報(bào)文頭的協(xié)議字段;所謂長(zhǎng)度1、長(zhǎng)度2是給定的報(bào)文長(zhǎng)度值;E2b1拍延遲寄存器,它的數(shù)據(jù)輸入端、chk信號(hào)輸入端、mis信號(hào)輸入端、sip信號(hào)輸入端、dip信號(hào)輸入端分別與上述包頭協(xié)議與長(zhǎng)度字段匹配邏輯電路的相應(yīng)輸出端相連;E3觸發(fā)器匹配電路,它對(duì)從上級(jí)電路接收到的數(shù)據(jù)包選取的部分內(nèi)容進(jìn)行觸發(fā)信息即trigger匹配,并在數(shù)據(jù)包的邊帶信息上加上相應(yīng)標(biāo)記即觸發(fā)器匹配信號(hào)trig1、trig2、trig3、trig4后轉(zhuǎn)發(fā)給下一級(jí)電路,它包括E3a觸發(fā)器匹配邏輯電路,它的數(shù)據(jù)輸入端、校驗(yàn)和標(biāo)記chk輸入端、路由錯(cuò)誤標(biāo)記mis輸入端、源地址匹配標(biāo)記sip輸入端、目的地址匹配標(biāo)記dip輸入端分別與上述包頭協(xié)議與長(zhǎng)度字段匹配電路中的1拍延遲寄存器E2b的相應(yīng)輸出端相連,它的另外3個(gè)邊帶信息pro、len1、len2輸入端分別與上述包頭協(xié)議與長(zhǎng)度字段匹配邏輯電路E2a的相應(yīng)輸出端相連;它的4個(gè)觸發(fā)信息即trigger1、2、3、4及相應(yīng)匹配規(guī)則的4個(gè)輸入端與上述用J表示的CPU接口電路的相應(yīng)輸出端相連;其中,所述的len1、len2是表示長(zhǎng)度字段的邊帶信息,pro是指IPv4的protocol字段或IPv6的next header字段的邊帶信息,即協(xié)議號(hào)匹配信號(hào);trig1~trig4是表示4個(gè)用于trigger規(guī)則的匹配信息,其中任一個(gè)trigger是一組匹配規(guī)則,完成對(duì)一個(gè)IP包某一區(qū)域內(nèi)特定值的檢查比較;E3b5拍延遲寄存器,它的數(shù)據(jù)輸入端、各邊帶信息chk、mis、sip、dip、pro、len1、len2輸入端分別與上述觸發(fā)器匹配邏輯電路E3a的相應(yīng)輸出端相連;E4數(shù)據(jù)抓取控制電路,它根據(jù)配置的抓取方案對(duì)照數(shù)據(jù)包中的各邊帶標(biāo)記決定一個(gè)數(shù)據(jù)包是否應(yīng)該寫(xiě)到外部SRAM中去,生成SRAM寫(xiě)請(qǐng)求信號(hào);它包括E4a抓取控制邏輯電路,它的各邊帶信息chk、mis、sip、dip、pro、len1、len2輸入端與上述觸發(fā)器匹配電路中5拍延遲寄存器E3b相連,另4個(gè)邊帶信息trig1~trig4與上述觸發(fā)器匹配電路中的觸發(fā)器匹配邏輯電路E3a相連;E4b數(shù)據(jù)鎖存器,它的數(shù)據(jù)輸入端、使能信號(hào)分別與上述5拍延遲寄存器E3b、抓取控制邏輯電路E4a的相應(yīng)輸出端相連;E5SRAM仲裁電路,同時(shí)接收來(lái)自上述抓取控制電路的寫(xiě)請(qǐng)求和來(lái)自用J表示的CPU接口電路的讀請(qǐng)求,生成符合片外SRAM時(shí)序的讀寫(xiě)控制信號(hào),其中,來(lái)自上述CPU接口電路的讀請(qǐng)求具有更高優(yōu)先級(jí),它包括E5a讀寫(xiě)仲裁邏輯電路,它與上述CPU接口電路互連,而它的另一個(gè)輸入端與上述數(shù)據(jù)鎖存器E4b的相應(yīng)輸出端相連,該讀寫(xiě)仲裁邏輯電路又與片外SRAM互連;其中,ping包的統(tǒng)計(jì)電路實(shí)現(xiàn)ping數(shù)據(jù)包的總包數(shù)、總延遲和最后一個(gè)包的延遲的統(tǒng)計(jì),它包括F1數(shù)據(jù)包檢測(cè)邏輯電路;F2延遲提取邏輯電路;F1、F2這兩個(gè)電路的輸入端分別與上述數(shù)據(jù)分析預(yù)處理電路中路由錯(cuò)誤計(jì)數(shù)電路內(nèi)輸出寄存器二的兩個(gè)輸出端相連;F3ping包數(shù)目寄存器,它的輸入端與上述數(shù)據(jù)包檢測(cè)邏輯電路的輸出端相連;F4總延遲寄存器,它存儲(chǔ)總延遲統(tǒng)計(jì)的結(jié)果;F5加法器,它的兩個(gè)輸入端分別接延遲提取邏輯電路和總延遲寄存器的相應(yīng)輸出端,而該加法器的輸出端與總延遲寄存器的輸入端相連;F6當(dāng)前延遲寄存器,它的輸入端與上述延遲提取邏輯電路的輸出端相連;其中,流統(tǒng)計(jì)電路,它包括G1每流延遲統(tǒng)計(jì)電路,它對(duì)包括最大延遲、最小延遲和總延遲在內(nèi)的每流數(shù)據(jù)包傳輸延遲進(jìn)行統(tǒng)計(jì)并予以記錄,供用J表示的CPU接口電路讀取,它包括G1a流編號(hào)提取邏輯電路,它的數(shù)據(jù)輸入端與上述數(shù)據(jù)分析預(yù)處理電路中路由錯(cuò)誤計(jì)數(shù)電路內(nèi)輸出寄存器一的輸出端相連;G1b延遲提取邏輯電路,它的輸入端與上述流編號(hào)提取邏輯電路的輸入端是并接的;G1c總延遲寄存器;G1d加法器,它的兩個(gè)輸入端分別和上述延遲提取邏輯電路和總延遲寄存器的輸出端相連;G1e最大延遲寄存器;G1f比較器一,它的兩個(gè)輸入端分別和上述最大延遲寄存器和延遲提取邏輯電路的各一個(gè)輸出端相連;G1g最小延遲寄存器;G1h比較器二,它的兩個(gè)輸入端分別和上述最小延遲寄存器和延遲提取邏輯電路的各一個(gè)輸出端相連;G1i2路數(shù)據(jù)選擇器一,它的兩個(gè)輸入端分別和上述最大延遲寄存器和延遲提取邏輯電路的各一個(gè)輸出端相連;G1j2路數(shù)據(jù)選擇器二,它的兩個(gè)輸入端分別和上述最小延遲寄存器和延遲提取邏輯電路的各一個(gè)輸出端相連;G1k寫(xiě)數(shù)據(jù)寄存器,它的三個(gè)輸入端分別和上述加法器和兩個(gè)數(shù)據(jù)選擇器一、二的輸出端相連;G1l讀數(shù)據(jù)寄存器,它的數(shù)據(jù)輸出端口與上述總延遲寄存器、最大延遲寄存器、最小延遲寄存器的輸入端相連;G1m讀寫(xiě)地址寄存器,它的數(shù)據(jù)輸入端與上述流編號(hào)提取邏輯電路的輸出端相連;G2每流亂序統(tǒng)計(jì)電路,它統(tǒng)計(jì)每流的丟包數(shù)、亂序和重傳計(jì)數(shù)信息,并存儲(chǔ)統(tǒng)計(jì)結(jié)果,供用J表示的CPU接口電路讀取,它包括G2a流編號(hào)提取邏輯電路,它的數(shù)據(jù)輸入端與上述數(shù)據(jù)分析預(yù)處理電路中路由錯(cuò)誤計(jì)數(shù)電路內(nèi)輸出寄存器一的輸出端相連;G2b包序號(hào)提取邏輯電路,它的數(shù)據(jù)輸入端與上述流編號(hào)提取邏輯電路G2a的輸入端并接;G2c丟失包數(shù)目寄存器;G2d重傳包數(shù)目寄存器;G2e亂序包數(shù)目寄存器;G2fRFC1242窗口機(jī)制控制器,它的4個(gè)輸入端分別與上述包序號(hào)提取邏輯電路G2b以及丟失包、重傳包、亂序包各個(gè)數(shù)目寄存器的輸出端相連;G2g寫(xiě)數(shù)據(jù)寄存器,它的輸入端與上述RFC1242窗口機(jī)制控制器的輸出端相連;G2h讀數(shù)據(jù)寄存器,它的數(shù)據(jù)輸出端與上述丟失包、重傳包、亂序包各個(gè)數(shù)目寄存器的輸入端相連;G2i讀寫(xiě)地址寄存器,它的數(shù)據(jù)輸入端與上述流編號(hào)提取邏輯電路G2a的輸出端相連;G3實(shí)時(shí)延遲統(tǒng)計(jì)電路,它根據(jù)流標(biāo)簽中可選項(xiàng)域來(lái)決定對(duì)哪一條流進(jìn)行實(shí)時(shí)延遲統(tǒng)計(jì),并存儲(chǔ)相應(yīng)統(tǒng)計(jì)結(jié)果,供用J表示的CPU接口電路讀取,它包括G3a延遲提取邏輯電路,它的數(shù)據(jù)輸入端與上述數(shù)據(jù)分析預(yù)處理電路中路由錯(cuò)誤計(jì)數(shù)電路內(nèi)輸出寄存器一的輸出端相連;G3b延遲寄存器,它的輸入端與上述延遲提取邏輯電路的輸出端相連;G3c寫(xiě)數(shù)據(jù)寄存器,它的輸入端與上述延遲寄存器的輸出端相連;G3d下一地址寄存器;G3e寫(xiě)地址寄存器,它的輸入端與上述下一地址寄存器的輸出端相連,而它的輸出端經(jīng)過(guò)一個(gè)加1加法器后與上述下一地址寄存器的輸入端相連,加1后的值返回該寫(xiě)地址寄存器;G4延遲分布統(tǒng)計(jì)電路,它根據(jù)流標(biāo)簽中可選項(xiàng)域決定對(duì)哪一條流做延遲分布統(tǒng)計(jì),統(tǒng)計(jì)結(jié)果存儲(chǔ)并供用J表示的CPU接口電路讀取,它包括G4a延遲提取邏輯電路,它的數(shù)據(jù)輸入端與上述數(shù)據(jù)分析預(yù)處理電路中路由錯(cuò)誤計(jì)數(shù)電路內(nèi)輸出寄存器一的輸出端相連;G4b數(shù)據(jù)比較電路,它的兩個(gè)輸入端分別與上述延遲提取邏輯電路G4a、用J表示的CPU接口電路的15個(gè)延遲區(qū)間端點(diǎn)寄存器的輸出端相連;G4c讀寫(xiě)地址寄存器,它的輸入端與上述數(shù)據(jù)比較電路G4b的輸出端相連;G4d區(qū)間內(nèi)延遲個(gè)數(shù)寄存器;G4e讀數(shù)據(jù)寄存器,它的數(shù)據(jù)輸出端與上述區(qū)間內(nèi)延遲個(gè)數(shù)寄存器的輸入端相連;G4f寫(xiě)數(shù)據(jù)寄存器,它的數(shù)據(jù)輸入端與上述區(qū)間內(nèi)延遲個(gè)數(shù)寄存器的輸出端相連;G5每流統(tǒng)計(jì)電路,它統(tǒng)計(jì)接收到的包括每流字節(jié)數(shù)、總包數(shù)在內(nèi)的數(shù)據(jù),并存儲(chǔ)供用J表示的CPU接口電路讀取,它包括G5a流編號(hào)提取邏輯電路,它的數(shù)據(jù)輸入端與上述數(shù)據(jù)分析預(yù)處理電路中路由錯(cuò)誤計(jì)數(shù)電路內(nèi)輸出寄存器一的輸出端相連;G5b字節(jié)數(shù)目寄存器;G5c包數(shù)目寄存器;G5d讀數(shù)據(jù)寄存器,它的兩個(gè)數(shù)據(jù)輸出端分別與上述字節(jié)數(shù)目寄存器、包數(shù)目寄存器的輸入端相連;G5e寫(xiě)數(shù)據(jù)寄存器,上述包數(shù)目寄存器的輸出值加1后送往該寫(xiě)數(shù)據(jù)寄存器的輸入端,上述字節(jié)數(shù)目寄存器的輸出值加α后送往該寫(xiě)數(shù)據(jù)寄存器的輸入端;G5f讀寫(xiě)地址寄存器,它的輸入端與上述流編號(hào)提取邏輯電路G5a的輸出端相連;其中,5個(gè)流統(tǒng)計(jì)結(jié)果存儲(chǔ)器I,它分別與上述每流延遲統(tǒng)計(jì)電路中、每流亂序統(tǒng)計(jì)電路中、延遲分布統(tǒng)計(jì)電路中以及每流統(tǒng)計(jì)電路中讀數(shù)據(jù)寄存器的輸入端相連,而與它們的寫(xiě)數(shù)據(jù)寄存器、讀寫(xiě)地址寄存器的各輸出端相連;該5個(gè)流統(tǒng)計(jì)結(jié)果存儲(chǔ)器的輸入端還與上述實(shí)時(shí)延遲統(tǒng)計(jì)電路中寫(xiě)數(shù)據(jù)寄存器、寫(xiě)地址寄存器的各輸出端相連;其中,CPU接口電路用J表示,它根據(jù)外部CPU指令完成各配置寄存器的配置以及各統(tǒng)計(jì)結(jié)果的提交,它包括J1CPU地址寄存器;J2CPU控制信號(hào)寄存器;J3CPU數(shù)據(jù)總線三態(tài)調(diào)度邏輯電路,它的輸入端與上述CPU控制信號(hào)寄存器的輸出端相連;上述電路J1~J3分別與外部CPU相應(yīng)輸出端相連;J4地址譯碼器,它的輸入端與上述CPU地址寄存器的輸出端相連;J5狀態(tài)寄存器組,它的輸入端分別和上述數(shù)據(jù)分析預(yù)處理電路中的幀數(shù)計(jì)數(shù)器D1b、字節(jié)計(jì)數(shù)器D1c、錯(cuò)誤包計(jì)數(shù)器D6b、路由錯(cuò)計(jì)數(shù)器D7b的各輸出端相連,它的輸入端還和上述ping包統(tǒng)計(jì)電路中的ping包數(shù)目寄存器F3、總延遲寄存器F4、當(dāng)前延遲寄存器F6的各輸出端相連;J6配置寄存器組,它的各輸出端分別連接到上述數(shù)據(jù)包抓取電路、數(shù)據(jù)分析預(yù)處理電路、協(xié)議幀上交電路、流統(tǒng)計(jì)電路的各相連輸入端;J7外部SRAM數(shù)據(jù)寄存器,它的輸入端與數(shù)據(jù)包抓取電路的SRAM仲裁電路相連;J8流統(tǒng)計(jì)結(jié)果存儲(chǔ)器數(shù)據(jù)寄存器組,它的各輸入端分別與上述5個(gè)流統(tǒng)計(jì)結(jié)果存儲(chǔ)器的各輸出端相連;J9協(xié)議幀存儲(chǔ)器數(shù)據(jù)寄存器,它的各輸入端與上述協(xié)議幀存儲(chǔ)器的輸出端相連;上述地址譯碼器J4的各輸出端分別和上述J5~J9各電路的輸入端相連;上述CPU數(shù)據(jù)總線三態(tài)調(diào)度邏輯電路的各輸入端分別和上述狀態(tài)寄存器組、外部SRAM數(shù)據(jù)寄存器以及協(xié)議幀存儲(chǔ)器數(shù)據(jù)寄存器的各輸出端相連;同時(shí),又與上述流統(tǒng)計(jì)結(jié)果存儲(chǔ)器數(shù)據(jù)寄存器組互連;它的輸出端則與上述配置寄存器組的輸入端相連。
全文摘要
10G網(wǎng)絡(luò)性能測(cè)試儀流量接收、抓取與統(tǒng)計(jì)電路組件屬于高速網(wǎng)絡(luò)性能測(cè)試技術(shù)領(lǐng)域,其特征在于,它是在FPGA上實(shí)現(xiàn)的,它在通過(guò)PL4 IPCore接收器從幀控制器中接收到幀數(shù)據(jù)后,用分路電路把數(shù)據(jù)分為兩部分一部分通過(guò)協(xié)議幀上交電路及相應(yīng)的存儲(chǔ)器被CPU通過(guò)CPU接口電路讀取,送往上一級(jí)應(yīng)用程序;另一部分經(jīng)過(guò)數(shù)據(jù)分析預(yù)處理電路后,進(jìn)行流和ping包統(tǒng)計(jì)并經(jīng)相應(yīng)接口電路送往CPU;同時(shí)又送往數(shù)據(jù)包抓取電路,它根據(jù)設(shè)定的抓取方案來(lái)決定哪一個(gè)數(shù)據(jù)應(yīng)該寫(xiě)到外部SRAM中,并生成寫(xiě)請(qǐng)求信號(hào),送往仲裁電路,從CPU發(fā)出的讀寫(xiě)指令中仲裁選取。它具有實(shí)時(shí)高速采集、可擴(kuò)展性好、易于升級(jí)的優(yōu)點(diǎn)。
文檔編號(hào)H04L12/26GK1688135SQ20051001171
公開(kāi)日2005年10月26日 申請(qǐng)日期2005年5月13日 優(yōu)先權(quán)日2005年5月13日
發(fā)明者張小平, 張鐵蕾, 吳建平, 陳榮第 申請(qǐng)人:清華大學(xué)