我正在调查服务断开问题,Wireshark 的一些日志让我有些困惑。需要一些帮助来找出断开的原因。
理想情况下,当 A 向 B 发送一个针对 sq 编号 123 的 ACK 时,B 会发送带有 sq 编号 123 的数据包,A 会收到该数据包。如果 A 没有收到,它会向 B 发送另一个 ACK。因此在 Wireshark 中,它应该被标记为 TCP Dup ACK。
就我的情况而言,A 首先向 B 发送 ACK,随后 A 向 B 发送 2 个 TCP Dup Ack,然后 B 发送请求的数据包,带有 TCP 重传标签。
但是当断开连接发生时,A 向 B 发送 ACK,然后 A 向 B 发送 1 个 TCP Dup Ack。然后 B 发送一个没有 TCP 重传标签的 RST ACK 数据包。
我想知道 B 是否因为没有收到来自 A 的任何 ACK 数据包而发送了 RST?如果是,A 应该发送 TCP Dup Ack,但为什么 A 没有发送?
我附上了日志,断线发生在GMT 20151105 08:22:54。从08:22:20到08:22:54有很多重传,形成了一些模式。