最大傳輸單元
此條目沒有列出任何參考或來源。 (2015年2月25日) |
最大傳輸單元(英語:Maximum Transmission Unit,縮寫MTU)是指資料鏈路層上面所能通過的最大封包大小(以位元組為單位)。最大傳輸單元這個參數通常與通訊介面有關(網路卡、序列埠等)。
網際網路協定允許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表
網路 | MTU(Byte) |
---|---|
超通道 | 65535 |
16Mb/s權杖環 | 17914 |
4Mb/s權杖環 | 4464 |
FDDI | 4352 |
乙太網路 | 1500 |
IEEE 802.3/802.2 | 1492 |
X.25 | 576 |
對等(低時延) | 296 |
ATM | 48 |
參見
外部連結
- 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
參考文獻
- ^ RFC 1191
- ^ RFC 4821
- ^ Mathis, Matt; Heffner, John. Packetization Layer Path MTU Discovery. Internet Engineering Task Force. 2007-03 [2023-09-27]. (原始內容存檔於2023-10-03).
- ^ RFC 8899
- ^ Fairhurst, Gorry; Jones, Tom; Tüxen, Michael; Ruengeler, Irene; Völker, Timo. Packetization Layer Path MTU Discovery for Datagram Transports. Internet Engineering Task Force. 2020-09 [2023-09-27]. (原始內容存檔於2023-09-30).