|Can you describe the network setup a little better?? Are there - |
Any NAT devices between the two hosts?
Is there more than one path from the server to the client (Multi-homed) ??
ICMP PING is stateless, but TCP needs to maintain state - so it sounds like a layer4 issue...
I've seen things like this in multi-homed setups using NAT - i.e.: client sends a SYN which gets NAT'd onto public internet, the server however has a separate path back to the client using an internal line that bypasses the NAT device, when the packet comes back in, NAT translation is never performed (src/dst ports are wrong) - the client retransmits, but goes through NAT gateway again, & this process repeats...again, only applies to a multi-homed setup though...
But in that scenario, PING works because it's stateless, TCP does not...
Have you verified ping works w/ a large packet size?? Try ping -l 1400 to make sure that large packets are being passed ok (could be an MTU issue) - ping by default uses a small (32 byte) packet, which wouldn't be affected by an MTU mismatch downstream, because it's not large enough...make sure ping works w/ a large packet size.
Also - the best way to do the packet capture is to get both sides of the connection - capture both the client & server sides, then open them up side by side in wireshark & compare the two.
Post some more info about your network - try to verify if TCP works (telnet 164.x.x.x 80) - see if the socket opens correctly w/ telnet (wouldn't be a network issue if that's the case).
If all else fails, you can try posting your packet capture - just capture the 3 way handshake (SYN, SYN/ACK, ACK), then file/export it in wireshark & post the contents of the file.