TCP流量控制之滑动窗口协议:
TCP协议中,发送方和接收方均维护了一份窗口,窗口的大小就是TCP可以发送的数据帧数,在发送端,只有在发送窗口内的数据才允许被发送到接收端,而在接收端,也只有落到接收窗口的数据才允许被接收。这样通过不断滑动窗口实现数据的不断发送,也通过控制窗口的大小实现了流量控制。
滑动窗口的大小是由接收方数据缓冲区大小决定的,在连接建立时接收端便会将这些信息传送给发送端,然后发送端据此设置自己的滑动窗口大小。当然随着链路网络环境等变化,滑动窗口也是会变化的,以达到最优传输效率。
由上图我们可以总结滑动窗口的处理机制:
①窗口大小为6,最初在窗口内的为1/2/3/4/5/6六段数据报,此时TCP将六段数据报发送至接收端
②1,2,3三段数据报接收到了ack返回,4,5,6暂未收到ack,此时TCP认为1,2,3已被处理完成,则窗口向右滑动三格
③此时7/8/9三段数据报进入滑动窗口范围,则TCP可将7,8,9发送至接收端
④待4,5,6的ack报文收到,窗口将继续向右滑动,TCP根据此滑动窗口机制保证了数据不断发送至接收端,同时又充分考虑了接收端的接收效率,不至于导致不必要的网络堵塞
TCP阻塞控制之阻塞窗口:
<