TCP拥塞控制主要目的是使网络带宽的利用率达到最大化,保持慢启动过程探测到的实际带宽使用率。
拥塞控制的主要技术点有:及时准确的发现网络拥塞状态;拥塞时合理的拥塞控制(主要体现在拥塞控制和慢启动门限值的调节上)。
1、准确及其的探测拥塞状态
目前TCP拥塞状态的判别依据是拥塞窗口值 >= 慢启动门限值:
if (tp->snd_cwnd <= tp->snd_ssthresh)
tcp_slow_start(tp);
慢启动阶段的意图是带宽探测,拥塞控制就是要巩固慢启动探测到的带宽的利用率,
从优化的角度考虑拥塞状态判定可做的工作不多,能考虑的就是慢启动门限值调节的合理化、合适化。
2、拥塞时拥塞控制调节
这一块的工作比较多,这也是拥塞控制算法的主场,目前主要的调节策略大部分是基于cwnd 实现,当然也有基于RTT的调节策略(vegas),基于RTT的拥塞控制优点是能比较精确、及时的估计出实现的网络带宽值,缺点是竞争力不足。