TCP 拥塞窗口原理 (3)

流量控制:在TCP连接上实现对发送流量的控制,考虑点对点之间对通信量的控制,端到端,即:控制发送端的数据发送速率,使接收端可以来得及接收,保证网络高效稳定运行。

拥塞控制:处理网络拥塞现象,考虑网络能够承受现有的网络负荷,全局性变量,涉及所有的路由器、主机以及与降低网络传输性能有关的因素。防止过多的数据注入到网络,使网络中的路由器或链路不致过载,确保通信子网可以有效为主机传递分组。

Q&A

1、在一个窗口内重复丢包会造成影响吗? 会。如果只丢一个包,那么收到非重复ACK时,就能确认完本窗口内所有的包。然后进入拥塞 避免阶段。这就是Reno想达到的。 而如果丢失多个包,那么收到非重复ACK时,不能确认完本窗口内所有的包。但是,也会退出快速恢复, 进入拥塞避免阶段。

这个时候可能会发生两种情况:

多次进行快速重传和快速恢复。又发现丢包,再次进入快速重传和快速恢复。注意,每次进入快速重传和快速恢复时,ssthresh和CWND都要减半。多次丢包最终会导致ssthresh指数减小。通过画cwnd(t)图可以发现,不仅这段时间吞吐量非常低,而且导致恢复完后拥塞避免的起点非常低,从而导致之后的吞吐量也很低。

经过多次快速重传和快速恢复,接着发生传输超时。

2、为什么发生拥塞时,还增加cwnd?

在检测到丢包时,窗口为CWND。这时候网络中最多有cwnd个包(传输中 < CWND)。每当收到一个重复的ACK,则说明有数据包离开网络,达到接收端了。那么,此时网络中还可以再容纳1个包。由于发送端滑动窗口不能移动了,所以如果想保持继续保持固定个数的传输数据包,可以使CWND + 1。这样一来,可以提高吞吐量。而实际上,在fast recovery期间发送的新数据包比起发生丢包的CWND来说,已经是大大减少了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgpzy.html