專利名稱:基于歷史連接信息的單邊加速fast tcp改進(jìn)算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種高速網(wǎng)絡(luò)傳輸控制協(xié)議算法改進(jìn)領(lǐng)域,具體說是一種提高高速
網(wǎng)絡(luò)傳輸協(xié)議的穩(wěn)定性、利用率和公平性的基于歷史連接信息的單邊加速FAST TCP改 進(jìn)算法。
背景技術(shù):
FAST TCP(Fast Active queue management Scalable Transmission ControlProtocol,簡稱FAST)是針對下一代高速網(wǎng)絡(luò)提出的一種新型傳輸控制協(xié)議;在高速網(wǎng)絡(luò)環(huán)境中,與基于分組丟失作為擁塞反饋信號的其他改進(jìn)TCP協(xié)議相比,F(xiàn)AST協(xié)議采用估計(jì)的排隊(duì)延時(shí)信息計(jì)算FAST連接留在瓶頸鏈路緩沖區(qū)的分組個(gè)數(shù),以期望留在瓶頸鏈路緩沖區(qū)分組的個(gè)數(shù)為平衡點(diǎn),根據(jù)實(shí)際留在瓶頸鏈路緩沖區(qū)的分組個(gè)數(shù)距離平衡點(diǎn)位置的遠(yuǎn)近,非線性地調(diào)整發(fā)送窗口大小變化的快慢,不需要網(wǎng)絡(luò)層中間節(jié)點(diǎn)參與,主動(dòng)控制留·在瓶頸鏈路緩沖區(qū)隊(duì)列長度,從而主動(dòng)避免了緩沖區(qū)隊(duì)列溢出和擁塞現(xiàn)象的出現(xiàn),取得了更好的穩(wěn)定性和更充分的瓶頸鏈路使用效率,其帶寬利用率可達(dá)90%以上;但其存在如何選擇合適的協(xié)議參數(shù)和難以快速準(zhǔn)確估計(jì)傳播延時(shí)這兩個(gè)公開問題;正是這兩個(gè)關(guān)鍵的公開問題阻擾了 FAST協(xié)議在高速網(wǎng)絡(luò)進(jìn)一步應(yīng)用和推廣。FAST系統(tǒng)主動(dòng)控制留在瓶頸鏈路緩沖區(qū)隊(duì)列長度與FAST協(xié)議參數(shù)ο和活躍的FAST連接數(shù)》有關(guān);協(xié)議參數(shù)《指FAST連接期望留在瓶頸鏈路端緩沖區(qū)數(shù)據(jù)分組個(gè)數(shù);目前比較常用的是根據(jù)瓶頸鏈路帶寬采用靜態(tài)映射表選一次性指定協(xié)議參數(shù)ο ;但隨著FAST連接的不斷建立,《會(huì)不斷增大,這些活躍的連接主動(dòng)控制留在瓶頸鏈路緩沖區(qū)隊(duì)列長度也會(huì)不斷增加,當(dāng)主動(dòng)控制留在瓶頸鏈路緩沖區(qū)隊(duì)列長度超過瓶頸鏈路緩存容量Λ時(shí),就會(huì)產(chǎn)生溢出;當(dāng)出現(xiàn)這種情況時(shí),F(xiàn)AST系統(tǒng)會(huì)出現(xiàn)緩存溢出、丟失恢復(fù)、突發(fā)速率三種狀態(tài)的循環(huán)往復(fù),最終導(dǎo)致嚴(yán)重的報(bào)文段丟失和低QoS。但由于在源端無法獲得準(zhǔn)確的經(jīng)過瓶頸鏈路的FAST連接數(shù)B和瓶頸鏈路緩存容量#,因此難以選擇合適協(xié)議參數(shù)ο ; Tang A等人提出了在分鐘數(shù)量級尺度下,根據(jù)排隊(duì)延時(shí)和平均丟包速率動(dòng)態(tài)調(diào)整調(diào)整協(xié)議參數(shù)ο策略;該策略把焦點(diǎn)放在協(xié)議間的公平而非協(xié)議內(nèi)部公平性上;朱小松提出了根據(jù)當(dāng)前*!值與預(yù)計(jì)值%間的差值來動(dòng)態(tài)調(diào)整參
數(shù)C 策略,但該策略沒有給出如何選取預(yù)計(jì)值《 的方法;Heying Zhang提出了根據(jù)目標(biāo)排隊(duì)延時(shí)動(dòng)態(tài)調(diào)整協(xié)議參數(shù)的AFAST TCP算法,但算法也沒有具體給出如何確定目標(biāo)排隊(duì)延時(shí)的方法;宋麗華注意到單靠FAST在源端是很難解決選擇合適協(xié)議參數(shù)ο這個(gè)公開問題;因此提出了在FAST源端系統(tǒng)上增加一層面向主干瓶頸鏈路的宏觀指導(dǎo)功能,周期性(如數(shù)十秒或數(shù)分鐘)地測量網(wǎng)絡(luò)主干瓶頸鏈路的瓶頸帶寬、往返時(shí)延等性能指標(biāo),根據(jù)結(jié)果推測競爭連接數(shù)量,然后由期望排隊(duì)長度計(jì)算出每個(gè)連接分得的冗余包數(shù),通知相應(yīng)端系統(tǒng);端系統(tǒng)繼而更新參數(shù)設(shè)置;宋麗華改進(jìn)上述根據(jù)測量結(jié)果推測競爭連接數(shù)量的方法,采用模糊控制技術(shù)指導(dǎo)FAST源端選擇適當(dāng)?shù)膮f(xié)議參數(shù) ;宋麗華進(jìn)一步將上述方法整理,提出了一種2層結(jié)構(gòu)的傳輸層解決方案,利用上層的性能服務(wù)感知內(nèi)部網(wǎng)絡(luò)狀態(tài),然后在此基礎(chǔ)上形成基于冗余分組的下層控制目標(biāo);綜上所述,朱小松等人雖提
出相應(yīng)的改進(jìn)方案,當(dāng)實(shí)際上只是將對協(xié)議參數(shù)的設(shè)置轉(zhuǎn)為對期望《ο值和期望排隊(duì)延
時(shí)的設(shè)置,沒有從根本上解決設(shè)置協(xié)議參數(shù)《這個(gè)公開問題,并且,由于各連接無法直接通信,各連接無法同步調(diào)整協(xié)議參數(shù),存在參數(shù)調(diào)整收斂速度慢的問題;宋麗華雖然解決了該公開問題,但需引入外部測量技術(shù)等方法,存在部署問題。FAST連接將源端獲得的最小往返延時(shí)作為傳播延時(shí),因而當(dāng)網(wǎng)絡(luò)處于持續(xù)擁塞時(shí),即瓶頸鏈路已存在處于平衡狀態(tài)下FAST連接時(shí),新建的FAST連接將難以快速、準(zhǔn)確估計(jì)傳播延時(shí),從而導(dǎo)致新、舊連接長時(shí)間表現(xiàn)出嚴(yán)重的不公平性;因此,當(dāng)網(wǎng)絡(luò)處于持續(xù)擁塞時(shí),如何使新建的FAST連接快速獲得準(zhǔn)確的傳播延時(shí),從而解決新、舊連接表現(xiàn)出 嚴(yán)重的不公平性,也是FAST協(xié)議需要解決的關(guān)鍵問題。
譚連生提出一種改進(jìn)每個(gè)FAST連接第一個(gè)包排隊(duì)優(yōu)先級算法,該算法將每個(gè)連接發(fā)送的第一個(gè)包設(shè)置高優(yōu)先級,使得該包經(jīng)過瓶頸鏈路時(shí)不需要參與排隊(duì)直接發(fā)送,從而根據(jù)第一個(gè)包的RTT得到該連接的準(zhǔn)確的傳播延時(shí);該算法確實(shí)能獲得準(zhǔn)確的傳播延時(shí)和保證FAST協(xié)議的公平性,但存在部署方面的問題;Tony Cui指出了在沒有路由器等網(wǎng)絡(luò)設(shè)備的幫助下,短時(shí)清空瓶頸鏈路端緩沖空間的排隊(duì)隊(duì)列(以后簡稱隊(duì)列)是FAST源端獲得準(zhǔn)確傳播延時(shí)的唯一方法;因此提出了對每個(gè)新建立的連接,當(dāng)?shù)竭_(dá)平衡點(diǎn)后采取暫時(shí)的回退策略,該算法降低了系統(tǒng)穩(wěn)定性和利用率;Migule R提出了一種利用源端局部信息準(zhǔn)確估計(jì)傳播延時(shí)的改進(jìn)算法,,但該方法只對新建立一個(gè)連接時(shí)有效,若同時(shí)到達(dá)多個(gè)新連接,就無法利用局部信息計(jì)算舊連接數(shù)和瓶頸鏈路傳輸流量,無法獲得準(zhǔn)確的傳播延時(shí);并且由于在提高新連接發(fā)送速率時(shí),無法同時(shí)保證舊連接不發(fā)生響應(yīng),因而該算法本身也存在一定誤差。綜上所述可知,目前還沒有很好的辦法來解決FAST協(xié)議存在的這兩個(gè)公開問題;因此,希望根據(jù)FAST商業(yè)應(yīng)用的實(shí)際情況來找到解決該公開問題的方法;2006年成立于美國加州的FastSoft公司,推出了廣域網(wǎng)單邊加速產(chǎn)品FastSoft E Series ,該產(chǎn)品采用了加州理工學(xué)院2004年研發(fā)出的突破性網(wǎng)絡(luò)優(yōu)化技術(shù)Fast算法。本發(fā)明根據(jù)上述FAST單邊加速的實(shí)際應(yīng)用,提出了一種2層結(jié)構(gòu)的傳輸層解決方案,下層仍使用FAST算法,但每個(gè)連接需要增加最大排隊(duì)延時(shí)和啟動(dòng)時(shí)間2個(gè)參數(shù),并小時(shí)間尺度周期維護(hù)這2個(gè)變量;當(dāng)發(fā)生丟包時(shí)通知上層算法;上層算法發(fā)現(xiàn)下層有連接丟包后,讀取下層各活躍連接的最大排隊(duì)延時(shí),根據(jù)該最大排隊(duì)延時(shí)確定目標(biāo)排隊(duì)延時(shí)控制范圍,每隔一個(gè)分鐘數(shù)量級尺度更新周期,自適應(yīng)調(diào)整協(xié)議參數(shù),通知給下層運(yùn)行的FAST連接,主動(dòng)控制瓶頸鏈路緩沖區(qū)隊(duì)列長度在合理的范圍,防止瓶頸鏈路緩沖區(qū)丟包,提供系統(tǒng)的穩(wěn)定性和利用率;當(dāng)有新建連接時(shí),上層算法根據(jù)啟動(dòng)時(shí)間最早的歷史連接排隊(duì)延時(shí),不需要外部測量系統(tǒng)參與,準(zhǔn)確估計(jì)傳播延時(shí);由于上層算法統(tǒng)一通知下層活躍的連接,也解決了各連接協(xié)議參數(shù)無法通信,不能同步收斂的問題。
發(fā)明內(nèi)容
針對目前FAST算法中尚未徹底解決的兩個(gè)公開問題,根據(jù)FAST單邊加速的實(shí)際應(yīng)用,本發(fā)明提出了一種基于歷史連接信息的單邊加速FAST TCP改進(jìn)算法。本發(fā)明提供的基于歷史連接信息的單邊加速FAST TCP改進(jìn)算法,下層算法仍采用FAST算法,但定期維護(hù)本連接最大排隊(duì)延時(shí)、啟動(dòng)時(shí)間等信息,當(dāng)發(fā)生丟包時(shí)通知上層算法;具體包括如下步驟
步驟I:在原有算法基礎(chǔ)上添加小尺度周期時(shí)間間隔內(nèi)該連接的最大排隊(duì)延時(shí)、該連接啟動(dòng)時(shí)間 、運(yùn)行時(shí)間^_等全局變量;
步驟2:每隔小尺度更新周期初,設(shè)置=0,因只求該周期內(nèi)的最大排隊(duì)延時(shí);
步驟3:每收到一個(gè)確認(rèn)幀,記錄其在該周期的最大的排隊(duì)延時(shí),即
if ; 步驟4:如果(收到三個(gè)相同的確認(rèn)幀,即發(fā)現(xiàn)有丟包現(xiàn)象)通知上層算法,瓶頸鏈路發(fā)生丟包;
對發(fā)送端第i個(gè)FAST連接定義如下變量發(fā)送端擁塞窗口大小(packets) ; 4 :傳播時(shí)延(s) ; tW :排隊(duì)時(shí)延(S);礙W第i連接的往還時(shí)延,巧= 4 +(s) D1平均往返延時(shí)(S) ; :傳輸流量(packets/
S ),其中咕)= WiOO/馬(O ; I辦議參數(shù)(packets) ; Ii :控制律增益參數(shù);y :發(fā)送端
窗口更新周期(s) ; Ti 上足算法小尺度更新周期;Γ 上層算法大尺度更新周期,£為瓶頸鏈路1的帶寬(packets/s);
上層算法根據(jù)下層算法給出的丟包通知,做出如下響應(yīng),具體包括如下步驟
步驟I:若下層沒有FAST連接丟包,則不啟動(dòng)上層協(xié)議調(diào)整算法;如果收到下層有連接發(fā)出的丟包信號,則執(zhí)行如下步驟
步驟2:對每個(gè)FAST連接,讀取其最大排隊(duì)延時(shí)用^O) = %—;
步驟3:求出所有活躍的FAST連接的最大排隊(duì)延時(shí),即 Ifzmnxg zm^xq — imtxgfi);
步驟4:確定目標(biāo)排隊(duì)延時(shí)控制范圍
紐供與也=珥 篇瓜?;
IkergisAysijzi =B7 * zmaxg ;
其中 QCBgCO2Cl ;
步驟5:調(diào)用動(dòng)態(tài)調(diào)整協(xié)議參數(shù)算法。根據(jù)下層算法的丟包情況周期性執(zhí)行協(xié)議參數(shù)動(dòng)態(tài)調(diào)整算法,具體包括如下步驟
步驟I :每更新周期2;或因?yàn)閬G包執(zhí)行如下步驟;
步驟2:若本次算法因?yàn)閬G包而觸發(fā),則重新計(jì)時(shí),直到隔一個(gè)周期后才可以執(zhí)行如下步驟,以保住調(diào)整的分鐘數(shù)量級尺度;
步驟3 :之前已經(jīng)有連接發(fā)生丟包,若獲得了最大排隊(duì)延時(shí)和目標(biāo)排隊(duì)延時(shí)的控制范圍,即如果由 >資,則記錄上個(gè)周期的最大隊(duì)延時(shí)Iisftiaii = ZWKKf ; zmssg =O;
步驟4 :對每個(gè)FAST連接,讀取在該更新周期內(nèi)的最大排隊(duì)延時(shí)= %飄,%飄
=0;
步驟5:求出本更新周期的最 大排隊(duì)延時(shí)■胃,如果測得當(dāng)前周期的最大牌的延時(shí)大于最大排隊(duì)延時(shí),則替換之。即Ifzmaxg , IjIlJ zmox = mzx (0 ;
步驟6 :對最大排隊(duì)延時(shí)做平沿處」:Ψ. := 0-^) iasizmaxg +gzrong,其中
0<θ<\ ;
步驟7 :如果總最最大排隊(duì)延時(shí)已在控制目標(biāo)范圍,則不做調(diào)整,SP If ( zmaxq>and),則{不用采取措施,目標(biāo)已滿足期
望排隊(duì)延時(shí)范圍;}
步驟8 :如果總最最大排隊(duì)延時(shí)小于控制目標(biāo)范圍的最小值,則確定離期望范圍遠(yuǎn)近位置,即 If;
步驟9 :根據(jù)上述位置遠(yuǎn)近確定目標(biāo)排隊(duì)延時(shí)
步驟10 :如果總最最大排隊(duì)延時(shí)大于控制目標(biāo)范圍的最大值,則確定離期望范圍遠(yuǎn)近位置,即if (zmwcq之噸姐),則Th切;
步驟11 :根據(jù)上述位置遠(yuǎn)近確定目標(biāo)排隊(duì)延時(shí)‘、;
&irgetg = Ssrgelqm^ —i^targsiq^ ~ ^xrgeiqajJ
步驟12 :根據(jù)目標(biāo)排隊(duì)延時(shí),確定調(diào)整幅度
diff = ^Mrg^ql Tmixg ;
步驟13 自適應(yīng)調(diào)整協(xié)議參數(shù)
^dphotmr = alpha ;/ /
步驟14 :修正協(xié)議參數(shù)范圍
If Idpkatmi >Zripk^at gdpha = ^phgmtx
else i I. ^dphamm Kidphamks then aipka = ^phasks
else dtpha - ^phamv
其中Ι κκ φ&ι :姒人協(xié)議參數(shù);Β βφΛα :最小協(xié)議參數(shù)。一種針對新FAST連接難以準(zhǔn)確快速獲得傳播延時(shí)的改進(jìn)算法,其特征在于,具體包括如下步驟
步驟I :每個(gè)小時(shí)間尺度周期讀取活躍連接的當(dāng)前時(shí)刻排隊(duì)延時(shí)建立時(shí)間和運(yùn)行時(shí)間;;
步驟2 :從活躍的連接中選擇最早的建立的FAST連接的aw作為瓶頸鏈路的排隊(duì)延時(shí)f—;步驟3 :當(dāng)有新建的連接建立時(shí),提供與該新建連接相同目的主機(jī)的歷史上最早建立的活躍的FAST連接的當(dāng)前排隊(duì)延時(shí)%—;
步驟4 :對下層FAST算法,當(dāng)有新建的FAST連接建立時(shí),修改其第一次計(jì)算傳播延時(shí)的方法
對每一個(gè)新FAST連接
如果是第一次計(jì)算傳播延時(shí)4,即M=聊-r麵;
否則如果4>巧 ,則。本發(fā)明根據(jù)FAST單邊加速應(yīng)用的特點(diǎn),提出了一種2層結(jié)構(gòu)的傳輸層改進(jìn)算法;下層各活躍的FAST連接定期收集最大排隊(duì)延時(shí)、啟動(dòng)時(shí)間等歷史信息,上層算法充分利用 歷史連接能夠提供的最大排隊(duì)延時(shí)等信息,大時(shí)間尺度周期自適應(yīng)選擇協(xié)議參數(shù),準(zhǔn)確估計(jì)傳播延時(shí),通知給下層運(yùn)行的FAST連接。實(shí)例驗(yàn)證了該改進(jìn)算法大幅提高了系統(tǒng)的穩(wěn)定性、利用率和公平性。
圖I單邊加速產(chǎn)品FastSoft E Series 應(yīng)用。圖2 FAST單邊加速系統(tǒng)網(wǎng)絡(luò)拓?fù)洹D3 (a)為總的二層改進(jìn)算法,(b)為圖3(a)中模塊1、2的流程圖,(C)為圖3(a)中模塊3的響應(yīng)丟包算法的流程圖(d)為圖3(a)中模塊4的動(dòng)態(tài)調(diào)整協(xié)議參數(shù)的流程圖,(e)改進(jìn)FAST公平性算法的流程圖。圖4為采用原FAST算法系統(tǒng)運(yùn)行效果,其中(a)為瓶頸鏈路緩沖區(qū)丟包個(gè)數(shù),(b)為瓶頸鏈路緩沖區(qū)隊(duì)列長度,(C)為三條路徑分配的傳輸流量。圖5為采用基于FAST 二層改進(jìn)算法系統(tǒng)運(yùn)行效果,其中(a)為瓶頸鏈路緩沖區(qū)丟包個(gè)數(shù),(b)為瓶頸鏈路緩沖區(qū)隊(duì)列長度,(C)為三條路徑分配的傳輸流量。圖6為鏈路段緩沖容量會(huì)改變的情況下,采用基于FAST 二層改進(jìn)算法系統(tǒng)運(yùn)行效果,其中(a)為瓶頸鏈路緩沖區(qū)丟包個(gè)數(shù),(b)為瓶頸鏈路緩沖區(qū)隊(duì)列長度,(C)為三條路徑分配的傳輸流量。圖7為采用本發(fā)明改進(jìn)FAST公平性算法和采用傳統(tǒng)FAST算法的系統(tǒng)運(yùn)行效果,其中(a)為采用傳統(tǒng)算法為三條路徑分配的傳輸流量;(b)為本發(fā)明改進(jìn)算法三條路徑分配的傳輸流量。
具體實(shí)施例方式FastSoft E Series 產(chǎn)品采用了加州理工學(xué)院的專利技術(shù)FAST算法,該產(chǎn)品主要應(yīng)用在如圖I所示的從服務(wù)器到客戶端的單邊加速,如圖I所示,只要在服務(wù)器端簡單串聯(lián)一個(gè)標(biāo)準(zhǔn)IU服務(wù)器大小FastSoft E Series 設(shè)備,在客戶端無需新增軟件或?yàn)g覽器插件,且在服務(wù)器端也無需修改配置或重寫代碼即可實(shí)現(xiàn)單邊加速功能,在全球的任一地點(diǎn)訪問該服務(wù)器均可享受到動(dòng)態(tài)頁面文件傳輸?shù)?0%到500%加速,主要應(yīng)用領(lǐng)域(I) SaaS ( Software as a Service - part of Cloud computing);(2)Video/GamingAcceleration; (3) File Transfer; ( 4) CDN ( Content Delivery Network);主要客戶包括 MySpace> Overstock; com、Limelight Networks> JffT> Thomson Technicolor、Honda、Siemens 等。根據(jù)圖I的實(shí)際網(wǎng)絡(luò)模型可知,只是實(shí)現(xiàn)服務(wù)器到各客戶端的單邊加速功能,故只有一個(gè)信源主機(jī)節(jié)點(diǎn);信源主機(jī)和各信宿主機(jī)中建立的FAST連接中總會(huì)有一條瓶頸鏈路;因此可構(gòu)建如圖2所示的網(wǎng)絡(luò)拓?fù)鋱D;在圖2中,假設(shè)SI為信源主機(jī)節(jié)點(diǎn),D1、D2、···Dm信宿主機(jī)節(jié)點(diǎn);中間節(jié)點(diǎn)L1、L2組成瓶頸鏈路7;信源主機(jī)、若干條相連鏈路和信宿主機(jī)組成一條路徑;如路徑S1-L1-L2-D1包含信源主機(jī)SI、鏈路L1-L2、和信宿主機(jī)D1,每條路徑可建立多個(gè)FAST連接。本發(fā)明在FastSoft E Series 設(shè)備所使用的FAST算法的基礎(chǔ)上,構(gòu)建如圖3所示的2層結(jié)構(gòu)改進(jìn)算法;下層算法仍使用傳統(tǒng)的FAST協(xié)議,但每個(gè)連接需要在小時(shí)間尺度周期維護(hù)最大排隊(duì)延時(shí),當(dāng)發(fā)生丟包時(shí)要立即通知上層算法;上層算法的主要目的是每 隔一大時(shí)間尺度更新周期,向下層改進(jìn)的FAST源端提供一個(gè)合適的協(xié)議參數(shù) ,其設(shè)計(jì)思想是在初始狀態(tài)時(shí),若沒有連接丟包,則直接采用靜態(tài)映射表方法選用協(xié)議參數(shù);如發(fā)現(xiàn)下層有FAST連接丟包,則取丟包前一個(gè)小尺度周期內(nèi)所有連接測到最大的瓶頸鏈路的排隊(duì)延時(shí)作為瓶頸鏈路的最大排隊(duì)延時(shí),根據(jù)最大排隊(duì)延時(shí)設(shè)置期望的目標(biāo)排隊(duì)延時(shí)控制范圍,每隔一個(gè)大尺度更新周期進(jìn)行協(xié)議參數(shù)的調(diào)整,使得瓶頸鏈路排隊(duì)延時(shí)能夠控制在期望的范圍內(nèi)。下層算法仍采用FAST算法,但定期維護(hù)本連接最大排隊(duì)延時(shí)、啟動(dòng)時(shí)間等信息,當(dāng)發(fā)生丟包時(shí)通知上層算法,具體包括如下步驟
步驟I:在原有算法基礎(chǔ)上添加小尺度周期時(shí)間間隔內(nèi)該連接的最大排隊(duì)延時(shí)< _、
該連接啟動(dòng)時(shí)間t 、運(yùn)行時(shí)間 等全局變量;
步驟2:每隔小尺度更新周期初,設(shè)置=0,因只求該周期內(nèi)的最大排隊(duì)延時(shí);
步驟3:每收到一個(gè)確認(rèn)幀,記錄其在該周期的最大的排隊(duì)延時(shí),即
If _>& W = qm ;
步驟4:如果(收到三個(gè)相同的確認(rèn)幀,即發(fā)現(xiàn)有丟包現(xiàn)象)通知上層算法,瓶頸鏈路發(fā)生丟包;
對發(fā)送端第i個(gè)FAST連接定義如下變量
作0 :發(fā)送端擁塞窗口大小(packets) ; 4 傳播時(shí)延(s) ; :排隊(duì)時(shí)延(S);聊第i連接的往還時(shí)延,?。?= 4 + ft (s);乓平均往返延時(shí)(s) ; :傳輸流量(packets/
s ),其中IiCO=1^(0/碑60 ; Oi :協(xié)議參數(shù)(packets) ; :控制律增益參數(shù);y :發(fā)送端
窗口更新周期(s) ; Ti 上層算法小尺度更新周期;Γ 上層算法大尺度更新周期,
瓶頸鏈路1的帶寬(packets/s)。上層算法根據(jù)下層算法給出的丟包通知,做出如下響應(yīng),具體包括如下步驟
步驟I:若下層沒有FAST連接丟包,則不啟動(dòng)上層協(xié)議調(diào)整算法;如果收到下層有連
接發(fā)出的丟包信號,則執(zhí)行如下步驟
步驟2:對每個(gè)連接,讀取其最大排隊(duì)延時(shí)= %一 ;步驟3:求出所有活躍的FAST連接的最大排隊(duì)延時(shí),即 If muxq^i) > zmao/jg zmwsg — nusgrCO ;
步驟4:確定目標(biāo)排隊(duì)延時(shí)控制范圍
^irgeiqmkt — SimZmixxg ;
IgrgB^w3ai =S7*zmtxcg ;
其中0<務(wù)<馬<1 ;
步驟5:調(diào)用動(dòng)態(tài)調(diào)整協(xié)議參數(shù)算法。根據(jù)下層算法的丟包情況周期性執(zhí)行協(xié)議參數(shù)動(dòng)態(tài)調(diào)整算法,具體包括如下步 驟
步驟I :每更新周期I或因?yàn)閬G包執(zhí)行如下步驟;
步驟2:若本次算法因?yàn)閬G包而觸發(fā),則重新計(jì)時(shí),直到隔一個(gè)周期后才可以執(zhí)行如下步驟,以保住調(diào)整的分鐘數(shù)量級尺度;
步驟3 :之前已經(jīng)有連接發(fā)生丟包,若獲得了最大排隊(duì)延時(shí)和目標(biāo)排隊(duì)延時(shí)的控制范
圍,即如果,則記錄上個(gè)周期的最大隊(duì)延時(shí)=; zmsxg =0;
步驟4 :對每個(gè)FAST連接,讀取在該更新周期內(nèi)的最大排隊(duì)延時(shí),%一
=0;
步驟5:求出本更新周期的最大排隊(duì)延時(shí),如果測得當(dāng)前周期的最大牌的延時(shí)大于最大排隊(duì)延時(shí),則替換之。即If9 0>,fj zmaxq^maMg{i);
步驟6 :對最大排隊(duì)延時(shí)做平滑處」:Ψ. = O—灼Iastmasi + g zmasq ,其中
0<0<1 ;
步驟7 :如果總最最大排隊(duì)延時(shí)已在控制目標(biāo)范圍,則不做調(diào)整,gp
If ( 2maxq> 電_由and zmaxg < Ssrge^u3i ),則{不用采取措施,目標(biāo)已滿足期
望排隊(duì)延時(shí)范圍;}
步驟8 :如果總最最大排隊(duì)延時(shí)小于控制目標(biāo)范圍的最小值,則確定離期望范圍遠(yuǎn)近位置,即 If (zmaxq < Sarge^uja )則Tjjl = (^wgiOqwia -zmflotg)/tor爐匈置_ ;
步驟9 :根據(jù)上述位置遠(yuǎn)近確定目行排隊(duì)延時(shí)
紐講每=Iarge^mja \ Jjfiiargeiqiliai -JJargK^eis)
步驟10 :如果總最最大排隊(duì)延時(shí)大于控制目標(biāo)范圍的最大值,則確定離期望范圍遠(yuǎn)近位置,即 if (zmaxq,側(cè)%Iarge^mti ■
步驟11 :根據(jù)上述位置遠(yuǎn)近確定目標(biāo)排隊(duì)延時(shí) target = iargeiq^
步驟12 :根據(jù)目標(biāo)排隊(duì)延時(shí),確定調(diào)整幅度
= ksrgeiq ! ^mxxg ;
步驟13 自適應(yīng)調(diào)整協(xié)議參數(shù); //
步驟14 :修正協(xié)議參數(shù)范圍
If Oiphamm >Cdpkafux. tdpha = Oiphaajei
else if ^phiimm <Zthen niphs — Gipho^t
else dtpha - ^dphamm
其中ι Μφ&ι :最大協(xié)議參數(shù);》Β^ φΑ :最小協(xié)議參數(shù)?!N針對新FAST連接難以準(zhǔn)確快速獲得傳播延時(shí)的改進(jìn)算法,具體包括如下步驟· 步驟I :每個(gè)小時(shí)間尺度周期讀取活躍連接的當(dāng)前時(shí)刻排隊(duì)延時(shí)fW,建立時(shí)間和運(yùn)行時(shí)間;;
步驟2 :從活躍的連接中選擇最早的建立的FAST連接的作為瓶頸鏈路的排隊(duì)延時(shí)
%mm ;
步驟3 :當(dāng)有新建的連接建立時(shí),提供與該新建連接相同目的主機(jī)的歷史上最早建立的活躍的FAST連接的當(dāng)前排隊(duì)延時(shí);
步驟4 :對下層FAST算法,當(dāng)有新建的FAST連接建立時(shí),修改其第一次計(jì)算傳播延時(shí)的方法
對每一個(gè)新FAST連接
如果是第一次計(jì)算傳播延時(shí)4,則;
否則如果4>舄《5,則·Α=_。通過NS2; 31仿真來驗(yàn)證算法的有效性,仿真采用的網(wǎng)絡(luò)拓?fù)淙鐖D2所示,假設(shè)#=3,即有3個(gè)信宿主機(jī)D1' D2和D3,構(gòu)成路徑S1-L1-L2-D1 (文后簡稱路徑S1-D1,其余類推)、S1-L1-L2-D2 和 S1-L1-L2-D3;假設(shè) Sl-LU L2-D1、L2-D2 和 L2-D3 都有足夠的帶寬和鏈路緩存容量,不會(huì)擁塞和丟包,但L2到三個(gè)信宿主機(jī)傳播延時(shí)各不相同,分別是10 (ms), 20 (ms)和 15 (ms);瓶頸鏈路 L1-L2 的帶寬 cpSO (Mb/s),傳播延時(shí)為 50 (ms),瓶頸鏈路緩存容量· =800 (packets);假設(shè) I (packets) =1000 (bytes) =8000 (bit),因此 cf80(Mb/s)=10000(packets/s)。根據(jù)瓶頸鏈路的帶寬e二80 (Mb/s),采用靜態(tài)映射表方法確定各連接協(xié)議參數(shù)
α = 50, = 03 ;仿真時(shí)間lOOO(s),三條路徑各建立10個(gè)FAST連接;路徑I在O (S)時(shí)建
立連接,1000 (S)時(shí)結(jié)束;路徑2在150 (S)建立連接,600 (s)結(jié)束;路徑3在400 (s)建立連接,1000 (s)結(jié)束;假設(shè)各連接都能夠獲得準(zhǔn)確的傳播延時(shí),不存在公平性問題。圖4是在采用原來FAST算法下系統(tǒng)運(yùn)行結(jié)果,由圖4可知,在前150 (S),當(dāng)只有路徑Sl-Dl的10個(gè)活躍的FAST連接時(shí),B = IO ;因此n-a<it,系統(tǒng)能夠穩(wěn)定;在150 (s)時(shí),由于路徑S1-D2的建立了 10個(gè)FAST連接,此時(shí)H= 20,因此,瓶頸鏈路緩沖區(qū)溢出,開始出現(xiàn)丟包,系統(tǒng)開始出現(xiàn)振蕩;當(dāng)?shù)?00(s)時(shí),路徑S1-D3又建立了 10個(gè)FAST連接,B = 30,因此,瓶頸鏈路緩沖區(qū)更加擁擠,丟包更加劇列。圖5采用本發(fā)明基于FAST 二層改進(jìn)算法系統(tǒng)運(yùn)行效果,由圖5的運(yùn)行結(jié)果可知,在150 (s)時(shí),由于路徑S1-D2建立了 10個(gè)FAST連接,瓶頸鏈路緩沖區(qū)溢出,開始出現(xiàn)丟包,下層連接發(fā)現(xiàn)丟包,會(huì)馬上通知上層算法;上層收到丟包信息,馬上啟動(dòng)動(dòng)態(tài)調(diào)整協(xié)議算法,調(diào)整相應(yīng)的協(xié)議參數(shù) 和調(diào)整加權(quán)系數(shù),并及時(shí)通知給下層;下層算法根據(jù)新的協(xié)議參數(shù)進(jìn)行運(yùn)算;對比圖4、圖5,由于采用了動(dòng)態(tài)協(xié)議參數(shù)調(diào)整算法,各連接只發(fā)生了一次丟包;,排隊(duì)延時(shí)能夠控制在期望的范圍內(nèi),各路徑公平的平分了瓶頸鏈路帶寬,系統(tǒng)呈現(xiàn)出好的穩(wěn)定性和公平性。圖6是在路由發(fā)生變化,即瓶頸鏈路緩沖大小變化的情況下,采用本發(fā)明基于FAST 二層改進(jìn)算法系統(tǒng)運(yùn)行效果,由圖6的運(yùn)行結(jié)果可知,在200 (s)時(shí),活躍的連接數(shù)a =20,瓶頸鏈路緩沖由1200 (packets)變?yōu)?00 (packets),因此有,瓶頸鏈路緩沖區(qū)溢出,開始出現(xiàn)丟包,自適應(yīng)調(diào)整協(xié)議參數(shù)β ;當(dāng)?shù)竭_(dá)400(s)時(shí),又有新的連接建立,到600 (s)時(shí),瓶頸鏈路緩沖進(jìn)一步變小,800 (s)連接釋放等情況發(fā)生,但本發(fā)明算法都能自適應(yīng)調(diào)整;由圖6可知,本發(fā)明算法能夠把隊(duì)列控制在適當(dāng)?shù)姆秶鷥?nèi),減小了丟 包情況發(fā)生,各路徑也能夠公平的分配帶寬。所有活躍FAST連接共享一條瓶頸鏈路,應(yīng)該具有相同的排隊(duì)延時(shí),但FAST連接將源端獲得的最小往返延時(shí)作為傳播延時(shí),因而當(dāng)瓶頸鏈路存在已處于平衡狀態(tài)下FAST連接時(shí),新建的FAST連接將難以快速、準(zhǔn)確估計(jì)傳播延時(shí);但考慮到FAST單邊加速系統(tǒng)網(wǎng)絡(luò)拓?fù)渲兄挥幸粋€(gè)信源結(jié)點(diǎn),因此新建的FAST連接可以充分利用歷史連接的一些提供的信息,快速準(zhǔn)確獲得傳播延時(shí);圖7(a)的運(yùn)行效果說明了這一點(diǎn)。下層連接增加啟動(dòng)時(shí)間和運(yùn)行時(shí)間參數(shù),每次連接建立時(shí),記錄連接啟動(dòng)時(shí)間和計(jì)算運(yùn)行時(shí)間;上層算法總是在維護(hù)最早啟動(dòng)的活躍連接的信息;當(dāng)發(fā)現(xiàn)下層有連接建立時(shí),可以提供啟動(dòng)時(shí)間最早、運(yùn)行時(shí)間最長的連接的當(dāng)前排隊(duì)延時(shí);下層新建連接改變第一次計(jì)算傳播延時(shí)的方法,根據(jù)當(dāng)前測到的往返延時(shí)減去上層算法提供的排隊(duì)延時(shí)計(jì)算出準(zhǔn)確的傳播延時(shí)。圖7(b)是采用本發(fā)明方法后的運(yùn)行結(jié)果。對比圖7(a)和(b)可知,在150 (s)和400 (s)分別有新連接建立,當(dāng)各路徑的公平性得到大大改善;當(dāng)600 (s)時(shí),有連接釋放,隊(duì)列出現(xiàn)了短時(shí)清空現(xiàn)象,各連接獲得了準(zhǔn)確的傳播延時(shí),公平的分配了帶寬。本發(fā)明方法分別在各路徑傳播延時(shí)不同、瓶頸鏈路緩沖隊(duì)列發(fā)生變化等不同仿真環(huán)境下進(jìn)行了實(shí)驗(yàn);實(shí)驗(yàn)結(jié)果表明,該改進(jìn)算法能夠主動(dòng)適應(yīng)環(huán)境變化,動(dòng)態(tài)調(diào)整協(xié)議參數(shù),準(zhǔn)確估計(jì)傳播延時(shí),主動(dòng)控制瓶頸鏈路中緩沖隊(duì)列長度,提高瓶頸鏈路的利用率、穩(wěn)定性和公平性。
權(quán)利要求
1.一種基于歷史連接信息的單邊加速FAST TCP改進(jìn)算法,下層算法仍采用FAST TCP算法,但定期維護(hù)本連接最大排隊(duì)延時(shí)、啟動(dòng)時(shí)間等信息,當(dāng)發(fā)生丟包時(shí)通知上層算法,其特征在于,包括如下步驟 步驟I:在原有算法基礎(chǔ)上添加小尺度周期時(shí)間間隔內(nèi)該連接的最大排隊(duì)延時(shí) 、該連接啟動(dòng)時(shí)間、運(yùn)行時(shí)間等全局變量; 步驟2:每隔小尺度更新周期初,設(shè)置=0,因只求該周期內(nèi)的最大排隊(duì)延時(shí). 步驟3:每收到一個(gè)確認(rèn)幀,記錄其在該周期的最大的排隊(duì)延時(shí),即If qXk、>th ;步驟4:如果收到三個(gè)相同的確認(rèn)幀,即發(fā)現(xiàn)有丟包現(xiàn)象通知上層算法,瓶頸鏈路發(fā)生丟包; 對發(fā)送端第i個(gè)FAST TCP連接定義如下變量 wPi 發(fā)送端擁塞窗口大小(packets) ; 4 :傳播時(shí)延(S) ; φ ):排隊(duì)時(shí)延(s) ;第i連接的往還時(shí)延,= 4 + (s) ; 1% :平均往返延時(shí)(s) ; :傳輸流量(packets/s ),其中_) = 1^(<5/馬00 ; :協(xié)議參數(shù)(packets) ; Tf :控制律增益參數(shù);f :發(fā)送端窗口更新周期(s) ; Ti 小尺度更新周期;Ta大尺度更新周期e力瓶頸鏈路,的帶寬(packets/s)。
2.根據(jù)權(quán)利要求I所述的基于歷史連接信息的單邊加速FASTTCP改進(jìn)算法,其特征在于,上層算法根據(jù)給出的丟包通知,做出如下響應(yīng),包括如下步驟 步驟I:若下層沒有FAST TCP連接丟包,則不啟動(dòng)上層協(xié)議調(diào)整算法;如果收到下層有連接發(fā)出的丟包信號,則執(zhí)行如下步驟 步驟2:對每個(gè)連接,讀取其最大排隊(duì)延時(shí)= %釋; 步驟3:求出所有活躍的FAST TCP連接的最大排隊(duì)延時(shí) ^,即
3.根據(jù)權(quán)利要求I所述的基于歷史連接信息的單邊加速FASTTCP改進(jìn)算法,其特征在于,調(diào)用動(dòng)態(tài)調(diào)整協(xié)議參數(shù)算法包括如下步驟 步驟I :每更新周期I或因?yàn)閬G包執(zhí)行如下步驟; 步驟2 :若本次算法因?yàn)閬G包而觸發(fā),則重新計(jì)時(shí),直到隔一個(gè)周期后才可以執(zhí)行如下步驟,以保住調(diào)整的分鐘數(shù)量級尺度; 步驟3 :之前已經(jīng)有連接發(fā)生丟包,若獲得了最大排隊(duì)延時(shí)和目標(biāo)排隊(duì)延時(shí)的控制范圍,即如果,則記錄上個(gè)周期的最大隊(duì)延時(shí)Iisftiaif = ZWKttf ; zmmg =O; 步驟4 :對每個(gè)FAST TCP連接,讀取在該更新周期內(nèi)的最大排隊(duì)延II、丨= ¢-,=0 ; 步驟5 :求出本更新周期的最大排隊(duì)延時(shí)zwmW,如果測得當(dāng)前周期的最大牌的延時(shí)大于最大排隊(duì)延時(shí),則替換之。4.即 If maxgii)> zjrerag ,貝Ij zmaxq = πκα^{ι); 步驟6 :對最大排隊(duì)延時(shí)做平滑處理zmsj^ = P-Q Imimtmq + q zmnsq,其中0<θ<1 ; 步驟7 :如果總最最大排隊(duì)延時(shí)已在控制目標(biāo)范圍,則不做調(diào)整,即If ( zmaxq> &irgeiqmiB and zmaxq < &irge^MXI ),則{不用采取措施,目標(biāo)已滿足期望排隊(duì)延時(shí)范圍;} 步驟8 :如果總最最大排隊(duì)延時(shí)小于控制目標(biāo)范圍的最小值,則確定離期望范圍遠(yuǎn)近位置,即 If (ZBWBtqr S)則極=— zwaancg) /; 步驟9 :根據(jù)上述位置遠(yuǎn)近確定目標(biāo)排隊(duì)延時(shí) 步驟10 :如果總最最大排隊(duì)延時(shí)大于控制目標(biāo)范圍的最大值,則確定離期望范圍遠(yuǎn)近位置,即 if CsmiSq >,則他=e^zfrmc^; 步驟11 :根據(jù)上述位置遠(yuǎn)近確定目標(biāo)排隊(duì)延時(shí) isrge^j ~ &EngeiqmxL —Hj2CtoFgiEij^at —JSayyjg^g1--) 步驟12 :根據(jù)目標(biāo)排隊(duì)延時(shí),確定調(diào)整幅度 t£ff = fysr^sig! z^mixq ; 步驟13 自適應(yīng)調(diào)整協(xié)議參數(shù) Idphatmr = d^f*tdpha ;// 步驟14 :修正協(xié)議參數(shù)范圍If Cdphatmr >Odpftam3a tdpha = tdphaelse if ^phsmm <then s^pho = aljah^^,else idpha = Idphatmi 其中Β*ιι φΛιι :最大協(xié)議參數(shù);:最小協(xié)議參數(shù);
4、根據(jù)權(quán)利要求I所述的基于歷史連接信息的單邊加速FAST TCP改進(jìn)算法,其特征在于,當(dāng)新FAST TCP難以準(zhǔn)確快速獲得傳播延時(shí),包括如下步驟 步驟I :每個(gè)小時(shí)間尺度周期讀取活躍連接的當(dāng)前時(shí)刻排隊(duì)延時(shí)《W,建立時(shí)間和運(yùn)行時(shí)間.%觀; 步驟2 :從活躍的連接中選擇最早的建立的FAST連接的9一作為瓶頸鏈路的排隊(duì)延時(shí); 步驟3 :當(dāng)有新建的連接建立時(shí),提供與該新建連接相同目的主機(jī)的歷史上最早建立的活躍的FAST TCP連接的當(dāng)前排隊(duì)延時(shí) _ ; 步驟4 :對下層FAST TCP算法,當(dāng)有新建的FAST TCP連接建立時(shí),修改其第一次計(jì)算傳播延時(shí)的方法 對每一個(gè)新FAST TCP連接 如果是第一次計(jì)算傳播延時(shí)4,則4=AC0-f_ ; 否則,如果4 ,則4 =ACO ο·
全文摘要
本發(fā)明針對FAST TCP存在難以選擇協(xié)議參數(shù)和準(zhǔn)確估計(jì)傳播延時(shí)的公開問題,根據(jù)FAST TCP單邊加速應(yīng)用的特點(diǎn),提出了一種基于歷史連接信息的單邊加速FAST TCP改進(jìn)算法;下層各活躍的FAST TCP連接定期收集最大排隊(duì)延時(shí)、啟動(dòng)時(shí)間等歷史信息,上層算法充分利用歷史連接能夠提供的最大排隊(duì)延時(shí)等信息,大時(shí)間尺度周期自適應(yīng)選擇協(xié)議參數(shù),準(zhǔn)確估計(jì)傳播延時(shí),通知給下層運(yùn)行的FAST TCP連接;本發(fā)明方法大幅提高了高速網(wǎng)絡(luò)FAST TCP系統(tǒng)的穩(wěn)定性、利用率和公平性。
文檔編號H04L29/06GK102904829SQ20121039940
公開日2013年1月30日 申請日期2012年10月19日 優(yōu)先權(quán)日2012年10月19日
發(fā)明者陳曉龍 申請人:廣東石油化工學(xué)院