測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法及系統(tǒng),其中的方法包括:將生成的測(cè)試數(shù)據(jù)按預(yù)設(shè)速率發(fā)送給被測(cè)設(shè)備,然后再接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù);其中,通過(guò)使用TSC寄存器中的CPU時(shí)鐘周期數(shù)控制發(fā)送測(cè)試數(shù)據(jù)的速率,并記錄發(fā)送和接收每個(gè)測(cè)試數(shù)據(jù)時(shí)的TSC寄存器數(shù)值;同時(shí),利用網(wǎng)卡的發(fā)送緩沖區(qū)將測(cè)試數(shù)據(jù)發(fā)送給被測(cè)設(shè)備,然后利用網(wǎng)卡的接收緩沖區(qū)接收被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù);根據(jù)所記錄的TSC寄存器數(shù)值,統(tǒng)計(jì)從發(fā)送測(cè)試數(shù)據(jù),到接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù)的整個(gè)測(cè)試過(guò)程所需的時(shí)間,獲取被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參數(shù)。通過(guò)本發(fā)明能夠?qū)崿F(xiàn)在降低測(cè)試成本的同時(shí),精確地控制發(fā)送測(cè)試數(shù)據(jù)的速率、以及快速地接收及發(fā)送測(cè)試數(shù)據(jù)。
【專利說(shuō)明】測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)設(shè)備的測(cè)試【技術(shù)領(lǐng)域】,更為具體地,涉及一種測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法及系統(tǒng)。
【背景技術(shù)】
[0002]伴隨著互聯(lián)網(wǎng)規(guī)模的不斷擴(kuò)大,投入運(yùn)營(yíng)的網(wǎng)絡(luò)設(shè)備的種類及數(shù)目也在快速增長(zhǎng),各種各樣的網(wǎng)絡(luò)設(shè)備有機(jī)組合成為整個(gè)互聯(lián)網(wǎng)絡(luò)。在互聯(lián)網(wǎng)絡(luò)中,網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能直接影響著互聯(lián)網(wǎng)絡(luò)整體性能的有效發(fā)揮,因此,網(wǎng)絡(luò)設(shè)備的使用者需要方便、精確且快速地測(cè)量路由器、交換機(jī)、防火墻等網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)性能,以獲取這些網(wǎng)絡(luò)設(shè)備的吞吐量、時(shí)延、TCP并發(fā)連接數(shù)、TCP連接建立速率、HTTP事務(wù)處理速率、HTTP傳輸速率等性能參數(shù)。
[0003]目前主要使用專用的性能測(cè)試儀器(例如:IXIA公司的XM2型網(wǎng)絡(luò)測(cè)試儀)來(lái)測(cè)試網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)性能。通過(guò)使用這些高性能的專業(yè)測(cè)試儀器,可以對(duì)各種網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)性能進(jìn)行高精度、快速的測(cè)試,但是,這些專業(yè)測(cè)試儀器存在價(jià)格昂貴、測(cè)試端口數(shù)量較少、配置靈活性較差、初始化慢、缺少性能分析及優(yōu)化功能的問(wèn)題。
[0004]因此,有些網(wǎng)絡(luò)設(shè)備用戶自行開(kāi)發(fā)了網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的測(cè)試裝置,通用網(wǎng)絡(luò)服務(wù)器作為性能測(cè)試裝置的硬件平臺(tái),利用安裝在該通用網(wǎng)絡(luò)服務(wù)器上的網(wǎng)卡的端口作為測(cè)試端口。例如申請(qǐng)?zhí)枮?01110140077.5的中國(guó)專利申請(qǐng)公開(kāi)了一種測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的系統(tǒng)及方法。
[0005]在該專利申請(qǐng)中,披露了網(wǎng)絡(luò)性能分析設(shè)備組及數(shù)據(jù)收發(fā)設(shè)備組,該網(wǎng)絡(luò)性能分析設(shè)備組具備兩個(gè)低速端口。其中,網(wǎng)絡(luò)性能分析設(shè)備組產(chǎn)生低速數(shù)據(jù)流,并傳送給數(shù)據(jù)收發(fā)設(shè)備組,數(shù)據(jù)收發(fā)設(shè)備組將該低速數(shù)據(jù)流進(jìn)行放大處理為高速數(shù)據(jù)流再傳送給被測(cè)網(wǎng)絡(luò)設(shè)備,高速數(shù)據(jù)流經(jīng)由被測(cè)網(wǎng)絡(luò)設(shè)備回傳至數(shù)據(jù)收發(fā)設(shè)備組,數(shù)據(jù)收發(fā)設(shè)備組將該高速數(shù)據(jù)流進(jìn)行縮小處理為低速數(shù)據(jù)流后回傳至網(wǎng)絡(luò)性能分析設(shè)備組,由網(wǎng)絡(luò)性能分析設(shè)備組對(duì)被測(cè)網(wǎng)絡(luò)設(shè)備的傳輸性能進(jìn)行分析。
[0006]但是,這種測(cè)試系統(tǒng)及方法雖然能夠降低成本,但并沒(méi)有給出如何精確地控制發(fā)送報(bào)文的速率、以及如何快速地接收及發(fā)送報(bào)文的解決方案。
[0007]因此,需要一種新的測(cè)試系統(tǒng)及方法以精確地控制發(fā)送報(bào)文的速率和快速地接收及發(fā)送報(bào)文。
【發(fā)明內(nèi)容】
[0008]鑒于上述問(wèn)題,本發(fā)明的目的是提供一種測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法及系統(tǒng),以實(shí)現(xiàn)在降低測(cè)試成本的同時(shí),精確地控制發(fā)送測(cè)試數(shù)據(jù)的速率、以及快速地接收及發(fā)送測(cè)試數(shù)據(jù)。
[0009]根據(jù)本發(fā)明的一個(gè)方面,提供一種測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法,包括:
[0010]將生成的測(cè)試數(shù)據(jù)按預(yù)設(shè)速率發(fā)送給被測(cè)設(shè)備,然后再接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù);其中,通過(guò)使用TSC寄存器中的CPU時(shí)鐘周期數(shù)控制發(fā)送測(cè)試數(shù)據(jù)的速率,并記錄發(fā)送和接收每個(gè)測(cè)試數(shù)據(jù)時(shí)的TSC寄存器數(shù)值;同時(shí),利用網(wǎng)卡的發(fā)送緩沖區(qū)將測(cè)試數(shù)據(jù)發(fā)送給被測(cè)設(shè)備,然后利用網(wǎng)卡的接收緩沖區(qū)接收被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù);
[0011]根據(jù)所記錄的TSC寄存器數(shù)值,統(tǒng)計(jì)從發(fā)送測(cè)試數(shù)據(jù),到接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù)的整個(gè)測(cè)試過(guò)程所需的時(shí)間,獲取被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參數(shù)。
[0012]其中,在將生成的測(cè)試數(shù)據(jù)按預(yù)設(shè)速率發(fā)送給被測(cè)設(shè)備之前,還包括:
[0013]配置測(cè)試類型以及測(cè)試參數(shù);
[0014]根據(jù)所配置的測(cè)試類型以及測(cè)試參數(shù),初始化發(fā)送緩沖區(qū)和接收緩沖區(qū)以及TSC
寄存器。
[0015]其中,通過(guò)配置預(yù)設(shè)時(shí)間間隔,統(tǒng)計(jì)在所配置的預(yù)設(shè)時(shí)間間隔內(nèi),從發(fā)送測(cè)試數(shù)據(jù),到接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù)的整個(gè)測(cè)試過(guò)程所需的時(shí)間,獲取被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參數(shù)。
[0016]另一方面,本發(fā)明提供一種測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的系統(tǒng),包括:
[0017]數(shù)據(jù)收發(fā)單元,用于將生成的測(cè)試數(shù)據(jù)按預(yù)設(shè)速率發(fā)送給被測(cè)設(shè)備,然后再接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù);其中,通過(guò)使用TSC寄存器中的CPU時(shí)鐘周期數(shù)控制發(fā)送測(cè)試數(shù)據(jù)的速率,并記錄發(fā)送和接收每個(gè)測(cè)試數(shù)據(jù)時(shí)的TSC寄存器數(shù)值;同時(shí),利用網(wǎng)卡的發(fā)送緩沖區(qū)將測(cè)試數(shù)據(jù)發(fā)送給被測(cè)設(shè)備,然后利用網(wǎng)卡的接收緩沖區(qū)接收被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù);
[0018]性能統(tǒng)計(jì)單元,用于根據(jù)所記錄的TSC寄存器數(shù)值,統(tǒng)計(jì)從發(fā)送測(cè)試數(shù)據(jù),到接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù)的整個(gè)測(cè)試過(guò)程所需的時(shí)間,獲取被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參數(shù)。
[0019]利用上述根據(jù)本發(fā)明的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法及系統(tǒng),能夠?qū)崿F(xiàn)在降低測(cè)試成本的同時(shí),精確地控制發(fā)送測(cè)試數(shù)據(jù)的速率、以及快速地接收及發(fā)送測(cè)試數(shù)據(jù),并且通過(guò)統(tǒng)計(jì)時(shí)間間隔的靈活配置,還能夠?yàn)殚_(kāi)發(fā)人員在更小的時(shí)間粒度上分析和優(yōu)化網(wǎng)絡(luò)設(shè)備性能提供更多的信息。
[0020]為了實(shí)現(xiàn)上述以及相關(guān)目的,本發(fā)明的一個(gè)或多個(gè)方面包括后面將詳細(xì)說(shuō)明并在權(quán)利要求中特別指出的特征。下面的說(shuō)明以及附圖詳細(xì)說(shuō)明了本發(fā)明的某些示例性方面。然而,這些方面指示的僅僅是可使用本發(fā)明的原理的各種方式中的一些方式。此外,本發(fā)明旨在包括所有這些方面以及它們的等同物。
【專利附圖】
【附圖說(shuō)明】
[0021]通過(guò)參考以下結(jié)合附圖的說(shuō)明及權(quán)利要求書(shū)的內(nèi)容,并且隨著對(duì)本發(fā)明的更全面理解,本發(fā)明的其它目的及結(jié)果將更加明白及易于理解。在附圖中:
[0022]圖1為根據(jù)本發(fā)明實(shí)施例的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法流程示意圖;
[0023]圖2為根據(jù)本發(fā)明實(shí)施例的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法的詳細(xì)執(zhí)行流程示意圖;
[0024]圖3為根據(jù)本發(fā)明實(shí)施例的使用TSC寄存器控制測(cè)試數(shù)據(jù)發(fā)送速率的流程示意圖;
[0025]圖4為根據(jù)本發(fā)明實(shí)施例的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的系統(tǒng)邏輯結(jié)構(gòu)框圖。
[0026]在所有附圖中相同的標(biāo)號(hào)指示相似或相應(yīng)的特征或功能?!揪唧w實(shí)施方式】
[0027]以下將結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例進(jìn)行詳細(xì)描述。
[0028]針對(duì)前述現(xiàn)有的網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的測(cè)試存在不能精確控制發(fā)送報(bào)文的速率,以及不能快速地接收和發(fā)送報(bào)文的問(wèn)題,本發(fā)明通過(guò)使用TSC (Time signal counter,時(shí)鐘信號(hào)計(jì)數(shù))寄存器中的CPU時(shí)鐘周期數(shù)來(lái)控制發(fā)送測(cè)試數(shù)據(jù)的速率和統(tǒng)計(jì)每個(gè)測(cè)試數(shù)據(jù)經(jīng)過(guò)被測(cè)設(shè)備所消耗的時(shí)間,以及利用網(wǎng)卡的發(fā)送緩沖區(qū)和接收緩沖區(qū)來(lái)發(fā)送和接收測(cè)試數(shù)據(jù),能夠?qū)崿F(xiàn)在降低測(cè)試成本的同時(shí),精確地控制發(fā)送測(cè)試數(shù)據(jù)的速率、以及快速地接收和發(fā)送測(cè)試數(shù)據(jù)。
[0029]需要說(shuō)明的是,在本發(fā)明中,可以選用基于X86的通用網(wǎng)絡(luò)服務(wù)器作為測(cè)試硬件,至于操作系統(tǒng)可以采用Linux、UNIX或者FreeBSD對(duì)被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能進(jìn)行測(cè)試。
[0030]為了說(shuō)明本發(fā)明提供的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法,圖1示出了根據(jù)本發(fā)明實(shí)施例的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法流程。
[0031]如圖1所示,本發(fā)明提供的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法包括:
[0032]SllO:將生成的測(cè)試數(shù)據(jù)按預(yù)設(shè)速率發(fā)送給被測(cè)設(shè)備,然后再接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù);其中,通過(guò)使用TSC寄存器中的CPU時(shí)鐘周期數(shù)控制發(fā)送測(cè)試數(shù)據(jù)的速率,并記錄發(fā)送和接收每個(gè)測(cè)試數(shù)據(jù)時(shí)的TSC寄存器數(shù)值;同時(shí),利用網(wǎng)卡的發(fā)送緩沖區(qū)將測(cè)試數(shù)據(jù)發(fā)送給被測(cè)設(shè)備,然后利用網(wǎng)卡的接收緩沖區(qū)接收被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù)。
[0033]其中,在將生成的測(cè)試數(shù)據(jù)按預(yù)設(shè)速率發(fā)送給被測(cè)設(shè)備之前,還包括:配置測(cè)試類型以及測(cè)試參數(shù);根據(jù)所配置的測(cè)試類型以及測(cè)試參數(shù),初始化發(fā)送緩沖區(qū)和接收緩沖區(qū)以及TSC寄存器。
[0034]在初始化發(fā)送緩沖區(qū)和接收緩沖區(qū)的過(guò)程中,對(duì)發(fā)送緩沖區(qū)和接收緩沖區(qū)進(jìn)行DMA映射,并根據(jù)配置的測(cè)試類型對(duì)發(fā)送緩沖區(qū)和接收緩沖區(qū)的內(nèi)容進(jìn)行初始化。
[0035]S120:根據(jù)所記錄的TSC寄存器數(shù)值,統(tǒng)計(jì)從發(fā)送測(cè)試數(shù)據(jù),到接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù)的整個(gè)測(cè)試過(guò)程所需的時(shí)間,獲取被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參數(shù)。
[0036]其中,通過(guò)配置時(shí)間間隔,統(tǒng)計(jì)在所配置的時(shí)間間隔內(nèi),從發(fā)送測(cè)試數(shù)據(jù),到接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù)的整個(gè)測(cè)試過(guò)程所需的時(shí)間,獲取被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參數(shù)。
[0037]為了使本發(fā)明提供的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法更為清楚的體現(xiàn),圖2示出了根據(jù)本發(fā)明實(shí)施例的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法的詳細(xì)執(zhí)行流程。
[0038]如圖2所示,本發(fā)明提供的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法的執(zhí)行流程如下所示:
[0039]S210:配置測(cè)試類型以及測(cè)試參數(shù)。
[0040]具體地,此步驟是為用戶提供配置測(cè)試類型及測(cè)試參數(shù)的接口,在測(cè)試完成之后,可以將測(cè)試結(jié)果返回給用戶。其中,測(cè)試類型可以是吞吐量、時(shí)延、TCP并發(fā)連接數(shù)、TCP連接建立速率、HTTP事務(wù)處理速率或者HTTP傳輸速率等。而測(cè)試參數(shù)則包括公共參數(shù)和與各個(gè)測(cè)試類型相關(guān)的參數(shù)。
[0041]其中,公共參數(shù)包括客戶端網(wǎng)卡、服務(wù)端網(wǎng)卡、測(cè)試二層轉(zhuǎn)發(fā)還是三層轉(zhuǎn)發(fā)、測(cè)試IPv4還是IPv6、客戶端IP地址范圍、源端口范圍、服務(wù)端IP地址范圍、目的端口等;另外如果測(cè)試的是三層轉(zhuǎn)發(fā),還需要配置客戶端網(wǎng)關(guān)地址和服務(wù)端網(wǎng)關(guān)地址。[0042]吞吐量和時(shí)延的測(cè)試參數(shù)包括數(shù)據(jù)報(bào)文長(zhǎng)度、測(cè)試時(shí)間、單向還是雙向以及會(huì)話數(shù);另外時(shí)延的測(cè)試參數(shù)還包括背景流量大小;TCP并發(fā)連接數(shù),TCP連接建立速率,HTTP事務(wù)處理速率,HTTP傳輸速率的測(cè)試參數(shù)包括是否重傳,重傳時(shí)間,最大重傳次數(shù),起始窗口大小,TCP并發(fā)連接數(shù)的測(cè)試參數(shù)還包括每秒建立連接數(shù)和建立連接總數(shù),HTTP傳輸速率的測(cè)試參數(shù)還包括HTTP版本號(hào),每條HTTP連接GET的網(wǎng)頁(yè)個(gè)數(shù),網(wǎng)頁(yè)大小。
[0043]S220:根據(jù)所配置的測(cè)試類型以及測(cè)試參數(shù),初始化發(fā)送緩沖區(qū)和接收緩沖區(qū)以及TSC寄存器。
[0044]S230:在完成初始化之后,啟動(dòng)測(cè)試,將生成的測(cè)試數(shù)據(jù)發(fā)送給被測(cè)設(shè)備。
[0045]其中,使用TSC寄存器中的CPU時(shí)鐘周期數(shù)控制測(cè)試數(shù)據(jù)的發(fā)送速率,并記錄發(fā)送每一個(gè)測(cè)試數(shù)據(jù)時(shí)的TSC寄存器數(shù)值。
[0046]S240:在被測(cè)設(shè)備接收上述測(cè)試數(shù)據(jù)并進(jìn)行轉(zhuǎn)發(fā)后,接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù)。
[0047]其中,使用接收緩沖區(qū)接收轉(zhuǎn)發(fā)回來(lái)的測(cè)試數(shù)據(jù),并記錄接收每一個(gè)轉(zhuǎn)發(fā)測(cè)試數(shù)據(jù)時(shí)的TSC寄存器數(shù)值;
[0048]S250:根據(jù)上述記錄的每個(gè)測(cè)試數(shù)據(jù)在發(fā)送和接收時(shí)的TSC寄存器數(shù)值,統(tǒng)計(jì)出在配置的預(yù)設(shè)時(shí)間間隔內(nèi),被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參數(shù)。
[0049]具體地,用接收測(cè)試數(shù)據(jù)時(shí)所記錄的TSC寄存器數(shù)值減去發(fā)送測(cè)試數(shù)據(jù)時(shí)所記錄的TSC寄存器數(shù)值,就能夠得到此測(cè)試數(shù)據(jù)通過(guò)被測(cè)設(shè)備所消耗的CPU時(shí)鐘周期,也就是被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參數(shù)。
[0050]例如,需要分析網(wǎng)絡(luò)設(shè)備的TCP連接建立速率,以便于對(duì)網(wǎng)絡(luò)設(shè)備的TCP連接建立速率進(jìn)行優(yōu)化。此時(shí)需要分別統(tǒng)計(jì)出SYN報(bào)文、SYN-ACK報(bào)文和ACK報(bào)文通過(guò)被測(cè)網(wǎng)絡(luò)設(shè)備平均所消耗的CPU時(shí)鐘周期,以為開(kāi)發(fā)人員提供更多有用的信息。通常SYN報(bào)文是處理一個(gè)會(huì)話的首包,會(huì)消耗更多的時(shí)間,SYN-ACK報(bào)文和ACK報(bào)文消耗的時(shí)間要小很多,并且兩者差別不大。如果測(cè)試表明ACK報(bào)文比SYN-ACK報(bào)文消耗的時(shí)間明顯要多,則表明網(wǎng)絡(luò)設(shè)備對(duì)ACK報(bào)文的處理部分可能存在問(wèn)題,開(kāi)發(fā)人員就可以針對(duì)此問(wèn)題進(jìn)行處理,達(dá)到優(yōu)化TCP連接建立速率的目的。
[0051]另外,在將生成的測(cè)試數(shù)據(jù)按預(yù)設(shè)速率發(fā)送給被測(cè)設(shè)備,然后再接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù)時(shí),需要解決兩個(gè)問(wèn)題:
[0052]首先是計(jì)時(shí)精度問(wèn)題。例如,在1000M網(wǎng)絡(luò)環(huán)境中,對(duì)于64字節(jié)的數(shù)據(jù),如果發(fā)送速率要達(dá)到線速,則測(cè)試儀器每秒需要發(fā)送1488096個(gè)數(shù)據(jù),即每1/1488096秒需要發(fā)送一個(gè)數(shù)據(jù),普通的計(jì)時(shí)方式根本達(dá)不到這樣的精度。
[0053]為此,本發(fā)明采用TSC寄存器中的CPU時(shí)鐘周期來(lái)計(jì)時(shí),這樣,當(dāng)向被測(cè)試設(shè)備發(fā)送測(cè)試數(shù)據(jù)時(shí),測(cè)試硬件的CPU主頻為IGHz時(shí),理論上可以達(dá)到的計(jì)時(shí)精度是1/1000000000。
[0054]其次是發(fā)送和接收數(shù)據(jù)的速率。假設(shè)使用INTEL80x86的普通網(wǎng)卡驅(qū)動(dòng)發(fā)送和接收數(shù)據(jù),由于需要為每個(gè)發(fā)送或接收的數(shù)據(jù)包申請(qǐng)和釋放緩沖區(qū),會(huì)極大影響收發(fā)的效率,導(dǎo)致性能遠(yuǎn)遠(yuǎn)不夠,特別是對(duì)于64字節(jié)的小包來(lái)說(shuō),萬(wàn)兆網(wǎng)絡(luò)只能勉強(qiáng)達(dá)到千兆。
[0055]為此,本發(fā)明采用重復(fù)利用網(wǎng)卡發(fā)送緩沖區(qū)和接收緩沖區(qū)的方式來(lái)發(fā)送和接收測(cè)試數(shù)據(jù)。即只在初始化的時(shí)候,對(duì)發(fā)送緩沖區(qū)和接收緩沖區(qū)進(jìn)行DMA映射,并根據(jù)測(cè)試類型對(duì)發(fā)送緩沖區(qū)和接收緩沖區(qū)進(jìn)行初始化,記錄發(fā)送測(cè)試數(shù)據(jù)在測(cè)試過(guò)程中保持不變的字段,每次發(fā)送/接收完測(cè)試數(shù)據(jù)之后,都不釋放原有緩沖區(qū),而是直接修改該緩沖區(qū)狀態(tài)位的值,使得該緩沖區(qū)又能夠發(fā)送/接收測(cè)試數(shù)據(jù)。
[0056]例如,可以將發(fā)送緩沖區(qū)狀態(tài)位和接收緩沖區(qū)狀態(tài)位設(shè)定為O或I。其中O表示可以使用該發(fā)送緩沖區(qū)/接收緩沖區(qū)進(jìn)行測(cè)試數(shù)據(jù)的發(fā)送/接收;I則表示禁止使用該發(fā)送緩沖區(qū)/接收緩沖區(qū)進(jìn)行測(cè)試數(shù)據(jù)的發(fā)送/接收。
[0057]具體地,在初始化階段,發(fā)送緩沖區(qū)狀態(tài)位和接收緩沖區(qū)狀態(tài)位均被設(shè)置為0,意味著可以使用這兩個(gè)緩沖區(qū)來(lái)發(fā)送/接收測(cè)試數(shù)據(jù)。在發(fā)送測(cè)試數(shù)據(jù)時(shí),將發(fā)送緩沖區(qū)狀態(tài)位的值設(shè)置為1,在發(fā)送完測(cè)試數(shù)據(jù)之后,修改發(fā)送緩沖區(qū)狀態(tài)位的值為0,使得該發(fā)送緩沖區(qū)又可以發(fā)送數(shù)據(jù)。同樣地,在接收緩沖區(qū)接收測(cè)試數(shù)據(jù)時(shí),將接收緩沖區(qū)狀態(tài)位的值設(shè)為1,在接收完測(cè)試數(shù)據(jù)之后,修改接收緩沖區(qū)狀態(tài)位的值為0,使得該接收緩沖區(qū)又可以接收數(shù)據(jù)。
[0058]同時(shí),為統(tǒng)計(jì)出準(zhǔn)確的測(cè)試結(jié)果,需要提高每類測(cè)試數(shù)據(jù)通過(guò)被測(cè)設(shè)備所消耗時(shí)間的統(tǒng)計(jì)精度。為此,本發(fā)明使用TSC寄存器中的CPU時(shí)鐘周期作為統(tǒng)計(jì)計(jì)時(shí)的依據(jù)。常見(jiàn)的專用性能測(cè)試儀器不能配置性能數(shù)據(jù)統(tǒng)計(jì)的時(shí)間間隔(通常是I秒),而在本發(fā)明中,由于采用了 TSC寄存器中CPU的時(shí)鐘周期數(shù)作為時(shí)間根據(jù),統(tǒng)計(jì)間隔時(shí)間可以配置為小于I秒,有利于開(kāi)發(fā)人員在更小的時(shí)間粒度上,對(duì)網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能進(jìn)行更加靈活的統(tǒng)計(jì)和分析。
[0059]為了更清楚地理解本發(fā)明提供的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法,圖3示出了根據(jù)本發(fā)明實(shí)施例的使用TSC寄存器控制測(cè)試數(shù)據(jù)發(fā)送速率的流程。
[0060]如圖3所示,具體包括如下步驟:
[0061]S310:根據(jù)測(cè)試的需要,設(shè)定本次發(fā)送測(cè)試數(shù)據(jù)的速率以及需要發(fā)送的測(cè)試數(shù)據(jù)包的數(shù)量M ;
[0062]S320:根據(jù)發(fā)送速率計(jì)算出兩次發(fā)送數(shù)據(jù)包之間的間隔的CPU時(shí)鐘周期數(shù)N ;
[0063]S330:初始化已發(fā)測(cè)試數(shù)據(jù)包的數(shù)目為0,初始化上次發(fā)送測(cè)試數(shù)據(jù)包的時(shí)間為O ;
[0064]S340:取TSC寄存器的值,計(jì)算與上次發(fā)送數(shù)據(jù)時(shí)間間隔的時(shí)鐘周期數(shù)i ;
[0065]S350,如果i〈N,表明還沒(méi)到發(fā)送下一個(gè)測(cè)試數(shù)據(jù)包的時(shí)間,則繼續(xù)執(zhí)行步驟S340 ;如果i>=N,則執(zhí)行步驟S360,準(zhǔn)備發(fā)送下一個(gè)測(cè)試數(shù)據(jù)包;
[0066]S360:在發(fā)送數(shù)據(jù)包之前,設(shè)定上次發(fā)送數(shù)據(jù)時(shí)間為當(dāng)前TSC寄存器的值;
[0067]S370:發(fā)送下一個(gè)測(cè)試數(shù)據(jù)包;
[0068]S380:將已發(fā)測(cè)試數(shù)據(jù)包的數(shù)目加一;
[0069]S390:判斷已發(fā)測(cè)試數(shù)據(jù)包的數(shù)目是否小于M,是則執(zhí)行步驟S340,繼續(xù)執(zhí)行循環(huán),發(fā)送測(cè)試數(shù)據(jù);否則,本次測(cè)試數(shù)據(jù)的發(fā)送過(guò)程已經(jīng)完成,結(jié)束本次發(fā)送。
[0070]通過(guò)上述可知,本發(fā)明提供的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法,通過(guò)使用TSC寄存器的CPU時(shí)鐘周期,能夠精確控制發(fā)送測(cè)試數(shù)據(jù)的速率,并且通過(guò)重復(fù)使用發(fā)送緩沖區(qū)和接收緩沖區(qū),能夠達(dá)到快速發(fā)送和接收測(cè)試數(shù)據(jù)的目的。
[0071 ] 為了體現(xiàn)本發(fā)明的效果,下述以示例方式進(jìn)行說(shuō)明。
[0072] 示例一[0073]使用二代DELL R210服務(wù)器和IXIA公司的XM2性能測(cè)試儀器分別對(duì)某款防火墻產(chǎn)品進(jìn)行64字節(jié)UDP吞吐量測(cè)試和TCP連接建立速率的測(cè)試,64字節(jié)UDP吞吐量測(cè)試,兩者的測(cè)試結(jié)果只相差萬(wàn)分之5,TCP連接建立速率的測(cè)試,兩者的結(jié)果之相差了千分之3。
[0074]示例二
[0075]在DELL R71服務(wù)器上,配置一塊PC1-E的Intel-82571雙口千兆網(wǎng)卡,在測(cè)試TCP連接建立速率時(shí),測(cè)試上限超過(guò)50萬(wàn),測(cè)試HTTP事務(wù)處理速率,測(cè)試上限超過(guò)7萬(wàn)(此時(shí)已經(jīng)達(dá)到千兆網(wǎng)卡的極限)。
[0076]示例三
[0077]在二代DELL R210服務(wù)器上,配置一塊PC1-E X8的Intel-82599雙口萬(wàn)兆網(wǎng)卡,使用重復(fù)利用網(wǎng)卡發(fā)送緩沖區(qū)和接收緩沖區(qū)的方式來(lái)收發(fā)報(bào)文,對(duì)于64字節(jié)的報(bào)文,使用一個(gè)CPU就可以將兩個(gè)萬(wàn)兆端口都發(fā)到線速,即每秒可以發(fā)送大約2976萬(wàn)個(gè)報(bào)文,此時(shí)CPU還有較多空閑,在相同的條件下使用一個(gè)CPU,利用Linux的pktgen來(lái)發(fā)送報(bào)文,每秒只能發(fā)送大約394萬(wàn)個(gè)報(bào)文,此時(shí)CPU占用100%。
[0078]通過(guò)上述示例能夠看出,本發(fā)明的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法,能夠精確的測(cè)試出網(wǎng)絡(luò)設(shè)備的性能值,并且在網(wǎng)絡(luò)設(shè)備的研發(fā)過(guò)程中,能夠以更小的時(shí)間粒度,為開(kāi)人員在分析和優(yōu)化網(wǎng)絡(luò)設(shè)備性能時(shí)提供更多的信息。
[0079]與上述方法相對(duì)應(yīng),本發(fā)明還提供一種測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的系統(tǒng)。圖4示出了根據(jù)本發(fā)明實(shí)施例的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的系統(tǒng)邏輯結(jié)構(gòu)。
[0080]如圖4所示,本發(fā)明提供的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的系統(tǒng)400包括數(shù)據(jù)收發(fā)單元410和性能統(tǒng)計(jì)單元420。
[0081]其中,數(shù)據(jù)收發(fā)單元410用于將生成的測(cè)試數(shù)據(jù)按預(yù)設(shè)速率發(fā)送給被測(cè)設(shè)備,然后再接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù);其中,通過(guò)使用TSC寄存器中的CPU時(shí)鐘周期數(shù)控制發(fā)送測(cè)試數(shù)據(jù)的速率,并記錄發(fā)送和接收每個(gè)測(cè)試數(shù)據(jù)時(shí)的TSC寄存器數(shù)值;同時(shí),利用網(wǎng)卡的發(fā)送緩沖區(qū)將測(cè)試數(shù)據(jù)發(fā)送給被測(cè)設(shè)備,然后利用網(wǎng)卡的接收緩沖區(qū)接收被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù)。
[0082]性能統(tǒng)計(jì)單元420用于根據(jù)所記錄的TSC寄存器數(shù)值,統(tǒng)計(jì)從發(fā)送測(cè)試數(shù)據(jù),到接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù)的整個(gè)測(cè)試過(guò)程所需的時(shí)間,獲取被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參數(shù)。
[0083]其中,數(shù)據(jù)收發(fā)單元410在將生成的測(cè)試數(shù)據(jù)按預(yù)設(shè)速率發(fā)送給被測(cè)設(shè)備之前,還包括配置單元和初始化單元(圖中均未示出)。
[0084]其中,配置單元用于配置測(cè)試類型以及測(cè)試參數(shù);初始化單元用于根據(jù)所配置的測(cè)試類型以及測(cè)試參數(shù),初始化發(fā)送緩沖區(qū)和接收緩沖區(qū)以及TSC寄存器。初始化單元在初始化發(fā)送緩沖區(qū)和接收緩沖區(qū)的過(guò)程中,對(duì)發(fā)送緩沖區(qū)和接收緩沖區(qū)進(jìn)行DMA映射,并根據(jù)配置的測(cè)試類型對(duì)發(fā)送緩沖區(qū)和接收緩沖區(qū)的內(nèi)容進(jìn)行初始化。
[0085]另外,性能統(tǒng)計(jì)單元420通過(guò)配置預(yù)設(shè)時(shí)間間隔,統(tǒng)計(jì)在所配置的預(yù)設(shè)時(shí)間間隔內(nèi),從發(fā)送測(cè)試數(shù)據(jù),到接收從被測(cè)設(shè)備轉(zhuǎn)發(fā)回的測(cè)試數(shù)據(jù)的整個(gè)測(cè)試過(guò)程所需的時(shí)間,獲取被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參數(shù)。
[0086]如上參照附圖以示例的方式描述了根據(jù)本發(fā)明的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法及系統(tǒng)。但是,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,對(duì)于上述本發(fā)明所提出的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法及系統(tǒng),還可以在不脫離本
【發(fā)明內(nèi)容】
的基礎(chǔ)上做出各種改進(jìn)。因此,本發(fā)明的保護(hù)范圍應(yīng)當(dāng)由所附的權(quán)利要求書(shū)的內(nèi)容確定。
【權(quán)利要求】
1.一種測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法,包括: 將生成的測(cè)試數(shù)據(jù)按預(yù)設(shè)速率發(fā)送給被測(cè)設(shè)備,然后再接收從所述被測(cè)設(shè)備轉(zhuǎn)發(fā)回的所述測(cè)試數(shù)據(jù);其中, 通過(guò)使用TSC寄存器中的CPU時(shí)鐘周期數(shù)控制發(fā)送所述測(cè)試數(shù)據(jù)的速率,并記錄發(fā)送和接收每個(gè)測(cè)試數(shù)據(jù)時(shí)的TSC寄存器數(shù)值;同時(shí), 利用網(wǎng)卡的發(fā)送緩沖區(qū)將所述測(cè)試數(shù)據(jù)發(fā)送給所述被測(cè)設(shè)備,然后利用網(wǎng)卡的接收緩沖區(qū)接收所述被測(cè)設(shè)備轉(zhuǎn)發(fā)回的所述測(cè)試數(shù)據(jù); 根據(jù)所記錄的TSC寄存器數(shù)值,統(tǒng)計(jì)從發(fā)送所述測(cè)試數(shù)據(jù),到接收從所述被測(cè)設(shè)備轉(zhuǎn)發(fā)回的所述測(cè)試數(shù)據(jù)的整個(gè)測(cè)試過(guò)程所需的時(shí)間,獲取所述被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參數(shù)。
2.如權(quán)利要求1所述的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法,其中,在將生成的測(cè)試數(shù)據(jù)按預(yù)設(shè)速率發(fā)送給被測(cè)設(shè)備之前,還包括: 配置測(cè)試類型以及測(cè)試參數(shù); 根據(jù)所配置的測(cè)試類型以及測(cè)試參數(shù),初始化所述發(fā)送緩沖區(qū)和接收緩沖區(qū)以及所述TSC寄存器。
3.如權(quán)利要求2所述的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法,其中,在初始化所述發(fā)送緩沖區(qū)和接收緩沖區(qū)的過(guò)程中, 對(duì)所述發(fā)送緩沖區(qū)和接收緩沖區(qū)進(jìn)行DMA映射,并根據(jù)配置的測(cè)試類型對(duì)所述發(fā)送緩沖區(qū)和接收緩沖區(qū)的內(nèi)容進(jìn)行初始化。`
4.如權(quán)利要求1所述的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的方法,其中,通過(guò)配置預(yù)設(shè)時(shí)間間隔,統(tǒng)計(jì)在所配置的預(yù)設(shè)時(shí)間間隔內(nèi),從發(fā)送所述測(cè)試數(shù)據(jù),到接收從所述被測(cè)設(shè)備轉(zhuǎn)發(fā)回的所述測(cè)試數(shù)據(jù)的整個(gè)測(cè)試過(guò)程所需的時(shí)間,獲取所述被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參數(shù)。
5.一種測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的系統(tǒng),包括: 數(shù)據(jù)收發(fā)單元,用于將生成的測(cè)試數(shù)據(jù)按預(yù)設(shè)速率發(fā)送給被測(cè)設(shè)備,然后再接收從所述被測(cè)設(shè)備轉(zhuǎn)發(fā)回的所述測(cè)試數(shù)據(jù);其中, 通過(guò)使用TSC寄存器中的CPU時(shí)鐘周期數(shù)控制發(fā)送所述測(cè)試數(shù)據(jù)的速率,并記錄發(fā)送和接收每個(gè)測(cè)試數(shù)據(jù)時(shí)的TSC寄存器數(shù)值;同時(shí), 利用網(wǎng)卡的發(fā)送緩沖區(qū)將所述測(cè)試數(shù)據(jù)發(fā)送給所述被測(cè)設(shè)備,然后利用網(wǎng)卡的接收緩沖區(qū)接收所述被測(cè)設(shè)備轉(zhuǎn)發(fā)回的所述測(cè)試數(shù)據(jù); 性能統(tǒng)計(jì)單元,用于根據(jù)所記錄的TSC寄存器數(shù)值,統(tǒng)計(jì)從發(fā)送所述測(cè)試數(shù)據(jù),到接收從所述被測(cè)設(shè)備轉(zhuǎn)發(fā)回的所述測(cè)試數(shù)據(jù)的整個(gè)測(cè)試過(guò)程所需的時(shí)間,獲取所述被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參數(shù)。
6.如權(quán)利要求5所述的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的系統(tǒng),其中,所述數(shù)據(jù)收發(fā)單元在將生成的測(cè)試數(shù)據(jù)按預(yù)設(shè)速率發(fā)送給被測(cè)設(shè)備之前,還包括: 配置單元,用于配置測(cè)試類型以及測(cè)試參數(shù); 初始化單元,用于根據(jù)所配置的測(cè)試類型以及測(cè)試參數(shù),初始化所述發(fā)送緩沖區(qū)和接收緩沖區(qū)以及所述TSC寄存器。
7.如權(quán)利要求6所述的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的系統(tǒng),其中,所述初始化單元在初始化所述發(fā)送緩沖區(qū)和接收緩沖區(qū)的過(guò)程中, 對(duì)所述發(fā)送緩沖區(qū)和接收緩沖區(qū)進(jìn)行DMA映射,并根據(jù)配置的所述測(cè)試類型對(duì)所述發(fā)送緩沖區(qū)和接收緩沖區(qū)的內(nèi)容進(jìn)行初始化。
8.如權(quán)利要求5所述的測(cè)試網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)性能的系統(tǒng),其中,所述性能統(tǒng)計(jì)單元通過(guò)配置預(yù)設(shè)時(shí)間間隔,統(tǒng)計(jì)在所配置的預(yù)設(shè)時(shí)間間隔內(nèi),從發(fā)送所述測(cè)試數(shù)據(jù),到接收從所述被測(cè)設(shè)備轉(zhuǎn)發(fā)回的所述測(cè)試數(shù)據(jù)的整個(gè)測(cè)試過(guò)程所需的時(shí)間,獲取所述被測(cè)設(shè)備的轉(zhuǎn)發(fā)性能參 數(shù)。
【文檔編號(hào)】H04L12/26GK103560928SQ201310501211
【公開(kāi)日】2014年2月5日 申請(qǐng)日期:2013年10月22日 優(yōu)先權(quán)日:2013年10月22日
【發(fā)明者】黃傳輝 申請(qǐng)人:東軟集團(tuán)股份有限公司