流量控制&&拥塞控制

一,流量控制

1,什么是流量控制?

TCP根据接收端接受缓冲区的大小,来决定发送数据的快慢,这个机制叫做流量控制。

2,为什么有流量控制?

任何一个接受端接受的能力都是有限的,如果接受缓冲区满了,而发送端依然发送数据,就会导致丢包,而引起超时重传。

这对资源是一种浪费。

3,怎样实现流量控制?

接收端每次都会将自己的缓冲区的大小放入TCP报头的 ‘ 窗口大小’字段, 通过ACK确认应答的来通知发送端。

如果发送端得知接受端的缓冲区很小了,就会减慢发送的频率。

如果得知缓冲区满了,发送端就不再发送数据了,但是会定期(持续计时器)发送一个零窗口探测数据段,

来得知是否可以接受数据了。

二,拥塞控制

1,什么是拥塞控制

在某段时间内,堆网络中某一资源的的需求,超过了该资源所能提供的可用部分,网络性能就要变坏,这叫作拥塞。

TCP 在不知网络的状况时,先发送少量数据进行检查,也就是为之后的大量发送数据探探路,

并根据网络状况逐渐提高传送速率,这就是  慢启动。

2,为什么有拥塞控制

当网络状况非常的拥堵,而发送方贸然发送大量的数据时,就会造成更加严重的拥堵。

3,怎样实现拥塞控制

1,拥塞窗口:

                 发送方维持一个叫做拥塞窗口的状态变量,拥塞窗口的大小取决于网络的拥塞情况。

2,慢开始:

               算法思路:

                           在刚开始发送报文时,先把拥塞窗口置为1(单位字节),每收到一次ACK应答,拥塞窗口就加1,

                          那第一次收到1个ACK应答,窗口大小+1等于2,那么第二次就会收到两个ACK应答,窗口大小+2等于4。

                          这样窗口的大小就是指数增长了。

  3,拥塞避免:(加法增大)

                算法思路:

                           让拥塞窗口缓慢的增大,每经过一个往返时间RTT就是把拥塞窗口增加一个,而不是加倍。

                             这样拥塞窗口是按线性增长规律缓慢增长的。

4,慢开始门限:

                 发送方维持一个叫做慢开始门限的状态变量,慢开始门限的大小取决于网络的拥塞情况。

                 TCP 启动时慢开始门限的大小是

                 当窗口大小>慢开始门限,使用慢开始算法。

                 当窗口大小>慢开始门限,停止使用慢开始算法,而是使用拥塞避免的算法。

5,出现拥塞(超时重传)处理方法:

                 把慢开始门限改为出现拥塞时的发送方发送窗口的大小的一半(乘法减小),将拥塞窗口改为1。

                 重新开始慢启动。

6,快重传:

             算法思想:

                         要求接收方每次收到一个失序的报文段就立即发出重复确认信息(和上次的有序数据报确认信息一样,所以重复)

                         一旦发送方收到3个重复确认信息(不包含第一次有序的数据报的确认信息),就要立即重传丢失的数据,

                         而不要等到自己发送数据时才捎带应答。

7,快恢复:

            算法思想:

                        与块重传相互配合,当发送方收到3个重复的确认信息时,就执行  乘法减小  算法,把慢开始门限减为一半,

                        因为这时快速收到3个重复确认包,所以会认为网络并不是太拥堵,所以不必要执行慢开始,将窗口置为1,

                        将窗口大小置为减半后的慢开始门限。(然后开始执行拥塞避免算法就行)

8,总结:

           慢开始和快恢复是针对网络拥堵情况不同的两种应对措施,慢开始由超时重传触发(网络拥塞情况糟糕),

           快恢复由3次重复确认触发(网络拥塞情况还能接受),这样分而治之,能提高拥塞控制的效率。

 三,流量控制和拥塞控制的联系

1,发送窗口的大小= Min [拥塞窗口  , 接受窗口 ]

2,拥塞控制是防止过度数据注入网络,使网络中的路由器和链路不至于过载,拥塞控制是面向全局的过程。

     具体来说,一旦迟迟未收到确认消息,就会采取应对的措施,而不会去找是哪个网络部分出现了 问题。

3,流量控制往往关心点对点的通信量的控制。

                        

猜你喜欢

转载自blog.csdn.net/wm12345645/article/details/81983980