关于tcp拥塞控制的分析

上传人:今*** 文档编号:105836984 上传时间:2019-10-13 格式:DOC 页数:14 大小:314.50KB
返回 下载 相关 举报
关于tcp拥塞控制的分析_第1页
第1页 / 共14页
关于tcp拥塞控制的分析_第2页
第2页 / 共14页
关于tcp拥塞控制的分析_第3页
第3页 / 共14页
关于tcp拥塞控制的分析_第4页
第4页 / 共14页
关于tcp拥塞控制的分析_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《关于tcp拥塞控制的分析》由会员分享,可在线阅读,更多相关《关于tcp拥塞控制的分析(14页珍藏版)》请在金锄头文库上搜索。

1、计算机协议系统课程关于TCP拥塞控制的分析 院系: 计算机科学与信息工程学院 班级: 网络工程(1)班 学号: * 姓名: * 2目 录一、引言3二、产生拥塞的原因3三、TCP拥塞控制原理4四、TCP拥塞控制算法54.1慢开始和拥塞避免54.2 快速重传和快速恢复74.3 其他算法8 4.3.1 TCP Tahoe8 4.3.2 TCP Reno9 4.3.3 TCP New Reno10 4.3.4 TCP SACK10五、随机早期检测RED11六、结论13参考文献14 一、引言拥塞控制现在是Internet研究的热点,在最初的TCP协议中只有流量控制而没有拥塞控制,接收端利用TCP报头将接

2、收能力通知发送端。这样的控制机制只考虑了接收端的接收能力,而没有考虑网络的传输能力,导致了网络崩溃的发生。在计算机网络中的链路容量,交换节点中的缓冲区和处理机等,都是网络的资源。在某段时间,若对网络中的某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况就叫做拥塞。若网络中有许多资源同时产生拥塞。网络的性能就要明显变差,整个网络的吞吐量就将随输入的负荷的增大而下降。网络中的拥塞来源于网络资源和网络流量分布的不均衡性。拥塞不会随着网络处理能力的提高而消除。拥塞控制算法的分布性、网络的复杂性和对拥塞控制算法的性能要求又使拥塞控制算法的设计具有很高的难度。到目前为止,拥塞问题还

3、没有得到很好的解决。因此对拥塞控制的讨论是一个很重要的问题。二、产生拥塞的原因由于互联网采用无连接的统计服用报文传送模式,当网络中存在过多的报文时就会产生拥塞现象。拥塞发生的根本原因在于用户提供给网络的负载大于网络资源容量和处理能力。其典型表现就是数据包时延增加、丢弃概率增大、上层应用系统性能显著下降等。网络产生拥塞的直接原因主要有以下4个方面:1.存储空间相对不足。当多个输入数据流共用一个端口时,在这个端口处就会形成排队。如果没有足够的存储空间,数据包就会被丢弃。对突发数据流更是如此。增加存储空间在某种程度上可以缓解这一矛盾。但另一方面,如果路由器的存储量非常大,拥塞则会变得更坏,因为网络中

4、的数据包在经过长时间排队并完成转发时,均已远远超时,源端会认为它们已经被丢弃,但实际上,这些数据包还在继续向下一个路由器转发,从而造成网络资源的浪费,加剧了网络拥塞。2.带宽容量不足。低速链路对高速数据流的输入也会产生拥塞。任何信道带宽最大值(即信道容量)为C=Blog2(1+S/N)(N为信道白噪声的平均功率,S为信源的平均功率,B为信道带宽)。要求所有信源发送的速率R必须小于或等于信道容量C。如果R大于C,则在网络低速链路处会形成带宽瓶颈,一旦当其满足不了所有通过它的源端带宽的需求时,网络就会发生拥塞。3.链路与CPU的处理速度不匹配, 造成处理能力弱,速度慢从而引起拥塞。如果路由器的CP

5、U在执行排队缓存,更新路由表等功能时,处理器速度跟不上高速链路,也会产生拥塞。同样,低速链路对高速CPU也会产生拥塞。4.网络流量分布不均衡。拥塞总是发生在网络中资源相对短缺的位置。拥塞发生位置的不均衡反映了了Internet本身的不均衡性。网络流量的不均衡表现在不同时刻,各种需求往往导致某些节点上的资源受到大量的访问,而大量存在的客户服务器模式也加剧了流量分布不均的产生。三、TCP拥塞控制原理Internet在过去的几十年中经历了飞速的发展,通信量的增加使得网络日益拥塞。据统计,Internet上95%的数据流使用的是TCP/IP拥塞控制机制,它在保证网络的鲁棒性和稳定性方面起着至关重要的作

6、用。因此,研究拥塞控制机制对网络的正常运行具有重要的意义。网络拥塞会对端系统造成明显的问题,网络可用性及吞吐率下降而响应时间拉长。在交换网络中,可通过动态选路将负载均匀分布到交换机和链路上来缓解拥塞。类似的,网络选路算法可以将负载分布到路由器和网络上来缓解拥塞。然而,这些措施只在处理不平衡负载和短期通信量聚集的情况下有效,最终拥塞只能通过将进入网络的数据总量限制为网络可以承载的量的有效方法控制,这是所有的拥塞机制的根本目的。在介绍TCP拥塞控制的算法之前,首先要知道TCP拥塞控制中的一些主要参数:(1) 拥塞窗口(cwnd):发送端在拥塞控制下一次最多能发送的数据包的数量,是拥塞控制的关键参数

7、。(2) 通告窗口(awnd):接收端给发送端预设的发送窗口的大小,它只在TCP连接建立的初始阶段发挥作用。(3) 慢启动门限(ssthresh):慢启动阶段和拥塞避免阶段的分界点,初始值通常设置为65535bit。(4) 往返时延(RTT):一个TCP数据包从发送端发送到收到接收端发送的对该数据包的确认ACK的时间间隔。(5) 超时重传计时器(RTO):数据包从发送到失败的时间间隔,是判断数据包丢失与否和网络是否拥塞的重要参数,通常为RTT的2倍或者5倍。四、TCP拥塞控制算法拥塞控制算法包含拥塞避免和拥塞控制这两种不同的机制,拥塞避免是“预防”机制,它的目标是避免网络进入拥塞状态,是网络运

8、行在高吞吐率、低延迟的状态下;拥塞控制是“恢复”机制,它用于把网络从拥塞状态中恢复出来。TCP的拥塞控制由4个核心算法组成,分别为:慢启动、拥塞避免、快速重传、快速恢复。4.1慢开始和拥塞避免慢启动和拥塞避免算法必须被TCP发送端用来控制正在向网络输送的数据量。为了实现这些算法,必须向TCP每连接状态加入两个参量。拥塞窗口(cwnd)是对发送端收到确认(ACK)之前能向网络传送的最大数据量的一个发送端限制,接收端通知窗口(rwnd)是对未完成数据量的接收端限制。cwnd和rwnd的最小值决定了数据传送。cwnd的无限增长必将引起网络拥塞,于是引入一个状态变量:慢启动阈值ssthresh,被用来

9、确定是用慢启动还是用拥塞避免算法来控制数据传送。发送方维持一个拥塞窗口cwnd的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口,另外考虑到接受方的接收能力,发送窗口可能小于拥塞窗口。发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。慢开始算法的原理:在主机刚刚开始发送报文段时可先设置拥塞窗口cwnd=1,在每收到一个对新的报文段的确认后,将拥塞窗口加1,用这样的方法逐步增大发送端的拥塞窗口cwnd,可以使分组注入到网络的速率更加

10、合理。这里用报文段的个数的拥塞窗口大小举例说明慢开始算法,实时拥塞窗口大小是以字节为单位的。如下图:图4-1-1 发送方每收到一个确认就把窗口cwnd加1为了防止cwnd增长过大引起网络拥塞,还需设置一个慢开始门限ssthresh状态变量。ssthresh的用法如下:当cwndssthresh时,改用拥塞避免算法;当cwnd=ssthresh时,既可以使用慢开始算法,也可以使用拥塞避免算法。拥塞避免算法的思路让拥塞窗口缓慢增长,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍。这样拥塞窗口按线性规律缓慢增长。无论是在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞

11、,就把慢开始门限设置为出现拥塞时的发送窗口大小的一半。然后把拥塞窗口设置为1,执行慢开始算法。如下图: 图4-1-2 慢开始和拥塞避免算法的实现举例这样做的目的就是要迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够的时间把队列中积压的分组处理完毕。拥塞避免是说在拥塞避免阶段,把拥塞窗口控制改为按线性规律增长,使网络比较不容易出现拥塞,并不是指完全避免了拥塞。4.2 快速重传和快速恢复快速重传要求接收方在收到一个失序的报文段后就立即发出重复确认,而不要等到自己发送数据时捎带确认。快速重传算法规定,发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待设置的重

12、传计时器时间到期。如下图所示:图4-2-1 快速重传过程示意图快重传配合使用的还有快恢复算法,有以下两个要点:当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把ssthresh门限减半,但是接下去并不执行慢开始算法。考虑到如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方现在认为网络可能没有出现拥塞。所以此时不执行慢开始算法,而是将cwnd设置为ssthresh的大小,然后执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。“乘法减小”是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次拥塞),就把慢开始门限值ssthresh设置为当前拥塞窗口值的一半。当

13、网络频繁出现拥塞时,ssthresh值就下降得很快,以大大减少注入到网络中的分组数。“加法增大”是指执行拥塞避免算法后,在收到对所有报文段的确认后,就把拥塞窗口cwnd增加一个MSS大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。如下图:图4-2-2 从连续收到三个重复确认转入拥塞避免4.3 其他算法4.3.1 TCP TahoeTCP Tahoe指的是1988年加入Van Jacobson提出的慢启动、拥塞避免和快速重传算法之后的4.3BSD或类似的TCP实现版本。正如RFC793所要求的,Tahoe采用了递增式肯定重传策略和go-back-n模型(滑动窗口算法)。在慢启动阶段,拥塞窗口(

14、cwnd)随着确认的到来以指数方式递增(这种以ACK来触发TRANSMIT的机制,被VJ称为ACK clocking,或self-clocking),直到到达阀值ssthresh(slow start threshold);之后TCP进入拥塞避免阶段,cwnd每隔RTT以线性方式递增1个单位。如果连续收到3个重复确认,TCP不等重传定时器溢出,马上重传丢失的报文段,这称为快速重传;之后TCP返回慢启动状态。4.3.2 TCP RenoTCP Reno在快速重传之后进入快速恢复(而不是TCP Tahoe采用的慢启动)。VJ给出的原因是,接收方发送重复确认不仅仅意味着有报文段丢失了,还意味着有(其

15、它的)报文段离开了网络,到达了接收方的缓冲区(self-clocking),也就是说,网络“管道”空出了新的位置,这样TCP可以继续发送新的报文段(当然cwnd应该减小一些)。另一个不进入慢启动的原因是,dup ACKs的到达已经使得发送方的确认“时钟”得到了同步。 快速重传和快速恢复通常一起实现:1. 收到第3个重复确认之后,令ssthresh = max(FlightSize/2,2*SMSS);2. 重传丢失的报文段,并令cwnd = ssthresh +3;3. 对每个dupACK,cwnd += SMSS,此时,窗口大小允许的话发送一个报文段;4. 当确认了新数据的ACK到达时,令cwnd=ssthresh,即进入拥塞避免状态。 在TCP Reno是在TCP Tahoe之后推出的T

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号