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