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