專利名稱:基于ecn且?guī)ьA(yù)測(cè)驗(yàn)證的擁塞控制方法
技術(shù)領(lǐng)域:
基于ECN且?guī)ьA(yù)測(cè)驗(yàn)證的擁塞控制方法屬于互聯(lián)網(wǎng)擁塞控制技術(shù)領(lǐng)域。
背景技術(shù):
本發(fā)明中的算法是一種使用在互聯(lián)網(wǎng)中的擁塞控制和避免算法,屬于基于“管子”模型的源算法。擁塞控制是目前互聯(lián)網(wǎng)中的一個(gè)重要問(wèn)題。根據(jù)算法地實(shí)現(xiàn)位置,可以將擁塞控制算法分為兩大類鏈路算法和源算法。鏈路算法在網(wǎng)絡(luò)設(shè)備(如路由器和交換機(jī))中執(zhí)行,作用是檢測(cè)網(wǎng)絡(luò)擁塞的發(fā)生,產(chǎn)生擁塞反饋信息;源算法在主機(jī)和網(wǎng)絡(luò)邊緣設(shè)備中執(zhí)行,作用是根據(jù)反饋信息調(diào)整發(fā)送速率。
使用基于測(cè)量經(jīng)典的擁塞控制算法一般有以下幾種Wand and Crowcroft在論文Eliminating Periodic Packet Losses in 4.3-Tahoe BSD TCP Congestion Control Algorithm中提出DUAL算法是基于對(duì)RTT時(shí)間(信號(hào)來(lái)往傳輸時(shí)間)的增加進(jìn)行響應(yīng);擁塞窗口和Reno算法一樣增大,但每?jī)蓚€(gè)RTT時(shí)間后,算法要檢查當(dāng)前的RTT時(shí)間是否大于最大和最小RTT的平均值,如果是,則將擁塞窗口減小1/8。
R.Jain.在論文A Delay-Based Approach for Congestion Avoidance in InterconnectedHeterogeneous Computer Networks中提出的CARD(Congestion Avoidance using Round-tripDelay)方法是基于推導(dǎo)出最適宜的窗口大小。這種判決是基于當(dāng)前RTT和窗口大小的。每?jī)蓚€(gè)RTT延遲要進(jìn)行以下判決,(當(dāng)前窗口大小-原窗口大小)×(當(dāng)前RTT-原RTT),如果結(jié)果為正,窗口減小1/8,如果結(jié)果為負(fù)或0,則增大一個(gè)最大的分組長(zhǎng)度。
另外一種擁塞控制方法是平整發(fā)送速率。Wand and Crowcroft’s在論文A New CongestionControl SchemeSlow Start and Search(Tri-S)中提出的Tri Scheme算法中每個(gè)RTT窗口將增大一個(gè)分組長(zhǎng)度同時(shí)比較增大窗口前后的吞吐量。假如區(qū)別小于一個(gè)分組傳輸時(shí)所獲得吞吐量的1/2,則將窗口減小一個(gè)分組長(zhǎng)度。Tri-S計(jì)算吞吐量使用一個(gè)RTT時(shí)間內(nèi)發(fā)送了多少字節(jié)來(lái)確定。
在論文TCP VegasEnd to End Congestion Avoidance on a Global Internet和Analysisof the Increase and Decrease Algorithms for Congestion Avoidance in Computer Networks中提出的TCP Vegas算法是一種性能較好的實(shí)現(xiàn)方法,這種方法和Tri-S很相似,只關(guān)心吞吐量速率或發(fā)送速率的變化。但是該算法在計(jì)算吞吐量時(shí)和Tri-S不同,它不是使用吞吐量的斜率的變化,而是比較吞吐量的一個(gè)期望值和實(shí)測(cè)值之間的區(qū)別。
Vegas使用這種方法測(cè)量和控制鏈路上傳輸?shù)摹邦~外”數(shù)據(jù)。額外數(shù)據(jù)是指那些鏈路使用的帶寬等于可用帶寬后,增加發(fā)送的分組。很明顯,如果連接發(fā)送了太多的額外分組,將導(dǎo)致?lián)砣?。Vegas擁塞控制方法是基于控制額外數(shù)據(jù)總量,而不僅僅是丟棄分組。Vegas算法的判斷是在源端進(jìn)行的,這樣基于RTT測(cè)量的判斷不能正確反映鏈路擁塞是在發(fā)送方向還是在應(yīng)答方向中出現(xiàn)的,而本發(fā)明能夠反映鏈路擁塞是在發(fā)送方向出現(xiàn)的。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種使源端可以根據(jù)接收端基于預(yù)測(cè)驗(yàn)證的結(jié)果來(lái)控制待發(fā)送的數(shù)據(jù)分組的發(fā)送速率的基于ECN且?guī)ьA(yù)測(cè)驗(yàn)證的擁塞控制方法。
本發(fā)明的特征在于它是一種基于顯式擁塞通告ECN且?guī)ьA(yù)測(cè)驗(yàn)證FAV的源方法,即在接收端主機(jī)PC和網(wǎng)絡(luò)邊緣設(shè)備中執(zhí)行預(yù)測(cè)驗(yàn)證,而源端主機(jī)PC則根據(jù)反饋信息來(lái)調(diào)整發(fā)送速率,所述的擁塞控制方法依次含有以下步驟
(1)源端發(fā)送數(shù)據(jù)分組時(shí)在分組IP頭的OPTION域登記時(shí)間戳,時(shí)間戳由4個(gè)字節(jié)組成;
(2)路徑中所有支持顯式擁塞通告ECN標(biāo)記的節(jié)點(diǎn)轉(zhuǎn)發(fā)它的擁塞情況,即在節(jié)點(diǎn)中隊(duì)列長(zhǎng)度超過(guò)管理員設(shè)定的閾值后,把服務(wù)類型TOS域中的CE位置“1”;
(3)在接收端計(jì)算各分組的傳輸延遲當(dāng)接收端接收到數(shù)據(jù)分組后,通過(guò)系統(tǒng)調(diào)用獲得相應(yīng)的接收到的時(shí)間,即本機(jī)系統(tǒng)的時(shí)間,用此值減去數(shù)據(jù)分組頭中的時(shí)間戳的值,得到該分組的鏈路傳輸延遲時(shí)間;
(4)通過(guò)下述組內(nèi)預(yù)判公式來(lái)推測(cè)該第n分組進(jìn)入擁塞節(jié)點(diǎn)時(shí)隊(duì)列長(zhǎng)度的預(yù)測(cè)值,同時(shí)根據(jù)收到該第n分組是否被標(biāo)記CE來(lái)調(diào)整預(yù)判閾值X,這一步驟依次按以下順序執(zhí)行
(4.1)使用先到的相鄰分組的鏈路傳輸延遲的差分來(lái)計(jì)算預(yù)測(cè)參數(shù)Kn,它是一種用以消除源端和接收端由于時(shí)鐘不同步為延遲測(cè)量帶來(lái)影響的參數(shù),
其中,Td′n為第n分組的鏈路傳輸延遲,
Td′n-1為第n分組的鏈路傳輸延遲,
Td′n-2為第n分組的鏈路傳輸延遲,
(4.2)使用下述組內(nèi)預(yù)判公式,遞推獲得當(dāng)前的分組n進(jìn)入擁塞節(jié)點(diǎn)時(shí)隊(duì)列長(zhǎng)度的預(yù)測(cè)值λn
λn=(Kn+1)×λn-1-Kn×λn-2
其中,λn-1為第n-1分組的隊(duì)列長(zhǎng)度預(yù)測(cè)值,
λn-2為第n-2分組的隊(duì)列長(zhǎng)度預(yù)測(cè)值
(4.3)使用當(dāng)前分組n隊(duì)列長(zhǎng)度預(yù)測(cè)值λn和該分組n的CE標(biāo)記來(lái)驗(yàn)證預(yù)判的準(zhǔn)確性,從而修正設(shè)定的預(yù)判閾值X
若X<λn且收到未標(biāo)記CE的分組即為PCE,
則X=λn+1;
若X>λn且收到未標(biāo)記CE的分組即為PCE,
則X=λn-1;
(5)通過(guò)下述組間預(yù)判方法對(duì)當(dāng)前各組內(nèi)的推測(cè)結(jié)果進(jìn)行統(tǒng)計(jì),并預(yù)判將來(lái)網(wǎng)絡(luò)中數(shù)據(jù)流量的變化,同時(shí)根據(jù)各組內(nèi)統(tǒng)計(jì)結(jié)果向源端發(fā)送具有相應(yīng)含義的確認(rèn)分組即特殊標(biāo)記ACK
(5.1)在接收端把所有數(shù)據(jù)分組按照信號(hào)鏈路傳輸延遲時(shí)間RTT作為劃分預(yù)判組的條件,RTT時(shí)間按照第一個(gè)分組傳輸延遲的兩倍計(jì)算,即在一個(gè)RTT時(shí)間內(nèi)接收端向源端發(fā)送一個(gè)控制源端發(fā)送速率的確認(rèn)分組ACK,通告源端,
(5.2)求解RTT時(shí)間內(nèi)的平均隊(duì)列預(yù)測(cè)長(zhǎng)度
其中,k=1,2,3…S,為該預(yù)判組內(nèi)的數(shù)據(jù)分組的下標(biāo);
S為該預(yù)判組內(nèi)數(shù)據(jù)分組的數(shù)量,
(5.3)計(jì)算RTT時(shí)間內(nèi)平均隊(duì)列預(yù)測(cè)長(zhǎng)度E[λ]n和閾值X的差Diff,
Diff=E[λ]n-X,
(5.4)根據(jù)不同的差值范圍發(fā)送相應(yīng)的確認(rèn)分組ACK
若Diff>α·E[λ]n,α為設(shè)定的參數(shù),
則發(fā)送ACK(PDEC);
若Diff<-α·E[λ]n),
則發(fā)送ACK(PNOR);
若-α·E[λ]n<Diff<α·E[λ]n,
則發(fā)送ACK(PHOLD);
其中,PNOR是無(wú)特殊標(biāo)記的確認(rèn)分組ACK,
PDEC是ACK中標(biāo)記DEC位,
PHOLD是ACK中標(biāo)記HOLD位;
DEC和HOLD標(biāo)記可以設(shè)置在應(yīng)答確認(rèn)分組頭部TOS域的某一位中。根據(jù)RFC2780的說(shuō)明,TOS的第6、7位用來(lái)作為ECN協(xié)議使用,我們?cè)贏CK中將第6位置1作為PDEC的標(biāo)志位,而將第7位置1作為PHOLD的標(biāo)志位;
(5.5)當(dāng)確認(rèn)分組ACK到達(dá)源端PC后,源端PC用已知的發(fā)送速率算法調(diào)整發(fā)送速率,即
(5.5.1)源端接收到PDEC后,源端的擁塞窗口減小1/8,
(5.5.2)源端接收到PNOR后,源端的擁塞窗口增加1,
(5.5.3)源端接收到PHOLD后,源端的擁塞窗口保持不變。實(shí)驗(yàn)證明和已有方法比較,本發(fā)明方法有效降低了網(wǎng)絡(luò)負(fù)載,在降低丟失率的同時(shí)也減小了端到端的延遲;而且,所占擁塞鏈路帶寬的增加,能獲得較高且穩(wěn)定的鏈路利用率。
圖1.本發(fā)明所方法實(shí)現(xiàn)示意圖。
圖2.本發(fā)明所述方法的程序流程框圖。
圖3.本發(fā)明實(shí)驗(yàn)?zāi)M時(shí)用的拓?fù)浣Y(jié)構(gòu)。
圖4.擁塞鏈路帶寬為8Mbps時(shí)的模擬結(jié)果。
圖5.擁塞鏈路帶寬為16Mbps時(shí)的模擬結(jié)果。
圖6.擁塞鏈路帶寬為32Mbps時(shí)的模擬結(jié)果。
圖7.參數(shù)α的分析實(shí)驗(yàn)結(jié)果。
圖8.公平性分析實(shí)驗(yàn)結(jié)果。
具體實(shí)施例方式
我們?cè)趫D1中使用FAV算法實(shí)現(xiàn)有效的擁塞控制。其中,源端PC作為服務(wù)器,運(yùn)行realServer 8.01提供流媒體服務(wù),目的PC作為客戶機(jī),訪問(wèn)源端PC上的流媒體文件,并使用RealPlayer 8.0 Plus觀察圖像傳輸結(jié)果,從而比較擁塞控制算法對(duì)傳輸性能的影響。在實(shí)現(xiàn)中所使用的設(shè)備配置如下
源端和目標(biāo)端的PC配置
主板 intel D845
內(nèi)存 256DDR
顯卡 Geforce2MX400
硬盤 西捷80G
網(wǎng)卡 realtek 8139
路由器可以是支持ECN的所有型號(hào),我們選用的是Cisco2600,網(wǎng)絡(luò)中的路由器可以按照不同的拓?fù)溥M(jìn)行互聯(lián)。
本發(fā)明所述方法具體由以下步驟依次組成
(1)源端發(fā)送數(shù)據(jù)分組時(shí)在分組IP頭的OPTION域登記時(shí)間戳。時(shí)間戳由四個(gè)字節(jié)組成。
表1
(2)轉(zhuǎn)發(fā)路徑中所有的路由器支持顯式擁塞通告ECN(Explicit Congestion Notification)標(biāo)記節(jié)點(diǎn)中的擁塞情況。也就是當(dāng)節(jié)點(diǎn)中隊(duì)列長(zhǎng)度超過(guò)閾值X后,將把TOS域中的CE位置1。
TOS域
表2
(3)在接收端計(jì)算分組的傳輸延遲。
當(dāng)接收端接收到數(shù)據(jù)分組后,通過(guò)系統(tǒng)調(diào)用獲得本機(jī)系統(tǒng)時(shí)間,用此值減去數(shù)據(jù)分組頭中時(shí)間戳的值可以獲得該分組的傳輸延遲。接收端按照信號(hào)鏈路傳輸延遲時(shí)間RTT作為劃分預(yù)判組的條件,RTT時(shí)間按照第一個(gè)分組傳輸延遲的兩倍計(jì)算。
(4)通過(guò)下述組內(nèi)預(yù)判算法(The Ingroup Forecast Algorithm)推測(cè)該分組進(jìn)入擁塞節(jié)點(diǎn)隊(duì)列時(shí)的隊(duì)列長(zhǎng)度,同時(shí)根據(jù)收到分組是否被標(biāo)記CE來(lái)調(diào)整預(yù)判閾值X。其中包括以下關(guān)鍵步驟
(a)使用先行相鄰分組的鏈路延遲差分來(lái)計(jì)算預(yù)測(cè)參數(shù)Kn,從而消除時(shí)鐘不同步為延遲測(cè)量帶來(lái)的影響。
(b)使用“組內(nèi)預(yù)判公式”,遞推獲得當(dāng)前分組進(jìn)入擁塞節(jié)點(diǎn)時(shí)隊(duì)列長(zhǎng)度的預(yù)測(cè)值,即
λn=(Kn+1)×λn-1-Kn×λn-2
(c)使用當(dāng)前分組隊(duì)列長(zhǎng)度的預(yù)測(cè)值和分組的CE標(biāo)記來(lái)驗(yàn)證預(yù)判的準(zhǔn)確性,從而修正預(yù)判閾值X。
If(X<λn and PCE)
X=λn+1;
If(X>λn and PCE)
X=λn-1;
其中,使用PCE表示收到未標(biāo)記CE的分組,而PCE表示收到標(biāo)記CE的分組。
(5)通過(guò)組間預(yù)判算法(The Intergroup Forecast Algorithm)對(duì)當(dāng)前預(yù)判組內(nèi)推測(cè)結(jié)果進(jìn)行統(tǒng)計(jì),并預(yù)判將來(lái)網(wǎng)絡(luò)中數(shù)據(jù)流量的變化,同時(shí)根據(jù)預(yù)判組內(nèi)統(tǒng)計(jì)結(jié)果向源端發(fā)送具有特殊標(biāo)記的ACK。其中包括以下關(guān)鍵步驟
(a)將所有的數(shù)據(jù)分組按照RTT劃分為預(yù)判組,RTT時(shí)間可以使用2×第一個(gè)分組延遲計(jì)算。也就是說(shuō)一個(gè)RTT時(shí)間內(nèi)接收端向源端發(fā)送一個(gè)控制源端發(fā)送速率的ACK。
(b)求解RTT時(shí)間內(nèi)的平均隊(duì)列預(yù)測(cè)長(zhǎng)度
(c)計(jì)算平均隊(duì)列預(yù)測(cè)長(zhǎng)度和閾值X的差值Diff=E[λ]n-X;
(d)根據(jù)差值結(jié)果發(fā)送相應(yīng)ACK。
if(Diff>α·E[λ]n)α用以調(diào)整E[λ]n的范圍,
sendACK(PDEC);
if(Diff<-α·E[λ]n)
sendACK(PNOR);
if(-α·E[λ]n<Diff<α·E[λ]n)
sendACK(PHOLD);
其中,ACK包括以下三種(1)PNOR,這是無(wú)特殊標(biāo)記的ACK;(2)PDEC,ACK中標(biāo)記DEC位;(3)PHOLD,ACK中標(biāo)記HOLD位。DEC和HOLD標(biāo)記可以設(shè)置在應(yīng)答分組頭部TOS域的某一位中。
其中,根據(jù)RFC2780的說(shuō)明,TOS的第6、7位用來(lái)作為ECN協(xié)議使用,我們?cè)贏CK中將第6位置1作為PDEC的標(biāo)志位,而將第7位置1作為PHOLD的標(biāo)志位,如下圖所示。
TOS域
0 1 23 4 5 6 7
表3
(6)當(dāng)ACK到達(dá)源端PC后,源端PC進(jìn)行發(fā)送速率調(diào)整,也就是使用發(fā)送速率調(diào)整算法(The Sending Rate Adjust Algorithm),其步驟如下
(a)源端接收到PDEC后,源端的擁塞窗口減小1/8;
(b)源端接收到PNOR后,源端的擁塞窗口增加1;
(c)源端接收到PHOLD后,源端的擁塞窗口保持不變。
基于ECN帶預(yù)測(cè)驗(yàn)證的擁塞控制算法對(duì)硬件的要求不是很高,可以在各種網(wǎng)絡(luò)中得到應(yīng)用。這種擁塞控制方法有以下四個(gè)優(yōu)勢(shì)
使用預(yù)判組的組間預(yù)判來(lái)控制數(shù)據(jù)的發(fā)送速率,有效的降低了丟包率;
降低丟失率的同時(shí)減小了分組的平均延遲;
在預(yù)測(cè)過(guò)程中使用預(yù)判組的組內(nèi)預(yù)判和基于ECN的驗(yàn)證機(jī)制,使得算法能夠適應(yīng)網(wǎng)絡(luò)中流量的變化,從而保持穩(wěn)定的較高的網(wǎng)絡(luò)利用率;
算法使用接收方驅(qū)動(dòng)(receiver-drive)的方法,能夠明確判定是否在發(fā)送鏈路上發(fā)生了擁塞。
FAV算法通過(guò)在目的端測(cè)量分組延遲來(lái)預(yù)測(cè)擁塞節(jié)點(diǎn)中隊(duì)列的變化趨勢(shì),從而推測(cè)網(wǎng)絡(luò)中即將出現(xiàn)的擁塞情況,在預(yù)測(cè)過(guò)程中使用ECN提供的CE標(biāo)志來(lái)驗(yàn)證推測(cè)的準(zhǔn)確性,從而較好地避免了擁塞的發(fā)生。這種預(yù)測(cè)加驗(yàn)證的方法是本發(fā)明的一個(gè)關(guān)鍵點(diǎn)。
模擬時(shí)采用的模型如圖3所示。
其中,S1到Sn為數(shù)據(jù)的源端,而R1和Rn為數(shù)據(jù)的目的端,并建立從Si到Ri(1≤i≤n)的TCP Reno連接,這些鏈路共享一條是從Route1到Route2的擁塞鏈路。我們對(duì)FAV和經(jīng)典的源擁塞控制算法TCP Reno、TCP Vegas在網(wǎng)關(guān)為DropTail的環(huán)境下進(jìn)行了模擬和比較。
模擬時(shí)使用的參數(shù)如下α=1/8。在Routerl中隊(duì)列長(zhǎng)度150,所有的源在0時(shí)刻啟動(dòng),而在60s后停止。
實(shí)驗(yàn)1,擁塞鏈路帶寬8Mbps,測(cè)量擁塞鏈路的丟失率(Loss Rate)、利用率(Utilization)和延遲(Delay),結(jié)果如圖4。
由圖4可見,在擁塞鏈路帶寬為8Mbps,且流數(shù)小于60時(shí),TCP Vegas獲得最小的丟失率,但是當(dāng)網(wǎng)絡(luò)中流數(shù)繼續(xù)增加時(shí),TCP Vegas和TCP Reno算法的丟失率上升得很快,而FAV算法則依然保持了較小的丟失率,是TCP Vegas的1/2,而是TCP Reno的1/4;FAV算法由于平滑了網(wǎng)絡(luò)中數(shù)據(jù)流量,所以網(wǎng)絡(luò)利用率較TCP Vegas和TCP Reno稍低,但一般不超過(guò)6%;當(dāng)網(wǎng)絡(luò)中流數(shù)超過(guò)30后,F(xiàn)AV將獲得最小的端到端延遲。統(tǒng)計(jì)數(shù)據(jù)如表4。
表4 實(shí)驗(yàn)1統(tǒng)計(jì)數(shù)據(jù)
實(shí)驗(yàn)2,擁塞鏈路帶寬16Mbps,測(cè)量擁塞鏈路的丟失率(Loss Rate)、利用率(Utilization)和延遲(Delay),結(jié)果如圖5。
由圖5可見,在擁塞鏈路帶寬為16Mbps,且流數(shù)小于60時(shí),TCP Vegas依然獲得最小的丟失率,同時(shí)當(dāng)網(wǎng)絡(luò)中流數(shù)繼續(xù)增加時(shí),F(xiàn)AV算法將依然保持了較小的丟失率,是TCP Vegas的1/2,而是TCP Reno的1/5;擁塞鏈路帶寬的增大后,F(xiàn)AV算法保持著比較穩(wěn)定的鏈路利用率,已接近TCP Vegas和TCP Reno的性能;同時(shí),F(xiàn)AV依然具有最小的端到端延遲。統(tǒng)計(jì)數(shù)據(jù)如表5。
表5 實(shí)驗(yàn)2統(tǒng)計(jì)數(shù)據(jù)
實(shí)驗(yàn)3,擁塞鏈路帶寬32Mbps,測(cè)量擁塞鏈路的丟失率(Loss Rate)、利用率(Utilization)和延遲(Delay),結(jié)果如圖6。
由圖6可見,在擁塞鏈路帶寬為32Mbps,且流數(shù)小于80時(shí),TCP Vegas的丟失率最低,但是網(wǎng)絡(luò)中流數(shù)增加后,TCP Vegas和TCP Reno算法的丟失率上升得很快,而FAV算法的丟失率增長(zhǎng)很慢,平均丟失率是TCP Vegas的3/4,TCP Reno的1/4;FAV算法的網(wǎng)絡(luò)利用率仍然保持穩(wěn)定,已較TCP Vegas和TCP Reno稍高;此時(shí),F(xiàn)AV算法的端到端延遲依然最小。統(tǒng)計(jì)數(shù)據(jù)如表6。
表6 實(shí)驗(yàn)3統(tǒng)計(jì)數(shù)據(jù)
由以上實(shí)驗(yàn)可知,和TCP Vegas、TCPReno算法比較,F(xiàn)AV算法的丟失率有明顯的降低,減少了網(wǎng)絡(luò)中的重傳分組,從而有效降低了網(wǎng)絡(luò)負(fù)載;降低丟失率的同時(shí)減小了端到端延遲。隨著擁塞鏈路帶寬的增加,F(xiàn)AV算法能夠獲得較高的穩(wěn)定的鏈路利用率。
實(shí)驗(yàn)4,參數(shù)α分析,設(shè)α分別為1/10,1/8,1/6時(shí),對(duì)擁塞鏈路為16Mbps的情況下的FAV算法進(jìn)行實(shí)驗(yàn),測(cè)量擁塞鏈路的丟失率(Loss Rate)、利用率(Utilization)和延遲(Delay),結(jié)果如圖7。
實(shí)驗(yàn)5,公平性分析。
使用論文Analysis of the Increase and Decrease Algorithms for Congestion Avoidance inComputer Networks中關(guān)于Fairness Index的公平性計(jì)算公式
當(dāng)擁塞鏈路帶寬分別為8Mbps,16Mbps,32Mbps時(shí),實(shí)驗(yàn)結(jié)果如圖8。
在三種情況下,F(xiàn)AV算法的公平性參數(shù)都超過(guò)了0.92,并且大部分情況下都在0.95以上,尤其是網(wǎng)絡(luò)中流數(shù)超過(guò)80后,公平性參數(shù)到達(dá)0.99,可見FAV算法的公平性較好。
權(quán)利要求
1、基于ECN帶預(yù)測(cè)驗(yàn)證的擁塞控制方法,其特征在于它是一種基于顯式擁塞通告ECN且?guī)ьA(yù)測(cè)驗(yàn)證FAV的源方法,即在接收端主機(jī)PC和網(wǎng)絡(luò)邊緣設(shè)備中執(zhí)行預(yù)測(cè)驗(yàn)證,而源端主機(jī)PC則根據(jù)反饋信息來(lái)調(diào)整發(fā)送速率,所述的擁塞控制方法依次含有以下步驟
(1)源端發(fā)送數(shù)據(jù)分組時(shí)在分組IP頭的OPTION域登記時(shí)間戳,時(shí)間戳由4個(gè)字節(jié)組成;
(2)路徑中所有支持顯式擁塞通告ECN標(biāo)記的節(jié)點(diǎn)轉(zhuǎn)發(fā)它的擁塞情況,即在節(jié)點(diǎn)中隊(duì)列長(zhǎng)度超過(guò)管理員設(shè)定的閾值后,把服務(wù)類型TOS域中的CE位置“1”;
(3)在接收端計(jì)算各分組的傳輸延遲當(dāng)接收端接收到數(shù)據(jù)分組后,通過(guò)系統(tǒng)調(diào)用獲得相應(yīng)的接收到的時(shí)間,即本機(jī)系統(tǒng)的時(shí)間,用此值減去數(shù)據(jù)分組頭中的時(shí)間戳的值,得到該分組的鏈路傳輸延遲時(shí)間;
(4)通過(guò)下述組內(nèi)預(yù)判公式來(lái)推測(cè)該第n分組進(jìn)入擁塞節(jié)點(diǎn)時(shí)隊(duì)列長(zhǎng)度的預(yù)測(cè)值,同時(shí)根據(jù)收到該第n分組是否被標(biāo)記CE來(lái)調(diào)整預(yù)判閾值X,這一步驟依次按以下順序執(zhí)行
(4.1)使用先到的相鄰分組的鏈路傳輸延遲的差分來(lái)計(jì)算預(yù)測(cè)參數(shù)Kn,它是一種用以消除源端和接收端由于時(shí)鐘不同步為延遲測(cè)量帶來(lái)影響的參數(shù),
其中,Td′n為第n分組的鏈路傳輸延遲,
Td′n-1為第n分組的鏈路傳輸延遲,
Td′n-2為第n分組的鏈路傳輸延遲,
(4.2)使用下述組內(nèi)預(yù)判公式,遞推獲得當(dāng)前的分組n進(jìn)入擁塞節(jié)點(diǎn)時(shí)隊(duì)列長(zhǎng)度的預(yù)測(cè)值λn
λn=(Kn+1)×λn-1-Kn×λn-2
其中,λn-1為第n-1分組的隊(duì)列長(zhǎng)度預(yù)測(cè)值,
λn-2為第n-2分組的隊(duì)列長(zhǎng)度預(yù)測(cè)值
(4.3)使用當(dāng)前分組n隊(duì)列長(zhǎng)度預(yù)測(cè)值λn和該分組n的CE標(biāo)記來(lái)驗(yàn)證預(yù)判的準(zhǔn)確性,從而修正設(shè)定的預(yù)判閾值X
若X<λn且收到未標(biāo)記CE的分組即為PCE,
則X=λn+1;
若X>λn且收到未標(biāo)記CE的分組即為PCE,
則X=λn-1;
(5)通過(guò)下述組間預(yù)判方法對(duì)當(dāng)前各組內(nèi)的推測(cè)結(jié)果進(jìn)行統(tǒng)計(jì),并預(yù)判將來(lái)網(wǎng)絡(luò)中數(shù)據(jù)流量的變化,同時(shí)根據(jù)各組內(nèi)統(tǒng)計(jì)結(jié)果向源端發(fā)送具有相應(yīng)含義的確認(rèn)分組即特殊標(biāo)記ACK
(5.1)在接收端把所有數(shù)據(jù)分組按照信號(hào)鏈路傳輸延遲時(shí)間RTT作為劃分預(yù)判組的條件,RTT時(shí)間按照第一個(gè)分組傳輸延遲的兩倍計(jì)算,即在一個(gè)RTT時(shí)間內(nèi)接收端向源端發(fā)送一個(gè)控制源端發(fā)送速率的確認(rèn)分組ACK,通告源端,
(5.2)求解RTT時(shí)間內(nèi)的平均隊(duì)列預(yù)測(cè)長(zhǎng)度
其中,k=1,2,3…S,為該預(yù)判組內(nèi)的數(shù)據(jù)分組的下標(biāo);
S為該預(yù)判組內(nèi)數(shù)據(jù)分組的數(shù)量,
(5.3)計(jì)算RTT時(shí)間內(nèi)平均隊(duì)列預(yù)測(cè)長(zhǎng)度E[λ]n和閾值X的差Diff,
Diff=E[λ]n-X,
(5.4)根據(jù)不同的差值范圍發(fā)送相應(yīng)的確認(rèn)分組ACK
若Diff>α·E[λ]n,α為設(shè)定的參數(shù),
則發(fā)送ACK(PDEC);
若Diff<-α·E[λ]n),
則發(fā)送ACK(PNOR);
若-α·E[λ]n<Diff<α·E[λ]n,
則發(fā)送ACK(PHOLD);
其中,PNOR是無(wú)特殊標(biāo)記的確認(rèn)分組ACK,
PDEC是ACK中標(biāo)記DEC位,
PHOLD是ACK中標(biāo)記HOLD位;
DEC和HOLD標(biāo)記可以設(shè)置在應(yīng)答確認(rèn)分組頭部TOS域的某一位中。根據(jù)RFC2780的說(shuō)明,TOS的第6、7位用來(lái)作為ECN協(xié)議使用,我們?cè)贏CK中將第6位置1作為PDEC的標(biāo)志位,而將第7位置1作為PHOLD的標(biāo)志位;
(5.5)當(dāng)確認(rèn)分組ACK到達(dá)源端PC后,源端PC用已知的發(fā)送速率算法調(diào)整發(fā)送速率,即
(5.5.1)源端接收到PDEC后,源端的擁塞窗口減小1/8,
(5.5.2)源端接收到PNOR后,源端的擁塞窗口增加1,
(5.5.3)源端接收到PHOLD后,源端的擁塞窗口保持不變。
全文摘要
基于ECN且?guī)ьA(yù)測(cè)驗(yàn)證的擁塞控制方法屬于網(wǎng)絡(luò)技術(shù)領(lǐng)域,其特征在于,先由相鄰分組的差分計(jì)算當(dāng)前分組的預(yù)測(cè)參數(shù),據(jù)此遞推出相應(yīng)的隊(duì)列預(yù)測(cè)長(zhǎng)度,可參照節(jié)點(diǎn)的擁塞情況修正為各分組共同的預(yù)判閾值;再把2×第一個(gè)分組延遲作為信號(hào)傳輸時(shí)間把所有分組作為預(yù)判組,求出各分組的平均隊(duì)列長(zhǎng)度預(yù)測(cè)值,接收端把該值與預(yù)判閾值之差去和平均隊(duì)列長(zhǎng)度預(yù)測(cè)值的預(yù)計(jì)浮動(dòng)值進(jìn)行比較,便可向源端發(fā)出增加、減小或保持擁塞窗口長(zhǎng)度的確認(rèn)分組,便于源端調(diào)整分組發(fā)送速率。這種接收端驅(qū)動(dòng)的方法具有降低丟失率的同時(shí)又減少分組平均延遲的優(yōu)點(diǎn),具有穩(wěn)定的較高的網(wǎng)絡(luò)利用率,還能探測(cè)網(wǎng)絡(luò)即將出現(xiàn)的擁塞情況。
文檔編號(hào)H04L29/06GK1545286SQ20031011539
公開日2004年11月10日 申請(qǐng)日期2003年11月21日 優(yōu)先權(quán)日2003年11月21日
發(fā)明者徐恪, 劉惠山, 徐明偉, 吳建平, 徐 恪 申請(qǐng)人:清華大學(xué)