摘 要: 對XCP協(xié)議的結(jié)構(gòu)和執(zhí)行算法進行了詳細分析,并對協(xié)議做了相應(yīng)仿真。仿真結(jié)果表明,在高帶寬時延乘積網(wǎng)絡(luò)中,XCP協(xié)議能更好地保持效率、公平性和穩(wěn)定性。
關(guān)鍵詞: XCP;擁塞控制;高帶寬時延乘積
TCP是目前在Internet中使用最廣泛的傳輸協(xié)議。它是針對當時帶寬時延乘積較小的網(wǎng)絡(luò)設(shè)計的,隨著高帶寬和高延遲網(wǎng)絡(luò)越來越普遍的應(yīng)用,TCP算法的效率比較低。實驗和理論推導(dǎo)都證明隨著帶寬時延乘積的增加,不管是用什么排隊模式,如RED[1]、REM[2]、PI[3],AVQ[4]等算法都使TCP變得越來越低效和不穩(wěn)定。
根據(jù)TCP存在的問題和高帶寬時延乘積網(wǎng)絡(luò)的特點,美國麻省理工大學(xué)的Dina Katabi提出了一種新的Internet擁塞控制框架,該協(xié)議稱為顯式控制協(xié)議XCP(eXplicit Control Protocol)[5]。
1 XCP協(xié)議分析
XCP協(xié)議擴展了ECN顯式擁塞指示機制,它通過在擁塞頭攜帶控制信息極大地改善了因特網(wǎng)的擁塞控制。路由器能通知發(fā)送端瓶頸鏈路的擁塞程度而不是網(wǎng)絡(luò)是否擁塞,發(fā)送端就可以根據(jù)網(wǎng)絡(luò)的狀態(tài)相應(yīng)的增加和減少它的發(fā)送窗口。XCP要求網(wǎng)絡(luò)中的所有路由器和主機都支持XCP協(xié)議。XCP是基于對每一個包的計算來調(diào)節(jié)流量。
1.1 XCP協(xié)議的框架
如圖1所示,發(fā)送方維持擁塞窗口cwnd和往返延遲RTT,路由器監(jiān)控流入它的數(shù)據(jù)率,根據(jù)鏈路帶寬和流入的數(shù)據(jù)率的差值,路由器通過修改擁塞頭的反饋值告知共享這個鏈路的數(shù)據(jù)流增加或減少它的擁塞窗口。
當1個ACK到達時,正反饋值將導(dǎo)致發(fā)送方擁塞窗口增加,負反饋值將隨之減小??梢杂檬?1)表示:
式中,s為1個包的大小。
XCP接收方收到1個包時,將其數(shù)據(jù)包的H_ feedback復(fù)制到其ACK中。其余行為同TCP相同。
1.2 XCP路由器結(jié)構(gòu)分析
XCP路由器包含擁塞控制器和公平控制器,這使得協(xié)議的設(shè)計和分析簡化。
1.2.1 擁塞控制器
擁塞控制器根據(jù)網(wǎng)絡(luò)中的剩余帶寬和延遲來對利用率進行控制,1個控制周期的聚合反饋值Φ為:
式中,α、β是根據(jù)定性分析和試驗得到的常數(shù),分別為0.4、0.226;d是平均RTT;S是根據(jù)鏈路容量和流入的數(shù)據(jù)率計算出來的剩余帶寬;Φ是持續(xù)隊列長度。
1.2.2 公平控制器
公平控制器的主要任務(wù)是根據(jù)擁塞控制器計算出來的可用帶寬為每1個包分配反饋值以達到公平性。
如果Φ>0,每個數(shù)據(jù)流的吞吐量增加相同的值;如果Φ<0,每個數(shù)據(jù)流減少的數(shù)值與它當前吞吐量成正比。
當利用率接近最優(yōu)即Φ≈0時,引入了帶寬重洗概念。在每1個平均RTT內(nèi),至少10%的數(shù)據(jù)流量要根據(jù)AIMD策略進行重新分配。
2 主要仿真腳本分析
拓撲結(jié)構(gòu)通過節(jié)點和鏈路創(chuàng)建API建立,瓶頸鏈路是1個雙向鏈路,2個方向都有1個XCP路由器
xcp源和sink創(chuàng)建方法和創(chuàng)建TCP源的方法相似,具體方法如下:
使用該類建立源端節(jié)點中的xcp代理,然后將其與目的節(jié)點中的xcp接收端連接起來。根據(jù)xcp路由器和xcp源端的變量,GeneralSender類的過程trace-xcp使用中變量跟蹤為xcp源建立跟蹤。
3 仿真性能分析
仿真參數(shù)設(shè)置α=0.4,β=0.266。Bottleneck的鏈路帶寬=200 Mb/s,Bottleneck的延遲時間delay=10 ms,節(jié)點數(shù)=3,節(jié)點S1…S3~R0的鏈路帶寬為200 Mb/s,鏈路延遲時間delay=10 ms。
仿真拓撲圖如圖2所示,該拓撲為3個xcp流共享1個瓶頸鏈路組成的啞鈴型拓撲。
主干鏈路和每個源鏈路都采用200 Mb/s,延遲時間都是10 ms。由圖3可以看出在開始階段,由于只有1個源發(fā)送數(shù)據(jù),主干鏈路基本達到飽和,窗口值成乘式增加。但在5 s時第2個流到來,主干鏈路發(fā)生擁塞,擁塞窗口值開始調(diào)整下降,在大概第6 s就穩(wěn)定了。在第10 s時,第3個流到來,擁塞窗口進一步調(diào)整,開始下降,到第12 s時達到穩(wěn)定值。由此可以看出,在擁塞發(fā)生時XCP協(xié)議可以很快地調(diào)整擁塞窗口值,使傳輸達到穩(wěn)定值,很好地避免了擁塞可能引起的調(diào)整時間增長。同時也保持了良好的公平性,使每個流都獲得了相同的擁塞窗口值。
圖4所示為帶寬利用率圖,可以看出,在沒有發(fā)生擁塞時主干鏈路利用率很快就達到了100%,說明XCP協(xié)議使達到穩(wěn)定利用率的時間很快,提高了達到穩(wěn)定利用率的時間,同時在第5 s和第10 s的時候,第2和3個流分別開始發(fā)送數(shù)據(jù),主干鏈路發(fā)生擁塞,主干鏈路的利用率有所降低,降低了1~2個百分點。由此可以看出,XCP協(xié)議對在擁塞情況下提高鏈路利用率達到了很好的效果,能充分地利用鏈路帶寬,同時達到穩(wěn)定的帶寬利用率的時間也很快。
由圖5可以看出在第5 s之前,沒有發(fā)生擁塞,緩沖隊列值為0;第5 s時,第2個流開始發(fā)送數(shù)據(jù),主干鏈路發(fā)生擁塞,隊列值有所增加;第10 s開始隨著擁塞的變大緩沖隊列值又有所增大;緩沖隊列值隨著擁塞的加劇逐漸增大,但增加的值不大,說明XCP協(xié)議可以保持很小的排隊隊列值,這樣相應(yīng)的排隊時延值也會很小。
本文在ns2下面對XCP協(xié)議的公平性和穩(wěn)定性做了相應(yīng)的仿真分析。仿真結(jié)果表明,高帶寬時延乘積網(wǎng)絡(luò)中XCP協(xié)議不僅能夠保持鏈路的公平性和穩(wěn)定性,而且還能達到鏈路的高利用率,同時,路由器的平均隊列值保持得很小。
參考文獻
[1] FLOYD S, JACOBSON V. Random early detection gateways for congestion voidance[J]. IEEE/ACM Transactions on Networking,1993,1(4):397-416
[2] ATHURALIYA S, LI V H, LOW S H,et al. Rem:Active queue management[J]. IEEE Network, 2001,15(3):48-53.
[3] HOLLOT C, MISRA V, TOWSLEY D, et al. On designing improved controllers for aqm routers supporting tcp flows[J]. In Proc. of IEEE INFOCOM, Apr. 2001.
[4] KUNNIYUR S, SRIKANT R. Analysis and design of an adaptive virtual queue[J]. In Proc. Of ACM SIGCOMM, 2001.
[5] KATABI D. Congestion control for high bandwidth-delay products networks[EB/OL]. In: Proc. ACM SigComm'02, Aug. 2002.