一、概述
拥塞:在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫拥塞。 若对拥塞不进行控制,整个网络的吞吐量将随着负荷的增大而下降。 输入载荷:单位时间内输入给网络的分组数量。 吞吐量:单位时间内从网络中输出的分组数量。 理想拥塞控制:在吞吐量达到包和之前,网络吞吐量=输入载荷 无拥塞控制:在吞吐量未达到饱和时,就已经有一部分数据被抛弃了。 轻度拥塞:当吞吐量明显小于理想的吞吐量时,就进入轻度拥塞状态 死锁:当输入负载到达某一数值时,吞吐量反而随着输入负载和增大而减小,直至为0
四种拥塞控制方法:慢开始、拥塞避免、快重传、快恢复 假定以下条件:
二、慢开始 拥塞避免
传输伦次:发送方给接收方发送数据报文段后,接收方给发送方发回相应的确认报文段,一个传输伦次所经历的时间,就是往返时间(并非恒定数值)。 拥塞窗口:根据网络拥塞程度以及所使用的拥塞控制算法动态变化。 当TCP双方建立连接时,拥塞控制窗口被设置为1,慢开始门限为16。 拥塞窗口是几,就能发送几个数据报文段。 描述拥塞控制的过程:
- (慢开始算法)刚开始时当发送方发送一个报文段并收到对该报文段的确认,接收方的拥塞控制窗口加一,发送2个报文段并收到这两个报文段的确认报文,拥塞控制窗口增大到4。发送方继续发送4个报文段收到这四个报文段的确认报文段,拥塞控制窗口增大到8.直到拥塞控制窗口增大到16。拥塞控制窗口增大到16时和慢开始门限值相等。之后改用拥塞避免算法。
- (拥塞控制算法)每个传输伦次结束后,控制窗口值只能线性加1。而不像慢开始算法那样,每次传输伦次结束后,拥塞控制窗口的值按指数规律增长。当窗口增大到24,当发送24个数据报文段后,有几个报文段在传输过程中丢失了几个。这会造成发送方对这些丢失的报文段得超时重传。
发送方以此判断网络很可能出现了拥塞,需要进行以下工作:
(1)将慢开始门限ssthresh值更新为发生拥塞时cwnd的值的一半,发生拥塞时窗口值为24,这时更新为12。 (2)将拥塞窗口值设置为1,并重新开始慢开始算法。
- 当拥塞控制窗口的值增大到慢开始门限值(12)时,就停止使用慢开始算法,转而使用拥塞避免算法。
“慢开始”是指一开始像网络注入的报文段少,并不是指拥塞控制窗口cwnd的增长速度慢。 “拥塞避免”也不是指能够完全避免拥塞,而是指在拥塞控制阶段,将拥塞控制窗口的值控制为线性规律增长,使网络不容易出现拥塞。
慢开始和拥塞避免的缺点
三、快重传
四、快恢复
五、总结
六、习题
拥塞窗口发生了超时:使用慢开始和拥塞避免算法 如果拥塞窗口收到了三个重复的确认报文,那就用于快恢复和拥塞避免算法。