为了解决上一期的问题,TCP采用了一种名叫滑动窗口的技术。
将所有1.已发送待确认 2.已发送已确认 3.待发送的包放在一个连接的数组中, 定义一个窗口大小,每次只能查看该窗口下的数据,窗口大小代表了系统吞吐量的大小,这个窗口会随着外界环境的变化而变大或者变小,从而改变吞吐量,改变了发送频率。当已发送待确认的包收到反馈信息后,窗口就向右滑动一位,所以称为滑动窗口。
滑动窗口的变化影响流量大小,这叫做流量控制。接收方可以通知发送方使用多大的窗口,这称为窗口更新。
还有TCP建立连接的三次握手和断开连接的四次握手,目的都是为了建立可靠的协议,可靠的协议必须有一应一答,就像在一片迷雾中,一个人向另一个人大喊:你在吗?另一个人回答:我在,你在吗?那个人再回答:我在。看似非常麻烦,但是这是必须的。