这是宽带路由器的一个小小弊端。通过对网速的实测证明,在ADSL接入电脑之间安装宽带路由器后,在多台电脑同时在线的情况下,由于路由器在地址解析、路由分发等方面的耽误,实际到达电脑的速度比单机直接连入ADSL线路要稍慢一些。当然我们也可以采用以下办法将这种损耗降至最低,即更改路由器的MTU值。
MTU是Maximum Transmission Unit的缩写,意思是网络上传送的最大数据包,单位是字节。不同的接入方式,MTU值是不一样的,如果值太大就会产生很多数据包碎片,增加丢包率,降低网络速度。我们平常使用的宽带PPPoE连接方式,其MTU值最大为1492,解决的办法就是对其逐步调低,直到网络最正常为止。
那么又如何判定某个MTU值是最适合的呢? 进入DOS环境(开始->所有程序->附件->命令提示符),输入以下命令行:ping -f -l 1492 192.168.1.1
。
注:其中“192.168.1.1”是网关IP地址(路由器的IP),1492为数据包的长度,参数“-l”是小写的L。如果出现信息:Packet needs to be fragmented but DF set
,那就表示MTU值太大了!而如果出现:
Reply from 192.168.1.1: bytes=1492 time<10ms TTL=128
则表示此MTU值是可行的,不过还是建议多试几个找到最佳值。
我从1492试到1472终于找到了最佳的值:1472(这个是我的路由器的最佳的值,可以做参考)! 大家还有什么好的方法可以研究研究!
其他:
MTU设置
MTU,即Maximum Transmission Unit(最大传输单元),此值设定TCP/IP协议传输数据报时的最大传输单元。设置合适的MTU值可以解决“部分网站打不开”、“上网速度慢”等问题,并且可以适当提升上网速度。
设置多大的MTU值取决于你的上网方式,不同的上网方式支持不同的MTU,下面列出了一些上网方式的MTU值:
EtherNet(一般上网方式,默认值):1500
PPPoE/ADSL:1492
Dial Up/Modem:576
问题一:知道了我的上网方式,如何设置MTU值?
- 在 『开始』>『运行』中,键入regedit,点确定;
- 选择『HKEY_Local_Machine』>『SYSTEM』>『CurrentControlSet』>『Services』>『Tcpip』>『Parameters』>『interface』;
- 在 interface 底下可能有很多的选项,你一个一个的去看,会有一个选项与你的网卡的 IP相同,那个就是你要挑选的选项啦!然后同样的在该选项上选择『编辑』>『新建』>『DWORD值』之后,建立一个名为『MTU』的DWORD,然后双击修改,选择十进制,填入合适 MTU 值,确定!大功告成!
问题二:我不知道自己的上网方式,如何确定MTU值呢?
1 | ping -f -l 1500 127.0.0.1 |
1 | C:\WINDOWS>ping -f -l 1500 127.0.0.1 |
上面的式子中,-l 是 L 的小写(不是 1 喔),1500 是我们要测的 MTU 值,结果出现了 Packet needs to be fragmented but DF set. 这个东西,那表示MTU值太大了,你需要更小的 MTU 值才行!好啦!那假设我们使用 1464 来测试时:
1 | C:\WINDOWS>ping -f -l 1464 127.0.0.1 |
结果出现了回应了!这表示这一个 MTU 值是可行的!不过,强烈建议找出可行的最大 MTU 值!这样一来,在设定的时候,才可以达到最佳的网速!
找出 MTU 值:利用上面这个方法找到的数值还不是 MTU 喔!由于一些封包上面的问题,上面这个值再加上 28 才是我们所需要的 MTU 值!所以,在上面的例子中,我们所需要的 MTU 值是 1464+28=1492!
一般来讲,设计好本机的MTU值,可以解决部分网站打不开的情况,但是如果你的共享主机或路由器的MTU设置有问题,有时问题仍然存或,或者出现网速过慢的情况。合理的设置路由器与本机的MTU值,就可以完全解决上述问题,使上网速度达到最大化。