Details: I am dealing with an issue interfacing to a Modbus over TCP/IP device. We are required to poll a section of the devices modbus registers 4-6 times a second. We have recorded the following times. In control tests, we have been able to communicate at the following speeds:
Control Device: once every 0.0015s with a standard deviation of 0.0001s.
Issue Device: once every 0.5200s with a standard deviation of 0.01s.
After weeks of troubleshooting and packet capture, we had narrowed down the issue to the fact that the device we are communicating with is not issuing, or responding to, TCP handshake packets. However communication is still possible as the query still proceeds exactly 0.3200s after the TCP request is issued and subsequently ignored. Additionally, the issue device Does not support UDP.
Photo of packet capture breakdown [1]: https://i.stack.imgur.com/lCEos.png
The first (top) packet is the control, and the second (bottom) packet is the issue
Question: Ignoring the fact that the fundamental role of TCP is handshaking, is there a way to reduce, or mitigate entirely, TCP handshaking on an Intel NIC on a Windows 7 machine.