首页 > 解决方案 > 重新连接后的 TCP Dup ACK - 序列号问题?

问题描述

目前我正在调试同一网络中两台设备之间的网络流量。网络架构非常简单。

设备 1 <-> 交换机 1 <-> 交换机 2 <-> 设备 2

为了验证设备上的软件,我检查了不同的场景。其中之一是在我拔下交换机 1 和交换机 2 之间的网络电缆并在几秒钟后再次插入后正确重新连接。

我将wireshark 捕获上传到我的onedrive:Wireshark 捕获

数据包1-9是正确的通信。

数据包9和数据包10之间的电缆被拔下。

在数据包10中,设备 1 尝试在未收到 ACK 的情况下向设备 2 发送数据。

在数据包11/12中,设备 2 发送 Keep-Alive 消息。

在数据包1213之间再次插入电缆。

数据包13确认最后一条 Keep-Alive 消息,这似乎很好。

从现在开始,它变得很奇怪。我只看到 TCP Dup ACK 消息。

我假设 TCP 堆栈对序列号的差异感到困惑。设备 1 认为自己的序列号是 49,设备 2 认为是 37。设备 1 不支持快速重传。

有人可以解释这里发生了什么吗?我正在努力理解问题出在哪里。问题是在设备 1 中,TCP 堆栈认为它在序列号 49 上,而包尚未确认,还是在设备 2 中?

我真的很感谢你的帮助。

好心,菲利普

标签: networkingtcpwireshark

解决方案


推荐阅读