文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)06-0100-03
目前在Internet中廣泛使用且較為成熟的算法是TCP Reno,,它通過(guò)觀測(cè)發(fā)送端數(shù)據(jù)包的丟失來(lái)估計(jì)當(dāng)前網(wǎng)絡(luò)的可用帶寬,調(diào)整擁塞控制窗口以調(diào)節(jié)發(fā)送速率,。TCP Vegas是TCP Reno的改進(jìn)算法,,其在發(fā)生丟包之前就可以根據(jù)往返時(shí)間RTT(Round Trip Time)來(lái)調(diào)整窗口大小。TCP Vegas比TCP Reno能夠更好地利用帶寬,,且吞吐量穩(wěn)定[1],。但是其自身也存在一些無(wú)法解決的問(wèn)題,如公平性,、響應(yīng)不及時(shí)以及為保持吞吐量的穩(wěn)定而不能最大限度地利用帶寬等問(wèn)題,,從而很大程度地限制了它的實(shí)際應(yīng)用性。
以往的研究中,大多只對(duì)TCP Vegas的某一方面進(jìn)行了改進(jìn)[2-3],,雖然效果有所提升,,但不能從根本上改變TCP Vegas存在的問(wèn)題。本文通過(guò)建立TCP Vegas網(wǎng)絡(luò)的數(shù)學(xué)模型,,從理論上分析了TCP Vegas在擁塞避免階段的競(jìng)爭(zhēng)能力處于明顯劣勢(shì)的原因,,并提出一種TCP Vegas擁塞避免機(jī)制的改進(jìn)算法,分別從數(shù)學(xué)模型分析與網(wǎng)絡(luò)狀況仿真等兩個(gè)方面驗(yàn)證了改進(jìn)算法,該算法可以改變TCP Vegas擁塞避免機(jī)制所帶來(lái)的固有問(wèn)題,。
TCP Vegas根據(jù)預(yù)期傳送率和實(shí)際傳送率之間的差異值來(lái)調(diào)整cwnd的大小,。當(dāng)diff的值大于β時(shí),意味著傳送速率太快,,應(yīng)該減小cwnd的值以減緩傳送的速率,。反之,當(dāng)diff的值小于α時(shí),,則表明傳送速率較慢,,應(yīng)該加大cwnd的值,以增加傳送的速率,。
2 TCP Vegas存在的不足及原因分析
(1)路徑變更問(wèn)題,。由于Base_rtt是最小的回路響應(yīng)延時(shí)。當(dāng)文件傳輸過(guò)程中路徑發(fā)生變化時(shí),,如果新的路徑有一個(gè)較長(zhǎng)的延時(shí),,TCP Vegas連接不能推斷這個(gè)長(zhǎng)的rtt是由擁塞還是變更路徑造成的。由于TCP Vegas把rtt的增大都視為擁塞造成的,,因此減少了擁塞窗口,,進(jìn)而導(dǎo)致吞吐量退化。
(2)不公平性問(wèn)題,。 由于期望吞吐量的計(jì)算是基于
Base_rtt的測(cè)量,。當(dāng)新的連接開(kāi)始發(fā)送數(shù)據(jù)而其他的連接仍然存在時(shí),其Base_rtt必定會(huì)大于其他連接的Base_rtt,因此它比其他的連接更容易增加擁塞窗口,。新的連接能夠獲得更高的帶寬,,從而導(dǎo)致在TCP Vegas連接中帶寬的不公平分配。
(3)帶寬利用問(wèn)題,。由于TCP Vegas為了保證其發(fā)送速率的穩(wěn)定性,,將rtt中的最小值作為Base_rtt來(lái)計(jì)算期望吞吐量,在很大程度上限制了發(fā)送窗口的增大,,從而不能最大限度地利用有效帶寬,在保持穩(wěn)定性的同時(shí),犧牲了帶寬利用率,。
(4)響應(yīng)不及時(shí)問(wèn)題。由于TCP Vegas擁塞避免階段所使用的rtt為所有rtt的平均值,,因此rtt的變化不能隨著實(shí)時(shí)rtt的變化而及時(shí)變化,,導(dǎo)致TCP Vegas對(duì)現(xiàn)有網(wǎng)絡(luò)擁塞狀況感知比較遲緩,不能對(duì)網(wǎng)絡(luò)變化及時(shí)做出響應(yīng)。
(5)不兼容性問(wèn)題,。當(dāng)TCP Vegas和TCP Reno共享一個(gè)瓶頸連接的時(shí)候,,TCP Reno持續(xù)地增加窗口大小直到檢測(cè)到一個(gè)包的丟失。隨著TCP Reno窗口的不斷增大,,鏈路中rtt的值會(huì)迅速增大,而TCP Vegas則認(rèn)為這是擁塞信號(hào),減少擁塞窗口,因此,TCP Reno會(huì)竊取TCP Vegas的帶寬,,這種不兼容性限制了Vegas的采用,。
3 TCP Vegas擁塞避免機(jī)制的算法改進(jìn)
在TCP Vegas-N中,對(duì)Base_rtt和rtt的值選取方式做了改進(jìn),,使其能夠與網(wǎng)絡(luò)情況動(dòng)態(tài)聯(lián)系起來(lái),,并改進(jìn)了diff的計(jì)算方法,使其更能及時(shí)準(zhǔn)確地反應(yīng)網(wǎng)絡(luò)狀況,,從而較好地彌補(bǔ)了上述缺點(diǎn),,改進(jìn)部分的代碼如下:
將rtt的取值由平均值改為實(shí)時(shí)值:
rtt = currentTime - v_begtime_;
將Base_rtt由最小值改為rtt的加權(quán)值,,使Base_rtt隨著rtt變化而及時(shí)變化:
if (rttLen ≤ 1)
Base_rtt = rtt,;
else
Base_rtt = Base_rtt*a+rtt*(1-a);
其中a為0~1的加權(quán)因子,,a值越小,,Base_rtt隨rtt的變化越及時(shí)(本文實(shí)驗(yàn)中a的取值為0.3)。
用新的計(jì)算公式來(lái)計(jì)算diff值:
b= Base_rtt/rtt,;
diff=(1-b*b*b)*cwnd(t)+c;
其中c為常數(shù),,本文實(shí)驗(yàn)中取值為0.999 999 999。α取1, β取3,。
4 仿真實(shí)驗(yàn)和性能分析
為了驗(yàn)證改進(jìn)算法的有效性,,本文利用網(wǎng)絡(luò)仿真軟件NS2基于圖1中的拓?fù)浣Y(jié)構(gòu)對(duì)原始擁塞控制算法和改進(jìn)算法進(jìn)行了仿真實(shí)驗(yàn)對(duì)比。
實(shí)驗(yàn)2:驗(yàn)證公平性問(wèn)題,。建立兩條鏈路,,兩條鏈路相隔5 s開(kāi)始,時(shí)間設(shè)為100 s,。
圖4為T(mén)CP Vegas兩條鏈路相隔5 s后出發(fā)的擁塞窗口情況,,后開(kāi)始的鏈路的Base_rtt大于先前的Base_rtt,從而將會(huì)更大地增加發(fā)送窗口,,導(dǎo)致了不公平性的發(fā)生,。圖5為改進(jìn)后的TCP Vegas擁塞窗口情況,保持了良好的公平性,。
實(shí)驗(yàn)3:驗(yàn)證響應(yīng)不及時(shí)問(wèn)題,。建立三條鏈路,兩條鏈路在0秒同時(shí)開(kāi)始,,第三條鏈路在第100秒開(kāi)始,,第200秒結(jié)束,總時(shí)間設(shè)為300秒,。
在圖6中,當(dāng)?shù)谌龡l鏈路在第100 s開(kāi)始時(shí),,TCP Vegas只有第一條鏈路感知到了網(wǎng)絡(luò)擁塞變化,,并降低了發(fā)送窗口。在第200秒時(shí),,當(dāng)?shù)谌龡l鏈路結(jié)束發(fā)送,,前兩條鏈路仍然保持原來(lái)發(fā)送窗口不變。而在圖7中,,TCP Vegas-N可以根據(jù)網(wǎng)絡(luò)擁塞情況及時(shí)做出反應(yīng),,既保證了各條鏈路的公平性,同時(shí)又充分利用了有效帶寬,。
本文從Base_rtt和rtt的值選取方式入手,,通過(guò)改進(jìn)TCP Vegas擁塞避免算法,立足于解決TCP Vegas的固有問(wèn)題,。仿真實(shí)驗(yàn)表明,,改進(jìn)后的算法有效地解決了TCP Vegas本身所存在的公平性、路由更換,、帶寬利用和響應(yīng)不及時(shí)等問(wèn)題,。本文給出了詳細(xì)的算法描述,該算法只需在發(fā)送端進(jìn)行修改,,不需要修改中間路由器,,易于網(wǎng)絡(luò)實(shí)施。
參考文獻(xiàn)
[1] Chan Yicheng,, LIN C L,,CHAN C T,et al. Improving performance of TCP Vegas for high bandwidth-delay product networks[C]. Proc of the 8th International Conference on Advanced Communication Technology.2006:464.
[2] 李鵬,,陳元琰,,羅曉署.無(wú)線異構(gòu)網(wǎng)絡(luò)環(huán)境中基于擁塞狀態(tài)區(qū)分的TCP Vegas改進(jìn)算法[J].計(jì)算機(jī)應(yīng)用,2010,,30(2):309-311.
[3] 王云濤,,方建安,張曉輝.基于TCP Vegas的網(wǎng)絡(luò)擁塞控制改進(jìn)算法[J].計(jì)算機(jī)應(yīng)用研究,,2009,,26(12):4645-4647.
[4] BRAKMO L S, O′MALLEY S W,, PETERSON L. TCP Vegas:New techniques for congestion detection and avoidance[J].IEEE/ACM Transactions on Networking,,1994,24(4):1024-1035.