MTU(Maximum Transmission Unit,最大傳輸單元)是指單一網絡幀可攜帶的最大數據量,標準乙太網為 1500 bytes。當數據超過路徑容許的 MTU,便需要分片或事先透過 Path MTU Discovery 探測合適大小;而 Jumbo Frame(巨型幀)則是刻意調高 MTU 上限,常見於高吞吐量的儲存網絡。本頁講解 MTU 的基本概念、分片機制,以及在商廈 CCTV 儲存與 iSCSI SAN 部署中的實務注意事項。
MTU 基本概念與 1500 bytes 由來
MTU 決定一個網絡幀最多能攜帶多少數據,超過此數值的封包必須拆分後才能經該段鏈路傳輸。乙太網的標準 MTU 為 1500 bytes,這個數值源於乙太網發展早期對傳輸效率與延遲的平衡考量:幀太大會令個別設備長時間佔用共享媒介,其他設備需等候更久;幀太小則標頭佔整體數據的比例過高,浪費有效頻寬。1500 bytes 成為事實標準後,絕大部分網卡、交換機、路由器都以此為出廠預設,構成現時互聯網與企業網絡互通的基礎假設。
需要留意,MTU 是「該段鏈路容許的最大值」,一條端到端路徑可能經過多個網段,各段的 MTU 未必相同,實際能通過的大小取決於路徑上最小的一段,這個概念稱為 Path MTU。VPN 通道、PPPoE 撥號等會在原有數據前加上額外標頭,往往令有效 MTU 低於 1500,是實務上常見的效能與連線問題根源。
IP 分片與 Path MTU Discovery
當封包大小超過路徑上某段鏈路的 MTU,路由器可以把封包拆成多個較小的分片(fragmentation)再轉發,接收端須收齊所有分片後才能重組成原始數據,任何一片遺失都會令整個封包重傳,效率明顯下降,亦增加中途設備的處理負擔。因此業界更傾向在傳輸前先探明路徑容許的最大值,這正是 Path MTU Discovery(PMTUD)的作用,其原理由 IETF RFC 1191 定義:來源端發送封包時設定「不可分片」(Don't Fragment)標記,若封包在路徑中途遇到 MTU 較小的鏈路,該處路由器會捨棄封包並回覆一個 ICMP「需要分片但不可分片」訊息,同時告知容許的最大值,來源端收到後便據此調低後續封包大小重新發送。