Update!
恢复上述软件的测试后,我找到了一种可重复的方法来重现错误。
在发送 Windows 计算机上使用 windump,在接收计算机上使用 tcpdump,在让应用程序空闲一段时间(~5 分钟)后,我尝试发送 udp 消息,但最终只得到了 windump 和 tcpdump 捕获的单个片段,剩下的 3 个碎片丢失了。再次发送相同的消息工作正常,booth windump 和 tcpdump 捕获所有 4 个片段,并且接收端的应用程序获取该消息。该模式是可重复的。
开始搜索并找到以下信息,但对我来说,仍然没有明确的答案。
http://www.eggheadcafe.com/software/aspnet/32856705/first-udp-message-to-a-sp.aspx http://www.eggheadcafe.com/software/aspnet/32856705/first-udp-message-to-a-sp.aspx
重新检查日志,我现在注意到正在发送 ARP 请求/回复,这与上面链接中给出的想法之一相匹配。
笔记!我使用以下命令在发送端过滤 windump:“dst host receivenode”
从 windump 捕获:第一个失败的 udp 消息,应该是 4 个片段长
14:52:45.342266 arp who-has receivernode tell sendernode
14:52:45.342599 IP sendernode> receivernode : udp
从 windump 捕获:第二条 udp 消息,内容完全相同,所有 4 个片段均被捕获
14:52:54.132383 IP sendernode.10104 > receivernode .10113: UDP, length 6019
14:52:54.132397 IP sendernode> receivernode : udp
14:52:54.132406 IP sendernode> receivernode : udp
14:52:54.132414 IP sendernode> receivernode : udp
14:52:54.132422 IP sendernode> receivernode : udp
14:52:56.142421 arp reply sendernode is-at 00:11:11:XX:XX:fd (oui unknown)
有人对正在发生的事情有很好的了解吗?请详细说明!