Have any TCP/IP networking problems been reported for the RevPiConnect? Specifically, has anyone reported the Pi acknowledging a query for data but never actually responding with the data without the requesting host initiating a TCP Retransmission? I am running a RevPiConnect as a Modbus gateway device and am seeing this issue. A host PC running process control software is on the TCP/IP side of the gateway and a number of RS485 slave devices are on the other side. All slave devices have been independently verified to consistently respond to read/write requests within 20 msec or less without failure.
Attached is a snapshot of data from WireShark running on the PC host. The eth1 interface of the RevPiConnect is configured to have a static IP address of 192.168.0.101. The host PC has static address of 192.168.0.1. This network is local to the PC and RevPi. No other devices exist on the network other than network switches. Beginning at line item 4, the PC host issues a query to the Pi which responds with an acknowledgement [ACK]; however, more than 4 seconds elapse (4.364) without a response which exceeds a timeout in the host PC software. The PC then issues a second query which initiates a TCP Retransmission. After that, the RevPi responds with an acknowledgement [ACK] followed by a duplicate acknowledgement [TCP Dup ACK 8#1], then the response data. This behavior is exhibited somewhat randomly once every 24 to 36 hours and is causing a problem for our host PC control software. Normally, the initial query from the host is immediately (within 50 msec or less) followed by a response from the Pi with valid data. The packet data of the initial query triggering the retransmission has been verified to be a valid Modbus request. Also, the Modbus protocol we are running logs all protocol failures including slave device timeouts to a log file. The log file is clean and shows no errors.
Can anyone provide any explanation for this behavior?