ROS等路由器MTU值取值及修改详解[图文]
MTUMaximum 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命令。从14001472之间多试几次,就能到合适的数据包长度了。把数据包长度加上数据包头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
附注:我设置为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下有多个子项,每个子项对应一个网卡。请按如下方法选择网卡:
          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”,这里我们解释一下命令参数的含义

  * –l 14xx参数:发送一个定长数据包,14xx是要测试的包大小,如前所述,ADSLMTU一般在14501492之间,第3步中将每次更换一次该值

  * –f 参数:通知操作系统不能私自更改该数据包大小

  * www.163:任意一台Internet上的主机,也可使用其它主机名或IP地址

  3. 观察反馈结果并判断ISPMTU值(请注意图中标黄框部分)

  1) 第一次发送测试包,包长1450

  如图1,提示数据包过大,需要分包,因此判断该数值(1450)大于ISPMTU,应降低包大小



  2) 第二次发送测试包,包长1440

  如图2,数据包大小降为1440,提示应为数据包过大,因此判断该值(1440)仍大于ISPMTU,还应继续降低



  3) 第三次发送测试包,包长1430

  如图3,数据包大小降为1430,提示该数据包可以正常传输,因此判断ISPMTU值在1440~1430之间



  4) 第四次发送测试包,包长1435

  如图4,数据包大小升为1435,提示仍然可以正常传输,因此判断MTU数值在1440~1435之间



  5) 第五次发送测试包,包长1438

  如图5,数据包大小升为1438,提示可正常传输,因此判断MTU数值在1440~1438之间



  6) 第六次发送数据包,包长1439

  如图6,数据包大小升为1439,提示因数据包过大无法传输,因此,判断出该ISPMTU值为1438



  4. 计算本地电脑的MTU

  上面得到的MTU值不能直接用于本地设置上,还应在此基础上加上28(包头大小),因此最终的MTU数值为tcpip详解 第二版1466

  5. 修改本机MTU

  修改本机默认的MTU值可以通过注册表来进行,但更直观稳妥的方法是使用一些系统优化软件,如超级兔子Windows优化大师等,本例使用超级兔子 V6.25”进行演示。如图7是进入魔法设置网络设置标签的画面,首先选中使用最大传输单元前面的勾,然后再从后面的数据栏中输入计算出的MTU值(1466)后点击确定并重启电脑即可。


  总结

  如上所述,整个过程可能看起来挺烦琐,但思路十分简单,而且效果不错。笔者的电脑设置了MTU值后,浏览器打开页面的速度较未设置前提高了15%,效果还是很明显的。但此法只适用于PPPOE的拨号ADSL,对于光纤接入或ISDN接入的宽带网络不适用此法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。