TCP拥塞控制-慢启动、拥塞避免、快重传、快启动

原创 2016年08月30日 09:29:04

一般原理:发生拥塞控制的原因:资源(带宽、交换节点的缓存、处理机)的需求>可用资源。

作用:拥塞控制就是为了防止过多的数据注入到网络中,这样可以使网络中的路由器或者链路不至于过载。拥塞控制要做的都有一个前提:就是网络能够承受现有的网络负荷。

对比流量控制:拥塞控制是一个全局的过程,涉及到所有的主机、路由器、以及降低网络相关的所有因素。流量控制往往指点对点通信量的控制。是端对端的问题。


    拥塞窗口:发送方为一个动态变化的窗口叫做拥塞窗口,拥塞窗口的大小取决于网络的拥塞程度。发送方让自己的发送窗口=拥塞窗口,但是发送窗口不是一直等于拥塞窗口的,在网络情况好的时候,拥塞窗口不断的增加,发送方的窗口自然也随着增加,但是接受方的接受能力有限,在发送方的窗口达到某个大小时就不在发生变化了。

    发送方如果知道网络拥塞了呢?发送方发送一些报文段时,如果发送方没有在时间间隔内收到接收方的确认报文段,则就可以人为网络出现了拥塞。

    慢启动算法的思路:主机开发发送数据报时,如果立即将大量的数据注入到网络中,可能会出现网络的拥塞。慢启动算法就是在主机刚开始发送数据报的时候先探测一下网络的状况,如果网络状况良好,发送方每发送一次文段都能正确的接受确认报文段。那么就从小到大的增加拥塞窗口的大小,即增加发送窗口的大小。

    例子:开始发送方先设置cwnd(拥塞窗口)=1,发送第一个报文段M1,接收方接收到M1后,发送方接收到接收方的确认后,把cwnd增加到2,接着发送方发送M2、M3,发送方接收到接收方发送的确认后cwnd增加到4,慢启动算法每经过一个传输轮次(认为发送方都成功接收接收方的确认),拥塞窗口cwnd就加倍。

    


    拥塞避免:为了防止cwnd增加过快而导致网络拥塞,所以需要设置一个慢开始门限ssthresh状态变量(我也不知道这个到底是什么,就认为他是一个拥塞控制的标识),它的用法:

                   1. 当cwnd < ssthresh,使用慢启动算法,

                   2. 当cwnd > ssthresh,使用拥塞控制算法,停用慢启动算法。

                   3. 当cwnd = ssthresh,这两个算法都可以。


   拥塞避免的思路:是让cwnd缓慢的增加而不是加倍的增长,每经历过一次往返时间就使cwnd增加1,而不是加倍,这样使cwnd缓慢的增长,比慢启动要慢的多。

    无论是慢启动算法还是拥塞避免算法,只要判断网络出现拥塞,就要把慢启动开始门限(ssthresh)设置为设置为发送窗口的一半(>=2),cwnd(拥塞窗口)设置为1,然后在使用慢启动算法,这样做的目的能迅速的减少主机向网络中传输数据,使发生拥塞的路由器能够把队列中堆积的分组处理完毕。拥塞窗口是按照线性的规律增长,比慢启动算法拥塞窗口增长块的多。

  实例:1.TCP连接进行初始化的时候,cwnd=1,ssthresh=16。

             2.在慢启动算法开始时,cwnd的初始值是1,每次发送方收到一个ACK拥塞窗口就增加1,当ssthresh =cwnd时,就启动拥塞控制算法,拥塞窗口按照规律增长,

             3.当cwnd=24时,网络出现超时,发送方收不到确认ACK,此时设置ssthresh=12,(二分之一cwnd),设置cwnd=1,然后开始慢启动算法,当cwnd=ssthresh=12,慢启动算法变为拥塞控制算法,cwnd按照线性的速度进行增长。 

           

     AIMD(加法增大乘法减小)

          1. 乘法减小:无论在慢启动阶段还是在拥塞控制阶段,只要网络出现超时,就是将cwnd置为1,ssthresh置为cwnd的一半,然后开始执行慢启动算法(cwnd<ssthresh)。

         2. 加法增大:当网络频发出现超时情况时,ssthresh就下降的很快,为了减少注入到网络中的分组数,而加法增大是指执行拥塞避免算法后,是拥塞窗口缓慢的增大,以防止网络过早出现拥塞。

       这两个结合起来就是AIMD算法,是使用最广泛的算法。拥塞避免算法不能够完全的避免网络拥塞,通过控制拥塞窗口的大小只能使网络不易出现拥塞。

   

      快重传:

      快重传算法要求首先接收方收到一个失序的报文段后就立刻发出重复确认,而不要等待自己发送数据时才进行捎带确认。接收方成功的接受了发送方发送来的M1、M2并且分别给发送了ACK,现在接收方没有收到M3,而接收到了M4,显然接收方不能确认M4,因为M4是失序的报文段。如果根据可靠性传输原理接收方什么都不做,但是按照快速重传算法,在收到M4、M5等报文段的时候,不断重复的向发送方发送M2的ACK,如果接收方一连收到三个重复的ACK,那么发送方不必等待重传计时器到期,由于发送方尽早重传未被确认的报文段。

 

      快恢复:

       1. 当发送发连续接收到三个确认时,就执行乘法减小算法,把慢启动开始门限(ssthresh)减半,但是接下来并不执行慢开始算法。

       2. 此时不执行慢启动算法,而是把cwnd设置为ssthresh的一半, 然后执行拥塞避免算法,使拥塞窗口缓慢增大。

      

摘抄自:计算机网络(谢希仁第五版)。





版权声明:本文为博主原创文章,未经博主允许不得转载。

TCP - 流量控制 and 拥塞控制

未完待续。。 流量控制 拥塞控制 1 慢启动 - Slow Start 和 拥塞避免 - Congestion Avoidance 2 快重传 - Fast Retransmission 和 快恢复 ...
  • qing101
  • qing101
  • 2015年09月22日 14:31
  • 4194

TCP的拥塞控制

1.引言        计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。 ...
  • sicofield
  • sicofield
  • 2013年08月01日 22:08
  • 61172

TCP/IP详解--拥塞控制 & 慢启动 快恢复 拥塞避免

TCP的拥塞控制 1.  拥塞:即对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷的增大而下降。     拥塞控制:防止过多的数...
  • Kinger0
  • Kinger0
  • 2015年09月04日 10:00
  • 18757

TCP基础知识:(一)TCP拥塞控制

1、拥塞的代价 2、端到端的拥塞控制 3、TCP发送方如何限制它向其连接发送流量的速率 4、TCP发送方如何感知在它和目的地之间的路径上出现了拥塞? 5、TCP发送方怎么控制其发送速率? 6、TCP拥...
  • zxx910509
  • zxx910509
  • 2016年05月05日 11:17
  • 1119

TCP拥塞控制

TCP拥塞控制是让每个发送方通过感知的网络拥塞程度来控制发送速率来解决拥塞。 在TCP连接的每一端都有一个一个接收缓存、一个发送缓存、还有几个变量LastByteRead、RcvWin、CongWi...
  • Dillon2015
  • Dillon2015
  • 2017年01月10日 18:34
  • 791

TCP拥塞控制原理

TCP拥塞控制原理: TCP使用的是端到端的拥塞控制而不是网络辅助的拥塞控制,因为IP曾不想端系统提供显示的网络拥塞反馈。 TCP采用的方法是让每一个发送方根据所感知到的网络拥塞的程度,来限制其...
  • Hearthougan
  • Hearthougan
  • 2016年04月24日 00:16
  • 4520

网络基本功:TCP拥塞控制机制

拥塞             计算机网络中的带宽,交换节点中的缓存和处理机制,都是网络资源。在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥...
  • gogoky
  • gogoky
  • 2016年04月30日 21:41
  • 7242

TCP拥塞控制

计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。        拥塞控制就...
  • rabbit_in_android
  • rabbit_in_android
  • 2015年11月26日 10:20
  • 656

TCP的流量控制和拥塞控制

TCP的流量控制和拥塞控制 TCP的流量控制 1. 利用滑动窗口实现流量控制     如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送...
  • liaoqianwen123
  • liaoqianwen123
  • 2014年05月09日 22:05
  • 17310

距离向量算法

路由: 1、数据包从源地址到目的地址所经过的路径,由一系列路由结点组成。 2、某个路由结点为数据报选择投递方向的选路过程。路由结点: 一个具有路由能力的主机或路由器,它维护一张路由表,通过查询路...
  • LF_2016
  • LF_2016
  • 2017年03月05日 16:05
  • 3550
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TCP拥塞控制-慢启动、拥塞避免、快重传、快启动
举报原因:
原因补充:

(最多只允许输入30个字)