linux - tcp 接收窗口更新

标签 linux sockets tcp window

我一直在阅读有关 tcp 协议(protocol)及其接收窗口的 latley。

我还不明白的是接收方如何知道何时通告新的窗口大小?

我只考虑过当接收缓冲区为 0 时通告一个新的窗口大小,但必须有更多的情况是接收方必须通告一个新的窗口大小,至少我是这么认为的。

是否有任何标准阶段可以让接收方知道何时通告新窗口大小?

我在下一个链接中检查了 tcp 协议(protocol)的 linux 实现:

http://man7.org/linux/man-pages/man7/tcp.7.html

但我没有发现任何关于如何知道何时公布新窗口大小的信息。

谢谢你的帮助,本。

最佳答案

接收方在每次发送数据包时通告一个新的窗口大小。特别是,当接收方针对接收到的数据发送 ACK 确认数据包时,它会通告一个新的窗口大小,以反射(reflect)在接收到被确认的数据后接受更多数据的能力。

关于linux - tcp 接收窗口更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23735667/

相关文章:

c++ - 同步程序与更新的输入文件

linux - 不可预测的警报忽略信号

c++ - C++下的socket问题

python - 为什么我在 Python 中收到错误 "connection refused"? ( socket )

c++ - 如何不优雅地关闭连接?

linux - 如何永久添加环境变量?

c++ - 使用 gperf 生成的完美哈希函数是否安全?

c - 即使以二进制模式写入后,文件也被损坏

networking - 从一个端口向另一个端口发送消息

networking - 使用 iptables 模拟断开的连接