Wireshark TCP窗口大小值

我正在使用Wiresharkdebugging应用程序,并观察通信一侧的TCP Window Size值。

如果数据包的TCP部分显示“窗口大小值:1”,这是否意味着源的窗口大小是1或目标的窗口大小是1? 我知道一方的沟通速度比另一方能够处理得更快,我只是想确定我知道它是哪一个。

1 192.168.0.1 – > 192.168.0.100,Modbus / TCP,长度:66,窗口大小值:1

2 192.168.0.100 – > 192.168.0.1,TCP,长度:60,窗口大小值:92

3 192.168.0.100 – > 192.168.0.1 TCP,长度:310,窗口大小值:92

4 192.168.0.1 – > 192.168.0.100 TCP,长度:54,窗口大小值:0

那么192.168.0.1的窗口大小为0还是报192.168.0.100的窗口为0? 谢谢。

从A到B的数据包的窗口大小表示A上有多less缓冲区可用于接收数据包。 所以当B收到一个窗口大小为1的数据包时,它会告诉B有多less字节可以发送给A.

一些值得了解窗口大小的细节是:

  • 窗口大小可以缩放。 连接开始时的SYN数据包指示缩放因子。 只有1个字节的窗口大小是不太可能的。 更可能的解释是,它被缩放了一些因素,例如缩放因子是2048,那么1表示窗口是2048字节。
  • 窗口大小是相对于该数据包中的ACK编号进行测量的。 所以,如果应用程序没有从接收缓冲区中读取,那么ACK分组序列将具有增加的ACK数和减less的窗口大小,使得ACK number + window size * scaling factor保持(大致)恒定。

TCP报头中的窗口大小字段表示发送者(本例中为192.168.0.1)愿意接收的字节数。