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的值。填寫前請先把基數設為十進位。設定好後,需要重啟機器才會生效。
實踐、重啟、測試,最後得出最佳的網路狀態,探索無極限,努力,終會有好結果。