FAST TCP吞吐量的仿真研究
姜蕊1,王林平1,姚高伟2
1华中师范大学计算机科学系,武汉(430000)
2信阳师范学院,河南信阳(464000)
E-mail:lpwang80@126
摘要:FAST TCP是一种针对当前高性能网络的高速、长延迟等特点的TCP拥塞算法。论文首先对传统的TCP Reno进行介绍,讨论其算法与FAST TCP的不同点。然后重点分析FAST TCP体系结构和算法。利用NS2仿真工具测试了传统TCP Reno与FAST TCP在吞吐量方面的性能差异。实验验证了FAST TCP较传统的TCP Reno在吞吐量方面具有很大的性能优势。关键词:拥塞控制;FAST TCP;吞吐量;NS2
0引言
随着互联网规模的不断增长和网络技术的发展,网络趋向于大规模、高速、大容量、应用多元化等方面发展,随之而来的拥塞问题变得越来越严重。网络产生拥塞的原因在于其面对的负载超过了它的处理能力。管理拥塞的第一个环节是检测拥塞。由于检测拥塞的方法不同,因而产生了不同的拥塞控制算法。目前在I
nternet中广泛使用的是端到端TCP Reno拥塞控制算法。在过去,TCP Reno在预防网络拥塞方面一直被认为有显著的性能。TCP Reno随着带宽时延的增大显出诸如在公平性、控制端到端延时、对网络拥塞的反应速度及面对高速网络时的吞吐量等方面问题[1]。FAST TCP是一种新型TCP拥塞控制协议,针对当前的网络特点而设计。与传统拥塞控制算法相比,它具有更好的平衡性,特别当传播时延增加时,它不以惩罚数据流为代价,从而达到更高的公平性。
本文讨论了TCP 拥塞控制的二种算法:TCP Reno和Fast TCP。在不同的延迟环境下,利用NS仿真工具对两种算法进行了仿真,实验结果表明在大带宽高时延环境下,Fast TCP 在吞吐量方面的性能较TCP Reno有很大的提高。
1TCP Reno和FAST TCP的特点
1.1 传统TCP Reno的特点及缺陷
目前的拥塞控制算法大多是建立在慢启动、拥塞避免、快速重传和快速恢复这四个算法基础之上。Reno的拥塞算法采用AIMD形式,发送方维护两个窗口:接收方窗口swnd和拥塞窗口cwnd。当一个连接建立起来的时候,发送方cwnd初始化为该连接上当前使用的最大数据段长度,即min{swnd, cwnd}。窗口在每个RTT 中增大一个报文段的长度,很显然,每一批被确认的突发数据段都会使拥塞窗口加倍。拥塞窗口一直呈指数增长,直至发生超时。这就是慢启动阶段。
除了swnd和cwnd以外,reno还使用了第三个参数:阈值threshold, cwnd增长到阈值时进入拥塞避免阶段。从这个点开始,每一次成功的传输都会使cwnd呈线性增长,而不再是指数增长,当一次超时发生时,即cwnd >threshold, threshold被置为当前cwnd 值的一半,而cwnd 被重置为1。
当cwnd被重新置为1后,又重新进入慢启动阶段,即源端收到3个或3个以上重复ACK时,就断定数据包已经丢失,重传数据包,这就是快速重传和恢复。Reno所采用的这种以丢包时间作为拥塞信号,将不可避免地导致抖动[2]。由于这种不稳定性带来的抖动使得
报文丢弃概率很难估算,实践证明Reno 算法在低速网络中其性能尚可以表现出其优势,但随着网络趋向于高速、长延迟发展,这种过大地减小发送窗口尺寸的做法,极大地降低了TCP 连接的吞吐量,从而导致网络的低利用率。
1.2  FAST TCP
FAST TCP 的结构建立于Data control, Windows control ,Burstiness control 和Estimation 四个独立模块。Data control 部分决定哪些报文需要发送,Windows contro 决定在一次RTT 内发送多少个报文,Burstiness control 决定何时发送这些报文,Estimation 部分为以上三个决定提供信息。FAST TCP 的体系结构不仅面向高速网络的TCP 应用,它还能用来作为设计其它的拥塞控制机制的框架。FAST TCP 的这四块主要组成部分能够被独立设计且异步更新。在以上这四个模块中,最为主要的是Windows control
和Estimation.[3]
TCP 拥塞控制的核心是通过改变一些重要参数来实现的,这些重要参数包括:拥塞窗口(cwnd ),发送窗口(swnd ),往返时延(RTT ),超时重传计数器(RTO )等等。FAST TCP 也是采用调整窗口的大小来进行拥塞控制。FAST TCP 与TCP Reno 最大的区别在与它们的拥塞度量方式不一样,TCP Reno 采用报文丢失作为其拥塞信号,而FAST TCP 是采用排队延迟与丢包率一起作为拥塞反应信号。队列时延比包丢失概率更容易被精确估计,具体体现在以下两点:一方面在大的带宽延迟网络中,丢包事件是小概率事件;另一方面包丢失所提供的采样是粗粒度的信息。队列时延却可以提供多位的信息,且实验的动态性较好,对链路容量的变化及时做出反应,有助于网络的稳定性。
2 算法分析
拥塞控制算法通常从流层和报文层两个方面设计,流层设计旨在达到高利用率、低排队延迟、低丢包率及良好的公平性和稳定性,而报文层通过端到端控制来执行流程目标,对于TCP Reno ,报文层首先被引入,至于流层所涉及的性能,诸如公平性、稳定性、平衡窗口和丢包性能之间的关系是随之以后考虑的问题,而FAST TCP 的报文层是基于流层目标被明确设计。TCP Reno 拥塞算法采用AIMD 形式,源端窗口在每个RTT 中增大一个报文段的长度,而每检测到一个包丢失拥塞窗口减小一半。TCP Reno 的拥塞窗口算法如下:
)
()()(3
2)(1)(t w t q t x t T t W i i i i i −=                                (1)
其中)(t W i 是t 时刻拥塞窗口大小,)(t T i 是源i 报文段的回路响应时间,)(t q i 是t 时刻端到端包丢失率,)(t w i 是平均窗口大小,设置式(1)中)(t W i =0,得出TCP Reno 著名的q 1等
式。该等式在平衡点将包丢失率和窗口大小建立如下关系: 2**23
i i w q =                                            (2)
(1)和(2)描述了TCP Reno 流层的动态和平衡特征。对于TCP Reno 来说流层的平衡问题主要突出在算法(2),因为在大的发送窗口下,端到端的包丢失概率极其小,这使得在实际状况下平衡很难维持,当带宽延迟增加时从(2)中*
**5.1i i i w w q =,即在每个拥塞窗口中,平均丢包数量相对于平衡窗口向相反的比例方向减少。
FAST TCP 算法是采用排队延迟与丢包事件一起作为拥塞反应信号。根据估计Estimation 部分所提供的平均往返时延和平均队列时延信息,FAST TCP 周期性地改变其拥塞窗口,具
体算法如下:
W ← min {2W,(1-γ)W+γ(+W RTT
baseRTT α)}                (3) 其中,γ∈(0,1],baseRTT 是通过观测所得到的最小瞬时RTT 。α是一个非负的协议参数,他决定了均衡态下每个FAST TCP 流在网络各个路由器中所维持的总的报文数目,在这个算法里,每隔20ms 周期性的改变W 值。
实际上(3)的数学模型为:王林事件始末
)()1()),()
()(()1(t w q w t q d t w d t w i i i i i i i i i γαγ−+++=+                      (4) 其中i d 代表传输时延,)(t q i 表示排队延迟,⎩⎨⎧≠==00),(i i i i i i q q w q w ααα
,当),(i i i q w α=α
时,(α为一常量),式(4)可化简为: ))()(()()1(t q t x t w t w i i i i −+=+αγ                            (5)
从上述算法分析可以看到,TCP Reno 在高速长延迟网络中性能出现摆动,其根源是在报文层和流层设计方面出现问题。从报文层来看,由于采用二元拥塞信号不可避免地导致拥塞窗口和瓶颈队列的抖动;从流层来看,算法(1)体现出TCP Reno 的动态特性在大带宽时延下极其不稳定。而FAST TCP 根据
当前到平衡点距离的远近非线性地调整窗口变化速度,其窗口调节比TCP Reno 更加灵活、更加平滑,平衡性能较好,能很好地适应大带宽延迟下的网络环境[4]。
3 仿真实验
本实验是在ns-allinone-2.29仿真环境下,通过TCP Reno 和FAST TCP 在吞吐量方面的仿真结果对比,反映出这两种算法的特点。在网络拓扑中有6个结点,n2-n3为瓶颈链路。
n 0n 2
n 12m s 2m s n5n 3n410ms 2m s
2m
s
图1  仿真实验网络拓扑结构
Fig. 1  The simulation network topology
分别在瓶颈链路时延为10ms 和50ms 两种环境下对Reno 和FAST 两种算法进行仿真,得到了每个算法
在该场景下的吞吐量变化曲线图。
图2 TCP Reno在10ms时延环境下仿真结果
Fig. 2 TCP Reno in 10ms delay environment simulation results
图3 TCP Reno在50ms时延环境下仿真结果
Fig. 3 TCP Reno in 50ms delay environment simulation results
图4 FAST TCP在10ms时延环境下仿真结果
Fig. 4 FAST TCP in 10ms delay environment simulation results
图5 FAST TCP在50ms时延环境下仿真结果
Fig. 5 FAST TCP in 50ms delay environment simulation results
从图2和图4中可以看出,在低延迟(10ms)环境下,Reno和FAST吞吐量相差不大,这是因为FAST TCP是基于长延迟网络的,因此在延迟很小的情况下,FAST性能提高不大,在高延迟(50ms)环境下(图3和图5),Reno对带宽利用率的影响是非常明显的,而FAST TCP 性能的提高就相对大得多,通过这个实验验证了在高延迟网络中,FAST TCP表现出很好的性能。
4结束语
本文通过对比分析TCP Reno和FAST TCP两种算法的特点,阐述了FAST TCP在拥塞控制方面的优势,采用仿真实验验证了FAST TCP在高速长延迟网络中明显优于TCP Reno。
参考文献
[1]Floyd S, Henderson T.The NewReno Modification to TCP’s Fast Recovery Algorithm[S].RFC2582, 1999
[2]Jacobsen V.Berkeley TCP Evolution from 4.3-Thoe to 4.3-Reno[C].In: Proceedings of the Eighteenth
internet Engineering Task Force,University of British Columbia, Vancouver, B C,1990
[3]Cheng Jin, David X Wei, Steven H Low.FAST TCP: Motivation, Architecture,Algorithms,
Performance[C].In: the Proceedings of IEEE Infocom, Hong Kong, 2004- 03
[4]张牧,张顺颐.TCP reno,tcp vegas,fast tcp性能比较研究[J].计算机工程与应用,2007,43(1):19-23
[5]Network simulator(NS- 2.29) [EB/OL].http: //www.isi.edu/NSnam/NS, University of California at Berkeley,
2006.
[6]罗万明,林闯,阎保平.TCP/IP拥塞控制研究[J].计算机学报,2001.24.(1):1-18.
Simulation of FAST TCP throughput
JIANG Rui1,WANG Linping1,YAO Gaowei2
1 Department of Computer Science, Huazhong normal universit, Wuhan(430000)
2 Xinyang normal university, Xinyang ,Henan(464000)
Abstract
FAST TCP is a view of the current high-performance network of high-speed, long delayed, and other characteristics of the TCP congestion algorithm. First of all , the traditional TCP Reno is introduced in the paper,and discuss it and fast tcp of the difference between the algorithm. Then focus on analysis of FAST TCP architecture and algorithms.I use simulation tools NS2 test the performance difference of the throughput between the tranditional TCP Reno and FAST TCP. This experiment proved FAST TCP than the traditional TCP Reno in throughput in a great performance advantages.
Keywords:congestion control; FAST TCP; throughput; NS2
作者简介:
姜蕊(1982—),女,研究生。
通信联系人:王林平,副教授。