开发者

firefox ipv6 connection failed while tcp layer connected

I am trying to connect to an http server via IPv6 link-local address from Windows xp sp3 with firefox 6. Although connecting by IPv4 address of serve worked well, IPv6 failed with connection failed error.

By Wireshark, the sequence is observed as:

         direction 开发者_如何学编程   protocol    port         transmission
1. client -> server:  tcp         1061-> 80   [syn]
2. server -> client:  tcp         80->1061    [syn, ack]
3. client -> server:  tcp         1061->80    [ack]
4. client -> server:  http                    [get /]
5. server -> client:  http                    [200 OK]

In the 5th transmission, requested html file is included. But the browser shows connection failed. It seems tcp layer received the messages and cannot deliver it to http layer or browser. I disabled firewall, and the result is the same.

Can someone give a clue or hint to pursue. Thank you.


I suspect that it's not the whole response in packet 5.

Usually problems like this are caused by broken Path MTU Discovery. If there is a tunnel in the path then the MTU is probably smaller than 1500 bytes, i.e. 1480 bytes. All the packes that are smaller than 1480 bytes get through. When the server sends a 1500 byte packet it will be too big for the tunnel. The tunnel router sends back a Packet-too-big ICMP error, and the server sends the data in 1480-byte chunks. If the ICMP error is never generated or a firewall blocks the ICMP packet then the server never learns that it should send smaller packets, it keeps sending large packets, and they never arrive...

Most of the time such problems are caused by misconfiured firewalls. Sometimes it's broken hardware or software.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜