Linux tcp接收窗口更新

Linux tcp接收窗口更新,linux,sockets,tcp,window,Linux,Sockets,Tcp,Window,我正在阅读latley关于tcp协议及其接收窗口的文章 我还不明白的是,接收方如何知道何时发布新窗口尺寸的广告 我只想过在接收缓冲区为0时发布一个新的窗口大小,但如果接收方必须发布一个新的窗口大小,则必须有更多的情况,至少我认为是这样 是否有任何标准阶段,接收方可以知道何时公布新的窗口大小 我在下一个链接中检查了tcp协议的linux实现: 但我没有发现如何知道什么时候该为新的窗户尺寸做广告 感谢您提供的帮助,本。接收器每次发送数据包时都会公布一个新的窗口大小。特别是,当接收器发送接收到的数据

我正在阅读latley关于tcp协议及其接收窗口的文章

我还不明白的是,接收方如何知道何时发布新窗口尺寸的广告

我只想过在接收缓冲区为0时发布一个新的窗口大小,但如果接收方必须发布一个新的窗口大小,则必须有更多的情况,至少我认为是这样

是否有任何标准阶段,接收方可以知道何时公布新的窗口大小

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

但我没有发现如何知道什么时候该为新的窗户尺寸做广告


感谢您提供的帮助,本。

接收器每次发送数据包时都会公布一个新的窗口大小。特别是,当接收器发送接收到的数据的ACK确认数据包时,它会播发一个新的窗口大小,反映接收到确认数据后接受更多数据的能力。

但是如果我填满了接收器的缓冲区,但他仍然无法发送ACK,因为他没有收到完整的数据包,接收方不应该公布一个新的窗口大小0来告诉我停止发送数据吗?在整个数据包可用之前,数据包不会被处理到TCP堆栈数据缓冲区中。在此之前,它们保存在接收器的NIC缓冲区中,不可用于TCP堆栈,并且不影响TCP窗口大小。