刷leetcode
的时候有看到滑动窗口
这道Hard题, 还是挺难的. 它帮助TCP实现流量控制
功能
发送端窗口
包括两大主要部分:
- 已发送但未收到应答的数据
- 暂未发送的数据
接收端窗口
- 发送端窗口由接收端剩余大小决定
- 接收端会将当前窗口剩余大小, 连同
ACK
一起返回 - 发送端收到
Window Size
之后, 根据该值和网络拥塞
情况设置发送窗口的大小.
Zero窗口
对端出现0
窗口, 这时发送端停止发送数据, 启动定时器定时发送请求到接收端, 让对端告知窗口大小, 重试超过一定次数后, 可能会终端连接.