4)快速恢复阶段
在快速重传之后,如果源端依据三个连续的重复确认请求信号,而判定网络发生严重拥塞,进入慢启动阶段,就会大大降低链路利用率。实际上通常在这个时候尚未发生严重的拥塞,因此快速恢复算法就是在源端经历快速重传之后,进入拥塞避免阶段,这样可以保证网络资源被有效地利用。
2.1.3 TCP拥塞控制的不足之处
由上述四个TCP拥塞控制步骤,可以看出IP层不对TCP层的拥塞控制提供任何支持,TCP层必须使用超时重传和确认请求一类的信息来判断网络拥塞状况,这是一种端到端的拥塞控制机制,与AQM主动拥塞控制机制有着本质的区别,因此这种拥塞控制机制必然存在一些无法避免的问题:
1)滞后性:无论是通过超时重传计时器(RTO)的超时来判断拥塞,还是通过多次重复确认请求信息来判断拥塞,这都是在已经发生拥塞之后源端才开始采取措施,为时已晚。源端对中间传输节点的情况一无所知,是一种被动地拥塞控制机制。而当源端发现拥塞之后,急剧降低拥塞窗口,大幅降低发送速率,又有可能导致链路为空,网络资源不能得到充分的利用。
2)公平性问题:公平性是指在网络拥塞发生时,各个源端之间以及同一源端建立的不同TCP链接之间或者UDP链接之间可以公平的使用网络资源,例如:带宽,缓存等等。处于相同级别的源端应该享有同等数量的网络资源。不公平现象产生的原因就是网络拥塞,因为一旦拥塞发生,就会发生丢包,导致各个链接之间为了获得更多的网络资源而发生竞争。公平性主要表现在两个方面,第一,UDP数据流对TCP数据流的不公平,源端的TCP拥塞控制机制只能对遵循TCP协议的数据流进行约束,对非TCP数据流是没有约束作用的。当拥塞发生时,TCP源端会按照拥塞控制步骤进入拥塞避免阶段,主动降低数据包的发送量,避免拥塞的发生。而UDP源端仍然继续大量发送数据,并且由于TCP流让出了一部分的资源,UDP流就会抢占这些资源,最终导致TCP链接所占有的资源越来越少,而UDP链接占有的资源越来越多,进一步加剧二者之间的不公平,甚至会最终导致网络崩溃。第二个不公平表现在TCP链接之间的不公平,这是因为在拥塞产生之前,各个TCP链接就存在参数设置上的不一样,例如:一些链接使用了更大的拥塞窗口,或者它们的RTT较小。这些链接在网络资源的争夺之中将会占据优势。
3)恢复时间长:依据TCP拥塞控制机制,在拥塞发生之前,各个源端的拥塞窗口大小会呈指数增长,源端的发送速率急剧增长,而一旦源端判断网络发生拥塞,就会乘性减少拥塞窗口大小,使得源端发送速率急剧下降,需要经历一段较长的时间,源端才能从低发送速率的状态中恢复过来。源.自/751·论\文'网·www.751com.cn/
总之,在目前的网络中,TCP拥塞控制机制对网络的正常运行依然起着重要的作用。但是随着网络的快速发展,各种非TCP流进入网络,所占比例也在逐渐增加,用户层服务质量的要求也越来越高,这使得仅仅依靠源端的TCP拥塞控制机制难以应付这些问题,中间节点在网络拥塞控制中可以发挥的作用逐渐受到人们的重视,也相继出现了很多基于路由器的拥塞控制策略。
2.2 IP层的拥塞控制机制
由上述分析可以看出,TCP端节点的拥塞控制机制对网络的正常运行,避免拥塞的发生起到了巨大的作用。但是这种拥塞控制机制的发挥需要两个基本前提:首先就是网络中几乎所有的数据流都采用拥塞控制机制。第二,网络中的数据流只能是TCP数据流或者TCP友好的数据流。从这几十年的网络发展来看,这两个基本前提已经越来越不能满足。例如:没有针对UDP数据流的源端拥塞控制机制,为了满足更多的网络业务,非TCP友好的数据流也越来越多。