说起 MTU 值,可能许多朋友连听都没听说过。简单来说,我们上网时所进行的操作,都是通过传输一个又一个“数据包”来实现的,而 MTU 值就是用来设定可传输数据包的最大尺寸的。很显然,MTU 值设置得过大或过小,都会在一定程度上影响我们上网的速度。
那么,MTU 值究竟设为多大才最合适,我们们又该如何设置 MTU 值呢?
一、什么是 MTU 值
1,从字面上来说,MTU 是英文 Maximum Transmission Unit 的缩写,即最大传输单元,它的单位是字节。
在我们常用的以太网中,MTU 一般是 1500,而无线路由器默认一般是 1492,蓝牙官网的默认值是 672(这个速度很慢了,大约 20k/s 左右)。
2,为什么说 MTU 值会影响网速呢?在此简单说明一下。在 Win 系统中,MTU 值默认是 1500。假设我们现在要传输 3000 字节的数据,只需要拆分成 2 个数据包就行了。
而如果是 ADSL 接入方式,它的 MTU 值是 1492 的话,则 3000 字节的数据需要分为 3 个数据包传送。由于数据包的数量增多了,同时拆包组包都需要额外消耗时间,因此网速变慢也就不足为奇了。
二、怎样测出自己当前网络最佳MTU值
1,首先,我们必须明白什么才是最佳的 MTU 值。1)当本地 MTU 值 > 网络 MTU 值,网络会进行拆包,这样一来数据包数量增多,二来也增加了拆包组包的时间
2)当本地 MTU 值 < 网络 MTU 值,虽然可以直接传输,但是却没有完全利用网络的性能,没有发挥出最大传输能力
因此,设置最合适的本地 MTU 值,就是要让本地 MTU 值 = 网络 MTU 值。
那么,怎样才能知道自己的当前网络环境的 MTU 值是多少呢?下面便来介绍测试方法。
①按下快捷键 Win键+R,打开运行窗口后输入 cmd,回车打开命令提示符窗口。
②在命令提示符窗口输入以下命令(建议直接复制,以免误将小写字母 l 写为数字 1),回车。
ping -l 1472 -f www.baidu.com
这条命令的意思是向 www.baidu.com(百度主页)发送一个探测请求,请求将一个不允许分割的 1472 字节的数据包发送出去。
③若是出现传输失败,提示需要拆分数据包的情况,则说明当前网络的 MTU 值要比指定的 1472 小,因此我们就适当调小数据包的大小(比如 1450),再发送一条类似的命令。
④这时,如果出现传输成功,则说明当前网络的 MTU 值比 1450 要大。于是我们需要稍微调大数值(比如1460),以便求得最为精确的网络 MTU 值。⑥如此这般,通过不断修正数据包的大小,我们可以最终得到当前网络的 MTU 值。比如我这里,测试 1464 通过,但 1465 失败,所以我的网络 MTU 值为 1464。
在此需要特别说明的是,当我们设置本地 MTU 值,必须牢记要将这个测得的值再加上 28,即 1464+28 = 1492。
【Vista、Win7、Win8.1、Win10 操作系统设置 MTU 的方法】
1、查看自己当前网络的 MTU 值,请命令提示符下输入以下命令并回车:
netsh interface ipv4 show subinterfaces
2、要设置你正在使用网络的 MTU 值,请在命令提示符下输入以下命令并回车:
netsh interface ipv4 set subinterface "需修改的连接名" mtu=值 store=persistent
其中,需修改的连接名 和 值 要用相应的值来代替。例如,我这里需要输入:
netsh interface ipv4 set subinterface "WLAN" mtu=1492 store=persistent
在这里,我已经把要修改的地方用粗体字标出来了。
另外,请大家注意,修改 MTU 值与查看不同,需要以管理员身份运行命令提示符。
3、当我们以管理员身份运行命令提示符符时,输入以上命令即可成功设置。友情提示:回车后出现“确定”二字即代表已经设置成功。
附:
1)在 Win8.1/10 中以管理员身份运行命令提示符的方法,右击屏幕左下角的Win徽标,在弹出的右键菜单中点击“命令提示符(管理员)”
2)Win7点击开始菜单,在所有程序找到“命令提示符(管理员)”点击运行即可
>netsh interface ipv4 show subinterfaces
注意事项
不同的网络类型,其MTU有可能不同,大家最好自己动手测试,以找到最合适自己的MTU值。