什么是MTU,如何检测和设置路由器MTU值
意思是网络上传送的最大数据包。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:/DocumentsandSettings/Administrator>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_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/Interfaces
(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的值。填写前请先把基数设为十进制。设置好后,需要重启机器才能生效。
实践、重启、测试,最后得出最佳的网络状态,探索无极限,努力,终会有好结果。