(一)MTU簡介
MTU (Maximum Transmission Unit)是「最大傳輸單位」的英文縮寫,代表傳送一個數據包時可以使用的最大長度,以位元組(byte)為單位。在電腦主機上是指的是第三層封包(如IP Packet)的大小,在路由器上則是指第二層訊框(如Ethernet Frame)。不同的網路通訊協定會有不同的MTU,常見的如下:
表1 常見MTU建議值
網路介面 |
MTU
(IP Packet) |
MTU
(Ethernet Frame) |
說明 |
Ethernet V2 |
1500 |
1514 |
目前主要使用的乙太網路標準 |
Ethernet with PPPoE |
1492 |
1514 |
含6 bytes PPPoE header及2 bytes PPP ID |
Ethernet with 801.1Q |
1500 |
1518 |
含4 bytes Vlan Tag |
(二)封包分割(Fragment)
標準乙太網路的MTU是1500(後續MTU均指IP Packet),如果要傳送的封包太大時,需要將封包分割(Fragment)成幾個較小的封包,以便符合MTU的值,到達目的地再組合還原為原來的封包。
IPv4網路與IPv6網路處理封包分割的作法不太一樣,IPv4網路上的原件如路由器等,都可以進行封包分割的工作,如輸入端收到的封包大小比輸出端的MTU大,路由器會將分解成較小的封包再傳送,每個封包會以小於MTU但為8的倍數之大小進行分割,所有封包於抵達終端電腦主機後,由該主機組合還原為原來的封包。
(三)IPv6 Path MTU Discovery (PMD)
為降低路由器負擔,IPv6封包分割的工作只在起始端的電腦上執行,如果電腦傳送超過路由器(或其他網路設備)MTU大小的封包,路由器會將收到的封包丟棄,回送一個Packet Too Big (封包太大)的ICMPv6回應封包,並透過這個封包告知該路由器的MTU,電腦收到後就會依據這個MTU重新進行封包分割及發送,這個告知MTU的機制稱為IPv6 Path MTU Discovery (PMD)。
只要PMD能正常運作,MTU就可以自動調整至符合網路傳輸需求,但有可能因為部分網路設備不支援PMD或ICMPv6封包被防火牆阻擋,MTU將無法自動調整,IPv6封包的傳輸有可能因此而失敗。因此網路設備採購及設定時,必須注意是否支援PMD協定,同時也要注意在防火牆或路由器的資訊安全設定上不能將ICMPv6關閉。
可以透過手動設定或檢視電腦網路介面MTU,以Windows作業系統為例,命令如下:
- 設定MTU:netsh interface ipv6 set subinterface "WLAN" mtu=1500
- 檢視MTU:netsh interface ipv6 show subinterfaces "WLAN"
更詳盡的內容請參考IPv6升級實作技術手冊,下載網址為http://ipv6launch.tw/book.html。 |