2011-03-29 44 views
0

我正在分析wireshark日誌文件,當我通過代理服務器使用firefox向網頁發出請求時。爲什麼我的PC中的TCP消息以590個字節的幀進入

以下是連接建立的細節:

  1. 我注意到「最大段大小」當我打開從我的電腦到代理服務器的[SYN]消息的TCP段的細節選項分支 - 它說1460字節

  2. 類似地,最大段大小EOF從代理服務器到我的PC的[SYN,ACK]消息 - 它說1460字節

建立TCP連接後,從代理服務器發送到我的PC的每個TCP幀是不是應該是1460字節?我很困惑,他們爲什麼是590字節。請指點如何在590的尺寸被設定

回答

4

一個合理的解釋是,590原來是路徑MTU的特定連接。

換言之,客戶端(連接的一個端節點)接受最多1460字節有效載荷的數據包,途中的一些節點接受較小的數據包。出於提高效率的目的,路徑MTU發現允許數據包的發起者對其進行調整,以適應路徑上遇到的較小MTU,從而避免碎片化。

順便說一句:
1460是一種很常見的MTU(以及MSS),因爲它它對應於1500,以太網V2的最大值,負20 + 20 = 40個字節的IP報頭開銷)

參見以下Wikipedia entry有關MTU(最大傳輸單元)的概述和路徑MTU發現方法的基本描述(基本上設置DF即不做分段標誌並依賴於ICMP「目標不可達(數據報太大)」消息以檢測路上的某個節點無法處理數據包,因此嘗試使用較小的大小,直到它通過)。

另外,我建議在連接到不同主機時檢查數據包,可能是同一網段上的對等端,而不經過上述代理。然後你可能會看到1460字節的幀。

+1

非常感謝您提供的信息。正如您所提到的,我在啓動Intranet網站時看到了1460字節的幀。我懷疑內網網站正在使用不同的路由器,但它使用的是與代理服務器相同的路由器。 (我用tracert命令檢查它) – paseena 2011-03-29 23:30:14