定义:对网络中的某一资源的需求超过了该资源的所能提供的可用部分,网络性能就会变坏,如果不进行拥塞控制,吞吐量就会因为网络中不断产生死锁而降低。
拥塞窗口(CWND):是一个状态变量,大小取决于当前网络的拥塞程度,且动态变化。
当网络没有拥塞时,CWND会增大一些;当出现网络拥塞的时候,CWND会随之减少。
TCP四种拥塞控制算法:
慢开始:初始CWND的值很小,设定为1,不断地成倍增加,这一段叫做慢开始,当达到一定数值时,转为线性增长。
拥塞避免:CWND线性增长这个过程就是拥塞避免,当增长到网络中发生超时重传时,CWND重回到1,继续慢开始。
快重传:要求接收方不要等待自己发送数据时才捎带确认,而是要立即发送确认。当接收方收到失序的报文时,仍发送收到前一个完整报文的确认,当发送方收到三个重复确认时,立即重新发送失序的报文。
快恢复:发送发一旦收到了三个重复确认,也就知道了只有个别报文段丢失,于是不启动慢开始算法,而是将拥塞避免时限和CWND下降为一半,开始执行拥塞避免算法。
假设:1.数据是单方向传送的,另一方只传送确认。
2.接收方有足够大的缓存空间,因而发送窗口的大小只由网络的拥塞程度来决定。
3.以TCP报文段的个数作为讨论单位。