拥塞控制(基于窗口的拥塞控制) 拥塞窗口:cwnd
(1)为了防止过多的数据注入网络,避免路由器或链路不致过载。是一个全局性的过程。流量控制是指点对点通信量的控制是端对端的问题。
(2)当网络的吞吐量反而岁提供的负载而下降时,网络就进入了拥塞状态,当增大到某一 数值时网络的吞吐量降到0,网络已经无法工作,这就是死锁。
(3)拥塞控制的方法:(判断拥塞出现的依据就是发生了超时)慢开始、拥塞避免、快重传、快恢复
有一个慢开始门限(ssthresh),当小于这个门限使用慢开始算法,当超过这个门限使用拥塞避免算法。有时个别报文段丢失,但实际上并为产生拥塞,导致又开始了慢开始,因而降低了传输效率。快重传可以让发送方尽早知道发生了个别报文段的丢失,进而采用快恢复算法。
(4)先将ssthresh设置一个初始值,慢开始阶段拥塞窗口cwnd加倍的增长,当达到慢开始门限时开启拥塞避免算法,让拥塞窗口缓慢的增长。当增长到网络出现了超时,调整门限值为ssthresh=cwnd/2;同时设置cwnd=1,重新开始慢开始。
(5)快重传:首先要求接收方要立即发送确认,即使受到失序的报文段也要发出对已收到的报文段的确认,这样只要发送方收到一连收到三个重复的确认,因而立即重传(快重传)。这样发送方不会误以为是出现了网络拥塞而启动慢开始,而是执行快恢复算法,发送方调整门限值ssthresh=cwnd/2,同时设置cwnd=ssthresh,并开始执行拥塞避免算法。
(6)发送方窗口的上限值=Min(rwnd,cwnd)
接收方窗口 拥塞窗口