很少人注意到电脑操作系统、网络路由器的MTU值对自己网络性能产生的影响。特别是国内的光猫或ADSL,传统上都是用1492而非1500,但对windows来说,默认值也是1500。有些路由器或交换机的默认配置也和系统不一样,在带宽有限或是无线信号不好时,MTU值设置不当,就会严重影响网速。同样地,如果你使用多个路由器来上网,也容易因为MTU不匹配而使得上网带宽受到极大限制。
一、MTU是什么?
我们在上网时,互联网通信都是通过一个又一个“数据包”传输来实现的。而MTU指定了网络中可传输数据包的最大尺寸,在我们常用的以太网中,MTU是1500字节。超过此大小的数据包就会将多余的部分拆分再单独传输。在Windows系统中,默认MTU值也是1500字节,但是“不同的接入方式、不同地区的网络运营商、不同的路由器”有着不同的MTU设置。假设A需要给B传输3000字节数据,如果整个传输过程中各个环节的MTU都是1500,那么2个数据包就可以传输完成。可是偏偏这时电信的光猫接入方式的MTU是1492字节,数据包就因为这个MTU差异额外拆分为3个。显然这额外增加了需要传输的数据包数量,而且拆包组包的过程也浪费了时间。如果从本地到网络采用一致的MTU就可以避免额外拆包。
二、如何查看MTU值
Windows下可以用:开始—-运行—-cmd–输入:netsh interface ipv4 show subinterfaces 查询到目前系统的MTU值。
路由器则可以登陆web页面查看。
三、设置
首先我们应该查找光猫开始的网络环境的MTU值,因为国内光猫通常不开放设置,因此你可以用ping来探测:
方法如下:
(1)按Win+R组合键,调出“运行”菜单,输入“cmd”然后回车
(2)在出现的“命令提示符”窗口中输入“ping -l 1472 -f http://www.baidu.com”然后回车
这里1472加上ICMP的28字节包头,实际上探测目标是1500的大小。如果不能正确ping通,说明MTU没达到1500,依次减少它直到ping通,就是你网络环境许可的MTU值大小。注意是ping中测试通过的”探测值+28″。
如果是linux下,命令不太一样,用的是”ping -s 1472 -M do http://www.baidu.com”。
注意,光猫的WiFi可用的MTU大小和有线有时差别很大,请根据平时上网习惯调整。
Win7、win10操作系统设置方法:
以管理员身份运行cmd,在窗口中输入“netsh interface ipv4 set subinterface “需修改的连接名” mtu=你得出的合理值 store=persistent”并回车即可
例如:“netsh interface ipv4 set subinterface “Wi-Fi” mtu=1492 store=persistent”
不过,如果您经常在办公室和家两端跑,最好还是根据需要自行更改,因为办公网络的环境,MTU值可能更高。