沈 浅
随着互联网的快速发展,网络给人们的生活带来了新的变革,互联网改变了人们的生活习惯、交流方式、行为活动。然而事物在不断发展的过程中必然会出现很多的问题,面对规模与应用越来越复杂且资源有限的互联网,传统的 TCP Reno网络拥塞控制机制已经存在缺陷,不能适应。于是,针对于高带宽、长延时、大容量网络而言,FAST TCP就此应运而生了。
网络中产生拥塞的原因是网络流量、宽带需求大于网络实际的承载能力,如果不去加以控制的话,必然会导致网络数据的拥塞,如图1所示:
图1 网络吞吐量与负载的关系
网络的吞吐量与负载的关系,由图中可以看到:当网络负载较小时,吞吐量的增长与负载成正比关系,吞吐量增长迅速,当负载继续增大到最佳操作点之后,网络吞吐量的增长速度已经慢于负载的增长,这是因为网络进入了中等拥塞状态。此时,虽然网络可以继续应付负载,但是延时已经增加,如图2所示:
图2 响应时间与负载的关系
由于实际负载不可能均匀地分布在网络中[1]。因此,如果某些节点遇到中等程度的拥塞时,其他节点则可能要经受严重的拥塞,这样必然导致丢弃一些流量。另外,当负载增加时,网络将试图通过选择穿过低拥塞区的分组路由来平衡负载。为了完成路由的选择,更多路由分组必须在节点之间交换以避开拥塞区,这种额外开销也降低了可用于数据分组的容量。
当然,拥塞是一个复杂现象,产生的原因也很多。如果不加以控制,将会出现丢包率迅速增加,网络资源利用率低,延时增加等情况,严重的话更可能导致网络的拥塞崩溃。
FAST TCP模型在实现上可以分为4个部分:RTT测量、数据管理、窗口控制和突发控制。这4部分在功能上相互独立,有利于协议的设计和异步升级,如图3所示:
图3 FAST TCP结构图
图3给出了FAST TCP协议的结构,其中各个部分的主要功能为:
RIT测量:利用多位的排队延迟信号或一位的丢弃/未丢弃信号来估计网络拥塞状况。
数据管理:用来控制发送哪些报文。
窗口控制:根据RTT测量模块获得的信息控制发送窗口的大小。
突发控制:决定何时可以发送报文。
FAST TCP[2]使用队列延时作为判断拥塞的主要依据,适当结合了流层和报文层的设计,能够较好地解决传统TCP Reno中存在的问题。我们使用一个通用的如公式来表示TCP协议和TCP变种流层上的模型,公式(1)
其中:ki(t),ui(t)如公式(2)、(3)
通过对比TCP Reno与FAST TCP的ki(wi,Ti)和ui(wi,Ti)表达式,如表1所示:
表1 增益函数、利用率函数和拥塞反馈方法
从表中可以发现FAST TCP[1]由于采用一种基于表达式的实现方式,可以让网络维持在一个动态高效的状态下。
由此,FAST TCP具有如下优点:
第一,FAST TCP能够明确估算出当前状态距平衡状态的程度,以一种公平稳定的方式逐步逼近平衡点。当FAST TCP离平衡点较远时,窗口变化较快,当快接近平衡点时,窗口的调整较小,避免了Reno中因网络变化导致的窗口慢增长和剧烈下降的问题;
第二,通过选用多比特的拥塞衡量方式,提供更多的拥塞信息,减少了因丢包率为拥塞信号带来的数据报层的振荡;
第三,当链路队列容量较大时,使用队列时延作为拥塞衡量的主要方式,能够使网络更稳定,从而减小队列延迟。
为了更好地分析FAST TCP,验证其性能,我们采用现今使用广泛网络仿真器的NS2[3]平台进行实验验证。实验使用的网络拓扑结构图,如图4所示:
图4 仿真实验拓扑结构图
其中R1到Rn是中间路由器节点,S1~Sn是源节点,D1~Dn是目的节点,实验采用Drop Tail队列管理策略。
我们把分组大小设置 1000Byte,随机设置各流发送时间以避免相互影响和干扰,采用FTP作为通过TCP连接传输数据的应用,所有这些实验时间都是500秒。
下面我们将从以下几个方面对实验数据进行分析:
1)效率
效率[4]主要是指带宽的利用率,通过 NS2模拟软件分析,随着带宽的增加,FAST TCP在带宽的利用率上远远超过了传统的TCP Reno。
2)稳定性
协议的稳定性有很多评价方法,在这里,我们利用稳定性指数来做评价,第i个流的稳定性指数定义为其样本标准方差除以平均吞吐量,如公式(4)
公式中稳定性指数越小,说明源端能感觉到的震荡也就越小,如果有多个数据流,则只要进行叠加取平均值就可以得出。通过数据分析,我们发现在稳定性上,FAST TCP也有一定的提高。
3)RTT公平性
公平性[5]是指当网络发生拥塞时,链路中的各个连接能公平地竞争网络资源。拥塞发生必然导致数据包丢失,当网络资源减少,各个数据流必将相互争夺而发生竞争,竞争能力弱的数据流将无法或很少获得网络资源。
通过实验数据分析,FAST TCP协议在RTT公平性方面表现较差,远远低于传统的TCP Reno协议。
在FAST TCP协议模型中,由于假设源端的发送速率不能超过最大链路带宽。链路队列延迟矩阵p(t)能根据窗口大小计算[6]。假设wi(t)=wi,则链路上的延迟pm(t)=pm≥0表示如公式(5)
当FAST TCP流达到平衡状态时,吞吐量表示为如公式(6)
其中ai是FAST TCP在到达平衡位置时源i流在链路中数据包的个数。
在TCP Reno中,每个RTT时间内拥塞窗口加1,导致具有较小 RTT的连接迅速增加窗口从而掠夺网络资源。FAST TCP和TCP Reno不同[7],它对传播时延较大的流并不存在偏见,即使遇到这种情况,发送端为了维持链路中数据包的数量,也会给该流一个合适的拥塞窗口。
FAST TCP是通过估计部分计算的base RTT[8]来调整其窗口大小,传播时延测量的准确性对FAST TCP窗口控制部分至关重要。而当网络发生拥塞改变路由时,会造成传输时延的变化,这种变化是很难捕捉到的,当网络稳定后,新的传播时延大于重路由前的传播时延时,连接的吞吐量会剧烈下降,从而使FAST TCP的连接无法获得公平的带宽分配。
根据以上的分析,FAST TCP在公平性方面存在一些问题:
首先,从FAST TCP窗口更新公式看出,当RTT测量结果不准确时,会使FAST TCP窗口的增长速率相对温和,从而占用较少的带宽,不利于FAST TCP与其它协议竞争带宽。
第二,在 FAST TCP中,具有较短RTT的连接排队时延更短,这可以帮助它在平衡状态时保持较多的数据包,从而有利于去抢夺网络资源。
第三,随着流的不断加入,网络环境时刻变化,由于FAST TCP使用队列延迟的拥塞控制方法,当对base RTT的测量失误时,会对FAST TCP的整体性能造成不良影响,从而影响FAST TCP连接的公平性以及效率。
通过对 FAST TCP的分析,可以看到新算法与传统的TCP Reno相比,确实有了很大进步和提高。但由于每个协议设计的出发点和侧重点的差异,FAST TCP也存在不足,在高带宽时的 RTT公平性方面表现不佳。通过分析,考虑可以通过在原有算法中添加一个公平因子,消除RTT的影响,从而有效地提高算法的公平性表现。
[1]李卫星,严晖.FAST TCP公平性改进研究[J].计算机应用与软件,2010(11):37-39.
[2]Floyd S. High-Speed TCP for large congestion windows[S /OL]. RFC3649, 2003.
[3]David X Wei, C Jin, S H Low, et al. FAST TCP: motivation, architecture, algorithms, performance.[C]IEEE/ACM Trans. Net, 2006, 14:1246-1259.
[4]丁一,汪永琳.长距离高带宽环境下FAST TCP的结构与性能分析[J].科技信息,2006(01):1-3.
[5]王德锁,舒勤.TCP拥塞控制机制在高速网络中的局限性[J].中国测量技术,2007(03):47-67
[6]李士宁,王猛,赵磊.长距离高带宽环境下的 TCP[J]拥塞控制.2006(01):47-50
[7]罗万明,林闯,阎保平.TCP/IP拥塞控制研究[J].计算机学报,2009(01)
[8]刘秋让,倪红波.TCP拥塞控制解决办法分析及评价[J].计算机工程,2008(06):59-61