I have written a server that acts as a proxy between two clients connected via standard TCP sockets. One thread loops reading a byte from the bufferedinputstream of client1 and sends it to the bufferedoutputstream of client2, then another thread loops reading a byte from the bufferedinputstream of client2 and sends it to the bufferedoutputstream of client1.
We have been experiencing an serious problem on the underlying TCP connection where Wireshark showed a massive number (thousands) of TCP DUP ACK's being from one client back to the server. Neither the java client nor the proxy server know that there's a problem since they are both waiting on bytes from the Socket. After enough time has passed, the Socket then times out and goes through the disconnect code, yet the underlying TCP is still sending the TCP DUP ACK's.
Has anyone ever seen anything like this or maybe have any suggestions for us to give a try? We have been troubleshooting this for days both from the hardware and software perspective and still have yet to find an answer.
Thanks for the help!
"There are only 10 types of people in the world, those who understand binary and those who don't."