拥塞控制的基本方法

2021-11-30  本文已影响0人  iOS之文一

计算机网络系列文章汇总

介绍

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

可以通过拥塞控制方法来进行控制,控制的是发送窗口的大小,也就是一次性可以发送多少字节,如果趋向于拥塞,就少发送,如果不发生拥塞,就多发送。

拥塞的危害:
若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降

拥塞的危害.png

拥塞控制

准备条件

原理:
根本原理是当拥塞发生时就将发送窗口减小,当没有发生拥塞时就将发送窗口增大,而是否发生拥塞是通过是否发送超时重传决定的。

假定条件:

概念:

算法认识

慢开始算法(slow-start)

慢开始算法.png

说明:

拥塞避免算法

拥塞避免算法.png

说明:

快重传

有个别报文段在网络中丢失,但是实际上网络并未发生拥塞,此时的发送方超时重传会导致网络误以为发生了拥塞并启动拥塞控制算法,这样就降低了发送效率。因此需要采用快重传。

原理: 快重传算法的根本原理就是让发送方尽早知道发生了个别报文段的丢失,而不需要启动超时重传机制

作用: 提高了传输效率,快重传可以使整个网络的吞吐量提高约20%

快重传.png

说明:

快恢复

在快重传后如何进行拥塞窗口的控制呢?
发送方一旦受到3个重复确认报文,就知道现在只是丢失了个别的报文段,而不是发生了拥塞,所以就启动快恢复算法。

算法过程:

拥塞控制的过程

拥塞控制有两种,一种是超时重传后进入到慢开始阶段,一种是收到3个重复确认报文后开始的快恢复阶段。

超时重传

超时重传.png
快恢复的控制
快恢复的控制.png

过程说明:
1、首先进行慢开始算法,cwnd指数增长
2、一直增长到cwnd>=ssthreesh,也就是达到了慢开始门限阈值,开始进行拥塞避免算法
3、拥塞避免算法是cwnd+1
4、当发生超时重传时,cwnd=1,ssthresh = cwnd/2 = 12
5、此时继续进行慢开始算法,指数增长
6、cwnd达到12后开始拥塞避免算法,cwnd = cwnd+1
7、当cwnd = 16时,收到3个重复确认,此时就需要进行快重传
8、快重传就是ssthresh = cwnd/2 = 16/2 = 8,而cwnd = ssthresh
9、在这个基础上继续开始快恢复。这里的快恢复直接就开始了拥塞避免算法

上一篇 下一篇

猜你喜欢

热点阅读