1

如果机器在收到 FIN 后将 TCP 窗口大小设置为零,是否可以?

我从连接结束的wireshark得到以下数据包转储,我只是想知道这是否是结束连接的有效方法或者是否有问题。

192.168.1.1 192.168.1.6 TCP 3450 > 102 [FIN, ACK] Seq=48 Ack=50 Win=65486 Len=0
192.168.1.6 192.168.1.1 TCP [TCP ZeroWindow] 102 > 3450 [ACK] Seq=50 Ack=49 Win=0 Len=0
192.168.1.6 192.168.1.1 TCP 102 > 3450 [FIN, PSH, ACK] Seq=50 Ack=49 Win=0 Len=0
192.168.1.1 192.168.1.6 TCP 3450 > 102 [ACK] Seq=49 Ack=51 Win=65486 Len=0

顺便说一句:.1 是普通的 Windows PC,而 .6 是西门子 PLC。(S7-400)


经过一番调查,它看起来像是一种奇怪但有效的结束 TCP 对话的方式。

4

1 回答 1

1

我认为在 a 之后发送零窗口没有任何问题FIN ACK... 大概192.168.1.6发送 a FINto 192.168.1.1,所以他们现在正在关闭连接。

192.168.1.6 192.168.1.1 TCP [TCP ZeroWindow] 102 > 3450 [ACK] Seq=50 Ack=49 Win=0 Len=0

但是在那之后立即设置一个PSH标志并且不发送任何数据(Len = 0)ACK,对我来说看起来很奇怪(但在技术上不是错误的)......

192.168.1.6 192.168.1.1 TCP 102 > 3450 [FIN, PSH, ACK] Seq=50 Ack=49 Win=0 Len=0

于 2011-04-27T12:38:08.183 回答