您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > TCP中Tahoe与Reno拥塞控制算法的比较
TCP中Tahoe与Reno拥塞控制算法的比较S131010038,李腾,通信2班摘要:Internet的快速发展对网络的通信提出了更高的要求,拥塞控制已成为网络能否有效可靠运行的关键技术。本文对TCPTahoe和TCPReno两种基本拥塞控制的原理和性能做了简要分析,并讨论了TCP拥塞控制研究的发展趋势。关键词:拥塞控制,TCPTahoe,TCPReno。Abstract:TherapiddevelopmentoftheInternetputforwardhigherrequesttonetworkcommunication,socongestioncontrolhasbecomeankeytechnologyinrelatedtotheeffectiveandreliableoperationofthenetwork.Inthispaper,theprinciplesandperformanceoftheTCPTahoeandTCPRenocongestioncontrolarebrieflyanalysized,andtheresearchtrendofthedevelopmentoftheTCPcongestioncontrolisdiscussesed.Keywords:Congestioncontrol,TCPTahoe,TCPReno.一、引言随着互联网技术的迅猛发展,越来越多的用户使用网络中的资源。虽然网络带宽等资源也在不断增加,但与日益增长的用户数量比起来,仍然不能满足用户的需求。网络拥塞问题逐渐露出来网络拥塞已经成为制约网络发展和应用的一个瓶颈。如何更好的预防和控制拥塞,使网络具有低丢包率和低时延的同时达到资源的最大效用,是近年来网络研究的热点问题。拥塞是指在要求网络传输的分级数量开始接近网络的分组处理(传输)能力时,通信网络不能很好地提供网络通信服务来满足用户要求的情况。拥塞的表现是分组丢失,分组传输往返时间太长以及上层应用性能下降等[1]。拥塞产生与以下因素有关:(1)网络带宽不足。(2)存储空间不够。(3)处理器处理能力弱。但单一的增加带宽,扩大存储空间和提高处理能力,并不能解决拥塞问题,相反可能会出现更严重的拥塞,所以在网络中要进行必要的拥塞控制。拥塞控制就是采取一定的策略,将网络中的分组维持在一定的水平,维持尽可能高的吞吐量[2]。TCP已成为应用最为广泛的传输协议,TCP的拥塞控制其成功的关键,近年来一直是一个活跃的研究领域。TCP拥塞控制的主要目标是控制进入网络的数据流量,保证通信网络不会被用户发送的数据流阻塞,并合理地使用瓶颈资源。本文首先简单介绍对TCPTahoe拥塞控制算法和TCPReno拥塞控制算法两种算法做了简要分析,并对其对网络的控制拥塞的作用做了比较,然后对基于窗口的TCP拥塞控制存在的问题做个简单探讨与展望。二、拥塞控制算法TCP的拥塞控制是基于窗口的。流量控制由两个窗口来行:发送端的拥塞窗口(CWND)和接收端的通告窗口(RCVWND)。发送端一次发送一个窗口的数据,禁止发送大于min(RCVWND,CWND}的窗口大小的数据进入网络。TCP用于拥塞控制的主要参数有:(1)拥塞窗口(CWND):描述源端一次最多能发送的数据量。(2)慢启动阈值(ssthresh):拥塞控制中慢启动阶段和拥塞避免阶段的分界点,初始值通常设为65535Bytes。(3)回路响应时间(RTT,RoundTripTime):一个TCP数据包从源端发送出去一直到源端收到宿端的ACK确认包的时间间隔。(4)超时重传计数器(RTO,RetransmitTimeOut):指一个数据包从发送到失效的时间间隔,是判断数据包是否丢失,网络是否拥塞的重要参数,通常设为2RTT或5RTT。(5)快速度重传阈值(tcprexmtthresh):源端用来判断是否进行快速重传的一个分界值。是指源端收到的重复ACK确认包的个数。当此个数大于tcprexmtthresh时,源端进入快速成重传阶段.。tcprexmtthresh的值通常为3。2.1、TCPTahoeTahoe包括慢启动、拥塞避免和快速重传。在慢启动阶段:起初,发送端发送一个TCP报文段数据(通常是512字节),即CWND=1TCP报文段,以后当发送端每收到一个来自接收端的确认(ACK),就对CWND加1,故CWND在慢启动阶段每一个周转时间(RTT)内加倍一次。当CWND增加到慢启动闭值SSTHRESH(通常设为64K字节),就进入拥塞避免阶段。在拥塞避免阶段:发送端每收到一个确认,就对CWND加1/CWND。所以,慢启动阶段和拥塞避免阶段CWND相应每个RTT,分别是一个指数函数和一个线性函数。其拥塞控制算法描述如下:(1)每次收到一个新报文的确认后ifCWNDssthresh,setCWND=CWND+1;elsesetCWND=CWND+1/[CWNDw];(2)如果测得一个报文丢失,则setssthresh=CWND/2setCWND=1在一个RTT内最多重发一个报文,其中CWND表示可用窗口大小ssthrsh表示慢启动门限值,是慢启动进入拥塞避免的分界值。该算法的基本思想是:源端通过线性增加速率来探测网络中的空闲容量,而当检测到拥塞时则以指数递减它的速率,拥塞是在源端检测到丢包时被确认[3]。连接建立的初始阶段,窗口大小被设置为一个包大小,然后源每收到一个确认帧就将窗口加1,这使得窗口大小在每个RTT内加倍此过程称为慢启动,当窗口达到一定门限值时源端进入拥塞避免阶段。该阶段的源端每收到一个确认帧将窗口增加当前窗口大小的倒数这使窗口,每个RTT增加1该过程称为加性增长,决定由慢启动阶段转移到拥塞避免阶段的门限值说明了网络中的可用容量而且该值在检测到丢包时被调整每当检测到一个丢包时源端将慢启动门限值设为当前窗口的一半重传丢失的包,将窗口重置为1重新进入慢启动。如图1所示。图1、TCPTahoe的慢启动和快速重传2.2、TCPReno在TCPTahoe的基础上进行两个方面改进后的算法称为TCPReno。Reno修改Tahoe的快速重传为快速恢复,可以更有效的恢复丢包从检测到丢包到收到重传包的确认帧这段时间称为快速重传/快速恢复阶段。在TCPTahoe中窗口大小在fr/fr阶段保持不变,也即在这段时间内不能传送新数据包。这使得一个新的包只有在一个RTT后才能被传输,而且当重传的包到达接收端时,从源端到目的端的通道被清空,路径上的一些路由器处于空闲状态从而导致数据包的丢失。第一个改进允许Reno源在fr/fr阶段收到一个重复的确认帧时暂时将窗口加1。因为重复的确认帧表示一个包已经离开网络,当源在等待一个重传包的确认帧时。如果还有可用的窗口,可以在fr/fr阶段传送一个新包,第二个改进在fr/fr结束时将窗口设为fr/fr初始阶段窗口值的一半,直接进入拥塞避免阶段。因此,TCPReno只有在连接初始阶段和超时检测到丢包时进入慢启动阶段,一般很少进入慢启动状态。如图2所示。图2、TCPReno的慢启动和快速重传与恢复三、问题与展望基于窗口的TCP拥塞控制存在的问题。(1)公平性问题:在Internet中存在有连接的TCP和无连接的UDP在发生拥塞时,会采用不同的措施。TCP采用了拥塞控制机制,当发送端收到的ACK超时或3个相同的ACK时,就认为网络发生拥塞,同时采取相应的拥塞控制策略,以缓解拥塞[4]。而无连接的TCP没有采用拥塞控制机制,当发生拥塞时,源端不会减少数据包发送,这样TCP会占用更多的网络资源,而TCP则获得越来越少的网络资源,形成网络资源分配的不公平,这种不公平反过来又进一步加重网络拥塞,甚至导致拥塞崩溃。(2)恢复时间长:高带宽下,源端为获得较高的单流吞吐量,必须保持一个较大的拥塞窗口。然而产生拥塞时,目前TCP拥塞避免算法中的窗口调节机制,需要较长的恢复时间,不能有效地利用可用带宽,严重降低了网络资源的利用率。(3)发送窗口受速率限制。拥塞控制并不是一个孤立的问题,它涉及到用户要求、网络端系统、网络组成、网络式作模式,需要各部分协同工作,在算法上要考虑到滑窗机制、路由器调度算法、网络底层协议之间的相互影响。TCP拥塞控制协议通常是许多因素综合考虑的折中,公平性和整体效率的折中,复杂性和性能之间的折中。现有拥塞控制思路和方法在不同环境中不一定是最好的控制策略,尤其是在新的网络和通信协议下,都有很多需要改进的地方,有很多的工作要做。参考文献[1]VanJacobson,MichaelJ.Karels.CongestionAvoidanceandControl.November,1988.[2]林开司,佘东.计算机网络拥塞控制综述.SCIENCE&TECHNOLOGYINFORMATION,2008.[3]包骏杰,王刚,李波.TCP拥塞控制综述.JournalofChongqingCollegeofEducatio.2003.[4]武航星,慕德俊,潘文平,乔梅梅.网络拥塞控制算法综述.计算机科学.2007.
本文标题:TCP中Tahoe与Reno拥塞控制算法的比较
链接地址:https://www.777doc.com/doc-2851657 .html