可抵御膨脹攻擊的網(wǎng)絡物理帶寬測量方法
【技術(shù)領域】
[0001] 本發(fā)明設及一種可抵御膨脹攻擊的網(wǎng)絡物理帶寬測量方法,尤其是設及一種可W 有效防止被測量端惡意膨脹其與測量端之間網(wǎng)絡物理帶寬的測量方法。
【背景技術(shù)】
[0002] 在互聯(lián)網(wǎng)(Internet)中,網(wǎng)絡路徑上數(shù)據(jù)傳輸?shù)乃俣瓤蒞用網(wǎng)絡帶寬來表示。常 用的網(wǎng)絡帶寬一般可分為物理帶寬和可用帶寬兩種。物理帶寬是指由網(wǎng)絡路徑上物理設備 所決定的網(wǎng)絡數(shù)據(jù)傳輸速度的最大值(當網(wǎng)絡路徑上的物理設備確定后,其物理帶寬可W 認為是一個恒定值)。與此不同,可用帶寬是考慮到不同網(wǎng)絡數(shù)據(jù)流可能在同一時刻通過某 一網(wǎng)絡路徑而導致的該時刻在該網(wǎng)絡路徑上物理帶寬的剩余值(顯而易見,網(wǎng)絡路徑上的 可用帶寬是一個時變值,它隨著網(wǎng)絡狀態(tài)的變化而時刻變化著)。由于物理帶寬能比較恒定 的反應網(wǎng)絡設備的數(shù)據(jù)處理和傳輸能力,網(wǎng)絡服務提供商往往按照物理帶寬的大小向互聯(lián) 網(wǎng)用戶收取租金。因此,為了防止受到欺騙,互聯(lián)網(wǎng)用戶常采用非合作式帶寬測量方法來驗 證自己接入互聯(lián)網(wǎng)服務的實際物理帶寬是否達到了網(wǎng)絡服務提供商承若的標準。除此之 夕h很多第Ξ方網(wǎng)絡監(jiān)察機構(gòu)也需要使用非合作式帶寬測量方法來監(jiān)測整個互聯(lián)網(wǎng)的物理 帶寬資源和分布狀況,從而指導網(wǎng)絡服務提供商優(yōu)化其服務。
[0003] 現(xiàn)有的非合作式物理帶寬測量方法一般是在多次可用帶寬測量的結(jié)果上通過濾 掉旁路數(shù)據(jù)流帶來的影響而得到物理帶寬值。具體做法是,測量端可-定的時間間隔 多次發(fā)送兩個(測量包對)或兩個W上(測量包鏈)的測量數(shù)據(jù)包,被測量端在每次收到測量 數(shù)據(jù)包后其TCP/IP協(xié)議找將會自動回送對應的響應包。測量端可W用測量數(shù)據(jù)包的大小除 W多次測量結(jié)果中最不受旁路數(shù)據(jù)流影響的相鄰響應包接收時間間隔來計算網(wǎng)絡物理帶 寬的大小?,F(xiàn)階段,選擇最不受旁路數(shù)據(jù)流影響的時間間隔的方法有兩種:第一種是選擇多 次測量中最小的相鄰響應包時間間隔,第二種是選擇每次測量中固定位置上測量包和響應 包的最小往返時延來計算相鄰響應包時間間隔。理論分析和大量的實驗都表明第二種方法 比第一種方法能更快更準的估計出物理帶寬。然而,運些算法在設計時完全沒有考慮安全 的問題。惡意的被測量端可W很容易的通過延遲響應前一個測量包或提前響應后一個測量 包來欺騙測量端,使其計算得到一個比真實值更大的物理帶寬測量值。
[0004] 雖然已經(jīng)有一些研究設計了可W檢測帶寬膨脹攻擊的測量方法,如機會主義帶寬 巧慢算法和帶寬測量積累概率分布函數(shù)(CDF)對稱性分析法,他們都局限于對可用網(wǎng)絡帶 寬的測量。運些方法即不能用來測量物理帶寬也不能檢測物理帶寬膨脹攻擊。
[000引綜上所述,當前尚無方法可W在測量物理帶寬的同時檢測物理帶寬膨脹攻擊,從 而導致互聯(lián)網(wǎng)用戶和第Ξ方監(jiān)察機構(gòu)很難確定其物理帶寬的測量值是否被網(wǎng)絡服務提供 商或其它攻擊者惡意膨脹過。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的技術(shù)問題是提供一種可抵御膨脹攻擊的網(wǎng)絡物理帶寬測量方 法,其為了使測量端能在非合作的模式下,對網(wǎng)絡物理帶寬進行測量同時防止被測量端惡 意膨脹其帶寬。
[0007] 本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的:一種可抵御膨脹攻擊的網(wǎng)絡 物理帶寬測量方法,其特征在于,其包括W下步驟:
[0008] 步驟一,測量端預先設定測量參數(shù),并初始化記錄數(shù)組;
[0009] 步驟二,測量端調(diào)用原始套接字生成測量包鏈并將其發(fā)送給被測量端;
[0010] 步驟Ξ,測量端發(fā)送完測量包鏈后調(diào)用libPcap函數(shù)包接收被測量端發(fā)送回來的 響應包,并根據(jù)TCP時間戳將測量包與其相應的響應包進行關(guān)聯(lián);
[0011] 步驟四,測量端將根據(jù)往返時延下降法將對應位置上更小的測量-響應往返時延 更新到記錄數(shù)組中;
[0012] 步驟五,判斷測量的結(jié)束條件;首先,本次測量是否需要更新記錄數(shù)組,如果不需 要,則表示測量結(jié)果已經(jīng)收斂,在運個情況下,判斷本次測量是收斂后的第幾次測量,如果 運個次數(shù)超過N,則測量結(jié)束并執(zhí)行步驟六;如果不滿足前一條件,則判斷測量的總次數(shù),如 果超過Μ,則測量結(jié)束;
[001引步驟六,現(xiàn)慢端利用相鄰時延計算法,根據(jù)記錄數(shù)組中的每對相鄰的最小往返時 延計算一個物理帶寬值,運樣總共可W得到的物理帶寬計算值的個數(shù)是記錄數(shù)組長度減 -* · ,
[0014] 步驟屯,測量端計算出所有物理帶寬計算值的平均值和標準差;
[0015] 步驟八,應用本發(fā)明提出的統(tǒng)計檢測算法,根據(jù)物理帶寬計算值的標準差是否大 于其平均值的Η。倍來判斷被測量端是否在發(fā)動物理帶寬膨脹攻擊,如果大于則執(zhí)行步驟 九,否則執(zhí)行步驟十;
[0016] 步驟九,測量端檢測到被測量端在進行物理帶寬膨脹攻擊;
[0017] 步驟十,測量端確認被測量端不在進行物理帶寬膨脹攻擊,并W所有物理帶寬計 算值的平均值作為物理帶寬的測量值輸出。
[001引優(yōu)選地,所述測量包鏈包含的測量包個數(shù)是];和£之間的一個隨機數(shù),同時每個 測量包的身份信息都是隨機數(shù),2是隨機生成測量包鏈長度的最小值,L是隨機生成測量 包鏈長度的最大值。
[0019] 本發(fā)明的積極進步效果在于:本發(fā)明可W在測量網(wǎng)絡物理帶寬的同時檢測被測量 端是否發(fā)動了帶寬膨脹攻擊。在本發(fā)明前尚無方法可W用于檢測物理帶寬膨脹攻擊。
【附圖說明】
[0020] 圖1為本發(fā)明測量過程中不斷選取測量包-響應包最小往返時延的例子示意圖。
[0021] 圖2為本發(fā)明五十次測量中包鏈前六對測量-響應包往返延遲收斂到最小值的過 程圖。
[0022] 圖3(a)為本發(fā)明滯后回應攻擊且真實帶寬為100肺PS的實驗結(jié)果圖。
[0023] 圖3(b)為本發(fā)明滯后回應攻擊且真實帶寬為1Mbps的實驗結(jié)果圖。
[0024] 圖3(c)為本發(fā)明混合攻擊且真實帶寬為100肺PS的實驗結(jié)果圖。
[0025] 圖3(d)為本發(fā)明混合攻擊且真實帶寬為1Mbps的實驗結(jié)果圖。
[0026] 圖4為本發(fā)明可抵御膨脹攻擊的網(wǎng)絡物理帶寬測量方法的流程圖。
【具體實施方式】
[0027] 下面結(jié)合附圖給出本發(fā)明較佳實施例,W詳細說明本發(fā)明的技術(shù)方案。
[0028] 整個測量過程在測量端完成,被測量端只是通過其TCP/IP協(xié)議找自動回應接受到 的測量數(shù)據(jù)包,本發(fā)明不需要在被測量端上實施任何額外的步驟?;诖耍景l(fā)明的測量方 法可W歸納為非合作式網(wǎng)絡測量。
[0029] 如圖4所示,本發(fā)明可抵御膨脹攻擊的網(wǎng)絡物理帶寬測量方法包括W下步驟:
[0030] 步驟101,測量端預先設定測量參數(shù)1;(隨機生成測量包鏈長度的最小值),£ (隨 機生成測量包鏈長度的最大值),N(測量結(jié)果收斂后的最大測量次數(shù)),M(最大測量次數(shù)),Τ (相鄰測量間的時間間隔)W及He(物理帶寬膨脹攻擊的檢測闊值),并初始化記錄數(shù)組。在 本發(fā)明的配套實驗中,取1 = ];〇:, £ = 5.0::,N= 10,M= 10000,Τ = 10分鐘W及也=0.〇8。
[0031] 步驟102,測量端調(diào)用原始套接字(RAW socket)生成測量包鏈并將其發(fā)送給被測 量端。測量包鏈包含的測量包個數(shù)是主和£:之間的一個隨機數(shù),同時每個測量包的身份信 息(包括IPIDW及TCP序列號等)都是隨機數(shù)。測量端的通過調(diào)用rand函數(shù)獲得隨機數(shù)。
[0032] 步驟103,測量端發(fā)送完測量包鏈后調(diào)用libPeap函數(shù)包(libpeap函數(shù)包是Unix/ linux平臺下的網(wǎng)絡數(shù)據(jù)包捕獲函數(shù)包)接收被測量端發(fā)送回來的響應包,并根據(jù)TCP時間 戳將測量包與其相應的響應包進行關(guān)聯(lián)。接收響應包的結(jié)束條件是,所有測量包對應的響 應包都被正確接收,或者等待超時。本發(fā)明建議的等待超時時間是一秒鐘。
[0033] 步驟104,測量端根據(jù)往返時延下降法將對應位置上更小的測量-響應往返時延更 新到記錄數(shù)組中。
[0034] 步驟105,判斷測量的結(jié)束條件;首先,本次測量是否需要更新記錄數(shù)組,如果不需 要,則表示測量結(jié)果已經(jīng)收斂,在運個情況下,判斷本次測量是收斂后的第幾次測量,如果 運個次數(shù)超過N,則測量結(jié)束并執(zhí)行步驟106;如果不滿足前一條件,則判斷測量的總次數(shù), 如果超過M,則測量結(jié)束。否則,開始下一次測量。
[0035] 步驟106,測量端將利用相鄰時延計算法,根據(jù)記錄數(shù)組中的每對相鄰的最小往返 時延計算一個物理帶寬值,運樣總共可W得到的物理帶寬計算值的個數(shù)是記錄數(shù)組長度減 〇
[0036] 步驟107,測量端計算出所有物理帶寬計算值的平均值和標準差。
[0037] 步驟108,應用本發(fā)明提出的統(tǒng)計檢測算法,根據(jù)物理帶寬計算值的標準差是否大 于其平均值的出倍(檢測闊值)來判斷被測量端是否在發(fā)動物理帶寬膨脹攻擊,如果大于則 執(zhí)行步驟109,否則執(zhí)行步驟110。
[0038] 步驟109,測量端檢測到被測量端在進行物理帶寬膨脹攻擊。
[0039] 步驟110,測量端確認被測量端不在進行物理帶寬膨脹攻擊,并W所有物理帶寬計 算值的平均值作為物理帶寬的測量值輸出。
[0040] 本發(fā)明在測量端生成長度隨機的測量包鏈,并保證每一個測量數(shù)據(jù)包和其觸發(fā)的 被測量端響應包可W關(guān)聯(lián);測量端根據(jù)測量數(shù)據(jù)包的發(fā)送時間和其響應包的接收時間計算 每一測量-響應包對的往返時間延遲;每次測量完成后,如果得到的相應位置上新的測量- 響應包對往返時間延遲比舊結(jié)果更小,則用新結(jié)果替換舊結(jié)果,否則保持舊結(jié)果不變;按一 定的時間間隔重復執(zhí)行上述步驟,直到包鏈所有位置上往返時間延遲的舊結(jié)果都比新結(jié)果 小則停止測量。根據(jù)包鏈中相鄰位置上往返時間延遲的差值可W計算出多個網(wǎng)絡物理帶寬 測