互聯網

最大傳輸單元 (MTU)

最大傳輸單元 (MTU)

在計算機網絡中,術語最大傳輸單元 (MTU) 是指通信協議的給定層可以向前傳遞的最大 PDU 的大小(以字節為單位)。 MTU 參數通常與通信接口(NIC、串行端口等)相關聯。 MTU 可以由標準固定(如以太網的情況)或在連接時決定(如通常的點對點串行鏈路的情況)。 更高的 MTU 帶來更高的效率,因為每個數據包攜帶更多的用戶數據,而協議開銷(例如標頭或底層每個數據包的延遲)保持固定,更高的效率意味著批量協議吞吐量略有提高。 但是,大數據包可能會佔用慢速鏈路一段時間,從而導致更大的數據包延遲並增加延遲和最小延遲。 例如,一個 1500 字節的數據包,是以太網在網絡層(以及大部分互聯網)允許的最大數據包,將佔用 14.4k 調製解調器大約一秒鐘。

路徑 MTU 發現
Internet 協議將 Internet 傳輸路徑的“路徑 MTU”定義為源和目的地之間“路徑”的任何 IP 躍點的最小 MTU。 換句話說,路徑 MTU 是在不遭受碎片的情況下遍歷該路徑的最大數據包大小。

RFC 1191 描述了“路徑 MTU 發現”,這是一種用於確定兩個 IP 主機之間的路徑 MTU 的技術。 它的工作原理是在傳出數據包的 IP 標頭中設置 DF(Don't Fragment)選項。 MTU 小於數據包的路徑上的任何設備都將丟棄此類數據包並發回包含其 MTU 的 ICMP“目標無法到達(數據報太大)”消息,從而允許源主機適當地減少其假定路徑 MTU。 重複該過程,直到 MTU 小到足以遍歷整個路徑而不會出現碎片。

您可能還有興趣查看:  2 線路由器配置

不幸的是,越來越多的網絡會丟棄 ICMP 流量(例如,為了防止拒絕服務攻擊),這會阻止路徑 MTU 發現工作。 在連接適用於少量數據但一旦主機一次發送大量數據就掛起的情況下,人們通常會檢測到這種阻塞。 例如,使用 IRC,連接的客戶端可能會看到 ping 消息,但之後沒有響應。 這是因為大量歡迎消息是以比實際 MTU 大的數據包發送的。 此外,在 IP 網絡中,從源地址到目標地址的路徑通常會動態修改,以響應各種事件(負載平衡、擁塞、輸出等)——這可能導致路徑 MTU 發生變化(有時重複),這可能會在主機找到新的安全 MTU 之前引入進一步的數據包丟失。

大多數以太網 LAN 使用 1500 字節的 MTU(現代 LAN 可以使用巨型幀,允許 MTU 高達 9000 字節),但是像 PPPoE 這樣的邊界協議會減少這種情況。 這會導致路徑 MTU 發現生效,可能導致無法訪問配置錯誤的防火牆後面的某些站點。 一個人可以解決這個問題,這取決於一個人控制的網絡的哪一部分; 例如,您可以更改在防火牆上建立 TCP 連接的初始數據包中的 MSS(最大段大小)。

自從引入了“下一代 TCP/IP 堆棧”的 Windows Vista 推出以來,這個問題就更加頻繁地浮出水面。 這實現了“接收窗口自動調整,通過測量帶寬延遲乘積和應用程序檢索率不斷確定最佳接收窗口大小,並根據不斷變化的網絡條件調整最大接收窗口大小。”[2] 這已被視為與似乎可與其他操作系統一起使用的舊路由器和防火牆失敗。 它最常出現在 ADSL 路由器中,通常可以通過固件更新來糾正。

您可能還有興趣查看:  在隔離醫院服用的藥物

ATM 骨幹網,MTU 調優示例
有時,從效率的角度來看,最好在軟件中人為地聲明減少的 MTU 低於支持的真正最大可能長度。 其中一個例子是 IP 流量通過 ATM(異步傳輸模式)網絡傳輸的情況。 一些提供商,尤其是那些有電話背景的提供商,在其內部骨幹網上使用 ATM。

當數據包長度是 48 字節的倍數時,可以以最佳效率使用 ATM。 這是因為 ATM 以固定長度的數據包(稱為“信元”)流的形式發送,每個信元可以攜帶 48 字節的用戶數據的有效載荷和 5 字節的開銷,每個信元的總成本為 53 字節。 所以傳輸的數據長度的總長度為53 * ncells字節,其中ncells = = INT((payload_length+47)/48)的所需信元數。 所以在最壞的情況下,總長度 = (48*n+1) 字節,需要一個額外的信元來傳輸有效載荷的最後一個字節,最後一個信元需要額外的 53 個傳輸字節,其中 47 個是填充字節。 出於這個原因,通過使 ATM AAL5 總有效載荷長度盡可能成為 48 字節的倍數,人為地在軟件中聲明減少的 MTU 可以最大限度地提高 ATM 層的協議效率。

例如,31 個完全填充的 ATM 信元承載 31*48=1488 字節的有效載荷。 取這個數字 1488 並從中減去所有相關更高協議貢獻的任何開銷,我們可以獲得人為減少的最佳 MTU 的建議值。 在用戶通常發送 1500 字節數據包的情況下,在 1489 和 1536 字節之間發送需要額外的 53 字節傳輸固定成本,以一個額外的 ATM 信元的形式。

您可能還有興趣查看:  如何在 zxhn h108n 中添加 MTU

對於使用 PPPoA/VC-MUX 的 IP over DSL 連接的示例,再次選擇像以前一樣填充 31 個 ATM 信元,我們獲得了理想的優化減少的 MTU 數字 1478 = 31*48-10 考慮到 10 個字節的開銷,包括2 字節的點對點協議開銷和 5 字節的 AAL8 開銷。 這給出了從傳遞到 PPPoA 的 31 字節數據包通過 ATM 傳輸的 53*1643=1478 字節的總成本。 在使用 PPPoA 通過 ADSL 發送 IP 的情況下,1478 的數字將是包括 IP 報頭在內的 IP 數據包的總長度。 因此,在此示例中,與發送總長度為 1478 的 IP 數據包相比,保持自強減少的 MTU 為 1500,在 ATM 層每個數據包節省 53 個字節,代價是 IP 數據包的長度減少 22 個字節。

根據 RFC 1492,PPPoE/DSL 連接的最大 MTU 為 2516:6 字節是 PPPoE 標頭,為 1488 字節的有效載荷或 31 個完整的 ATM 單元留出足夠的空間。

最後: MTU的標準值為1492.... 如果出現瀏覽問題或 MSN 連接問題,應將其降低到值 1422 和 1420。

參考: 維基百科

最好的問候

以前的
Cat 5、Cat 5e、Cat 6 網線的傳輸速度
下一個
如何在 MAC、Linux、Win XP&Vista&7&8 上刷新 DNS

XNUMX條評論

添加評論

  1. 蘭大師 內容:

    您好,感謝您有用的文章

اتركتعليقاً