2023年12月6日发(作者:)

测试电信 MTU值 + 修改 Win 7 MTU值 方法图解

对于 MTU (Maximum Transmission Unit,最大传输单元)的简单说明:

网络上传输的并非连续的数据流,而是一个个的数据包,

MTU的值限定了这个数据包的最大值。

如果电信运营商设定的数据包最大值为1480字节,

而你的电脑通过路由器上网,默认是使用1500字节,

(如果是直连Modem,则会自动采用电信提供的 MTU值)

那么你发送的数据包将超过电信的规定,而被退回,

于是系统只好重新组成符合电信要求的数据包来发送,

这样就浪费了时间,增加了处理工序,

甚至有人因此网络非常不稳定,打开网页龟速。

最好的做法就是将自己电脑和路由器的 MTU 设置成电信允许的限值。

路由器的我不多介绍,因为比较简单,只介绍电脑的设置。

第一部分:测试电信 MTU

要用电信配的modem连接电源、电话线、网线,网线另一头直接插入电脑网卡接口。

这样才能真实测试出MTU值。

点击“开始菜单”按钮,选择“所有程序”,再选择“附件”,

最后在“命令提示符”右键单击弹出快捷菜单选择“以管理员身份运行”,如图:

“局域网”的MTU值默认为1500,“宽带”的MTU值则各地区不同,

可通过尝试来获取所在地的MTU值,方法如下:

输入ping -l 1500 -f

参数解释:

“-l 1500” l 代表了 length 长度,1500 代表数据包长度为 1500 个字节。

我们通过尝试不同的数据包长度,来验证电信的长度为多少。

“-f” 在数据包中设置“不分段”标志。强制系统将数据包一次性发送出去。

“” 发送目的地主机,可以换成任意一个有效网址。

返回结果是:需要拆分数据包。

再尝试其他的,如1452,提示:得到回复。

说明该长度没有超出电信规定的 MTU值,再继续测试直到找出临界值。

建议可以使用2分1的方法,即是如果已知 MTU值 在1400-1500之间,

最笨的方法就是 从 1400 一直尝试到 1500,试 100次,

最聪明的方法就是 取中值 1450,

如果测试不通过,则取 1400-1450的中值 1425,

如果再通过,则取 1425-1450的中值 1437,有点类似于猜数字游戏。

第二部分:修改 Win 7 MTU

输入:netsh interface ipv4 show subinterfaces

查询到目前系统的MTU值。

如果你查询不到你想要的连接,请看看是否已经禁用了某个本地连接。

再分别输入以下两行,每输入一行就按一次回车键。

netsh interface ipv4 set subinterface "本地连接" mtu=1480

store=persistent

netsh interface ipv4 set subinterface "无线网络连接" mtu=1480

store=persistent

其中

1480 就是我测试出来的 “值1452字节” + “数据包头28字节” = 1480字节。

至此电脑的有线网卡和无线网卡修改完毕。