2011-09-02 81 views
0

我試圖用Firefox 6 連接從Windows XP SP3通過IPv6鏈路本地地址的HTTP服務器雖然接發球效果很好IPv4地址連接,與IPv6的連接失敗失敗錯誤。Firefox的IPv6連接失敗而TCP層連接

通過Wireshark的,該序列被觀察爲:

  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] 

在第五傳輸,請求的HTML文件被包含。 但瀏覽器顯示連接失敗。 似乎tcp層收到消息,並不能將它傳遞到http層或瀏覽器。 我禁用了防火牆,結果是一樣的。

有人可以提供線索或暗示追求。 謝謝。

+0

包5中的整個響應是什麼?這將是一個微小的迴應... –

回答

0

我懷疑它不是在包5

整個反應通常這樣的問題被打破路徑MTU發現引起的。如果在路徑中存在隧道,那麼MTU可能小於1500字節,即1480字節。所有小於1480字節的數據包都可以通過。當服務器發送一個1500字節的數據包時,它對隧道來說太大了。隧道路由器發回數據包太大的ICMP錯誤,並且服務器以1480字節的塊發送數據。如果永遠不會產生ICMP錯誤或者防火牆阻止了ICMP數據包,那麼服務器永遠不會知道它應該發送更小的數據包,它會一直髮送大數據包,並且它們永遠不會到達...

大多數情況下,由錯誤配置的防火牆造成的。有時它是破碎的硬件或軟件。

+0

謝謝你的回覆桑德。我檢查了數據包5的大小,它是1475字節。另外一個312字節的HTTP重定向消息(302暫時移動)也不會被瀏覽器以相同的傳輸順序接收。 – ning

+0

對於302(重定向)響應,只包含一個新的URL,它非常小。 – ning

+0

好的,所以這確實是一個軟件問題,而不是網絡問題。你有可能給我發送完整的數據包轉儲,以便我可以查看它嗎? –