网络协议|网络协议(TCP拥塞控制)

一 什么是网络拥塞和拥塞发生的原因分析 当网络中传输的分组数目较多的时候,超过了网络负载,造成网络经常丢包,从而导致传输性能下降的一种现象。如图示:
网络协议|网络协议(TCP拥塞控制)
文章图片

网络协议|网络协议(TCP拥塞控制)
文章图片


二 拥塞控制方法 2.1 慢开始算法 和 拥塞避免算法 网络协议|网络协议(TCP拥塞控制)
文章图片


慢开始算法的核心思想:
就是先发送一个较小的报文段,然后后续发送的报文段主键以指数倍数形式增长。
但是我们知道这样以指数倍数形式增长会有一个问题,就是可能某一时候需要发送大量的报文段,最后导致网络拥塞,报文段丢失。所以提出来拥塞避免算法。
对于慢开始算法,我们设置一个阀值,当慢开始算法发送端报文段超过这个阀值,就会进行线性递增(加法增大)报文段,如果到达某个时候开始出现网络拥塞,出现丢包的情况,则重新从头开始递增报文段,但是慢开始算法的阀值就会是出现报文丢失时的发送的报文段的数量的1/2.

当逐渐递增报文段到新的阀值时候,又开始进行第二次拥塞避免算法,进行加法递增,直到新出现网络拥塞的时候,又开始从头开始。
【网络协议|网络协议(TCP拥塞控制)】
2.2 改进的拥塞避免算法(快重传和快恢复结合) 网络协议|网络协议(TCP拥塞控制)
文章图片


核心思想:
开始发送较少的报文段,然后紧接着逐渐以指数倍数形式递增。当达到慢开始算法的阀值的时候,就开始进行第一次拥塞避免,加法递增。当达到某一数量报文段的时候开始网络拥塞(当从接收端收到三个重复确认包的时候,认为是报文段丢失),所以直接进行快速恢复。
快恢复不需要再从头开始进行慢开始算法,而是先根据出现网络拥塞时候的报文段数目的1/2计算新的阀值,然后从这个阀值开始直接进行第二次拥塞避免,进行加法递增。

    推荐阅读