【问题标题】:tcp receive window updatetcp 接收窗口更新
【发布时间】:2014-05-19 10:41:08
【问题描述】:

我正在阅读有关 tcp 协议及其接收窗口的 latley。

我还没有理解的是接收方如何知道何时发布新的窗口大小?

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

是否存在接收方可以知道何时通告新窗口大小的标准阶段?

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

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

但我没有找到关于如何知道何时宣传新窗口大小的信息。

感谢您提供的任何帮助,本。

【问题讨论】:

    标签: linux sockets tcp window


    【解决方案1】:

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

    【讨论】:

    • 但是如果我填满了接收方的缓冲区并且他仍然无法发送 ACK 因为他没有收到完整的数据包,接收方不应该宣传一个新的窗口大小为 0 来告诉我停止发送数据?
    • 在整个数据包可用之前,数据包不会被处理到 TCP 堆栈数据缓冲区中。在此之前,它们保存在接收方的 NIC 缓冲区中,对 TCP 堆栈不可用,也不会影响 TCP 窗口大小。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多