一種時(shí)延測試的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是設(shè)及一種時(shí)延測試的方法及裝置。
【背景技術(shù)】
[0002] 網(wǎng)絡(luò)性能測試是指測試網(wǎng)絡(luò)系統(tǒng)和網(wǎng)絡(luò)設(shè)備的性能,并對網(wǎng)絡(luò)系統(tǒng)和網(wǎng)絡(luò)設(shè)備的 性能進(jìn)行評價(jià)。網(wǎng)絡(luò)性能測試主要采用RFC2544標(biāo)準(zhǔn),包括吞吐量測試、時(shí)延測試W及丟失 率測試等。網(wǎng)絡(luò)測試系統(tǒng)主要包括待測設(shè)備值UT,Device化derTest)和測試設(shè)備。
[0003] 網(wǎng)絡(luò)性能測試中的時(shí)延測試是網(wǎng)絡(luò)測試系統(tǒng)的一個(gè)重要性能指標(biāo),反映所述待測 設(shè)備處理數(shù)據(jù)包的速率。所述RFC2544標(biāo)準(zhǔn)規(guī)定,時(shí)延是指一個(gè)數(shù)據(jù)包從測試設(shè)備的發(fā)送 端口發(fā)送出去,經(jīng)過待測設(shè)備處理轉(zhuǎn)發(fā)回所述測試設(shè)備,所述測試設(shè)備的接收端口接收到 所述數(shù)據(jù)包所需的總時(shí)間。因此,所述時(shí)延包括所述待測設(shè)備對所述數(shù)據(jù)包的處理時(shí)間W 及所述數(shù)據(jù)包在所述網(wǎng)絡(luò)測試系統(tǒng)的傳輸介質(zhì)中的傳輸時(shí)間。
[0004] 現(xiàn)有技術(shù)中,測試設(shè)備一般采用現(xiàn)場可編程口陣列(Field-ProgrammableGate Array,FPGA)作為向待測設(shè)備發(fā)送數(shù)據(jù)包,但是,WFPGA硬件發(fā)送數(shù)據(jù)包的導(dǎo)致設(shè)備成本 局。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明解決的技術(shù)問題在于提供一種時(shí)延測試的方法及裝置,從而提供了一種基 于軟件實(shí)現(xiàn)的實(shí)驗(yàn)測試的方法,解決了現(xiàn)有技術(shù)中采用硬件實(shí)現(xiàn)發(fā)送數(shù)據(jù)包所導(dǎo)致的成本 高的問題。
[0006] 為此,本發(fā)明解決技術(shù)問題的技術(shù)方案是:
[0007] 一種時(shí)延測試的方法,所述方法包括:
[0008] 獲取網(wǎng)卡發(fā)送數(shù)據(jù)包的速率,所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù),預(yù)設(shè)的初始時(shí)刻,CPU 的時(shí)鐘頻率,預(yù)設(shè)比例W及突發(fā)包個(gè)數(shù),所述預(yù)設(shè)比例為所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送時(shí) 間戳數(shù)據(jù)包的個(gè)數(shù)占該發(fā)送隊(duì)列突發(fā)數(shù)據(jù)包次數(shù)的比例,所述時(shí)間戳數(shù)據(jù)包用于進(jìn)行時(shí)延 測試,所述突發(fā)包個(gè)數(shù)為所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列每次發(fā)送流量數(shù)據(jù)包的個(gè)數(shù),所述流量 數(shù)據(jù)包用于滿足所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率;
[0009] 根據(jù)所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率,所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù),所述預(yù)設(shè)比例W 及所述突發(fā)包個(gè)數(shù)獲得所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送所述時(shí)間戳數(shù)據(jù)包的個(gè)數(shù)作為第一 個(gè)數(shù);
[0010] 根據(jù)所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率,所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù),所述突發(fā)包個(gè)數(shù) W及所述第一個(gè)數(shù)獲得所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送流量數(shù)據(jù)包的實(shí)際次數(shù)作為第二個(gè) 數(shù);
[0011] 根據(jù)所述CPU的時(shí)鐘頻率,所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù),所述預(yù)設(shè)的初始時(shí)刻,所 述第一個(gè)數(shù)和所述第二個(gè)數(shù)獲得所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送時(shí)間戳數(shù)據(jù)包的間隔W及 該發(fā)送隊(duì)列每次發(fā)送流量數(shù)據(jù)包的時(shí)刻,所述發(fā)送時(shí)間戳數(shù)據(jù)包的間隔為所述網(wǎng)卡中每個(gè) 發(fā)送隊(duì)列發(fā)送相鄰的兩個(gè)時(shí)間戳數(shù)據(jù)包之間發(fā)送流量數(shù)據(jù)包的次數(shù);
[0012] 根據(jù)所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送時(shí)間戳數(shù)據(jù)包的間隔W及該發(fā)送隊(duì)列每次發(fā) 送流量數(shù)據(jù)包的時(shí)刻向待測設(shè)備發(fā)送流量數(shù)據(jù)包和時(shí)間戳數(shù)據(jù)包,記錄所述網(wǎng)卡每個(gè)發(fā)送 隊(duì)列發(fā)送每個(gè)時(shí)間戳數(shù)據(jù)包的時(shí)刻作為該時(shí)間戳數(shù)據(jù)包的第一時(shí)刻;
[0013] 接收所述待測設(shè)備轉(zhuǎn)發(fā)的每個(gè)時(shí)間戳數(shù)據(jù)包,記錄接收每個(gè)時(shí)間戳數(shù)據(jù)包的時(shí)刻 作為該時(shí)間戳數(shù)據(jù)包的第二時(shí)刻;
[0014] 根據(jù)每個(gè)時(shí)間戳數(shù)據(jù)包的第一時(shí)刻和第二時(shí)刻測試時(shí)延。
[0015] 可選的,所述根據(jù)所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率,所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù),所述 預(yù)設(shè)比例W及所述突發(fā)包個(gè)數(shù)獲得所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送所述時(shí)間戳數(shù)據(jù)包的個(gè) 數(shù)作為第一個(gè)數(shù)包括:
[0016] 計(jì)算所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率除W所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù)所得的第一商, 獲取所述第一商的整數(shù)部分作為所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送數(shù)據(jù)包的速率;
[0017] 計(jì)算所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送數(shù)據(jù)包的速率除W所述突發(fā)包個(gè)數(shù)所得的第 二商,獲取所述第二商的整數(shù)部分作為所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送流量數(shù)據(jù)包的理論次 數(shù);
[0018] 計(jì)算所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送流量數(shù)據(jù)包的理論次數(shù)與所述預(yù)設(shè)比例的乘 積獲得第一值;
[0019] 計(jì)算所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送數(shù)據(jù)包的速率減去所述第一值所得的第一差 值,計(jì)算所述第一差值除W所述突發(fā)包個(gè)數(shù)所得的余數(shù)作為第二值;
[0020] 判斷所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率除W所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù)是否有余數(shù);
[0021] 當(dāng)所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率除W所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù)沒有余數(shù)時(shí),所述 網(wǎng)卡中每個(gè)發(fā)送隊(duì)列的第一個(gè)數(shù)為所述第一值和所述第二值的和;
[0022] 當(dāng)所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率除W所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù)的余數(shù)為i時(shí),所 述網(wǎng)卡中排列在第1至第i的發(fā)送隊(duì)列的第一個(gè)數(shù)為所述第一值和所述第二值的和加1; 所述網(wǎng)卡中排列在第i+1至第j的發(fā)送隊(duì)列的第一個(gè)數(shù)為所述第一值和所述第二值的和;
[0023] 其中,0 <i<j的整數(shù),j為所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù)。
[0024] 可選的,根據(jù)所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率,所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù),所述突發(fā) 包個(gè)數(shù)W及所述第一個(gè)數(shù)獲得所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送流量數(shù)據(jù)包的實(shí)際次數(shù)作為 第二個(gè)數(shù)包括:
[00巧]計(jì)算所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率除W所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù)所得的第一商, 獲取所述第一商的整數(shù)部分作為所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送數(shù)據(jù)包的速率;
[00%] 計(jì)算所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送數(shù)據(jù)包的速率減去所述第一個(gè)數(shù)所得的第二 差值;
[0027] 計(jì)算所述第二差值除W所述突發(fā)包個(gè)數(shù)的商獲得所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送 流量數(shù)據(jù)包的實(shí)際次數(shù)作為第二個(gè)數(shù)。
[0028] 可選的,根據(jù)所述CPU的時(shí)鐘頻率,所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù),所述預(yù)設(shè)的初始 時(shí)刻,所述第一個(gè)數(shù)和所述第二個(gè)數(shù)獲得所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送時(shí)間戳數(shù)據(jù)包的間 隔W及該發(fā)送隊(duì)列每次發(fā)送流量數(shù)據(jù)包的時(shí)刻,所述發(fā)送時(shí)間戳數(shù)據(jù)包的間隔為所述網(wǎng)卡 中每個(gè)發(fā)送隊(duì)列發(fā)送相鄰的兩個(gè)時(shí)間戳數(shù)據(jù)包之間發(fā)送流量數(shù)據(jù)包的次數(shù)包括:
[0029] 計(jì)算所述CPU的時(shí)鐘頻率除W所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率所得的第=商,獲取所 述第=商的整數(shù)部分作為發(fā)送所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列每次發(fā)送時(shí)間戳數(shù)據(jù)包所需的第 一時(shí)間;
[0030] 計(jì)算所述第一個(gè)數(shù),所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù)與所述第一時(shí)間的乘積作為所述 網(wǎng)卡中所有發(fā)送隊(duì)列發(fā)送時(shí)間戳數(shù)據(jù)包所需的時(shí)間;
[0031] 計(jì)算所述CPU的時(shí)鐘頻率與所述網(wǎng)卡中所有發(fā)送隊(duì)列發(fā)送時(shí)間戳數(shù)據(jù)包所需的 時(shí)間的差作為所述網(wǎng)卡中所有發(fā)送隊(duì)列發(fā)送流量數(shù)據(jù)包所需的時(shí)間;
[0032] 計(jì)算所述第二個(gè)數(shù)與所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù)的乘積作為所述網(wǎng)卡中所有發(fā) 送隊(duì)列發(fā)送流量數(shù)據(jù)包的次數(shù);
[0033] 計(jì)算所述網(wǎng)卡中所有發(fā)送隊(duì)列發(fā)送數(shù)據(jù)包所需的時(shí)間除W所述網(wǎng)卡中所有發(fā)送 隊(duì)列發(fā)送流量數(shù)據(jù)包的次數(shù)所得的第四商,獲取所述第四商的整數(shù)部分作為所述網(wǎng)卡中每 個(gè)發(fā)送隊(duì)列每次發(fā)送流量數(shù)據(jù)包所需的第二時(shí)間;
[0034] 計(jì)算所述第二個(gè)數(shù)除W所述第一個(gè)數(shù)所得的第五商,獲得大于所述第五商的最小 的整數(shù)作為所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送時(shí)間戳數(shù)據(jù)包的間隔;
[0035] 計(jì)算m-1除W所述時(shí)間戳數(shù)據(jù)包的間隔所得的第六商,獲得所述第六商的整數(shù)部 分,計(jì)算所述第六商的整數(shù)部分與所述第一時(shí)間的乘積作為第=時(shí)間,所述第=時(shí)間為所 述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送m-1次流量數(shù)據(jù)包的過程中,發(fā)送時(shí)間戳數(shù)據(jù)包所需的時(shí)間;
[0036] 計(jì)算所述預(yù)設(shè)的初始時(shí)間,m-1個(gè)所述第二時(shí)間,W及所述第S時(shí)間的和作為所述 網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送第m次流量數(shù)據(jù)包的時(shí)刻;
[0037] 其中,l<m《第二個(gè)數(shù)。
[0038] 可選的,所述方法還包括:
[0039] 獲取所述第=商的小數(shù)部分作為第一誤差;
[0040] 獲取所述第四商的小數(shù)部分作為第二誤差;
[0041] 計(jì)算所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送第m次流量數(shù)據(jù)包前的累計(jì)誤差,所述累計(jì)誤 差為第S誤差和第四誤差的和,所述第S誤差為m-1個(gè)所述第一誤差的和,所述第四誤差 為所述第六商的整數(shù)部分與所述第二誤差的積;
[0042] 當(dāng)所述累計(jì)誤差小于單位時(shí)間時(shí),所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送第m次流量數(shù)據(jù) 包的時(shí)刻為所述預(yù)設(shè)的初始時(shí)間,m-1個(gè)所述第二時(shí)間,W及所述第S時(shí)間的和,所述單位 時(shí)間為1個(gè)所述CPU的時(shí)鐘周期;
[0043] 當(dāng)所述累計(jì)誤差不小于所述單位時(shí)間時(shí),所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送第m次流 量數(shù)據(jù)包的時(shí)刻為所述預(yù)設(shè)的初始時(shí)間,m-1個(gè)所述第二時(shí)間,所述第S時(shí)間,W及!個(gè)所 述單位時(shí)間的和。 W44] -種時(shí)延測試的裝置,所述裝置包括:
[0045] 獲取單元,用于獲取網(wǎng)卡發(fā)送數(shù)據(jù)包的速率,所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù),預(yù)設(shè)的 初始時(shí)刻,CPU的時(shí)鐘頻率,預(yù)設(shè)比例W及突發(fā)包個(gè)數(shù),所述預(yù)設(shè)比例為所述網(wǎng)卡中每個(gè)發(fā) 送隊(duì)列發(fā)送時(shí)間戳數(shù)據(jù)包的個(gè)數(shù)占該發(fā)送隊(duì)列突發(fā)數(shù)據(jù)包次數(shù)的比例,所述時(shí)間戳數(shù)據(jù)包 用于進(jìn)行時(shí)延測試,所述突發(fā)包個(gè)數(shù)為所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列每次發(fā)送流量數(shù)據(jù)包的個(gè) 數(shù),所述流量數(shù)據(jù)包用于滿足所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率;
[0046] 第一獲得單元,用于根據(jù)所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率,所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè) 數(shù),所述預(yù)設(shè)比例W及所述突發(fā)包個(gè)數(shù)獲得所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送所述時(shí)間戳數(shù)據(jù) 包的個(gè)數(shù)作為第一個(gè)數(shù);
[0047] 第二獲得單元,用于根據(jù)所述網(wǎng)卡發(fā)送數(shù)據(jù)包的速率,所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè) 數(shù),所述突發(fā)包個(gè)數(shù)W及所述第一個(gè)數(shù)獲得所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送流量數(shù)據(jù)包的實(shí) 際次數(shù)作為第二個(gè)數(shù);
[0048] 第=獲得單元,用于根據(jù)所述CPU的時(shí)鐘頻率,所述網(wǎng)卡中發(fā)送隊(duì)列的個(gè)數(shù),所述 預(yù)設(shè)的初始時(shí)刻,所述第一個(gè)數(shù)和所述第二個(gè)數(shù)獲得所述網(wǎng)卡中每個(gè)發(fā)送隊(duì)列發(fā)送時(shí)間戳 數(shù)據(jù)包的間隔W及該發(fā)送隊(duì)列每次發(fā)送流量數(shù)據(jù)包的時(shí)刻,所述發(fā)送時(shí)間戳數(shù)據(jù)包的間隔 為所述網(wǎng)