摘??要: 以IPTV測(cè)試儀的網(wǎng)絡(luò)層測(cè)試功能為研究背景,介紹了IPTV的整體設(shè)計(jì)框架、網(wǎng)絡(luò)層測(cè)試指標(biāo)的算法設(shè)計(jì),并在此基礎(chǔ)上探討了利用 IP流量發(fā)生器測(cè)試這些指標(biāo)的設(shè)計(jì)方案。分析了方案中先進(jìn)的主從機(jī)模式和高效的流量產(chǎn)生算法及調(diào)度算法,給出了測(cè)試方案的仿真結(jié)果。結(jié)果表明,方案思路清晰、穩(wěn)定可靠。此方案已應(yīng)用于IPTV測(cè)試儀中,效果良好。
關(guān)鍵詞:網(wǎng)絡(luò)層指標(biāo); IP流量發(fā)生;主從機(jī)模式;調(diào)度算法; IPTV測(cè)試儀
?
隨著數(shù)字媒體娛樂(lè)的興起,IPTV吸引了業(yè)界眾多眼球[1-3],成為全球電信業(yè)投資重點(diǎn)之一。IPTV業(yè)務(wù)是伴隨著寬帶互聯(lián)網(wǎng)的飛速發(fā)展而興起的一項(xiàng)新興的互聯(lián)網(wǎng)增值業(yè)務(wù),它利用寬帶互聯(lián)網(wǎng)的基礎(chǔ)設(shè)施,以家用電視機(jī)和電腦作為主要終端,利用網(wǎng)絡(luò)機(jī)頂盒STB(Set-TopBox),通過(guò)互聯(lián)網(wǎng)協(xié)議來(lái)傳送電視信號(hào),提供包括電視節(jié)目在內(nèi)的多種數(shù)字媒體服務(wù)。IPTV簡(jiǎn)單來(lái)說(shuō)就是交互式網(wǎng)絡(luò)電視[2-5],它能為用戶提供電信級(jí)的服務(wù)和使用簡(jiǎn)便的電視式體驗(yàn)。然而,在融合的環(huán)境中,使用IPTV這樣的應(yīng)用,服務(wù)質(zhì)量和性能測(cè)試顯得比以往更加重要。因此,IPTV測(cè)試儀應(yīng)運(yùn)而生。
IPTV測(cè)試儀網(wǎng)絡(luò)層質(zhì)量測(cè)試,主要指?jìng)鹘y(tǒng)IP網(wǎng)絡(luò)層的性能指標(biāo),根據(jù)ITU-T Y.1540[3]建議,主要為IP丟包率、IP包時(shí)延、IP包抖動(dòng)及其相關(guān)參數(shù)。IPTV用戶最為注重的就是服務(wù)質(zhì)量,而網(wǎng)絡(luò)的時(shí)延、抖動(dòng)和丟包將導(dǎo)致圖像斑點(diǎn)和馬賽克、圖片模糊和邊緣失真、音頻中斷以及通道更改延遲等,嚴(yán)重影響了服務(wù)質(zhì)量。因此,本文對(duì)網(wǎng)絡(luò)層指標(biāo)的測(cè)試設(shè)計(jì)與實(shí)現(xiàn)的研究具有重要意義[1-8]。
1 測(cè)試儀的整體框架
IPTV測(cè)試儀由軟件和硬件兩部分組成,而對(duì)網(wǎng)絡(luò)層的測(cè)試,主要由硬件部分FPGA模塊的IP流量發(fā)生器實(shí)現(xiàn),如圖1所示。
?
本文研究的IPTV測(cè)試儀網(wǎng)絡(luò)層測(cè)試,采用了單MAC主從機(jī)測(cè)試模式進(jìn)行主動(dòng)測(cè)試,利用IP流量發(fā)生器自發(fā)自收IP包,分析相應(yīng)的時(shí)間戳和包數(shù)量等參數(shù),由此計(jì)算IP包的時(shí)延、抖動(dòng)和丟包率。
2 網(wǎng)絡(luò)層測(cè)試指標(biāo)算法設(shè)計(jì)
IPTV測(cè)試儀網(wǎng)絡(luò)層的測(cè)試指標(biāo)主要包括丟包率、時(shí)延、抖動(dòng)及其相關(guān)參數(shù)。
2.1 時(shí)延和抖動(dòng)算法設(shè)計(jì)
在測(cè)試中,時(shí)延是指測(cè)試儀發(fā)送測(cè)試包與接收測(cè)試包的時(shí)間的差值。當(dāng)音頻和視頻IP包離開(kāi)發(fā)送端時(shí),按照規(guī)則的間隔均勻地排列。在通過(guò)網(wǎng)絡(luò)之后,這一均勻的間隔因不同的時(shí)延大小而遭到破壞,從而產(chǎn)生抖動(dòng)。抖動(dòng)會(huì)導(dǎo)致目標(biāo)終端上音頻和視頻流的不連貫性。
測(cè)試時(shí),在發(fā)送的IP 包中加上發(fā)送時(shí)間戳,在接收時(shí)提取IP包中的時(shí)間戳,同時(shí)記錄接收時(shí)間,接收和發(fā)送的時(shí)間的差值即統(tǒng)計(jì)時(shí)延。
假設(shè)發(fā)送IP包的時(shí)間戳為SentTimei,接收時(shí)間為RecvTimei,i為計(jì)算時(shí)延值Delayi和抖動(dòng)值Jitteri的個(gè)數(shù)。為了使計(jì)算更為精確,采用概率的統(tǒng)計(jì)平均算法,取前2m(m=0、1…16,可設(shè)置)個(gè)值計(jì)算平均值,作為預(yù)估平均值,即為所求的時(shí)延值和抖動(dòng)值。具體算法如下:
2.2 丟包率算法設(shè)計(jì)
丟包對(duì)視頻播放質(zhì)量有直接的影響,發(fā)生IP數(shù)據(jù)包丟失可能基于多個(gè)原因,如帶寬限制、網(wǎng)絡(luò)擁塞、鏈路故障以及傳輸錯(cuò)誤。數(shù)據(jù)包丟失通常代表了一種突發(fā)式行為,經(jīng)常與網(wǎng)絡(luò)擁塞時(shí)段相關(guān)聯(lián)。
丟包率是指測(cè)試中所丟失數(shù)據(jù)包數(shù)量占所發(fā)送數(shù)據(jù)包的比率,通常在吞吐量范圍內(nèi)測(cè)試。假設(shè)第j次主測(cè)試儀發(fā)送IP包的個(gè)數(shù)為IPSentj,接收回來(lái)的包為IPRecvj,則丟包率IPLostj為:
為了使計(jì)算更為精確,采用概率的統(tǒng)計(jì)平均算法,取前2m(m=0、1…16,可設(shè)置)個(gè)值計(jì)算平均值,作為預(yù)估平均值,即為所求的丟包率。
以上網(wǎng)絡(luò)層指標(biāo)的測(cè)試,采取主動(dòng)測(cè)試模式,利用IP流量發(fā)生器來(lái)完成。
3 測(cè)試方案設(shè)計(jì)
3.1主從機(jī)測(cè)試模式
普通測(cè)試儀采用的雙MAC單機(jī)測(cè)試模式,只能測(cè)試單個(gè)網(wǎng)絡(luò),測(cè)試距離短、范圍小。IPTV測(cè)試儀網(wǎng)絡(luò)層測(cè)試采用的是單MAC主從機(jī)測(cè)試模式,可遠(yuǎn)距離跨網(wǎng)測(cè)試,比單機(jī)測(cè)試模式測(cè)試距離更長(zhǎng),范圍更廣,精確度更高。
IPTV測(cè)試儀在測(cè)試網(wǎng)絡(luò)層指標(biāo)時(shí),可作為主機(jī)發(fā)送IP包,可作為從機(jī)轉(zhuǎn)發(fā)IP包,也可同時(shí)作為主機(jī)和從機(jī),同時(shí)發(fā)送接收和轉(zhuǎn)發(fā)IP包。如圖2所示。
測(cè)試儀A和測(cè)試儀B測(cè)試網(wǎng)絡(luò)1,測(cè)試儀B和測(cè)試儀C測(cè)試網(wǎng)絡(luò)2。其中A選擇主機(jī)狀態(tài),發(fā)送接收IP包,分析測(cè)試指標(biāo)。C選擇從機(jī)狀態(tài)轉(zhuǎn)發(fā)B發(fā)送的IP包給B。而B(niǎo)則同時(shí)作為A的從機(jī)和C的主機(jī),負(fù)責(zé)發(fā)送和接收給C的IP包,同時(shí)轉(zhuǎn)發(fā)回A發(fā)送來(lái)的IP包。
主從機(jī)通信流程圖如圖3所示。
首先主機(jī)A發(fā)送連接請(qǐng)求消息,從機(jī)B回復(fù)連接響應(yīng)消息。收到回復(fù)后,主機(jī)A發(fā)送連接建立完成消息并發(fā)送加上發(fā)送時(shí)間戳的IP包,從機(jī)B接收并轉(zhuǎn)發(fā)回IP包給主機(jī)A。主機(jī)A根據(jù)返回IP包的數(shù)據(jù)計(jì)算時(shí)延抖動(dòng)和丟包率。
3.2 整體設(shè)計(jì)
測(cè)試儀的主從機(jī)測(cè)試模式以及測(cè)試指標(biāo)參數(shù)提取是采用IP流量發(fā)生器實(shí)現(xiàn)的。其主要由控制模塊、 同步模塊、響應(yīng)模塊、ARP/RARP模塊、轉(zhuǎn)發(fā)模塊、IP流量發(fā)生模塊、自身IP包處理模塊、發(fā)送模塊、發(fā)送調(diào)度模塊、接收模塊、接收調(diào)度模塊等組成。具體方案設(shè)計(jì)如圖4所示。
?
控制模塊負(fù)責(zé)IP流量發(fā)生器與CPU的交互,并控制測(cè)試儀處于何種狀態(tài):主機(jī)狀態(tài)、從機(jī)狀態(tài)、主從機(jī)狀態(tài);ARP/RARP模塊主要負(fù)責(zé)ARP/RARP包的處理;同步模塊負(fù)責(zé)主機(jī)向從機(jī)發(fā)送連接請(qǐng)求;響應(yīng)模塊負(fù)責(zé)從機(jī)向主機(jī)發(fā)送響應(yīng)信息;轉(zhuǎn)發(fā)模塊完成主機(jī)發(fā)送來(lái)的IP包的轉(zhuǎn)發(fā);IP流量發(fā)生模塊產(chǎn)生主機(jī)要發(fā)送的IP包;自身IP包處理模塊完成對(duì)從機(jī)轉(zhuǎn)發(fā)回的IP包進(jìn)行分析處理,提取網(wǎng)絡(luò)測(cè)試指標(biāo)參數(shù);接收模塊完成網(wǎng)絡(luò)上各種測(cè)試包的接收;接收調(diào)度模塊調(diào)度接收到的測(cè)試包發(fā)送到相應(yīng)的模塊處理,如將ARP包送到ARP模塊;發(fā)送模塊負(fù)責(zé)將各種測(cè)試包發(fā)送到網(wǎng)絡(luò);發(fā)送調(diào)度模塊完成各個(gè)模塊測(cè)試包的發(fā)送順序。
3.3 IP流量發(fā)生方案
IP流量發(fā)生模塊是整個(gè)IP流量發(fā)生器最重要的模塊。用戶在進(jìn)行網(wǎng)絡(luò)層測(cè)試時(shí),啟動(dòng)IP流量發(fā)生器。用戶輸入每秒產(chǎn)生的IP包的個(gè)數(shù)、IP包的長(zhǎng)度、IP包的類型、目的IP地址等關(guān)鍵參數(shù)。IP流量發(fā)生模塊根據(jù)這些信息生成IP流量。
發(fā)送的IP包的生成采用“定點(diǎn)填充、規(guī)律生成”的方案,即一些關(guān)鍵信息如測(cè)試時(shí)間、IP頭長(zhǎng)度、IP包總長(zhǎng)度等在IP包中分配有固定的位置,且取值會(huì)對(duì)測(cè)試結(jié)果產(chǎn)生影響。對(duì)于這樣的信息就要根據(jù)IP包的類型和用戶填寫(xiě)的信息填充到固定的位置。如圖5中的偽碼所示。
而IP包承載的一些數(shù)據(jù)信息可以是任何隨意的值,取值多少對(duì)測(cè)試結(jié)果不會(huì)產(chǎn)生影響。對(duì)于這些信息,為了避免出現(xiàn)全0,將按一定規(guī)律產(chǎn)生。如偽碼中所示,最高8位為一個(gè)固定前綴ti,低8位為位置偏移量的值offset(以4字節(jié)為單位)。當(dāng)offset=x'01F4' 時(shí),ti<=ti+1。這樣規(guī)律產(chǎn)生的數(shù)據(jù),便于測(cè)試時(shí)檢查傳輸數(shù)據(jù)的正確性和糾錯(cuò)。
3.4 調(diào)度算法設(shè)計(jì)
在IPTV測(cè)試儀的IP流量發(fā)生器中主要有2個(gè)重要的調(diào)度:接收調(diào)度和發(fā)送調(diào)度。測(cè)試儀處于不同的狀態(tài)時(shí),采用不同的調(diào)度算法?,F(xiàn)在以調(diào)度最為復(fù)雜的主從機(jī)狀態(tài)為例,介紹2個(gè)重要調(diào)度的算法設(shè)計(jì)。
(1) 接收調(diào)度
接收模塊接收的測(cè)試包有4種可能:ARP/RARP包、作為從機(jī)要轉(zhuǎn)發(fā)的包、應(yīng)主機(jī)同步包的響應(yīng)包、作為主機(jī)接收回的自身的IP包。
接收調(diào)度就是判斷測(cè)試包的類型,接收的是哪種類型的測(cè)試包就送到相應(yīng)的處理模塊進(jìn)行處理。
(2)發(fā)送調(diào)度
相對(duì)接收調(diào)度,發(fā)送調(diào)度要復(fù)雜很多。因?yàn)闇y(cè)試儀同時(shí)處于主機(jī)和從機(jī)狀態(tài),它要發(fā)送的測(cè)試包有:ARP/RARP包、作為主機(jī)自身產(chǎn)生的IP包、請(qǐng)求從機(jī)建立連接的同步包、作為從機(jī)要轉(zhuǎn)發(fā)回去的IP包。但是幾種測(cè)試包可能都在等待發(fā)送。因此發(fā)送調(diào)度模塊采用了“先來(lái)先服務(wù),同在看級(jí)別”的算法思想。
發(fā)送模塊主要調(diào)度4種測(cè)試包的發(fā)送。當(dāng)4種IP包到來(lái)時(shí)間不同時(shí),且每次只有1種包需要發(fā)送時(shí),則采用先來(lái)先服務(wù)FCFS(First Come First Serve)調(diào)度算法,哪種測(cè)試包先到達(dá),調(diào)度模塊則將其送到發(fā)送模塊發(fā)送。當(dāng)有2種或3種測(cè)試包在同時(shí)等待發(fā)送時(shí),根據(jù)其優(yōu)先級(jí)排隊(duì)發(fā)送,優(yōu)先發(fā)送級(jí)別高的測(cè)試包,然后發(fā)送級(jí)別低的測(cè)試包。本方案中ARP/RARP包的級(jí)別最高為1,同步包次之為2,轉(zhuǎn)發(fā)的IP包級(jí)別為3,自身IP流量發(fā)生的IP包的級(jí)別最低為4。即如果3種包同時(shí)需要發(fā)送時(shí),優(yōu)先發(fā)送ARP包。
這種算法思想結(jié)合了經(jīng)典的先來(lái)先服務(wù)調(diào)度算法和優(yōu)先級(jí)調(diào)度算法的優(yōu)點(diǎn),實(shí)現(xiàn)了發(fā)送模塊的最優(yōu)調(diào)度。
4 仿真結(jié)果及分析
測(cè)試時(shí),IP流量發(fā)生器接收用戶輸入的數(shù)據(jù),根據(jù)這些數(shù)據(jù)產(chǎn)生IP包,發(fā)送模塊在和從機(jī)建立連接后,按一定的幀間隔發(fā)送IP包,并在IP包頭后打上發(fā)送時(shí)間戳。接收模塊接收轉(zhuǎn)發(fā)回來(lái)的IP包,記錄每個(gè)IP包的時(shí)延,并統(tǒng)計(jì)接收到的IP包個(gè)數(shù),送到上層應(yīng)用程序進(jìn)行計(jì)算。
為了便于觀察測(cè)試結(jié)果,測(cè)試輸入如下:選擇主機(jī)狀態(tài),發(fā)送時(shí)鐘周期選擇20 ns,1 s發(fā)送50 000個(gè)IP包,發(fā)送間隔為3個(gè)時(shí)鐘周期,IP包頭長(zhǎng)度為20個(gè)字節(jié),總長(zhǎng)度為64字節(jié),沒(méi)有分片。主機(jī)IP地址為10.11.107.75(十六進(jìn)制表示為0A0B6B4B),從機(jī)IP地址為10.11.105.34(十六進(jìn)制表示為0A0B6922)。發(fā)送時(shí)間戳存放在IP包頭的目的IP地址后。發(fā)送和接收模塊的仿真圖如圖6所示。
從圖中可以看到,接收到的發(fā)送模塊發(fā)送的IP包包頭數(shù)據(jù)與用戶輸入數(shù)據(jù)完全吻合,且IP包數(shù)據(jù)完全按照IP流量產(chǎn)生算法規(guī)律產(chǎn)生。接收模塊接收到的目的IP地址與發(fā)送模塊的源IP地址相同都為主機(jī)的IP地址,說(shuō)明主從機(jī)連接成功,通信正常。
FPGA模塊有一個(gè)公共時(shí)鐘計(jì)數(shù)器,以時(shí)鐘計(jì)數(shù)器值作為時(shí)間戳,接收和發(fā)送時(shí)的計(jì)數(shù)器值的差值,乘上時(shí)鐘周期即為所求時(shí)延。統(tǒng)計(jì)接收到的IP包的個(gè)數(shù),在開(kāi)始接收時(shí)鐘與當(dāng)前時(shí)鐘差值等于時(shí)鐘頻率時(shí),即接收開(kāi)始1 s后,輸出和1 s鐘丟包個(gè)數(shù),時(shí)間未到時(shí)丟包個(gè)數(shù)保持為0。從圖5可以看到,接收模塊收到的第6個(gè)IP包的發(fā)送時(shí)間為0x000001F4,接收時(shí)鐘為0x000061AB,時(shí)延為124 500(0X00005FB4)個(gè)時(shí)鐘周期。在未到1 s時(shí),丟包個(gè)數(shù)保持為0。
測(cè)試結(jié)果與預(yù)期結(jié)果完全一致。同時(shí),經(jīng)示波器測(cè)試,測(cè)試結(jié)果與仿真結(jié)果基本一致。
本文首先介紹了IPTV測(cè)試儀的整體框架;然后分析了網(wǎng)絡(luò)層測(cè)試指標(biāo)算法,提出了利用IP流量發(fā)生器實(shí)現(xiàn)網(wǎng)絡(luò)層測(cè)試的的設(shè)計(jì)方案;最后將方案在仿真軟件上進(jìn)行測(cè)試和仿真,并給出了部分結(jié)果。測(cè)試表明,本方案思路清晰,實(shí)現(xiàn)簡(jiǎn)單,程序穩(wěn)定可靠。本方案已應(yīng)用到“重郵東電IPTV測(cè)試儀”中,測(cè)試效果良好。
參考文獻(xiàn)
[1] ?仇棟才, 趙國(guó)峰. 薛飛. IPTV測(cè)試[J]. 電子工程技術(shù)與標(biāo)準(zhǔn)化,2007(2):21-25.
[2] ?許永明, 謝質(zhì)文, 歐陽(yáng)春. IPTV-技術(shù)與應(yīng)用實(shí)踐[M]. ?北京:電子工業(yè)出版社,2006.
[3] ?李曉飛,朱墨軍. IPTV在中國(guó)的現(xiàn)狀與發(fā)展趨勢(shì)[J].中國(guó)多媒體通信,2003,15(1):21-25.
[4] ?雷崢嶸.基于Windows Media流媒體技術(shù)的IPTV[J].廣州大學(xué)學(xué)報(bào):自然科學(xué)版,2006(3):43-47.
[5] ?陳晨,裴昌幸. IP網(wǎng)絡(luò)流量產(chǎn)生器的研究與實(shí)現(xiàn)[J].重慶大學(xué)學(xué)報(bào),2008(2).
[6] ?張偉,王婉南.基于VxWorks的以太網(wǎng)流量發(fā)生器的實(shí)現(xiàn)[J]. 科學(xué)技術(shù)與工程,2007(17).
[7] ?OLIVEIRA C,JAIME B K,SUDA T.Long range depen-dence in IEEE 802.1 lb wireless LAN traffic:an empirical ?study[C].Proceedings of the 18th Annual? IEEE Computer?Communications Workshop(CCW 2003),California,USA,
?2003.
[8] ?ABRY P,PARANIUK R,F(xiàn)LANDRIN P,et a1. Multiscale?nature of network traffic[J]. IEEE Signal Processing Magazine,2002,19(3):28-46.