The situation is this: I have a Java application that communicates via TCP with a microcontroller with a TCP stack on it. The stack on the controller works fine, I can figure it out.
Problem: when I terminate my connection with the controller, I just use socket.close()it and the connection terminates, no problem. It works on my Mac too, but when I check Wireshark, there is the usual completion process [FIN,ACK]- [ACK]but it is followed by the package [TCP Dup ACK]that Wireshark so claimed belongs to my [FIN,ACK]Packet. This only happens on a Mac and does not happen on a Windows machine on a virtual machine on my Mac or on my netbook ...
Are there any tricks I could use to prevent this Dup-ACK packet from being transmitted? It actually pushes the stack in the controller, claiming that the closed session is still active and connects to the controller 10 times, the stack has no more space to accept new connections.
I would be very grateful if anyone could give me a hint!
source
share