- TCP滑动窗口机制
TCP滑动窗口机制分为两种:固定大小窗口;滑动窗口(不固定大小)。
由于TCP传输是支持全双工的,因此发送方和接收方各维护了两个滑动窗口(接收窗口和发送窗口)。
滑动窗口会对数据帧进行编号,只有落在发送窗口的数据才能被发送,也只有落在接收窗口的数据才能被读取。因此滑动窗口可以用来实现流量控制(动态改变滑动窗口的大小)。
TCP使用肯定确认机制,其确认号为下一个所期待的字节。假设发送方窗口此时大小为3,也就是说每次以三个数据包的方式发送数据。发送方发送序列号为1、2、3的三个数据包,接收方设备成功接收数据包,用序列号4确认。发送方设备收到确认,继续以窗口大小3发送数据。当接收方设备要求降低或者增大网络流量时,可以对窗口大小进行减小或者增加,本例降低窗口大小为2,每一次发送两个数据包。当接收方设备要求窗口大小为0,表明接收方已经接收了全部数据,或者接收方应用程序没有时间读取数据,要求暂停发送。发送方接收到携带窗口号为0的确认,停止这一方向的数据传输。
- 固定大小窗口机制