Hello everybody, I am having a problem with communication between a client and a server using TCP port 4712, protocol IEEE C37.118 (synchrophasors).
I have developed a server product and I can interface and connect it with a client PC on a network. Tested with plain networking (same subnet), through routers(different subnets), through NAT. Always works fine,
Recently I tried to connect through two redundant routers (HRSP) exposing a virtual MAC and IP address.
When the client on the other side of the WAN sends a SYN for opening the session on port 4712 (which is open and listening), my TCPIP stack replies with SYN/ACK (correct, as usual) but before receiving the final ack of the two-way handshake, my server unexpectedly resets the connection sending a TCP-RST.
The client sends anyway the ACK because probably it was in the pipeline before receiving the RST. Server sends RST again and the session resets.
I tried analyzing the Wireshark communication when the protocol starts and when it does not work, the messages are almost identical.
I could only spot two differences: when things do not work, the TCP window size is smaller (cisco routers declare 8192 bytes versus 64249 of a local PC). Also, being MSS a standard 1460 bytes in both cases, 8192 is not a multiple as it should be (I'm not sure if it must be). Anyway, I can't see significant reasons for client and server not being capable of establishing a session.
I kindly ask if somebody had similar issues or can suggest any way out of problems.
Thank you very mush and best regards,
Rob
I have developed a server product and I can interface and connect it with a client PC on a network. Tested with plain networking (same subnet), through routers(different subnets), through NAT. Always works fine,
Recently I tried to connect through two redundant routers (HRSP) exposing a virtual MAC and IP address.
When the client on the other side of the WAN sends a SYN for opening the session on port 4712 (which is open and listening), my TCPIP stack replies with SYN/ACK (correct, as usual) but before receiving the final ack of the two-way handshake, my server unexpectedly resets the connection sending a TCP-RST.
The client sends anyway the ACK because probably it was in the pipeline before receiving the RST. Server sends RST again and the session resets.
I tried analyzing the Wireshark communication when the protocol starts and when it does not work, the messages are almost identical.
I could only spot two differences: when things do not work, the TCP window size is smaller (cisco routers declare 8192 bytes versus 64249 of a local PC). Also, being MSS a standard 1460 bytes in both cases, 8192 is not a multiple as it should be (I'm not sure if it must be). Anyway, I can't see significant reasons for client and server not being capable of establishing a session.
I kindly ask if somebody had similar issues or can suggest any way out of problems.
Thank you very mush and best regards,
Rob