我有一个本地网络,流量通常很低。网络上有一台带有 LAN 访问权限的示波器,我想对其进行查询。下载样本(以几百字节左右的块为单位)时没有问题。当我发送短命令(比如 10 个字符)时,每次尝试都能可靠地重新传输。以下是典型的周期:
1 0.000000 192.168.9.101 192.168.9.120 TCP 74 41150→3000 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=3989588297 TSecr=0 WS=128
2 0.004792 192.168.9.120 192.168.9.101 TCP 60 3000→41150 [SYN, ACK] Seq=0 Ack=1 Win=2144 Len=0 MSS=536
3 0.004872 192.168.9.101 192.168.9.120 TCP 54 41150→3000 [ACK] Seq=1 Ack=1 Win=29200 Len=0
4 0.305396 192.168.9.101 192.168.9.120 TCP 66 41150→3000 [PSH, ACK] Seq=1 Ack=1 Win=29200 Len=12
5 0.524024 192.168.9.101 192.168.9.120 TCP 66 [TCP Retransmission] 41150→3000 [PSH, ACK] Seq=1 Ack=1 Win=29200 Len=12
6 0.536186 192.168.9.120 192.168.9.101 TCP 60 3000→41150 [ACK] Seq=1 Ack=13 Win=2132 Len=0
7 5.323187 192.168.9.101 192.168.9.120 TCP 54 41150→3000 [FIN, ACK] Seq=13 Ack=1 Win=29200 Len=0
这会导致超时和命令失败。如您所见,没有来自“范围”的答案……我怀疑是某种配置错误,但无法确定错误在哪里,但我也不是网络专家。我更换了电缆以确保万无一失……路径中也有交换机,但从未出现问题,其他流量也正常通过。
发送命令的程序是一个简单的 Python 程序。命令似乎正确,当我手动输入命令时(在 Wine 下运行),闭源制造商的应用程序运行正常。
有人可以建议去哪里看吗?
额外的:谢谢,Steffen。速度真快……我怀疑数据包真的丢失了。上面的列表是在客户端(即命令的发送者)。我怀疑示波器解码命令的时间太长,导致超时而无法及时确认,我读到典型的 RTO 是几秒,但程序在 0.22" 后重新传输。这样可以吗?
注意2:部分解决了通信问题:Owon 示波器需要在数据传输的“快速”模式和远程控制的 SCPI 模式之间切换。我似乎忘记调用切换功能了。但这并不能解释重新传输的问题。切换失败