摘 要:对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.