最大傳輸單元(Maximum Transmission Unit, MTU) - NotFalse ...
文章推薦指數: 80 %
IP 分段 (IP Fragmentation) ... 網路層的IPv4 與IPv6, 其封包大小上限,分別為65535 與65575 位元組(octet), 並提供較大的封包選項— — 巨型封包( ...
跳至主內容區封裝與拆裝一文,提及了區段(Segment)、資料包(Datagram)、訊框(Frame)、封包(Packet)的概念。
應用層的資料,經由逐層的封裝(Encapsulation),最後成為資料鏈結層(Data-LinkLayer)的訊框(Frame)並傳送。
但是,訊框(Frame)太大會發生什麼事? 傳輸需耗損大量的緩衝區(buffer)大小傳輸媒介可能被某一傳送端獨佔,造成堵塞… 因此,資料鏈結層(Data-Link)規範了訊框(Frame)的大小上限,也就是——最大傳輸單元(MaximumTransmissionUnit,MTU),如果沒有這些缺點,MTU當然越大越好啦! 目錄最大傳輸單元(MTU)IP分段
(IPFragmentation)PathMTUDiscoveryMore最大傳輸單元(MTU)不同的資料鏈結層,有不同的MTU。
如:乙太網路(Ethernet)的1500個位元組,IEEE802.3/802.2的1492個位元組,光纖分散式數據介面(FDDI)的4352個位元組…。
以乙太網路(Etherner)為例: 一個乙太網路訊框(Frame),最大的長度為1518位元組(octet),去掉表頭與尾端資訊後,酬載的最大資料長度則為1500octet,且資料最小長度需為46octet,不足的話就用填充位元(padding)填滿至46為止。
使用指令:netstat-i 可顯示系統網路介面資訊(含MTU) IP分段(IPFragmentation) 網路層的IPv4與IPv6,其封包大小上限,分別為65535與65575位元組(octet),並提供較大的封包選項——巨型封包(jumbograms)。
遠遠超出了許多資料鏈結層的訊框大小! IP分段(IPFragmentation)即是其中一種解法: IP會將封包切割成多個較小的(小於MTU)片段(fragment),使其能透過資料鏈結層傳輸,目的端接收完所有片段後,再將片段(fragment)進行重組。
分段(fragmentation),可能由傳輸路徑中的任何一台路由器來做(含來源主機),且被分段的封包——片段(fragment)可能經由不同路由方式,只要最終達到相同的目的地即可。
(IPv6只有來源端可以做分段) 將IP資料包(IPDatagram)分段的主機或路由器,會複製必要欄位到各個片段中,並更改旗標、片段偏移量、(封包)總長度,與重新計算各個分段的檢驗和。
(IP檢驗和,不含虛擬表頭) 最後,目的端接收完所有片段後,再將片段(fragment)進行重組:IPDatagram格式 將在未來討論IP協定進一步說明。
PathMTUDiscovery如果IPFragmentation任一片段遺失、毀損呢? 答案是:目的端將無法重組這個封包。
更重要的是:網路層的IP並不會處理重送 這對有重送機制的傳輸層(Ex:TCP),降低了傳輸效率(無法只重送一個片段);對沒有重送機制的傳輸層(Ex:UDP),增加了資料的遺失率。
PathMTUDiscovery技術,有效的避免IPFragmentation:找出來源與目的端路徑中,所有資料鏈結層裡的最小MTU。
(通常,為乙太網路的1500octet) 許多可靠的傳輸層(如:TCP),會以此值做為參考,調整最大區段長度(MaximumSegmentSize,MSS)。
最簡單的算法:MSS=MTU-20octet(TCP固定表頭)-20octet(IP固定表頭) 或其他動態調整演算法,常見的MSS有1460、1400、1380…。
而沒有此機制的傳輸層(如:UDP),則是選擇適當的資料包(Datagram)大小,確保傳輸的IP封包,會小於IPv4的最小可重組緩衝區大小(576octet),避免IPFragmentation。
分享此文:分享到Twitter(在新視窗中開啟)按一下以分享至Facebook(在新視窗中開啟)按一下以分享到Google+(在新視窗中開啟)分享到Pocket(在新視窗中開啟)More作者:鄭中勝喜愛音樂,但不知為何總在打程式?
期許能重新審視、整理自身所學,幫助有需要的人。
文章導覽列⟵協定資料單元—區段(Segment)、資料包(Datagram)、訊框(Frame)TCP流量控制(FlowControl)⟶在《最大傳輸單元(MaximumTransmissionUnit,MTU)》中有2則留言文章中有兩個fragment拼成frament回覆感謝指正!已修正😁回覆發表迴響取消回覆搜尋關鍵字:適用電子郵件訂閱網站輸入你的電子郵件地址訂閱網站的新文章,使用電子郵件接收新通知。
電子郵件位址分類分類選取分類HTTP (26)TCP/IP (11)WEB開發 (5)未分類 (2)計算機組織/概論 (6)設計模式/原則 (7)資結/演算法 (6)PopularRecent標籤AJAXArrayAsync/AwaitChecksumCORSGoFIoC/DIjQueryLiskov替代原則MemorydumpMSSmtuPub/SubrwndSACKSocketSOLIDstacksyncvs.asyncVueword一的補數介面導向程式設計位元依賴倒置原則函式呼叫同源政策單一職責原則回調函式多型多載存取範圍工廠方法模式延遲確認快速重送滑動視窗箭頭函式覆寫觀察者模式記憶體設計原則設計模式進制遞迴開閉原則
延伸文章資訊
- 1關於媒體封包大小- Win32 apps
可路由封包大小反映中繼路由器願意轉送的封包大小上限。 大部分的IPX 路由器都是為了路由傳送任何大小資料包,只要它保留在傳送和接收網路的媒體大小內即 ...
- 2TCP、UDP資料包大小的限制(UDP資料包一次傳送多大為好 ...
- 3什麽是MTU(傳輸單元最大值)? | Cloudflare
MSS 僅涉及每個封包的承載大小。它是通過將TCP 的長度減去MTU 的標頭得出的。 雖然超過一個路由器的MTU 的封包要麽被分割 ...
- 4IPv4 - iT 邦幫忙
IP封包的組成部份,以及各部件的長度(事實上,真正的封包是由連續的位元依序 ... 就是代表封包大小,IP標準的MTU就是65535bytes,就跟Total Length有關(2的16次方-1).
- 5封包大小限制 - IBM
如果mkreplica 和 syncreplica 指令嘗試建立比系統所支援大小還大的封包,它們會失敗。如果要防止此問題發生及提高可靠性,請使用–maxsize 選項將該封包分割成多個封包 ...