摘 要: 對XCP協議的結構和執行算法進行了詳細分析,并對協議做了相應仿真。仿真結果表明,在高帶寬時延乘積網絡中,XCP協議能更好地保持效率、公平性和穩定性。
關鍵詞: XCP;擁塞控制;高帶寬時延乘積
TCP是目前在Internet中使用最廣泛的傳輸協議。它是針對當時帶寬時延乘積較小的網絡設計的,隨著高帶寬和高延遲網絡越來越普遍的應用,TCP算法的效率比較低。實驗和理論推導都證明隨著帶寬時延乘積的增加,不管是用什么排隊模式,如RED[1]、REM[2]、PI[3],AVQ[4]等算法都使TCP變得越來越低效和不穩定。
根據TCP存在的問題和高帶寬時延乘積網絡的特點,美國麻省理工大學的Dina Katabi提出了一種新的Internet擁塞控制框架,該協議稱為顯式控制協議XCP(eXplicit Control Protocol)[5]。
1 XCP協議分析
XCP協議擴展了ECN顯式擁塞指示機制,它通過在擁塞頭攜帶控制信息極大地改善了因特網的擁塞控制。路由器能通知發送端瓶頸鏈路的擁塞程度而不是網絡是否擁塞,發送端就可以根據網絡的狀態相應的增加和減少它的發送窗口。XCP要求網絡中的所有路由器和主機都支持XCP協議。XCP是基于對每一個包的計算來調節流量。
1.1 XCP協議的框架
如圖1所示,發送方維持擁塞窗口cwnd和往返延遲RTT,路由器監控流入它的數據率,根據鏈路帶寬和流入的數據率的差值,路由器通過修改擁塞頭的反饋值告知共享這個鏈路的數據流增加或減少它的擁塞窗口。
當1個ACK到達時,正反饋值將導致發送方擁塞窗口增加,負反饋值將隨之減小??梢杂檬?1)表示:
式中,s為1個包的大小。
XCP接收方收到1個包時,將其數據包的H_ feedback復制到其ACK中。其余行為同TCP相同。
1.2 XCP路由器結構分析
XCP路由器包含擁塞控制器和公平控制器,這使得協議的設計和分析簡化。
1.2.1 擁塞控制器
擁塞控制器根據網絡中的剩余帶寬和延遲來對利用率進行控制,1個控制周期的聚合反饋值Φ為:
式中,α、β是根據定性分析和試驗得到的常數,分別為0.4、0.226;d是平均RTT;S是根據鏈路容量和流入的數據率計算出來的剩余帶寬;Φ是持續隊列長度。
1.2.2 公平控制器
公平控制器的主要任務是根據擁塞控制器計算出來的可用帶寬為每1個包分配反饋值以達到公平性。
如果Φ>0,每個數據流的吞吐量增加相同的值;如果Φ<0,每個數據流減少的數值與它當前吞吐量成正比。
當利用率接近最優即Φ≈0時,引入了帶寬重洗概念。在每1個平均RTT內,至少10%的數據流量要根據AIMD策略進行重新分配。
2 主要仿真腳本分析
拓撲結構通過節點和鏈路創建API建立,瓶頸鏈路是1個雙向鏈路,2個方向都有1個XCP路由器
xcp源和sink創建方法和創建TCP源的方法相似,具體方法如下:
使用該類建立源端節點中的xcp代理,然后將其與目的節點中的xcp接收端連接起來。根據xcp路由器和xcp源端的變量,GeneralSender類的過程trace-xcp使用中變量跟蹤為xcp源建立跟蹤。
3 仿真性能分析
仿真參數設置α=0.4,β=0.266。Bottleneck的鏈路帶寬=200 Mb/s,Bottleneck的延遲時間delay=10 ms,節點數=3,節點S1…S3~R0的鏈路帶寬為200 Mb/s,鏈路延遲時間delay=10 ms。
仿真拓撲圖如圖2所示,該拓撲為3個xcp流共享1個瓶頸鏈路組成的啞鈴型拓撲。
主干鏈路和每個源鏈路都采用200 Mb/s,延遲時間都是10 ms。由圖3可以看出在開始階段,由于只有1個源發送數據,主干鏈路基本達到飽和,窗口值成乘式增加。但在5 s時第2個流到來,主干鏈路發生擁塞,擁塞窗口值開始調整下降,在大概第6 s就穩定了。在第10 s時,第3個流到來,擁塞窗口進一步調整,開始下降,到第12 s時達到穩定值。由此可以看出,在擁塞發生時XCP協議可以很快地調整擁塞窗口值,使傳輸達到穩定值,很好地避免了擁塞可能引起的調整時間增長。同時也保持了良好的公平性,使每個流都獲得了相同的擁塞窗口值。
圖4所示為帶寬利用率圖,可以看出,在沒有發生擁塞時主干鏈路利用率很快就達到了100%,說明XCP協議使達到穩定利用率的時間很快,提高了達到穩定利用率的時間,同時在第5 s和第10 s的時候,第2和3個流分別開始發送數據,主干鏈路發生擁塞,主干鏈路的利用率有所降低,降低了1~2個百分點。由此可以看出,XCP協議對在擁塞情況下提高鏈路利用率達到了很好的效果,能充分地利用鏈路帶寬,同時達到穩定的帶寬利用率的時間也很快。
由圖5可以看出在第5 s之前,沒有發生擁塞,緩沖隊列值為0;第5 s時,第2個流開始發送數據,主干鏈路發生擁塞,隊列值有所增加;第10 s開始隨著擁塞的變大緩沖隊列值又有所增大;緩沖隊列值隨著擁塞的加劇逐漸增大,但增加的值不大,說明XCP協議可以保持很小的排隊隊列值,這樣相應的排隊時延值也會很小。
本文在ns2下面對XCP協議的公平性和穩定性做了相應的仿真分析。仿真結果表明,高帶寬時延乘積網絡中XCP協議不僅能夠保持鏈路的公平性和穩定性,而且還能達到鏈路的高利用率,同時,路由器的平均隊列值保持得很小。
參考文獻
[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.