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