最大傳輸單元

最大傳輸單元(Maximum Transmission Unit,MTU)是指一種通信協定的某一層上面所能通過的最大數據報大小(以位元組為單位)。最大傳輸單元這個參數通常與通信接口有關(網路接口卡、串口等)。

基本介紹

  • 中文名:最大傳輸單元
  • 外文名:Maximum Transmission Unit
  • 英文縮寫:MTU
詳細信息,局限,IP分片技術,簡介,內容,

詳細信息

網際網路協定允許IP分片,這樣就可以將數據報分成足夠小的片段以通過那些最大傳輸單元小於該數據報原始大小的鏈路了。這一分片過程發生在IP層(OSI模型的第三層,即網路層),它使用的是將分組傳送到鏈路上的網路接口的最大傳輸單元的值。原始分組的分片都被加上了標記,這樣目的主機的IP層就能將分組重組成原始的數據報了。
在網際網路協定中,一條網際網路傳輸路徑的“路徑最大傳輸單元”被定義為從源地址到目的地址所經過“路徑”上的所有IP跳的最大傳輸單元的最小值。或者從另外一個角度來看,就是無需進一步分片就能穿過這條“路徑”的最大傳輸單元的最大值。
RFC 1191描述了“路徑最大傳輸單元發現方法”,這是一種確定兩個IP主機之間路徑最大傳輸單元的技術,其目的是為了避免IP分片。在這項技術中,源地址將數據報的DF(Don't Fragment,不要分片)位置位,再逐漸增大傳送的數據報的大小——路徑上任何需要將分組進行分片的設備都會將這種數據報丟棄並返回一個“數據報過大”的ICMP回響到源地址——這樣,源主機就“學習”到了不用進行分片就能通過這條路徑的最大的最大傳輸單元了。

局限

不幸的是,越來越多的網路封殺了ICMP的傳輸(譬如說為了防範DOS攻擊)——這使得路徑最大傳輸單元發現方法不能正常工作,其常見表現就是一個連線在低數據流量的情況下可以正常工作,但一旦有大量數據同時傳送,就會立即掛起(例如在使用IRC的時候,客戶會發現在傳送了一個禁止IP欺騙的ping之後就得不到任何回響了,這是因為該連線被大量的歡迎訊息堵塞了)。而且,在一個使用網際網路協定的網路中,從源地址到目的地址的“路徑”常常會為了回響各種各樣的事件(負載均衡、擁塞、斷電等等)而被動態地修改——這可能導致路徑最大傳輸單元在傳輸過程中發生改變——有時甚至是反覆的改變。其結果是,在主機尋找新的可以安全工作的最大傳輸單元的同時,更多的分組被丟失掉了。
對於時下大多數使用乙太網的區域網路來說,最大傳輸單元的值是1500位元組。但是像PPPoE這樣的系統會減小這個數值,這就使得在使用最大傳輸單元發現方法時可能會產生這樣的結果:一些處於配置不當的防火牆之後的站點變得不可達了。對於這種情況,還是可能找到變通的方法的,但這取決於你控制的是網路的哪一部分。這些方法包括改變用來在防火牆一端建立TCP連線的第一個分組的MSS(Maximum Segment Size,最大分段大小)。
對於一些支持老版本乙太網協定的IBM系統(例如XSeries),可能只有在把最大傳輸單元設為1492之後才能在當下常見的區域網路上進行運作。

IP分片技術

簡介

鏈路層具有最大傳輸單元MTU這個特性,它限制了數據幀的最大長度,不同的網路類型都有一個上限值。乙太網的MTU是1500,你可以用 netstat -i 命令查看這個值。如果IP層有數據包要傳,而且數據包的長度超過了MTU,那么IP層就要對數據包進行分片(fragmentation)操作,使每一片的長度都小於或等於MTU。我們假設要傳輸一個UDP數據包,乙太網的MTU為1500位元組,一般IP首部為20位元組,UDP首部為8位元組,數據的淨荷(payload)部分預留是1500-20-8=1472位元組。如果數據部分大於1472位元組,就會出現分片現象。

內容

IP首部包含了分片和重組所需的信息:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |R|DF|MF| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|<-------------16-------------->|<--3-->|<---------13---------->|
Identification:傳送端傳送的IP數據包標識欄位都是一個唯一值,該值在分片時被複製到每個片中。
R:保留未用。
DF:Don't Fragment,“不分片”位,如果將這一比特置1 ,IP層將不對數據報進行分片。
MF:More Fragment,“更多的片”,除了最後一片外,其他每個組成數據報的片都要把該比特置1。
Fragment Offset:該片偏移原始數據包開始處的位置。偏移的位元組數是該值乘以8。
另外,當數據報被分片後,每個片的總長度值要改為該片的長度值
設備的MTU調成多少比較好?
以ISP(電信服務商)的MTU為基準,每下級設備的MTU都最好比上級設定的略低為好。
例如在ISP=>貓=>路由器=>電腦的布局中,ISP的MTU是1466,那么下級的貓可以設定成1464,再下 級的路由器可以設定成1462,再下級的電腦的MTu可以設定成1460,以此類推。
MTU的作用
通常來說MTU越小,你所傳送包的頻率越快,在一些遊戲和網路軟體中可以通過更改mtu獲得更好的效果。mtu代表的是封裝包的大小,封閉包的大小決定你傳送包的傳送頻率。

相關詞條

熱門詞條

聯絡我們