金 燕,陳佳彬,陳爾言,王衛(wèi)靜
(浙江工業(yè)大學(xué) 信息工程學(xué)院,浙江 杭州 310014)
?
基于RFC2544的千兆以太網(wǎng)性能測試的實(shí)現(xiàn)
金 燕,陳佳彬,陳爾言,王衛(wèi)靜
(浙江工業(yè)大學(xué) 信息工程學(xué)院,浙江 杭州 310014)
隨著千兆以太網(wǎng)發(fā)展成為主流網(wǎng)絡(luò)技術(shù)后,網(wǎng)絡(luò)設(shè)備的安全穩(wěn)定性成為了重中之重.RFC2544協(xié)議是評(píng)測網(wǎng)絡(luò)設(shè)備的國際標(biāo)準(zhǔn).介紹了RFC2544協(xié)議,并在Linux平臺(tái)下,設(shè)計(jì)了一套完整的測試架構(gòu),定義了專用的測試幀格式,分析了千兆以太網(wǎng)時(shí)延、吞吐量、背靠背和丟包率等主要性能指標(biāo)的測試方法,并進(jìn)行了仿真與驗(yàn)證.
RFC2544;千兆以太網(wǎng);性能指標(biāo)
隨著計(jì)算機(jī)網(wǎng)絡(luò)的快速發(fā)展,以太網(wǎng)因分布廣泛和接入方便得到了廣泛的應(yīng)用[1].千兆以太網(wǎng)是基于以太網(wǎng)標(biāo)準(zhǔn)的技術(shù),因其高效、高速和高性能的特點(diǎn),成為了當(dāng)今主流的網(wǎng)絡(luò)技術(shù)[2].隨著高速網(wǎng)絡(luò)成為主要應(yīng)用網(wǎng)絡(luò),網(wǎng)絡(luò)設(shè)備的性能將會(huì)直接影響到網(wǎng)絡(luò)運(yùn)行過程中的穩(wěn)定性和可靠性,因此網(wǎng)絡(luò)設(shè)備的性能問題成為重點(diǎn)[3].從而需要一套客觀準(zhǔn)確且能被大眾接受的網(wǎng)絡(luò)測試標(biāo)準(zhǔn).RFC2544作為評(píng)測網(wǎng)絡(luò)設(shè)備的國際標(biāo)準(zhǔn)[4],對(duì)以太網(wǎng)的各項(xiàng)性能指標(biāo)進(jìn)行了定義,如時(shí)延、吞吐量、背靠背和丟包率,這些性能系統(tǒng)地反應(yīng)了網(wǎng)絡(luò)的通信能力和實(shí)時(shí)進(jìn)行信息傳輸?shù)哪芰Γ⑶疫@些指標(biāo)相互聯(lián)系和影響[5].筆者研究的目的是在Linux平臺(tái)上設(shè)計(jì)一套基于RFC2544測試標(biāo)準(zhǔn)的千兆以太網(wǎng)網(wǎng)絡(luò)性能測試的軟件實(shí)現(xiàn)方案,在具有高兼容性與穩(wěn)定性的前提下,實(shí)現(xiàn)千兆以太網(wǎng)各項(xiàng)性能指標(biāo)的測試,并且可以對(duì)結(jié)果實(shí)時(shí)提取與顯示.
1.1 測試模式的選擇
1.1.1 單機(jī)模式
單機(jī)模式[6]的工作流程:首先,將打包好的測試數(shù)據(jù)流通過測試設(shè)備的發(fā)包端口發(fā)出;然后,經(jīng)過待測設(shè)備的測試數(shù)據(jù)轉(zhuǎn)發(fā),將其流回測試設(shè)備的收包端口;最后,測試設(shè)備將收到的數(shù)據(jù)流根據(jù)RFC2544協(xié)議進(jìn)行運(yùn)算處理,從而給出測試結(jié)果,如圖1所示.
圖1 RFC2544單機(jī)模式測試結(jié)構(gòu)圖Fig.1 Test structure diagram of RFC2544 single mode
1.1.2 雙機(jī)模式
雙機(jī)模式[7]分為環(huán)回測試、上行測試、下行測試及上行-下行測試.環(huán)回測試的工作流程:首先,將測試設(shè)備1作為客戶端完成數(shù)據(jù)流的發(fā)送工作;然后,將測試設(shè)備2作為服務(wù)端完成數(shù)據(jù)流的環(huán)回工作,并且該過程經(jīng)過被測設(shè)備;最后,測試設(shè)備1接收數(shù)據(jù)并運(yùn)算處理,得到結(jié)果,如圖2所示.上行測試是指測試設(shè)備1負(fù)責(zé)發(fā)送,測試設(shè)備2負(fù)責(zé)接收.下行測試正好相反,測試設(shè)備2負(fù)責(zé)發(fā)送,測試設(shè)備1負(fù)責(zé)接收.上行-下行模式就是上行模式與下行模式的結(jié)合.
圖2 RFC2544雙機(jī)模式環(huán)回測試結(jié)構(gòu)圖Fig.2 Loopback test structure diagram of RFC2544 double mode
單機(jī)模式與雙機(jī)模式都是RFC2544標(biāo)準(zhǔn)所認(rèn)可的測試模式[8],但是各有利弊.單機(jī)模式可以更準(zhǔn)確地控制測試精度,并且更容易調(diào)度測試進(jìn)程,但是在產(chǎn)生測試壓力方面有所欠缺;而雙機(jī)模式由于是兩臺(tái)設(shè)備共同工作,所以能夠產(chǎn)生足夠的測試壓力來達(dá)到需求,但同時(shí)也將出現(xiàn)進(jìn)程同步與時(shí)間同步等問題[9].因?yàn)楣P者探討基于千兆以太網(wǎng)的測試,需要足夠的測試壓力,所以選擇比較經(jīng)典的環(huán)回測試模式.
1.2 測試主要參數(shù)
1.2.1 時(shí) 延
定義:從報(bào)文進(jìn)入網(wǎng)絡(luò)到離開網(wǎng)絡(luò)的時(shí)間間隔,即在負(fù)載條件下轉(zhuǎn)發(fā)數(shù)據(jù)幀所花費(fèi)的時(shí)間.
作用:反映被測設(shè)備處理數(shù)據(jù)包的速度.
1.2.2 吞吐量
定義:在滿足不丟包的條件下,被測設(shè)備可以轉(zhuǎn)發(fā)的最大數(shù)據(jù)流量.
作用:反映了被測設(shè)備轉(zhuǎn)發(fā)的測試幀數(shù)量與發(fā)送端發(fā)送測試幀數(shù)量相等時(shí)的最高頻率.
1.2.3 背靠背
定義:在最大速率的條件下,以及不發(fā)生丟包的前提下,被測設(shè)備可以接收到的最大報(bào)文的長度.
作用:反映被測設(shè)備對(duì)突發(fā)數(shù)據(jù)的處理能力.
1.2.4 丟包率
定義:在一定的負(fù)載下,未能被轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量占應(yīng)被轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量的百分比值.
作用:反映被測設(shè)備對(duì)負(fù)載的承受能力.
2.1 測試設(shè)備硬件架構(gòu)
本測試系統(tǒng)所用的測試設(shè)備硬件采用FPGA+ARM的結(jié)構(gòu),實(shí)現(xiàn)手持終端的設(shè)計(jì),主要分為四大模塊,如圖3所示.以太網(wǎng)收發(fā)模塊主要由一塊以太網(wǎng)專用芯片組成,該芯片是支持自協(xié)商功能的10 M/100 M/1 000 M專用PHY芯片,一方面與RJ45接口互連,使系統(tǒng)與以太網(wǎng)通信;另一方面通過GMII接口與FPGA通信,既可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的處理,又可以通過FPGA來對(duì)以太網(wǎng)芯片進(jìn)行配置.FPGA模塊選用Altera公司的Cyclone II系列芯片,本模塊將測試數(shù)據(jù)打包成以太網(wǎng)測試幀,并將其發(fā)送給以太網(wǎng)收發(fā)模塊,實(shí)現(xiàn)數(shù)據(jù)的發(fā)出,也同樣將接收到的數(shù)據(jù)過濾,并將測試幀解包,將得到的數(shù)據(jù)發(fā)送給ARM模塊.ARM模塊提升系統(tǒng)的對(duì)數(shù)據(jù)的處理能力,將接收到的測試數(shù)據(jù)進(jìn)行算法處理得到測試參數(shù),并且配置整個(gè)系統(tǒng)的測試流程,是系統(tǒng)的核心.顯示模塊采用7寸電容屏屏,通過LCD接口與ARM模塊進(jìn)行通信顯示,同時(shí)通過觸摸屏上的功能部件進(jìn)行整個(gè)系統(tǒng)的人機(jī)交互功能.
圖3 測試設(shè)備硬件框圖Fig.3 Test equipment hardware block diagram
2.2 系統(tǒng)軟件架構(gòu)
如圖4所示,系統(tǒng)軟件結(jié)構(gòu)采用模塊化設(shè)計(jì),包括操作界面的顯示,數(shù)據(jù)的處理,測試流的生成,測試包的發(fā)送與接收.測試過程從操作界面配置測試參數(shù)為起點(diǎn),配置參數(shù)包括IP地址、MAC地址等,然后根據(jù)配置信息將參數(shù)打包成測試幀,通過USB接口傳輸給FPGA模塊,模塊根據(jù)配置信息控制測
圖4 系統(tǒng)軟件架構(gòu)Fig.4 System software architecture
試流,然后通過發(fā)送接口輸出.經(jīng)過從端設(shè)備的環(huán)回,F(xiàn)PGA模塊接收返回的測試幀,然后傳輸至ARM模塊,經(jīng)過測試幀解包,提取數(shù)據(jù)進(jìn)行分析處理,最后將結(jié)果傳給顯示模塊顯示.
2.3 測試幀設(shè)計(jì)
以太網(wǎng)在傳輸層和網(wǎng)絡(luò)層,采用統(tǒng)一的TCP/ IP協(xié)議[10],TCP協(xié)議是一種面向連接的可靠傳輸協(xié)議,但在可靠性較高的網(wǎng)絡(luò)中反而增加了傳輸?shù)拈_銷[11],UDP是面向無連接的,具有較好的傳輸效率[12].在本系統(tǒng)的設(shè)計(jì)中,以太網(wǎng)測試幀采用UDP的方式傳輸,基于UDP的測試幀是在UDP幀包頭的基礎(chǔ)上再加上自定義的幀字節(jié)來完成的,測試幀幀格式如圖5所示.
圖5 測試幀格式Fig.5 Test frame format
1) 協(xié)議頭字段:包括8 字節(jié)的UDP包頭段,內(nèi)含7 字節(jié)的幀前同步碼與1 字節(jié)的幀開始定界符,還包括6 字節(jié)的目的地址段、6 字節(jié)的源地址段、2 字節(jié)的長度與類型段.
2) 測試包標(biāo)記:用于識(shí)別是否為測試幀,在本系統(tǒng)中長度為2 字節(jié),默認(rèn)為0x3333.接收測試幀時(shí)判斷是否是該數(shù)值,否則不是測試幀.
3) 流代碼:用于識(shí)別測試幀的類別,在本系統(tǒng)中為2 字節(jié),不同的測試幀具有相應(yīng)的流代碼.
4) 時(shí)間戳:用于計(jì)算延遲與抖動(dòng),在本系統(tǒng)中為4 字節(jié),該字段記錄測試幀發(fā)往以太網(wǎng)的時(shí)間,當(dāng)測試幀發(fā)往以太網(wǎng)時(shí),系統(tǒng)會(huì)記錄當(dāng)前時(shí)間,并由一個(gè)32 位計(jì)數(shù)器計(jì)時(shí),當(dāng)收到環(huán)回的測試幀時(shí),將記錄的值與時(shí)間戳相減,差值即時(shí)延.
5) 指令標(biāo)記:用于判斷是否包含控制指令,在本系統(tǒng)中為1 字節(jié),攜帶控制指令為0xFF,沒攜帶則為0x00.
6) 控制標(biāo)記:用于實(shí)現(xiàn)對(duì)測試流的控制功能,在本系統(tǒng)中為1 字節(jié),不同的控制指令用不同的1 字節(jié)數(shù)據(jù)表示,若不攜帶控制指令,則為0x00.
7) 數(shù)據(jù)填充:用于控制測試幀的長短,以適應(yīng)各種測試環(huán)境.
8) FCS:即幀檢驗(yàn)序列,用于保存測試幀的CRC校驗(yàn)值,在本系統(tǒng)中為4 字節(jié).
3.1 時(shí) 延
參數(shù):T1為測試數(shù)據(jù)包的發(fā)送時(shí)間,T2為測試數(shù)據(jù)包的接收時(shí)間,R為網(wǎng)絡(luò)吞吐率,L為測試幀長,N為測試輪數(shù),T為測試時(shí)間.
步驟:確定測試幀長L,然后在時(shí)間T內(nèi),以R為速率,將測試包發(fā)送出去.記錄發(fā)送時(shí)間T1;接收經(jīng)過環(huán)回的測試包,記錄接收時(shí)間T2;計(jì)算本輪時(shí)延為T2-T1;重復(fù)測試N輪,取每輪時(shí)延的平均值作為測試結(jié)果.
3.2 丟包率
參數(shù):P1為發(fā)送的測試數(shù)據(jù)包數(shù)量,P2為接收到的測試數(shù)據(jù)包數(shù)量,R為發(fā)送速率,L為測試幀長,N為測試輪數(shù),T為測試時(shí)間.
步驟:確定測試幀長L,然后在時(shí)間T內(nèi),以R為速率,將測試包發(fā)送出去.記錄發(fā)送的測試包數(shù)目為P1;接收到經(jīng)過環(huán)回的測試包,記錄接收到的測試包數(shù)目為P2;計(jì)算本輪丟包率為(P1-P2)/P1;重復(fù)測試N輪,取每輪的丟包率的平均值作為測試結(jié)果.
3.3 背靠背
參數(shù):P1為發(fā)送的測試包數(shù)量,P2為接收到的測試包數(shù)量,R為系統(tǒng)所能產(chǎn)生的最大發(fā)送速率,L為測試幀長,N為測試輪數(shù),T為測試時(shí)間,A為要求的背靠背測試精度.
步驟:確定測試幀長L,然后在時(shí)間T內(nèi),以R為速率,將測試包發(fā)送出去.記錄發(fā)送的數(shù)目為P1;接收到經(jīng)過環(huán)回的測試包,記錄接收到的測試包數(shù)目為P2;判斷P1與P2的大小,如果P1=P2,表示沒有丟包,則增大發(fā)送包數(shù)量P1,且令Pmin=P1;如果P1>P2,表示出現(xiàn)丟包,則減小發(fā)送包的數(shù)量P1,且令Pmax=P1;判斷Pmax-Pmin≤A,如果滿足要求,則取本輪的背靠背為(Pmax-Pmin)/2;否則,重新測試直至滿足精度要求;重復(fù)測試N輪,取每輪的背靠背的平均值作為測試結(jié)果.
3.4 吞吐量
參數(shù):P1為發(fā)送的測試包數(shù)量,P2為接收到的測試包數(shù)量,R為發(fā)送速率,L為測試幀長,N為測試輪數(shù),T為測試時(shí)間,A為要求的吞吐量測試精度.
步驟:確定測試幀長L,然后在時(shí)間T內(nèi),根據(jù)經(jīng)驗(yàn)確定R為發(fā)送速率,將測試包發(fā)送出去.記錄發(fā)送的數(shù)目為P1;接收到經(jīng)過環(huán)回的測試包,記錄接收到的測試包數(shù)目為P2;判斷P1與P2的大小,如果P1=P2,表示沒有丟包,則提高發(fā)送速率R,且令Rmin=R;如果P1>P2,表示出現(xiàn)丟包,則降低發(fā)送速率R,且令Rmax=R;判斷Rmax-Rmin≤A,如果滿足要求,則取本輪的吞吐量為(Rmax-Rmin)/2;否則,重新測試直至滿足精度要求;重復(fù)測試N輪,取每輪的吞吐量的平均值作為測試結(jié)果.
吞吐量測試流程如圖6所示.
圖6 吞吐量測試流程圖Fig.6 Throughput test flow chart
本系統(tǒng)主要對(duì)RFC2544測試協(xié)議進(jìn)行實(shí)現(xiàn),如圖7所示,是被測交換機(jī)在測試幀為64字節(jié)大小時(shí),所測得的多次吞吐量數(shù)據(jù),取其平均值得790 B,即交換機(jī)64 字節(jié)的以太網(wǎng)包的吞吐量為790 B.圖8為吞吐量和背靠背的測試結(jié)果,圖9為丟包率和時(shí)延的測試結(jié)果.
圖7 吞吐量測試結(jié)果Fig.7 Throughput test results
如圖8所示,隨著測試幀長度的增加,吞吐量也隨之增大.這是因?yàn)樵谕粠捪?,幀長越大,測試幀的數(shù)量就會(huì)減小,被測設(shè)備處理這些測試幀的時(shí)間也會(huì)隨之變短,從而會(huì)使單位時(shí)間內(nèi)處理測試幀的數(shù)量減少,然而被測設(shè)備處理單個(gè)數(shù)據(jù)包所需的時(shí)間并不會(huì)改變,因此轉(zhuǎn)發(fā)速率得到加快,進(jìn)而增大了吞吐量.
圖8 吞吐量與背靠背測試Fig.8 Throughput and back-to-back test
同樣,隨著測試幀長度的增加,背靠背幀數(shù)也隨之增大.這是因?yàn)閹L越大時(shí),丟包率越小,所以導(dǎo)致背靠背幀數(shù)越大.
圖9 丟包率與時(shí)延測試Fig.9 Packet loss rate and delay test
如圖9所示,隨著測試幀長度的增加,丟包率隨之減小.這是因?yàn)樵谕粠L下,幀長越大,測試幀速率則下降,被測設(shè)備處理的個(gè)數(shù)越小,丟包越少,即丟包率下降.
與之相反,隨著測試幀長度的增加,時(shí)延卻隨之增大.這是因?yàn)閱蝹€(gè)數(shù)據(jù)幀長度的增加會(huì)導(dǎo)致被測設(shè)備處理時(shí)間的增加,從而導(dǎo)致時(shí)延的增大.
介紹了RFC2544協(xié)議,重點(diǎn)討論了基于該協(xié)議的千兆以太網(wǎng)網(wǎng)絡(luò)性能的實(shí)現(xiàn).首先,介紹了測試系統(tǒng)的硬件架構(gòu)與軟件架構(gòu),并在此基礎(chǔ)上側(cè)重描述了
測試幀的設(shè)計(jì)格式.然后,詳細(xì)描述了RFC2544協(xié)議時(shí)延、丟包率、背靠背和吞吐量等主要網(wǎng)絡(luò)性能參數(shù)的算法實(shí)現(xiàn)過程.仿真測試結(jié)果顯示,隨著測試幀長度的變化,吞吐量、時(shí)延和背靠背呈正比變化,丟包率呈反比變化,均符合千兆以太網(wǎng)網(wǎng)絡(luò)性能指標(biāo)的特性.
[1] 郭海濤.全千兆以太網(wǎng)交換機(jī)的設(shè)計(jì)和實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2006.
[2] 劉瓊,虞水俊.快速以太網(wǎng)技術(shù):介紹無關(guān)接口和自動(dòng)協(xié)商[J].微型機(jī)與應(yīng)用,1998(9):26-8.
[3] WANG Yong, LIU Yong, TAO Xiaoling et al. An FPGA-based high-speed network performance measurement for RFC 2544[J].EURASIP journal on wireless communications and networking,2015(1):1-10.
[4] FEI Lifu, YUAN Dongming, TANG Bihua, et al. Technique for network performance measurement based on RFC2544[C]//2012 Fourth International Conference on Computational Intelligence and Communication Networks. Beijing: Beijing University of Posts and Telecommunications,2012:200-203.
[5] 劉彥敏.基于FPGA的千兆以太網(wǎng)測試系統(tǒng)的研究與實(shí)現(xiàn)[D].杭州:浙江工業(yè)大學(xué),2014.
[6] 徐波,韋韜,鄒維.RFC2544網(wǎng)絡(luò)設(shè)備評(píng)測協(xié)議實(shí)現(xiàn)技術(shù)[J].計(jì)算機(jī)工程,2003,29(17):140-142.
[7] 董祎博,劉云龍.基于RFC2544的以太網(wǎng)測試設(shè)計(jì)與實(shí)現(xiàn)[J].軟件,2012,33(12):62-65.
[8] 廖有清,張小平,許學(xué)東.10G網(wǎng)絡(luò)測試儀的測試流量生成[J].小型微型計(jì)算機(jī)系統(tǒng),2007,28(3):411-415.
[9] 費(fèi)蓓富.基于RFC2544的多用戶網(wǎng)絡(luò)性能測試系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2013.
[10] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].5版.北京:電子工業(yè)出版社,2008.
[11] HERRMANN F L, PERIN G, BERTAGNOLLI R,et al. A Gigabit UDP/IP network stack in FPGA[C]// IEEE International Conference on Electronics, Circuits & Systems. New York: IEEE,2009:836-839.
[12] LEE K C, LEE S, LEE M H. Worst case communication delay of real-time industrial switched ethernet with multiple levels[J]. IEEE transactions on industrial electronics,2006,53(5):1669-1675.
(責(zé)任編輯:陳石平)
The realization of Gigabit Ethernet network performance test based on RFC2544
JIN Yan, CHEN Jiabin, CHEN Eryan, WANG Weijin
(College of Information Engineering, Zhejiang University of Technology, Hangzhou 310014, China)
The security and stability of network devices has been the top priority since the development of GbE becomes the mainstream of network technology. The RFC2544 protocol is the international standard to evaluate the network devices. After the RFC2544 protocol is introduced, an integrated test architecture is designed in this article. In this architecture, a dedicated format in testing frame is defined and the testing method of some main performance, such as time delay, throughput, back-to-back, and packet loss rate, are analyzed. Finally, the tesing architecture is simulated and verified in the Linux platform.
RFC2544; GbE; performance
2015-12-03
金 燕(1964—),女,浙江紹興人,副教授,研究方向?yàn)樽詣?dòng)化檢測和控制、混合動(dòng)力汽車控制策略等,E-mail:jy@zjut.edu.cn.
TN915
A
1006-4303(2016)06-0628-05