在基于源端的 TCP 拥塞控制方面,大量的研究工作主要针对 TCP 协议。近年来,TCP中采用了很多新的算法,包括慢启动(Slowstart)、拥塞避免、快速重传(Fastretransmit)、快速恢复(Fastrecovery)、选择性(Selectiveacknowledgement, SACK)等,大大提高了网络传输的性能。目前,进一步的研究工作包括:对慢启动的改进、基于速率的控制策略、ACK 过滤、减少不必要的“超时重传”和“快速重传”、ECN(Explicit congestion notification)的使用、TCP-Friendly 的拥塞控制和特殊网络环境(如无线链路、卫星链路和非对称链路等)中的拥塞控制等。
网络端拥塞避免机制研究目前集中在“主动队列管理”(Active queue management,AQM)算法。和传统的“队尾丢弃”(DropTail)相比,AQM在网络设备的缓冲队列溢出之前就丢弃(Drop)或标记分组(Marking packet)。AQM的主要优点是:减少网关的分组丢失、减少分组通过网关的延迟、避免死锁(Lockout)行为的发生。AQM 主要可以分为三类:(1)基于平均队列长度或瞬时队列长度为拥塞尺度,如 RED(Random early detection)、PI等;(2)基于链路输入速率为拥塞尺度,如 AVQ(Adaptive virtual queue),BLUE等;(3)基于队列长度和输入速率的混合尺度,如 REM(Random exponential marking),由文献[17]分析可知基于混合尺度的 AQM 算法本质上仍然以队列为拥塞尺度。基于队列长度的 AQM 算法的目标为控制队列到期望长度,由于队列长度是输入与输出速率差值的时间积累,从控制论的角度看就是增加了一个积分环节,导致其对拥塞反应的滞后,不可避免的带来较大队列震荡。以控制链路输入速率匹配于发送速率的基于速率的 AQM 算法虽然有较快的响应速度,但是由于没有对队列长度进行控制,在某些情况下也会出现队列较大振荡,导致较大时延抖动。
拥塞控制算法设计与稳定性分析是近几年网络、通信与控制等几个交叉学科的一个研究热点,在短时间内取得了很大的进展。早期的拥塞控制算法设计往往依赖直觉和仿真验证,这在一定程度上限制了其发展。由于优化理论和控制理论等被引入到拥塞控制的研究中来,尝试将源端和网络端组成的网络用严格的数学模型描述为一个具有通信时延的非线性动态反馈系统,对拥塞控制算法的性能如稳定性、稳态性能、动态响应等内在性质从理论上进行分析,这对拥塞控制研究起了很大的推动作用。但是,由于网络的复杂性,这些理论分析受到许多限制,因此尚有大量的协议设计问题和稳定性分析问题有待进一步研究。
随着互联网规模的扩大,互联网上的用户和应用都在急剧增长,拥塞控制对于保证互联网的稳定具有十分重要的意义。网络中的拥塞源于网络资源和网络流量分布的不均衡性,且拥塞不会随着网络处理能力的提高而消除。拥塞控制算法的分布性、互联网的复杂性和对拥塞控制算法性能的高要求,使得拥塞控制算法设计具有很高的难度。虽然学术界在拥塞控制领域已经开展了大量的研究工作,但是到目前为止网络拥塞问题还没有得到很好的解决。