一種突發(fā)背景流環(huán)境下單端可用帶寬的測量方法
【專利摘要】本發(fā)明公開了一種突發(fā)背景流環(huán)境下單端可用帶寬的測量方法,該方法通過構(gòu)造帶有負(fù)載包、定位包和測量包的探測包列,結(jié)合TTL值的設(shè)置和QueryPerformanceFrequency()的應(yīng)用,獲得測量包在瓶頸鏈路前后微秒級的時間分布,并周期性地跟蹤瓶頸鏈路位置的變化。在測量過程中過濾探測包在非同一路徑上的時間分布,同時加入丟包率等誤差因子,提高測量精度。本發(fā)明可應(yīng)用于多跳網(wǎng)絡(luò)環(huán)境下的端到端的可用帶寬的測量,與現(xiàn)有的可用帶寬測量方法相比,本發(fā)明采用新穎的探測包列實現(xiàn)單端可用帶寬測量,在分析了突發(fā)背景流的基礎(chǔ)上有效地解決了在測量可用帶寬過程中精度不高,負(fù)載過大和測量時間較長的問題。
【專利說明】一種突發(fā)背景流環(huán)境下單端可用帶寬的測量方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明公開了一種突發(fā)背景流環(huán)境下單端可用帶寬的測量方法,具體涉及一種用 于解決可用帶寬測量過程中精確度不高、對網(wǎng)絡(luò)影響較大、測量時間較長的單端可用帶寬 測量方法,屬于網(wǎng)絡(luò)測量【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002] 近年來,隨著光纖傳輸和高速以太網(wǎng)交換機(jī)的廣泛應(yīng)用,網(wǎng)絡(luò)主干帶寬和接入帶 寬成倍增加,但是網(wǎng)絡(luò)性能沒有隨之成倍提升,高時延、低利用率仍然存在,因此通過網(wǎng)絡(luò) 測量來實時檢測網(wǎng)絡(luò)性能尤為重要。而網(wǎng)絡(luò)可用帶寬是網(wǎng)絡(luò)最基本和最重要的性能指標(biāo) 之一,它不僅反應(yīng)了端到端網(wǎng)絡(luò)路徑的實際傳輸能力,還對擁塞控制、路由選擇及服務(wù)質(zhì)量 (QoS)等具有重要意義,受到越來越多的關(guān)注。
[0003] 端到端路徑的可用帶寬是指存在背景流量的前提下,一段時間間隔內(nèi)端到端的路 徑能提供的最大服務(wù)速率。根據(jù)探測方式的不同,把可用帶寬測量模型分為探測速率模型 (PRM,probe rate model)和探測間隔模型(PGM,probe gap model)。PRM 基于自誘導(dǎo)擁塞 思想,如果發(fā)送端探測流的發(fā)送速率小于路徑可用帶寬,那么探測流到達(dá)接收端的速率將 與源端的發(fā)送速率相匹配。反之,探測流會造成網(wǎng)絡(luò)擁塞,所以,通過尋找發(fā)送速率和接收 速率開始相等的轉(zhuǎn)折點來測量可用帶寬。PGM是利用探測包在發(fā)送端和接收端的探測分組 之間的時間間隔來估測可用帶寬。
[0004] 這兩種模型都假設(shè)端到端網(wǎng)絡(luò)路徑上的背景流是包長無限小且流量保持穩(wěn)定的 液體流,但由于網(wǎng)絡(luò)不斷增長分布化、不協(xié)作異質(zhì)的特點,使得實際網(wǎng)絡(luò)環(huán)境下背景流具有 突發(fā)性,這種基于瓶頸分隔原理的液體流模型中的假設(shè)條件在實際測量時難以滿足,不能 準(zhǔn)確地反映實際網(wǎng)絡(luò),因此有必要提高在多跳網(wǎng)絡(luò)環(huán)境下測量可用帶寬精確度。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明所要解決的技術(shù)問題是:針對現(xiàn)有技術(shù)的缺陷,提供一種突發(fā)背景流環(huán)境 下單端可用帶寬的測量機(jī)制,用于解決多跳網(wǎng)絡(luò)中由于突發(fā)背景流的影響可用帶寬測量精 度不高的問題。通過本發(fā)明,可以有效提高可用帶寬的測量精度,降低網(wǎng)絡(luò)負(fù)載,提高測量 效率。
[0006] 本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案:
[0007] -種突發(fā)背景流環(huán)境下單端可用帶寬的測量機(jī)制,主要包括探測包列的構(gòu)造和可 用帶寬測量方法的改進(jìn)。
[0008] 探測包列的構(gòu)造:探測包列如圖2所示,主要由負(fù)載包、測量包、定位包組成,每一 個探測包列有2個探測單元,每個探測單元包括2個負(fù)載包,2個測量包和Η個定位包。
[0009] 負(fù)載包用于獲得測量包在瓶頸鏈路前后的時間間隔。相關(guān)設(shè)置如下:負(fù)載包為大 小1500Β的ICMP包,位于第一個和第二個探測單元中負(fù)載包的TTL值分別設(shè)為瓶頸鏈路前 一跳和瓶頸鏈路后一跳,使得負(fù)載包在瓶頸鏈路前后被丟棄,從而獲得測量包在瓶頸鏈路 前后的時間間隔。
[0010] 定位包用于跟蹤瓶頸鏈路的位置變化。相關(guān)設(shè)置如下:定位包為大小40B的ICMP 包,個數(shù)由端到端路徑跳數(shù)決定,定位包的TTL值依次向內(nèi)遞增排列,使得每經(jīng)過一個路由 器就被丟棄,當(dāng)探測包列到達(dá)目的節(jié)點時,源節(jié)點獲得一個時間序列,時間序列中的轉(zhuǎn)折點 即為瓶頸鏈路的位置。
[0011] 測量包用于確定丟包率。相關(guān)設(shè)置如下:測量包為大小40B,TTL值默認(rèn)的ICMP 包。在傳輸?shù)倪^程中,如果在傳輸過程中某節(jié)點緩沖區(qū)已滿或者出現(xiàn)網(wǎng)絡(luò)擁塞等情況,會發(fā) 生丟包,此時目的節(jié)點不會向源節(jié)點發(fā)送應(yīng)答報文,因此我們可以通過源節(jié)點收到的應(yīng)答 報文的個數(shù)來計算丟包率。
[0012] 可用帶寬測量方法的主要步驟如下:
[0013] 步驟一、確定端到端路徑的跳數(shù)Η :利用traceroute工具獲得所測路徑中Η的個 數(shù),確定探測包列中所需的定位包的個數(shù)。
[0014] 步驟二、初始化瓶頸鏈路的位置0及容量C :利用Pathneck工具得到瓶頸鏈路的 位置〇及容量C。
[0015] 步驟三、設(shè)置探測包列中負(fù)載包和定位包的TTL值:在構(gòu)造探測包列結(jié)構(gòu)時將第 一個和第二個探測單元中負(fù)載包的TTL值分別設(shè)為瓶頸鏈路前一跳(0-1)和瓶頸鏈路后一 跳(0),定位包的TTL值依次向內(nèi)遞排列。
[0016] 步驟四、源節(jié)點以速率Ru向目的節(jié)點發(fā)送探測包列,獲得測量包在瓶頸鏈路前后 的時間間隔并對其過濾;
[0017] 當(dāng)負(fù)載包到達(dá)瓶頸鏈路前后時被丟棄,中間節(jié)點向源節(jié)點返回ICMP超時報文,源 節(jié)點每收到一個ICMP超時報文記錄當(dāng)前的CPU頻率,通過QueryPerformanceFrequency () 函數(shù)獲得兩個包在瓶頸鏈路前后的微秒級的時間間隔,分別記為測量包在瓶頸鏈路前后的 時間間隔gH、gi。本方法假設(shè)在一個探測周期內(nèi),探測包列經(jīng)過的端到端的路徑不發(fā)生變 化,因此本方法過濾數(shù)據(jù)包失序的時間間隔,即過濾非正數(shù)的時間間隔。
[0018] 步驟五:利用定位包得到時間序列,跟蹤瓶頸位置的變化情況:當(dāng)探測包列每經(jīng) 過一個中間節(jié)點,一個定位包被丟棄,中間節(jié)點向源節(jié)點返回ICMP超時報文,源節(jié)點每 收到一個ICMP超時報文記錄當(dāng)前的CPU頻率,通過QueryPerformanceFrequency ()函 數(shù)將兩個包的時間間隔轉(zhuǎn)換為微秒級的時間,當(dāng)探測包列抵達(dá)目的節(jié)點時得到一個時間 序列 RTT(rttA1, rttB1.....rttAm, rttBm),滿足條件 Max (rttBi-rttAi) - ie [l,m],me [l,n],其中rttAm、rttBm*別為第m個探測包列中第一個、第二個探測單元 中測量包在所測路徑上的往返時延,i處為瓶頸鏈路的位置,與步驟二中得到的0相比,如 果變化,則轉(zhuǎn)向步驟二,重新測得〇和C。否則進(jìn)行步驟六。
[0019] 步驟六:確定測量包的丟包率,估算可用帶寬:當(dāng)探測包列到達(dá)目的節(jié)點后,如果 存在緩沖區(qū)已滿或者網(wǎng)絡(luò)擁塞等情況,測量包會向源節(jié)點返回ICMP應(yīng)答報文,源節(jié)點通過 IP報文中標(biāo)識統(tǒng)計實際收到應(yīng)答報文的個數(shù),與測量包的個數(shù)相比得到丟包率。
[0020] 結(jié)合步驟四,用公式計算得 出可用帶寬;
【權(quán)利要求】
1. 一種突發(fā)背景流環(huán)境下單端可用帶寬的測量方法,其特征在于,包括如下步驟: 步驟一:確定端到端路徑的跳數(shù)H,進(jìn)而確定探測包列中定位包的個數(shù); 步驟二:初始化瓶頸鏈路的位置0及容量C ; 步驟三:設(shè)置探測包列中負(fù)載包和定位包的TTL值; 步驟四:源節(jié)點以速率Ru向目的節(jié)點發(fā)送探測包列,獲得探測包列中測量包在瓶頸鏈 路前、后的時間間隔并對其進(jìn)行過濾; 步驟五:利用探測包列中的定位包得到時間序列,跟蹤判斷瓶頸鏈路位置是否變化,具 體步驟如下: 當(dāng)探測包列每經(jīng)過一個中間節(jié)點時,一個定位包被丟棄,中間節(jié)點向源節(jié)點 返回ICMP超時報文,源節(jié)點每收到一個ICMP超時報文記錄當(dāng)前的CPU頻率,通過 QueryPerformanceFrequency()函數(shù)將兩個包的時間間隔轉(zhuǎn)換為微秒級的時間,當(dāng)探測包 列抵達(dá)目的節(jié)點時得到一個時間序列RTT(rttA1, rttB1.....rtt- rttBm),所述時間序列滿 足條件: Max(rttBi-rttAi)-(rttB(i_1)-rtt A(i_1)), i e [l,m]; 其中,i處為瓶頸鏈路的位置,將其與步驟二中得到的位置0相比較,當(dāng)位置發(fā)生變化 時,轉(zhuǎn)向步驟二,重新測得0和C ; 當(dāng)位置未發(fā)生變化時,進(jìn)入步驟六; 步驟六:分別計算探測過程中的丟包率和可用帶寬; 步驟七:更新探測包列的時間間隔,準(zhǔn)備下一次測量。
2. 如權(quán)利要求1所述的一種突發(fā)背景流環(huán)境下單端可用帶寬的測量方法,其特征在 于,所述探測包列包括:第一和第二兩個探測單元,每個探測單元包括2個負(fù)載包,2個測量 包和Η個定位包,Η的取值為自然數(shù),定位包的個數(shù)由端到端路徑跳數(shù)決定;探測單元在源 端發(fā)送前存在時間間隔g u,測量包在源端發(fā)送前存在時間間隔gm ;所述第一和第二兩個探 測單元中負(fù)載包的TTL值分別設(shè)為瓶頸鏈路前一跳和瓶頸鏈路后一跳的跳數(shù)值,所述定位 包的TTL值依次由外向內(nèi)遞增排列; 其中,負(fù)載包用于獲得測量包在瓶頸鏈路前后的時間間隔;定位包用于跟蹤瓶頸鏈路 的位置變化;測量包用于確定丟包率。
3. 如權(quán)利要求2所述的一種突發(fā)背景流環(huán)境下單端可用帶寬的測量方法,其特征在 于:所述步驟一中,利用traceroute工具獲得所測路徑中的跳數(shù)H。
4. 如權(quán)利要求3所述的一種突發(fā)背景流環(huán)境下單端可用帶寬的測量方法,其特征在 于:所述步驟二中,利用Pathneck工具測得瓶頸鏈路的位置0及容量C。
5. 如權(quán)利要求4所述的一種突發(fā)背景流環(huán)境下單端可用帶寬的測量方法,其特征在 于:所述步驟四中,探測包列的輸入速率為
其中,Sp SM、SP分別為負(fù)載包、測量包和定位包的大??; 所述步驟四的具體步驟包括: (401):當(dāng)探測包列到達(dá)瓶頸鏈路時,負(fù)載包被丟棄,中間節(jié)點向源節(jié)點發(fā) 送ICMP超時報文,源節(jié)點每收到一個ICMP超時報文就記錄當(dāng)前的CPU頻率,通過 QueryPerformanceFrequency()函數(shù)將兩個探測包列在瓶頸鏈路前后的時間間隔轉(zhuǎn)換為微 秒級的時間,分別記錄為gg、gi,此時,ICMP超時報文與測量包的間隔一致; (402):在探測過程中,當(dāng)網(wǎng)絡(luò)擁塞造成探測包列所經(jīng)過的端到端的路徑發(fā)生改變,進(jìn) 而導(dǎo)致數(shù)據(jù)包失序時,返回的gg和gi為負(fù)數(shù),過濾此時的非正的時間間隔gg和gi。
6. 如權(quán)利要求5所述的一種突發(fā)背景流環(huán)境下單端可用帶寬的測量方法,其特征在 于,所述步驟六具體計算方法如下: (1) 設(shè)定背景流的速率為B,探測包列在瓶頸鏈路上的傳輸時延為gb,處理時延為gp, g。為背景流在瓶頸鏈路上的傳輸時延,在第一測量包A、第二測量包M2到達(dá)目的節(jié)點時,有 B*gi_i的背景流進(jìn)入目的節(jié)點; (2) 當(dāng)探測單元的輸入速率小于可用帶寬時,8111時間內(nèi)進(jìn)入目的節(jié)點的背景流在第二 測量包M2到達(dá)節(jié)點前已傳輸完畢,此時gi = gm ; 提高探測速率后,在gm時間內(nèi),當(dāng)進(jìn)入節(jié)點背景流的傳輸時延超過第二測量包M2到達(dá) 瓶頸前段鏈路的節(jié)點時刻時,擴(kuò)展giH與gi :g。= gi-gb-gp; 當(dāng)進(jìn)入節(jié)點背景流的傳輸時延超過第一測量包Mi到達(dá)瓶頸前段鏈路的節(jié)點時刻時,縮 小 gi-i 與 gi :gc = gi-gfgp ; 綜合上述⑴、⑵兩種情況,有= gc*C,則
結(jié)合可用帶寬的基本公式A = C-B,得出
其中,A為可用帶寬,C為瓶頸帶寬既容量; 當(dāng)傳輸過程中會出現(xiàn)節(jié)點緩沖區(qū)已滿或者出現(xiàn)網(wǎng)絡(luò)擁塞情況時,在上述公式的基礎(chǔ)上 增加丟包率, 得出可用帶寬
其中,Μ是一個探測周期內(nèi),端到端路徑上丟包的個數(shù);N是一個探測周期內(nèi),端到端路 徑上探測樣本的個數(shù),即測量包的總數(shù)。
7. 如權(quán)利要求6所述的一種突發(fā)背景流環(huán)境下單端可用帶寬的測量方法,其特征在 于:所述步驟七中根據(jù)步驟六計算得出的可用帶寬,調(diào)整發(fā)送速率,當(dāng)R u < 〇. 02Α時,加快 測量速度;反之則保持初始輸入速率。
8. 如權(quán)利要求2所述的一種突發(fā)背景流環(huán)境下單端可用帶寬的測量方法,其特征在 于:所述負(fù)載包為大小1500B的ICMP包;所述定位包為大小40B的ICMP包;所述測量包為 大小40B、TTL值默認(rèn)的ICMP包。
【文檔編號】H04L12/26GK104113446SQ201410315979
【公開日】2014年10月22日 申請日期:2014年7月3日 優(yōu)先權(quán)日:2014年7月3日
【發(fā)明者】陳兵, 周逸秋, 錢紅燕 申請人:南京航空航天大學(xué)