发送方每收到一个确认就把窗口cwnd加1
发布时间:2014/9/7 21:51:10 访问次数:953
这里我们使用了一个名词——传输轮次。从图5-24可以看出,一个传输轮次所经历的时间其实就是往返时间RTT。不过使用“传输轮次”更加强调:GAC16V8D-15QJ把拥塞窗口cwnd所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个字节的确认。例如,拥塞窗口cwnd的大小是4个报文段,那么这时的往返时间RTT就是发送方连续发送4个报文段,并收到这4个报文段的确认,总共经历的时间。
我们还要指出,慢开始的“慢”并不是指cwnd的增长速率慢,而是指在TCP开始发送报文段时先设置cwnd=1,使得发送方在开始时只发送一个报文段(目的是试探一下网络的拥塞情况),然后再逐渐增大cwnd。这当然比按照大的cwnd -下子把许多报文段突然注入到网络中要“慢得多”。这对防止网络出现拥塞是一个非常有力的措施。
图5-24发送方每收到一个确认就把窗口cwnd加1
为了防止拥塞窗口cwnd增长过大引起网络拥塞,还需要设置一个慢开始门限ssthresh状态变量(如何设置ssthresh,后面还要讲)。慢开始门限ssthresh的用法如下:
当cwnd< ssthresh时,使用上述的慢开始算法。
当cwnd>ssthresh时,停止使用慢开始算法而改用拥塞避免算法。
当cwnd=ssthresh时,既可使用慢开始算法,也可使用拥塞避免算法。
拥塞避免算法的思路是让拥塞窗口cwnd缓慢地增大,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加lrU,而不是加倍。这样,拥塞窗口cwnd按线性规律缓慢增长,比慢开始算法的拥塞窗口增长速率缓慢得多。
无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络幽现拥塞(其根据就是没有按时收到确认),就要把慢开始门ssthresh设置为出现拥塞时的发送方窗口值的一半(但不能小于2)㈤。然后把拥塞窗口cwnd重新设置为l,执行慢开始算法。这样做的目的就是要迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。
这里我们使用了一个名词——传输轮次。从图5-24可以看出,一个传输轮次所经历的时间其实就是往返时间RTT。不过使用“传输轮次”更加强调:GAC16V8D-15QJ把拥塞窗口cwnd所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个字节的确认。例如,拥塞窗口cwnd的大小是4个报文段,那么这时的往返时间RTT就是发送方连续发送4个报文段,并收到这4个报文段的确认,总共经历的时间。
我们还要指出,慢开始的“慢”并不是指cwnd的增长速率慢,而是指在TCP开始发送报文段时先设置cwnd=1,使得发送方在开始时只发送一个报文段(目的是试探一下网络的拥塞情况),然后再逐渐增大cwnd。这当然比按照大的cwnd -下子把许多报文段突然注入到网络中要“慢得多”。这对防止网络出现拥塞是一个非常有力的措施。
图5-24发送方每收到一个确认就把窗口cwnd加1
为了防止拥塞窗口cwnd增长过大引起网络拥塞,还需要设置一个慢开始门限ssthresh状态变量(如何设置ssthresh,后面还要讲)。慢开始门限ssthresh的用法如下:
当cwnd< ssthresh时,使用上述的慢开始算法。
当cwnd>ssthresh时,停止使用慢开始算法而改用拥塞避免算法。
当cwnd=ssthresh时,既可使用慢开始算法,也可使用拥塞避免算法。
拥塞避免算法的思路是让拥塞窗口cwnd缓慢地增大,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加lrU,而不是加倍。这样,拥塞窗口cwnd按线性规律缓慢增长,比慢开始算法的拥塞窗口增长速率缓慢得多。
无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络幽现拥塞(其根据就是没有按时收到确认),就要把慢开始门ssthresh设置为出现拥塞时的发送方窗口值的一半(但不能小于2)㈤。然后把拥塞窗口cwnd重新设置为l,执行慢开始算法。这样做的目的就是要迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。
上一篇:慢开始和拥塞避免
上一篇:TCP连接进行初始化