TCP client responses with no FIN
Hello there, I am testing a TCP server application I am writing. On the PC side, I am using a TCP Client for testing purposes. In this scenario, After the client makes the connection with the server and exchanges some data, the server is initializing the closing. This is done by sending FIN+ACK from the server to the client. The problem I am having is the the client responses with ACK and never with FIN+ACK. Here is the screenshot and transcript (cannot upload files here).
10.10.10.1 is the server and 10.10.10.33 is the client. Why isn't the client sending a FIN+ACK after the server initializes the closing? Is this a bug in the client software, or is there something wrong with the server sequence?
"using a TCP Client" - what is the client software?
Modbus Poll: https://www.modbustools.com/modbus_po...
"Modbus Poll is a Modbus master simulator" - it may be the TCP client but at the protocol level it is driving the conversation.
Sample captures attached to these issues: 7902 and 15698 - show the polling software opens and initiates the close on the TCP connection.
Whatever is the layer over the tcp, the client should respond when the server closes the connection. Im not sure I get your point
In the case of Modbus, the Master is the client, it initiates the connection to the slave, and sends requests to which the slave responds. From your text output (a capture file is so much easier to view), the slave device does send a FIN so the Modbus Poll Master should respond with a FIN. Something to be taken up with the developers of that particular item of closed source software.
Note that closing the connection isn't normal for a slave device, the connection would only be closed if the device was shutting down, not during normal operation.
Hi, thats the exact case. The server is shutting down or restarting, thats why he initializes the close with the client. For the log, sorry, I only have this text output. Thank you for answer!
Are you working with these Modbus specs?
MODBUS MESSAGING ON TCP/IP IMPLEMENTATION GUIDE V1.0b
"2) It is recommended to keep the TCP connection opened with a remote device and not to open and close it for each MODBUS/TCP transaction, Remark: However the MODBUS client must be capable of accepting a close request from the server and closing the connection. The connection can be reopened when required."
Looks like the client is not following the standard?