当延迟出现时,为防止通讯双方不断重传,在网络中注入过多数据,所以建立了拥塞控制机制。而拥塞控制包括四个算法:慢启动,拥塞避免,快重传,快恢复。
先来介绍一些背景:
1.TCP有一个计时器,可以判断超时。
2.快速重传指接收方收到失序报文段后立刻发出重传确认。而快速重传算法规定发送方一旦收到3个重复确认就立即重传,不用等到计时器超时。
以上是背景。
建立连接后首先进入慢启动算法,以1为拥塞窗口,每次传输成功将窗口大小翻倍,直到窗口大小达到阈值。
达到阈值后开始拥塞避免算法,控制窗口的递增速度从翻倍的指数级减小为线性增长。
当拥塞出现时,分两种情况:计时器超时和收到3个重复确认。
情况一说明网络情况很糟糕,所以将窗口大小设置为1,阈值减半,重新开始慢启动和拥塞避免。
情况二说明情况没有那么糟,所以开始快速恢复算法,即阈值减半,设置窗口大小为阈值+3.