-
系统说明
一个局域网中有一个ARM(firefly-rk3399)和一个PC,ARM是ubuntu系统,PC是windows系统,ARM和PC通过交换机相连。
PC上运行一个服务端程序,ARM上运行一个客户端程序。ARM通过TCP连接PC并发送数据。ARM发送的数据是周期性的,每隔8秒左右会发送一堆2~3M的数据。
-
问题描述
PC端收不到ARM发送的数据了,但ARM应用层显示自己还在正常发送数据。
PC会持续15分钟接收不到数据,而在此期间,ARM没有显示任何异常。15分钟后,ARM端提示TCP状态改变,ARM放弃了该TCP连接,重新建立一个新的TCP连接,PC能接收到该新连接的数据。
PC接收不到数据时,ARM和PC的网络都是正常的,ARM和PC能互相ping通。
更换不同的PC,ARM,交换机,问题都会存在。
对于同一套系统,该问题出现的频率基本均匀,有时平均1小时出现一次,有时半小时一次,有时半天才一次。
把PC端的程序换成网口助手,仍然有这样的问题。
-
网口抓包
在ARM端和PC端进行抓包,ARM端使用tcpdump,PC使用wareshark,多次抓包查看数据,情况都是一致的的。抓包情况如下,图中ip为41的是ARM,ip为2的是PC:
异常刚出现时: