为什么要用滑动窗口?

参考:https://blog.csdn.net/wdscq1234/article/details/52444277
TCP关键功能:实现流量控制,即使发送的数据不要超过设备承载能力,以及可靠性控制,即发送的数据要准确到达目的地,如果不能,则要重新发送
与TCP协议相比,IP协议就属于不可靠协议,它并不关心接收端是否可靠接收了数据

滑动窗口的前身:send-wait-send机制

TCP通过确认机制来保证数据传输的可靠性,在比较早的时候使用的是send--wait--send的模式,发送数据方在发送数据之后会启动定时器,但是如果数据或者ACK丢失,那么定时器到期之后,收不到ACK就认为发送出现状况,要进行重传。这样就会降低了通信的效率。

发送窗口与接收窗口详解

https://blog.csdn.net/wdscq1234/article/details/52444277
设备A一次多发送几个片段,而不必等候ACK,同时接收端也要告知它能够收多少,这样发送端发起来也有个限制
接收端可以根据自己的状况通告窗口大小,从而控制发送端的接收,进行流量控制