什么是拥塞控制
网络拥塞现象是指到达通信网络中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。拥塞控制是处理网络拥塞现象的一种机制。
拥塞控制是一种用来调整传输控制协议(TCP)连接上单次发送的分组数量的算法,通过增减单次发送量逐步调整,使之逼近当前网络的承载量。如果单次发送量为1,此协议就退化为停等协议。单次发送量是以字节来做单位的;但是如果假设TCP每次传输都是按照最大报文段(MSS)来发送数据的,那么也可以把数据包个数当作单次发送量的单位,所以有时我们说单次发送量增加1也就是增加相当于1个最大报文段的字节数。
拥塞控制的算法
拥塞控制假设分组的丢失都是由网络繁忙造成的。拥塞控制有三种动作,分别对应到源主机感受到的情况:
收到一条新确认。表明当前的单次发送量小于网络的承载量。此时可以增加单次发送量。若当前单次发送量小于慢启动阈值(ssthreash),则单次发送量加倍(乘以2),即指数增长;否则单次发送量加1,即线性增长。
收到三条对同一分组的确认,即三条重复的确认。说明网络有一点儿繁忙。此时单次发送量减半,慢启动阈值(ssthreash)约等于单次发送量,进入线性增长阶段。
对某一个分组的确认迟迟未到,即超时。说明网络比上一情况中的更加繁忙。此时慢启动阈值=单次发送量÷2,单次发送量=1,进入慢启动阶段ÿ