TCP滑动窗口

2 分钟阅读 381 字 + 193 词
TCP滑动窗口的概念
滑动窗口分两种: 发送窗口和接收窗口。
由于TCP是 全双工 的,所以 通信的每一端都会同时维护两种窗口
tcp会对每一个数据包进行 唯一标号 ,两个通信端 各自维护自己的序号 ,然后还有确认号用来表示接收方期待对方发送的下一个包的序号。并且确认号可以实现 累计确认机制 ,表示确认所有小于当前确认号的数据包。并且还可以将确认号随着数据包一起发过去,这叫做 捎带确认。
此外利用 选择确认机制,可以一定程度上优化无意义的重传
如何控制累计确认的时机呢?
TCP协议中的nagle算法给出的办法是 延迟确认 。其大概的原理是, 未确认的包达到一定量、或者达到一个时间阈值,才回复一次确认
发送方只能发送窗口内的数据包 ,接收方只能接收窗口内的数据包 。
窗口大小是受限的,也是动态的。流量控制就是由接收方控制的、调节发送方发送速度的机制。也就是在回复时设置TCP协议头中的窗口大小。
窗口大小的初始化,是在 连接建立 过程中两端协商确定的, 在后续的传输阶段,它会因主动或被动的原因而动态变化。