we are facing slowness issue with only one of our website . It is not opening any webpages. When running Wireshark from client PC we see intial 3 way handshake is fine , but after that suddenly we are getting destination host unreachable and TCP-Out-of-order.
asked 03 Jun '13, 02:46 m_1607 edited 03 Jun '13, 10:02 SYN-bit ♦♦ |
2 Answers:
The trace snippet indicates that PMTUD Path MTU discovery is occuring. The HTTP server tries to send a tcp payload of 1366 bytes and this obviously doesn't get through. In the ICMP packet you will see the supported MTU size over the path. Normally, you should then see re-transmission occuring with a reduced ip.len and the web page should finally arrive at (be acknowleged by) the client. If this does not occur here, you could artificially reduce the MTU size at your (httpd) end to 1400 (which I suppose is what is being reported back). answered 03 Jun '13, 03:35 mrEEde2 So You are saying we need to change MTU on HTTP server side firewall ? makes me think why only one server affecetd by that. (04 Jun '13, 04:46) m_1607 1 I assume that your firewall is not reducing the client's mss option in the syn packet when this server is the target. For your other servers it is probably adjusted. To prove this you need to capture the 3-way handshake to each server and compare the tcp options. Could you please upload your trace upto packet 18 to cloudshark? It is not clear to me why a tcp payload of 1366 bytes coud expand the ip packet to 1457 bytes... (04 Jun '13, 11:52) mrEEde2
(05 Jun '13, 22:32) m_1607 please help isolate issue (06 Jun '13, 03:14) m_1607 Just take a look at the dest. unreachable packet in frame 17, unfold the ICMP Header there you will find the needed MTU inside the ICMP message. Why the sender is sending too big packets is then on your side to find out. Check the MTU settings first (06 Jun '13, 04:02) Landi I Need to check MTU settings on client side firewall right ? Internet Control Message Protocol Type: 3 (Destination unreachable) Code: 4 (Fragmentation needed) Checksum: 0x3b4f [correct] MTU of next hop: 1446 Flags: 0x02 (Don't Fragment) 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set .1.. .... = Don't fragment: Set (06 Jun '13, 04:33) m_1607 When there's a firewall in between maybe -> "MTU of next hop: 1446" seen inside the ICMP packet tells you exactly what the MTU in this case is. The SYN from the client says MSS=1460 so MTU 1500 -> doesn't match the 1446 MTU from the dest. unreachable message, so some device inbetween does improper MSS overwrite. In any case 1551 Bytes in frame 13 is too big for either MTU -> check why the size is that big and if it really is coming from 192.168.1.10 with that size originally (06 Jun '13, 05:30) Landi Thanks Landi for your help. How can we check where does exactly this MTU issue is there, i mean how can we find IP of that device or location of device. (06 Jun '13, 06:04) m_1607 Bad answer: Check the path and find the device altering MSS values in the SYN packets and/or adding bytes to the data packet. If you can get a tracefile from 192.168.1.10 I'd start there and compare SYN packet values and frame sizes. If you see badly advertised MSS values there start with routers/firewalls to see which device alters (06 Jun '13, 06:15) Landi The incoming SYN from the client still carries the original MSS 1460, which means no device has adjusted the MSS in flight, which should have been done if a VPN Tunnel is involved as per the discussion in http://ask.wireshark.org/questions/20633/tcp-mss-inconsistency-in-different-capture-points It would help to see the original .pcap file... (06 Jun '13, 09:22) mrEEde2 showing 5 of 10 show 5 more comments |
Interesting packets, however, it would be much easier to help you if you uploaded the pcap file somewhere (for example to www.cloudshark.org and assuming there is no sensitive data in the pcap file). A few things that really stand out from the pasted wireshark output:
After frame 19, a normal TCP transfer should occur. In short:
Apart from that, all seems normal at the TCP level, but I'm curious about the protocols used below the IP layer. EDIT: As @mrEEde2 is pointing out, it would be best practice for a VPN device to alter the TCP MSS to prevent the extra step caused by the ICMP fragmentation needed. answered 06 Jun '13, 07:15 SYN-bit ♦♦ edited 06 Jun '13, 09:46 Oh, one more thing. If nagle is enabled on 192.168.1.10 and delayed acking is enabled on the client, you might be in more trouble as 192.168.1.10 seems to be splitting the full size frames into two parts due to the PMTUD. If it continues doing so, it will result is a very slow transfer as there will be a RTT delay + 100ms (or 200ms) delayed ack timer delay for each full size packet that the server sends. Again, having a pcap file with the whole transfer would really help in telling what exactly is going on. (06 Jun '13, 07:26) SYN-bit ♦♦ One doubt when I do tracepath from router of one location to webserver i see different PMTU , whereas when I do same from router of 2nd location I see PMTU as different. why is it like that ? (10 Jun '13, 21:58) m_1607 |
Could someone help me understand what does this error say.