最大傳輸單元(英語:Maximum Transmission Unit,縮寫MTU)是指數據鏈路層上面所能通過的最大封包大小(以位元組為單位)。最大傳輸單元這個參數通常與通訊介面有關(網絡卡、序列埠等)。
此條目沒有列出任何參考或來源。 (2015年2月25日) |
互聯網協定允許IP分片,這樣就可以將數據報包分成足夠小的片段以通過那些最大傳輸單元小於該數據報原始大小的鏈路了。這一分片過程發生在IP層(OSI模型的第三層,即網絡層),它使用的是將分組傳送到鏈路上的網絡介面的最大傳輸單元的值。原始分組的分片都被加上了標記,這樣目的主機的IP層就能將分組重組成原始的數據報了。
在互聯網協定中,一條互聯網傳輸路徑的「路徑最大傳輸單元」被定義為從源地址到目的地址所經過「路徑」上的所有IP的最大傳輸單元的最小值。或者從另外一個角度來看,就是無需進一步分片就能穿過這條「路徑」的最大傳輸單元的最大值。
RFC 1191 描述了「路徑最大傳輸單元發現方法(PMTUD)」[1],這是一種確定兩個IP主機之間路徑最大傳輸單元的技術,其目的是為了避免IP分片。在這項技術中,源地址將設置數據報的DF(Don't Fragment,不要分片)標記位,再逐漸增大傳送的數據報的大小——路徑上任何需要將分組進行分片的裝置都會將這種數據報丟棄並返回一個「數據報過大」的ICMP響應到源地址——這樣,源主機就「取得」到了不用進行分片就能通過這條路徑的最大的最大傳輸單元了。
RFC 4821 描述了「分組層路徑最大傳輸單元發現方法(PLPMTUD)」[2]。該方法通過藉助傳輸層協定(例如 TCP 協定),在不依賴 ICMP 的情況下探測兩個主機之間路徑上的 MTU[3]。RFC 8899 對 PLPMTUD 進行了增補,提出了「數據報分組層路徑最大傳輸單元發現方法(DPLPMTUD)」[4],使得可以使用 UDP 協定探測路徑 MTU[5]。
對於時下大多數使用乙太網路的區域網絡來說,最大傳輸單元的值是1,500位元組。但是像PPPoE這樣的系統會減小這個數值,通常是1492(=1500-2(PPP)-6(oE)),這就使得在使用最大傳輸單元發現方法時可能會產生這樣的結果:一些處於組態不當的防火牆之後的站點變得不可達了。對於這種情況,還是可能找到變通的方法的,但這取決於你控制的是網絡的哪一部分。這些方法包括改變用來在防火牆一端建立TCP連接的第一個分組的MSS(Maximum Segment Size,最大分段大小)。
常見媒體的MTU表
參見
外部連結
- RFC 1191
- RFC 4821
- RFC 8899
- https://web.archive.org/web/20110906155344/http://www.znep.com/~marcs/mtu/index.html Path MTU Discovery and Filtering ICMP
- http://www.tech-faq.com/mtu.shtml (頁面存檔備份,存於互聯網檔案館) Default MTU Sizes
- https://web.archive.org/web/20051201003611/http://iptables-tutorial.frozentux.net/iptables-tutorial.html#TCPMSSTARGET How to set the TCP MSS value using iptables.
- https://web.archive.org/web/20060203093235/http://help.expedient.net/broadband/mtu_ping_test.shtml Discovering of MTU value via ping and setting it in Windows
參考文獻
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.