通俗易懂说网络-流量控制和拥塞控制

1. 流量控制

1.1 定义

TCP流量控制指的是:
让发送方发送数据报的速度不要太快,让接收方来得及接收。

1.2 实现

利用滑动窗口机制可以很方便的在TCP链接上实现发送方的流量控制。
TCP的窗口单位是字节,不是报文段。
滑动窗口机制参考: https://blog.csdn.net/lqy971966/article/details/89104191

2. 拥塞控制

2.1 定义

拥塞控制指的是:
为了防止过多的数据注入到网络中,从而避免网络中的路由器或链路不至过载。

2.2 前提

网络能够承受现有的网络负荷。

2.3 四种方法

2.3.1 慢启动(slow-start)

慢启动指的是:
主机开始发送报文的时候先试探一下网络状况,从小到大的增加拥塞窗口大小,即增加发送窗口的大小。

例子:
开始发送方设置拥塞窗口=1,然后发送报文,接收方接收并确认后,
把窗口增加到2……然后增加到4,8……直到最佳窗口。

2.3.2 拥塞避免(congestion avoidance)

拥塞避免指的是:
让拥塞窗口cwnd缓慢的增加而不是像慢启动一样成倍的增加,这样使得cwnd缓慢的增长。其中如果出现网络拥塞,就把慢启动开始门限设置为发送窗口的一半。

2.3.3 快重传(fast retransmit)

快重传指的是:
要求接收方每收到一个失序报文后就立即发出重复确认。
(为的是使发送方及早的知道有报文没有到达接收方,而不是等自己发送数据的时候才进行捎带确认。)

2.3.4 快恢复(fast recovery)

快恢复指的是:
当发送方连续收到三个确认时,就执行乘法减小算法,把慢启动开始门限(ssthresh)减半,但是接下来并不执行慢启动算法。而是把cwnd拥塞窗口设置为开始门限(ssthresh)的一半,然后执行拥塞避免算法,使拥塞窗口增大。

猜你喜欢

转载自blog.csdn.net/lqy971966/article/details/89133277