MTU是Maximum Transmission Unit的縮寫。
意思是網絡上傳送的最大數據包。 MTU的單位是字節。 大部分網絡設備的MTU都是1500。如果本機的MTU比網關的MTU大,大的數據包就會被拆開來傳送,這樣會產生很多數據包碎片,增加丟包率,降低網絡 速度。把本機的MTU設成比網關的MTU小或相同,就可以減少丟包。
如何檢測網關的MTU?
在本機打開dos窗口,執行:
ping -f -l 1452 192.168.1.1
其中192.168.1.1是網關IP地址,1452是數據包的長度。請注意,上面的參數是“-l”(小寫的L),而不是“-1”。 如果能ping通,表示數據包不需要拆包,可以通過網關發送出去。 如果出現:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
表示數據包需要拆開來發送。此時,減少數據包長度,再執行上面的ping命令。從1400到1472之間多試幾次,就能找到合適的數據包長度了。把數據包 長度加上數據包頭28字節,就得到MTU的值。 如果檢測到網關的MTU值是1500,不需要修改。 如果網關有防火牆ping不通,可以試試直接把MTU設為1400。
C:\Documents and Settings\Administrator>ping -f -l 1452 192.168.1.1
Pinging 192.168.1.1 with 1452 bytes of data:
Reply from 192.168.1.1: bytes=1452 time=5ms TTL=64
Reply from 192.168.1.1: bytes=1452 time=5ms TTL=64
Reply from 192.168.1.1: bytes=1452 time=5ms TTL=64
Reply from 192.168.1.1: bytes=1452 time=1ms TTL=64
結果出現了回應了!這表示這一個 MTU 值是可行的!不過,強烈建議找出可行的最大 MTU 值!這樣一來,在設定的時候,才可以達到最佳的網速!
找出 MTU 值:利用上面這個方法找到的數值還不是 MTU 喔!由於一些封包上面的問題,上面這個值再加上 28 才是我們所需要的 MTU 值!所以,在上面的例子中,我們所需要的 MTU 值是 1464+28=1492!。
一般來講,設計好本機的MTU值,可以解決部分網站打不開的情況,但是如果你的共享主機或路由器的MTU設置有問題,有時問題仍然存或,或者出現網速過慢的情況。合理的設置路由器與本機的MTU值,就可以完全解決上述問題,使上網速度達到最大化。
如何修改本機的MTU?修改方法如下:
(1)、運行regedit
(2) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
(3)、Interfaces下有多個子項,每個子項對應一個網卡。請按如下方法選擇網卡:
(a)確定本機用來連接Internet的網卡或撥號連接的IP,如192.168.0.19;
(b)用鼠標點擊Interfaces上的子項,查看鍵值列表中的IPAddress項;
(c)如果IPAddress的鍵值與(a)中的IP相同,即192.168.0.19,則該子項就是要找的網卡。
(4)、進入該子項,在右邊的窗口里按鼠標右鍵,選擇“新建”->“雙字節值”,輸入名稱“MTU”,按回車。再用鼠標雙擊“MTU”,彈出修改窗口: 如圖3: 填入MTU的值。填寫前請先把基數設為十進制。 設置好后,需要重啟機器才能生效。
實踐、重啟、測試,最后得出最佳的網絡狀態,探索無極限,努力,終會有好結果。
測試步驟
1. 撥號上網,並打開“開始”菜單→“程序→附件→命令提示符”
2. 輸入命令“ping –l 14xx –f www.163.com”,這里我們解釋一下命令參數的含義
* –l 14xx參數:發送一個定長數據包,14xx是要測試的包大小,如前所述,ADSL的MTU一般在1450與1492之間,第3步中將每次更換一次該值
* –f 參數:通知操作系統不能私自更改該數據包大小
* www.163.com:任意一台Internet上的主機,也可使用其它主機名或IP地址
3. 觀察反饋結果並判斷ISP的MTU值(請注意圖中標黃框部分)
1) 第一次發送測試包,包長1450
如圖1,提示數據包過大,需要分包,因此判斷該數值(1450)大於ISP的MTU,應降低包大小
2) 第二次發送測試包,包長1440
如圖2,數據包大小降為1440,提示應為數據包過大,因此判斷該值(1440)仍大於ISP的MTU,還應繼續降低