專利名稱:一種穩(wěn)定高效的互聯(lián)網(wǎng)擁塞控制方法
技術領域:
本發(fā)明涉及了分組交換網(wǎng)絡的擁塞控制技術,具體涉及一種基于顯式擁塞信息的互聯(lián)網(wǎng)擁塞控制方法。
背景技術:
目前互聯(lián)網(wǎng)中路由器的擁塞控制功能較弱,僅通過丟包信號向用戶終端設備提供網(wǎng)絡擁塞信息,導致網(wǎng)絡帶寬資源利用率低,排隊延遲和端到端的網(wǎng)絡延遲都較大。明顯擁塞控制協(xié)議(XCP explicit Control Protocol)是一種增強網(wǎng)絡資源利用效率,降低網(wǎng)絡丟包率的擁塞控制算法。它在數(shù)據(jù)包中增加擁塞控制信息;采用先測量后分配的策略,即路由器先測量其輸出接口的空閑資源數(shù)量,然后將這些資源分配給流經(jīng)的各個會話,發(fā)送端再根據(jù)網(wǎng)絡反饋的指令,調整其發(fā)送速度。速率控制協(xié)議RCP(Rate Control Protocol) 與XCP相似,但RCP采用了先分配后調整的策略,即路由器先測量并估算當前的公平帶寬, 并分配給所有流經(jīng)的會話。這樣,當有大量新會話到達時,RCP系統(tǒng)就會出現(xiàn)極度擁塞的狀態(tài)。仿真實驗表明,XCP在端到端傳輸延遲差異較大的網(wǎng)絡環(huán)境下,會出現(xiàn)不穩(wěn)定的狀況。雖然從理論分析XCP的流模式是穩(wěn)定的,但實際應用中需要把流模式離散化,需要引入控制間隔來測量和估算其平均端到端延遲等狀態(tài)和參數(shù),而且其控制間隔的長度還設定為平均端到端延遲。XCP實現(xiàn)系統(tǒng)的延遲是其流模式的兩倍,于是XCP實現(xiàn)系統(tǒng)的穩(wěn)定性無法得到理論保證。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明致力于提供一種穩(wěn)定高效的互聯(lián)網(wǎng)擁塞控制方法。本發(fā)明的上述目的是通過如下的技術方案予以實現(xiàn)的一種穩(wěn)定高效的互聯(lián)網(wǎng)擁塞控制方法,包括al)在數(shù)據(jù)包中增加擁塞擴展頭,包括發(fā)送端估計的端到端延遲、待確認帶寬增量、帶寬增量反饋值和平均窗口間距,其中平均窗口間距為端到端延遲除以當前擁塞窗口值;bl)路由器通過測量估算其輸出接口上會話流的平均端到端延遲,并更新其控制間隔的長度,使得其控制間隔遠小于平均端到端延遲;cl)路由器在控制間隔內(nèi),測量其輸出接口的擁塞狀態(tài),計算得到總擁塞反饋值, 并將該總擁塞反饋值在下一個控制間隔中分發(fā)到各個會話流的數(shù)據(jù)包中,更新流經(jīng)數(shù)據(jù)包的待確認帶寬增量;dl)接收端把收到數(shù)據(jù)包的待確認帶寬增量累加,當有消息返回發(fā)送端時,復制該累加值到返回數(shù)據(jù)包的帶寬增量反饋值;el)發(fā)送端根據(jù)其收到的帶寬增量反饋值,調整其擁塞窗口值W的大??;fl)發(fā)送端還控制數(shù)據(jù)包的發(fā)送間隔,使其不小于平均包間隔,其中平均包間隔等于端到端延遲乘以數(shù)據(jù)包的長度,再除以當前擁塞窗口值。所述步驟fl之后進一步包括路由器以每個控制間隔為邊界,測量其輸出接口的平均到達速率和最小隊列長度以及該接口上所有會話流的平均端到端延遲,更新控制和分配參數(shù)。路由器利用其輸出接口的帶寬減去平均到達速率得到平均空閑帶寬,再乘以空閑帶寬反饋因子,就得到空閑帶寬反饋值。路由器利用隊列長度反饋因子乘以最小隊列長度, 就得到隊列長度反饋值。對本控制間隔內(nèi),未分發(fā)出去的總擁塞反饋值,將部分轉移到下一個控制間隔中去。路由器空閑帶寬反饋值減去隊列長度反饋值,再加上本控制間隔未分發(fā)出去的部分總擁塞反饋值,就得到下一個控制間隔的總擁塞反饋值。本方法所使用的空閑帶寬反饋因子和隊列長度反饋因子可以保證該擁塞控制系統(tǒng)的穩(wěn)定性,并使得該擁塞控制系統(tǒng)的暫態(tài)過程為臨界阻尼響應。在下一個控制間隔中,路由器將總擁塞反饋值公平地分配到通過該輸出接口的各個會話中去。當路由器收到新會話建立消息時,在其總擁塞反饋值充足的情況下,分配平均會話帶寬給新到達的會話。當路由器收到會話關閉消息時,將立即回收該會話所占用的帶寬資源。本發(fā)明具有如下的技術效果。1、本系統(tǒng)的控制間隔小于XCP系統(tǒng)。這樣,本控制系統(tǒng)的延遲更小,對網(wǎng)絡負載變化的響應更快,網(wǎng)絡資源的利用率也更高。2、在本系統(tǒng)中,數(shù)據(jù)源在發(fā)送數(shù)據(jù)包時,數(shù)據(jù)包的發(fā)送間隔比較均勻。這樣,路由器的隊列長度較短,端到端的延遲較小,數(shù)據(jù)包的丟失也較少。3、在本系統(tǒng)中,控制參數(shù)選擇更為合理,保證了系統(tǒng)的穩(wěn)定性。即使在端到端延遲差異較大的情況下,系統(tǒng)也仍然表現(xiàn)穩(wěn)定。4、在本系統(tǒng)中,路由器分配平均會話帶寬給新到達的會話。這樣就為TOB瀏覽等短流業(yè)務提供了較好的服務質量。5、在本系統(tǒng)中,路由器收到會話關閉消息,就立即回收該會話所占用的帶寬資源。 這樣能將空閑的鏈路資源盡早地利用起來。6、在本系統(tǒng)中,前一個控制間隔未分發(fā)出去的總擁塞反饋值,將部分轉移到下一個控制間隔中去。這樣就降低了總擁塞反饋值在分配過程的誤差。
圖1為本發(fā)明中擁塞擴展頭的內(nèi)部結構圖;圖2為本發(fā)明在IPv4網(wǎng)絡環(huán)境的運行機制圖;圖3總擁塞反饋值的計算;圖4總擁塞反饋值的分發(fā)。
具體實施例方式本發(fā)明以IPv4網(wǎng)絡環(huán)境為基礎,來實現(xiàn)穩(wěn)定高效的擁塞控制系統(tǒng)。本實現(xiàn)中控制間隔取值為平均端到端延遲的N分之一,其中N為20。下面結合附圖和具體實施例對本發(fā)明進行詳細說明。協(xié)議擴展為了滿足擁塞控制的要求,需要擴展現(xiàn)有IPv4標準,在IP包頭中增加一個擁塞擴展頭,如圖1所示。該擁塞擴展頭已在IETF的草案draft-falk-xcp-spec-03中定義。本發(fā)明遵循該草案的規(guī)定,并做適當?shù)臄U展。下文給出了該擴展頭的格式。第一個字段為下一個包頭的類型。第二個字段為擴展頭長度,該值設定為20個字節(jié),編碼為0x14。第三個字段為本擴展頭的版本,本發(fā)明設定為4。第四個字段為本擴展頭的格式,可以取3個值1、2和3。1 表示其后的三個字段平均窗口間距、端到端延遲和待確認帶寬增量均有效;2 表示其后的三個字段平均窗口間距、端到端延遲和待確認帶寬增量均無效;3 表示其后的兩個字段平均窗口間距、端到端延遲無效。第五個字段是保留字段,暫未使用。第六個字段是平均窗口間距(X),取值為非負數(shù),其后觀個比特位表示小數(shù)部分, 前4個比特位表示整數(shù)。第七個字段是端到端延遲(d),取值為非負數(shù),其后觀個比特位表示小數(shù)部分,前 4個比特位表示整數(shù)。第八個字段是帶寬增量反饋值(Δ),取值為整數(shù),單位為bps。該值可正可負,為正時表示允許增加的吞吐量;為負時表示必須減少的吞吐量。第九個字段是待確認帶寬增量(δ),取值為整數(shù),單位為bps。該值可正可負,為正時表示允許增加的吞吐量;為負時表示必須減少的吞吐量。本擁塞控制系統(tǒng)的運行機制如圖2所示。發(fā)送端A發(fā)送的每個數(shù)據(jù)包都包含了擁塞擴展頭。擁塞擴展頭的端到端延遲設置為發(fā)送端估算得到的端到端延遲di (發(fā)送端采用現(xiàn)有的TCP傳輸協(xié)議中的端到端延遲估算方法。在TCP協(xié)議中,接收端收到數(shù)據(jù)包后,會向發(fā)送端發(fā)送確認消息。這樣,接收端根據(jù)發(fā)送數(shù)據(jù)包的時間和接收到確認消息之間的間隔,就可以估算出發(fā)送端到接收端的端到端延遲);平均窗口間距\設置為端到端延遲Cli除以當前擁塞窗口值W ;待確認帶寬增量設定為發(fā)送者期待獲得的帶寬增量δ uo ;帶寬增量反饋值設定為收到的來自接收端B的待確認帶寬增量的累計值。帶寬增量反饋值是某一時間段內(nèi)的累計值,是給接收端B使用的。在實際的網(wǎng)絡應用中,通常一個會話是雙向的,既有A到B的數(shù)據(jù)流,也有B到A的數(shù)據(jù)流。數(shù)據(jù)包到達路由器Rl后,路由器Rl收集每個流經(jīng)數(shù)據(jù)包的端到端延遲,得到本控制間隔內(nèi)的平均端到端延遲Du,并確定下一個控制間隔的長度為Dk,/N,此處N取值為20 ; 根據(jù)數(shù)據(jù)包的平均窗口間距信息(平均窗口間距信息由發(fā)送端設置在數(shù)據(jù)包頭中的,路由器讀取這個信息就可),更新待確認帶寬增量為Si,JSiilS= δ ^0);根據(jù)其輸出接口帶寬資源狀況(包括平均空閑帶寬和隊列長度),計算下一個控制間隔的總擁塞反饋值;收集每個數(shù)據(jù)包的平均窗口間距信息,計算下一個控制間隔的反饋參數(shù)。數(shù)據(jù)包到達路由器R2后,路由器R2做與Rl相似的處理,數(shù)據(jù)包擁塞擴展頭的待確認帶寬增量更新為\,2(δι2<= δ ^)。數(shù)據(jù)包到達接收端B后,接收端B把數(shù)據(jù)包擁塞擴展頭中的待確認帶寬增量δ i,2累加到變量ζ中。待接收端B向發(fā)送端A返回數(shù)據(jù)包時,帶寬增量反饋值Δ就設置為ζ, 并把變量ζ重新初始化為0。發(fā)送端A收到帶寬增量反饋值為Δ的數(shù)據(jù)包后,就更新其發(fā)送速度,從而完成擁塞控制系統(tǒng)的閉環(huán)控制過程。平均端到端延遲D的計算方法如下路由器在控制間隔內(nèi)轉發(fā)了 M個數(shù)據(jù)包,每個數(shù)據(jù)包的端到端延遲Cli,平均端到端延遲D的計算如下D=E di/M平均會話帶寬ν的計算方法如下控制間隔k的長度為nk,收到一個長度為Li,平均窗口間距為\的數(shù)據(jù)包,其對會話數(shù)量的貢獻為XjLi/ ilk。在控制間隔k結束時,估算的會話數(shù)量Yk為Yk = Σ (Xi^Li)Znk若該控制間隔內(nèi)的平均到達速率為uk,可計算得到其平均會話帶寬vk = Uk* η k/ Σ (XjLi)總擁塞反饋值的計算如圖3所示,控制間隔k的長度為nk,輸出接口的鏈路帶寬為C,測量得到輸出接口平均到達速率為uk,可計算得到輸出接口空閑帶寬反饋值為(0. 4/ (1+1/N)) * η k* (C-Uk) / N。在控制間隔k內(nèi),其輸出接口的最小隊列長度為仏,其隊列長度反饋值為-1. 414*(0. 4/ (l+l/N))2*Qk/N。若控制間隔k結束時剩余的總擁塞反饋值為r_Ok,那么下一個控制間隔的轉移擁塞反饋值為0.95*r_c5k。下一個控制間隔的總擁塞反饋值為可由下式計算得到,其中N取值為20:(Dk+1 = 0. 95*r_0k+0. 019* ηk*(C_uk)_0· 01* 總擁塞反饋值的分解在控制間隔k結束時,還需要把下一個控制間隔的總擁塞反饋值分為正反饋p_ Ok+1和負反饋當|c5k+1| > Y *uk時,設定流量重分配因子Y為0.1,即取流量資源的10%用于把高吞吐量的數(shù)據(jù)流資源轉移給低吞吐量的數(shù)據(jù)流,ρ.Φ^ = (I Φ^Ι+Φ^/2η,Φ^ = (I Φ^Ι-Φ^/2否則,ρ,Φ^ = y*uk+1+(| Φ^Ι+Φ^Λn_cDk+1 = - y*uk+1+(| Φ^Ι-Φ^)^反饋參數(shù)的計算反饋的分發(fā)原則是正反饋平均分配給每個會話流;負反饋按比例分配給各個會話流,吞吐量越大的會話流分得的負反饋也越多。正反饋的反饋參數(shù)PwS pk+1 = P_Ok+1/Yk負反饋的反饋參數(shù)nk+1為nk+1 = n_Ok+1/uk總擁塞反饋值的分發(fā)
如圖4所示,在控制間隔k+Ι,收到輸入數(shù)據(jù)包Pkti時,剩余的正反饋值為r_p_ ,分配給該數(shù)據(jù)包的正反饋值為p_pkti = pk+1* (Xi^Li/ η k+1)剩余的負反饋值為r_n_c5k+1,分配給該數(shù)據(jù)包的負反饋值為I^pkti Lpkti = IVjXi/ (XjLi/ η k+1)n_pkti = nk+1* η ^1ZL1分配給該數(shù)據(jù)包的擁塞反饋值為Lpkti t_pktj = min (p_pktj, r_p_Φ k+1)-min O^pkti, r_n_C>k+1)r_p_05k+1_ = min (p_pkti; Γ_ρ_Φ,,+1)r_n_C>k+1_ = minOi—pkti, r_n_C>k+1)在控制間隔k+1結束時,其剩余的總擁塞反饋值為r_ Φ k+1 = r_p_ Φ k+1_r_n_ Φ k+1會話建立過程在會話建立的第一個數(shù)據(jù)包,發(fā)送端無法獲知到達接收端B的端到端延遲,所以該數(shù)據(jù)包擁塞擴展頭的端到端延遲設定為0,平均窗口間距設定為0,格式字段設定為3.路由器Rl收到會話建立的初始數(shù)據(jù)包Pkti后,在其正反饋ρ_Φ i資源充足的情況下,分配平均會話帶寬V1給該會話,并減少正反饋的剩余資源,即δ j = min( δ i (l, V1, ρ.Φ^ρ_Φ「= Sil路由器R2收到會話建立的初始數(shù)據(jù)包Pkti后,在其正反饋ρ_Φ2資源充足的情況下,分配平均會話帶寬V2給該會話,并減少正反饋的剩余資源,即δ i 2 = min( δ ν2, ρ_Φ2)ρ_Φ2- = δ i 2接收端D收到該會話建立請求后,若接收該會話,就立即返回確認消息,并設置該數(shù)據(jù)包的帶寬增量反饋值為S ;若拒絕該會話,就立即返回拒絕消息,并設置該數(shù)據(jù)包的帶寬增量反饋值為O。會話釋放過程當路由器Rl收到會話結束的消息Pkti時,路由器收回該會話占用的帶寬資源,并增加正反饋的剩余資源。ρ_φ:+ = 0. 95/XiXi為該數(shù)據(jù)包擁塞擴展頭的平均窗口間距。當路由器R2收到會話結束的消息Pkti時,路由器收回該會話占用的帶寬資源,并增加正反饋的剩余資源。ρ_Φ2+ = 0. 95/XiXi為該數(shù)據(jù)包擁塞擴展頭的平均窗口間距。
權利要求
1.一種穩(wěn)定高效的互聯(lián)網(wǎng)擁塞控制方法,其步驟為1)發(fā)送端A在待發(fā)送數(shù)據(jù)包中增加一個擁塞擴展頭;所述擁塞擴展頭包括發(fā)送端A 估計的端到端延遲屯、待確認帶寬增量δ u、帶寬增量反饋值Ai*平均窗口間距& ;其中, 帶寬增量反饋值~初始化為0;2)路由器根據(jù)流經(jīng)數(shù)據(jù)包的端到端延遲屯,計算當前控制間隔內(nèi)輸出接口上會話流的平均端到端延遲Dk,并根據(jù)當前Dk值更新其下一控制間隔的長度;3)路由器根據(jù)當前控制間隔內(nèi)輸出接口的擁塞狀態(tài)計算下一控制間隔的總擁塞反饋值。k+1,并將。k+1在下一控制間隔分發(fā)到各個會話流的數(shù)據(jù)包中,4)路由器根據(jù)收到數(shù)據(jù)包的平均窗口間距&,更新流經(jīng)數(shù)據(jù)包的待確認帶寬增量為 δ i, j+1 ;其中,δ i, j+1 ^ δ u,δ w為會話數(shù)據(jù)包i經(jīng)第j個路由器后確認的帶寬增量;5)接收端B將收到的發(fā)送端A所發(fā)送數(shù)據(jù)包中待確認帶寬增量累加,當接收端B有消息返回發(fā)送端A時,將該待確認帶寬增量累加值添加到返回數(shù)據(jù)包的帶寬增量反饋值中;6)發(fā)送端A根據(jù)其收到數(shù)據(jù)包中的帶寬增量反饋值,調整其擁塞窗口值W。
2.如權利要求1所述的方法,其特征在于所述路由器根據(jù)當前Dk值更新其下一控制間隔的長度,使其下一控制間隔遠小于當前平均端到端延遲Dk。
3.如權利要求1或2所述的方法,其特征在于計算所述總擁塞反饋值。k+1的方法為 所述路由器利用其輸出接口的帶寬C減去當前控制間隔內(nèi)數(shù)據(jù)包平均到達速率Uk得到平均空閑帶寬,再乘以空閑帶寬反饋因子,得到空閑帶寬反饋值;并且所述路由器利用當前控制間隔內(nèi)輸出接口的最小隊列長度A乘以最小隊列長度反饋因子,得到隊列長度反饋值; 然后所述路由器利用空閑帶寬反饋值減去隊列長度反饋值,再加上當前控制間隔剩余未分發(fā)出去的總擁塞反饋值,得到下一控制間隔的總擁塞反饋值φμ。
4.如權利要求3所述的方法,其特征在于將①㈣在下一控制間隔中分發(fā)到各個會話流的數(shù)據(jù)包中的方法為a)對總擁塞反饋值Ow分解為正反饋和負反饋η_ΦΜ,當> Y*uk 時,p_Ok+1 = ( Φ^Ι+Φ^Λ.η,Φ^ = (ΙΦ^Ι-Φ^Λ,否貝lJ,p_Ok+1 = Y*uk+1+(| Ok+1|+Ok+1)/2、n_Ok+1 = - y*uk+1+(| Φ^Ι-Φ^)^ ;b)設一正反饋參數(shù)Pk+1、一反饋參數(shù) nk+1 ;其中 pk+1 = p_Ok+1/Yk, nk+1 = n_Ok+1/uk ;c)在下一控制間隔,即第k+1控制間隔內(nèi),收到輸入數(shù)據(jù)包Pkti時,剩余正反饋值為 P_。k+1,剩余負反饋值為r_n_c5k+1,則分配給該數(shù)據(jù)包的正反饋值為p_pkti = pk+1*(Xi^Li/ η k+1),分配給該數(shù)據(jù)包的負反饋值為I^pkti = nk+1* JlwZli ;d)分配給該數(shù)據(jù)包的擁塞反饋值為Lpkti= π η(ρ_ρ1^,r_p_Ok+1)-minO^pkti,r_ n_Ok+1),并令 r_p_05k+1_ = min(p_pkti, Γ_ρ_Φ,,+1),r_n_05k+1_ = Hiin^pkti, r_n_05k+1);其中,Yk為當前控制間隔的會話數(shù)量,Hk為控制間隔k的長度山為數(shù)據(jù)包Pkti長度, &為數(shù)據(jù)包Pkti平均窗口間距,γ為流量重分配因子。
5.如權利要求4所述的方法,其特征在于所述發(fā)送端A在每收到非零的帶寬增量反饋值時,更新平均窗口間距,平均窗口間距為端到端延遲除以當前擁塞窗口值。
6.如權利要求5所述的方法,其特征在于所述發(fā)送端還控制數(shù)據(jù)包的發(fā)送間隔,使其不小于平均包間隔,其中平均包間隔等于端到端延遲乘以數(shù)據(jù)包的長度,再除以當前擁塞窗口值。
7.如權利要求1所述的方法,其特征在于更新所述待確認帶寬增量的方法為δUj+1 = min( δ . j, Vi,j+1);其中,vUj+1為本路由器確認帶寬增量。
8.如權利要求1或2或3所述的方法,其特征在于所述路由器收到會話結束消息時,收回該會話占用的帶寬資源,并增加正反饋的剩余資源。
9.如權利要求1所述的方法,其特征在于所述擁塞擴展頭的格式為下一包頭的類型、 擴展頭長度、本擴展頭的版本、平均窗口間距、端到端延遲、帶寬增量反饋值、待確認帶寬增量。
10.如權利要求1所述的方法,其特征在于所述擁塞狀態(tài)包括路由器當前控制間隔內(nèi)輸出接口的平均空閑帶寬和隊列長度。
全文摘要
本發(fā)明公開了一種穩(wěn)定高效的互聯(lián)網(wǎng)擁塞控制方法,屬于網(wǎng)絡技術領域。本方法為1)發(fā)送端A在待發(fā)送數(shù)據(jù)包中增加一擁塞擴展頭;2)路由器根據(jù)流經(jīng)數(shù)據(jù)包的端到端延遲di,更新其下一控制間隔的長度;3)路由器計算下一控制間隔的總擁塞反饋值Φk+1,并將Φk+1在下一控制間隔分發(fā)到各個會話流的數(shù)據(jù)包中;4)路由器根據(jù)收到數(shù)據(jù)包的平均窗口間距Xi,更新流經(jīng)數(shù)據(jù)包的待確認帶寬增量為δi,j+1;5)接收端B將收到的發(fā)送端A所發(fā)送數(shù)據(jù)包中待確認帶寬增量累加,并將其添加到返回數(shù)據(jù)包的帶寬增量反饋值中;6)發(fā)送端A根據(jù)其收到數(shù)據(jù)包中的帶寬增量反饋值,調整其擁塞窗口值W。本發(fā)明對網(wǎng)絡負載變化響應快,提高資源利用率。
文檔編號H04L12/56GK102404208SQ20111035819
公開日2012年4月4日 申請日期2011年11月11日 優(yōu)先權日2011年11月11日
發(fā)明者吳志美, 方貴明, 石志強 申請人:中國科學院軟件研究所