MTU是MaximumTransmissionUnit的縮寫。
意思是網絡上傳送的最大數據包。MTU的單位是字節。大部分網絡設備的MTU都是1500。如果本機的MTU比網關的MTU大,大的數據包就會被拆開來傳送,這樣會產生很多數據包碎片,增加丟包率,降低網絡速度。把本機的MTU設成比網關的MTU小或相同,就可以減少丟包。
如何檢測網關的MTU?
在本機打開dos窗口,執行:
ping-f-l1452192.168.1.1
其中192.168.1.1是網關IP地址,1452是數據包的長度。請注意,上面的參數是“-l”(小寫的L),而不是“-1”。如果能ping通,表示數據包不需要拆包,可以通過網關發送出去。如果出現:
PacketneedstobefragmentedbutDFset.
PacketneedstobefragmentedbutDFset.
PacketneedstobefragmentedbutDFset.
PacketneedstobefragmentedbutDFset.
表示數據包需要拆開來發送。此時,減少數據包長度,再執行上面的ping命令。從1400到1472之間多試幾次,就能找到合適的數據包長度了。把數據包長度加上數據包頭28字節,就得到MTU的值。如果檢測到網關的MTU值是1500,不需要修改。如果網關有防火牆ping不通,可以試試直接把MTU設為1400。
C:DocumentsandSettingsAdministrator>ping-f-l1452192.168.1.1
Pinging192.168.1.1with1452bytesofdata:
Replyfrom192.168.1.1:bytes=1452time=5msTTL=64
Replyfrom192.168.1.1:bytes=1452time=5msTTL=64
Replyfrom192.168.1.1:bytes=1452time=5msTTL=64
Replyfrom192.168.1.1:bytes=1452time=1msTTL=64
結果出現了回應了!這表示這一個MTU值是可行的!不過,強烈建議找出可行的最大MTU值!這樣一來,在設定的時候,才可以達到最佳的網速!
找出MTU值:利用上面這個方法找到的數值還不是MTU喔!由於一些封包上面的問題,上面這個值再加上28才是我們所需要的MTU值!所以,在上面的例子中,我們所需要的MTU值是1464+28=1492!
附注:我設置為1452+28=1480後,還是會出現有些網站打不開、遠程桌面無法通過域名登陸的問題(通過ip可以正常遠程桌面登陸),而把MTU設置為1452後,反而這些問題都迎刃而解了,並且,此時,登陸zlbog後台正常、使用域名登陸遠程桌面正常。
一般來講,設計好本機的MTU值,可以解決部分網站打不開的情況,但是如果你的共享主機或路由器的MTU設置有問題,有時問題仍然存或,或者出現網速過慢的情況。合理的設置路由器與本機的MTU值,就可以完全解決上述問題,使上網速度達到最大化。
如何修改本機的MTU?修改方法如下:
(1)、運行regedit
(2)、浏覽到:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces
(3)、Interfaces下有多個子項,每個子項對應一個網卡。請按如下方法選擇網卡:
(4)、確定本機用來連接Internet的網卡或撥號連接的IP,如192.168.0.19;
(5)、用鼠標點擊Interfaces上的子項,查看鍵值列表中的IPAddress項;
(6)、如果IPAddress的鍵值與(4)中的IP相同,即192.168.0.19,則該子項就是要找的網卡。
(7)、進入該子項,在右邊的窗口裡按鼠標右鍵,選擇“新建”->“雙字節值”,輸入名稱“MTU”,按回車。再用鼠標雙擊“MTU”,彈出修改窗口:如圖3:填入MTU的值。填寫前請先把基數設為十進制。設置好後,需要重啟機器才能生效。
實踐、重啟、測試,最後得出最佳的網絡狀態,探索無極限,努力,終會有好結果。