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