可能很少有雷友注意过“本机、
网络”的“MTU”值对自己网络性能产生的影响。对于追求更快的
下载速度来说,MTU值
设置不当,就仿佛穿着高跟鞋跑步一般。
MTU是什么?
“MTU=最大传输单元 单位:字节”
我们在使用互联网时进行的各种网络操作,都是通过一个又一个“数据包”传输来实现的。而MTU指定了网络中可传输数据包的最大尺寸,在我们常用的以太网中,MTU是1500字节。超过此大小的数据包就会将多余的部分拆分再单独传输。
为什么MTU影响网络性能?
让我们看看这个情况,在
Windows系统中,默认MTU值也是1500字节,但是“不同的接入方式、不同地区的网络运营商、不同的路由器”有着不同的MTU设置。
例如:ADSL接入时MTU为1492字节,假设A需要给B传输3000字节数据,如果整个传输过程中各个环节的MTU都是1500,那么2个数据包就可以传输完成。可是偏偏这时ADSL接入方式的MTU是1492字节,数据包就因为这个MTU差异额外拆分为3个(为了便于理解,暂时不将“数据包报头”纳入考虑范围)
显然这额外增加了需要传输的数据包数量,而且拆包组包的过程也浪费了
时间。如果从本地到网络采用一致的MTU就可以避免额外拆包。
对下载速度的影响会有多大?
就拿伊文家里的线路质量不太好的电信4M带宽为例,将操作系统的MTU值改为1492,再将路由器的MTU值从1460改为1492后,下载速度从原本的435KB/s提升到了450KB/s,提升了15KB/s。电信的带宽检测
工具的检测结果也从4.09M提升到了4.19M。
我该如何合理设置MTU呢?
更快的下载速度,对于
迅雷的用户来说,显然很有意义。可是MTU设置不能一个值天下通用,所以我们讲究合理设置MTU。
那么什么情况下的MTU值才是合理的呢?
我们先看看什么是不合理的:
1、本地MTU值大于网络MTU值时,本地传输的数据包过大导致网络会拆包后传输,不但产生额外的数据包,而且消耗了“拆包、组包”的时间。
2、本地MTU值小于网络MTU值时,本地传输的数据包可以直接传输,但是未能完全利用网络给予的数据包传输尺寸的上限值,传输能力未完全发挥。
这样我们就知道,所谓合理的设置MTU值,就是让本地的MTU值与网络的MTU值一致,既能完整发挥传输性能,又不让数据包拆分。
接下来最重要的就是要找出对于你的网络环境来说MTU多少才是合理的。
方法如下:
1、按Win+R组合键,调出“运行”菜单,输入“cmd”然后回车
2、在出现的“命令提示符”窗口中输入“ping -l 1472 -f
”然后回车
含义:
ping:发起一个探测请求;
-l(L的小写):限制探测包大小;
1472:包大小为1472字节;
-f:禁止路由器拆分数据包
:设百度为探测目标
(你问我为什么不用Google做目标?考虑到Google时不时被墙,还是算了吧。。)
3、这时有2种情况:
(1)、如果收到了回复,那么说明你的网络允许最大MTU值就是1500字节,与系统默认值相同,只需要将路由器的MTU值也设置为1500即可;
(2)、如果出现需要拆分数据包但是设置 DF。或是Packer needs to be fragmented but DF set.的提示,那就说明数据包大小超过了网络限定的MTU大小。需要减小探测包大小再次尝试。(为了截效果图,我将探测包改为1473了)
4、按“上箭头”恢复刚才输入的命令,然后以5为跨度减小包大小为1467字节,再次回车探测。
5、这时同样也有两种可能:
(1)、如果有返回,说明数据包小于MTU限制,就将包大小+3再次探测,如果+3之后没有返回,那就以1为跨度降低数据包大小进行探测。
(2)、如果还是没有返回,就继续以5为跨度减小包大小,直至有返回后进行5(1)中的操作。
6、直至你发现数据包-1后,有了返回,就说明你探测到了MTU允许的准确数据包大小。(例如从1465降低到1464就有了返回,那么允许的数据包大小就是1464)
7、不过上面得到的值还不能设置为操作系统或路由器的MTU,你找到的数据包大小需要加上28字节的“数据包报头”,才是完整的数据包尺寸。
(例如:探测到的数据包大小是1464,那么加上28字节,最终MTU=1492字节)
8、最后,只需要将路由器和操作系统中的MTU值设置为你得出的结果即可。
路由器设置方法见路由器说明书!
建议使用“Windows优化大师、
超级兔子魔法设置、鲁大师”等
软件修改操作系统的MTU。
以下是较复杂的方法:
(1)、XP操作系统设置方法:
1、 按Win+R组合键,调出“运行”菜单,输入regedit,然后回车;
2、 选择“HKEY_Local_Machine>SYSTEM>CurrentControlSet>Services>Tcpip>Parameters>interface”;
3、在 interface 中下可能有很多项,需要逐个观察键值,会有一个项与你的网卡IP一致,选中该项;
4、然后在该项上点击右键,选择“编辑>新建>DWORD值”,然后在右侧将其命名为“MTU”;
5、右键点击MTU,选择“修改”,在弹出的窗口中选择“十进制”,填入你得出的合理MTU值即可。
(2)、Vista、Win7操作系统设置方法:
1、进入系统盘:\Windows\System32\找到cmd.exe,右键“以管理员身份运行”;
2、在出现的“命令提示符”窗口中输入“netsh interface ipv4 show subinterfaces”并回车来查看当前的MTU值
3、接下来输入“netsh interface ipv4 set subinterface "需修改的连接名" mtu=你得出的合理值 store=persistent”并回车即可
例如:“netsh interface ipv4 set subinterface "本地连接" mtu=1492 store=persistent”
216 条评论
我是win7 64位旗舰版,原来的4M带宽还可以达到400k/s的速度,修改后最快也就是100多了,还原到1500都没有用,现在的留言是刚刚无奈重装系统后达到450K/S后说的话
C:\Users\Administrator>ping -l 1472 -f
正在 Ping [119.75.218.45] 具有 1472 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。
119.75.218.45 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),
C:\Users\Administrator>ping -l 1472
正在 Ping [119.75.217.56] 具有 1472 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。
119.75.217.56 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),
如果我输入ping -l 1720 -f
那么会提示需要拆分数据包但是设置 DF。
但是如果把1720改成1470就会提示请求超时(这个时候网络绝对没有断)
1470附近的几个数字都有这样的问题
具体的范围没有测试过
但是改成1464或者小于1464的数字正常
为什么?
F:\>ping -l 1452 -f g.cn
Pinging g.cn [203.208.37.99] with 1452 bytes of data:
Reply from 203.208.37.99: bytes=1452 time=119ms TTL=245
Reply from 203.208.37.99: bytes=1452 time=109ms TTL=244
Reply from 203.208.37.99: bytes=1452 time=124ms TTL=245
Reply from 203.208.37.99: bytes=1452 time=109ms TTL=244
Ping statistics for 203.208.37.99:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 109ms, Maximum = 124ms, Average = 115ms
额额 看见前边的东东觉得挺好 结果最后按照你的方法一查:已经是最大的了……
不用我设置了再嘿^.^
我完全照您说的做
完了之后出现“确定”2字,请问是不是成功了?(win7)
恩,你可以再查看一下修改后的MTU值是多少,就可以确认了。
上当了 修改后网速很不稳定
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>ping-l 1472 -f
‘ping-l’ 不是内部或外部命令,也不是可运行的程序
或批处理
文件。
C:\Documents and Settings\Administrator>ping -l 1472 -f
Pinging [220.181.6.18] with 1472 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 220.181.6.18:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
C:\Documents and Settings\Administrator>
文是好文,不过,老兄的4M带宽确实不咋的,我的电信4M下载最高达到525KB,一般保持在500KB正负误差5K这样。我奇怪的是我用的是WIN7使用默认设置。
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Owner>ping -l 1472 -f
‘ping’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Documents and Settings\Owner>“ping -l 1472 -f
‘“ping’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Documents and Settings\Owner>
操作系统的问题。简单点
解决就是重装系统。
能不能不冲装呢。。这是笔记本自带的原装的XP家庭版。。
这个是网卡的功能,不懂就别说,系统不可能更改网卡的参数,以后绝对也不会有。
系统的MTU要你手动调节,现在的百兆网卡都是自动调节的 你可以在你的网卡设置选项上看到。
而如果你的网络提供商的服务MTU 和你系统的MTU不对称 那绝对是要拆包的。
还有小文件在小也是拿数据包衡量的,在网络传输上没有文件一说。它传输的只有数据包。
为什么阳台的图片都这么扭曲、难看的?
你是不是还在用IE6呢?可能是由于PHP或者Html的一些新特性IE6不支持导致的。
貌似此方法不对,正确的方法应该是:1.先修改MTU到一个不可能达到的值,比如3000(参考上文)。2.使用“ping -l 1472 -f out”(而不是需要拆分数据包但是设置 DF。或是Packer needs to be fragmented but DF set.的提示)。3.得到正确值,在修改MTU。
个人观点,觉得即便成功也不会让你个人感觉快多少,总网络的负担可能小很多
“请求超时、time out”是指包成功发出,但是因为别的原因没返回(比如防火墙禁止ping之类),这种情况可不是人人都有的。
抱歉,两条分开了,重新发过
Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Windows\system32>netsh interface ipv4 set subinterface “本地连接” mtu=1492 st
ore=persistent
确定。
C:\Windows\system32>ping -l 1472 -f
正在 Ping [202.108.22.5] 具有 1472 字节的数据:
来自 192.168.0.44 的回复: 需要拆分数据包但是设置 DF。
来自 192.168.0.44 的回复: 需要拆分数据包但是设置 DF。
来自 192.168.0.44 的回复: 需要拆分数据包但是设置 DF。
来自 192.168.0.44 的回复: 需要拆分数据包但是设置 DF。
202.108.22.5 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
C:\Windows\system32>netsh interface ipv4 set subinterface “本地连接” mtu=3000 st
ore=persistent
确定。
C:\Windows\system32>ping -l 1472 -f
正在 Ping [202.108.22.5] 具有 1472 字节的数据:
来自 202.108.22.5 的回复: 字节=1472 时间=37ms TTL=51
来自 202.108.22.5 的回复: 字节=1472 时间=39ms TTL=51
来自 202.108.22.5 的回复: 字节=1472 时间=37ms TTL=51
来自 202.108.22.5 的回复: 字节=1472 时间=37ms TTL=51
202.108.22.5 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 37ms,最长 = 39ms,平均 = 37ms
C:\Windows\system32>
这个情况可能是之前你的系统默认值不足1500导致的。你手动将MTU从3000设成1500,应该也可以ping通。
所以我说你说的不对啊,这样子岂不是1500以上的找你的方法都测试不出来?或者还有其他的情况
Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\可乐冰>ping -l 1472 -f
正在 Ping [202.108.22.5] 具有 1472 字节的数据:
来自 202.108.22.5 的回复: 字节=1472 时间=42ms TTL=51
来自 202.108.22.5 的回复: 字节=1472 时间=43ms TTL=51
来自 202.108.22.5 的回复: 字节=1472 时间=41ms TTL=51
来自 202.108.22.5 的回复: 字节=1472 时间=42ms TTL=51
202.108.22.5 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 41ms,最长 = 43ms,平均 = 42ms
C:\Users\可乐冰>ping -l 1464 -f
正在 Ping [202.108.22.5] 具有 1464 字节的数据:
来自 202.108.22.5 的回复: 字节=1464 时间=37ms TTL=51
来自 202.108.22.5 的回复: 字节=1464 时间=42ms TTL=51
来自 202.108.22.5 的回复: 字节=1464 时间=38ms TTL=51
来自 202.108.22.5 的回复: 字节=1464 时间=40ms TTL=51
202.108.22.5 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 37ms,最长 = 42ms,平均 = 39ms
C:\Users\可乐冰>ping -l 1465 -f
正在 Ping [202.108.22.5] 具有 1465 字节的数据:
来自 202.108.22.5 的回复: 字节=1465 时间=38ms TTL=51
来自 202.108.22.5 的回复: 字节=1465 时间=38ms TTL=51
来自 202.108.22.5 的回复: 字节=1465 时间=38ms TTL=51
来自 202.108.22.5 的回复: 字节=1465 时间=38ms TTL=51
202.108.22.5 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 38ms,最长 = 38ms,平均 = 38ms
C:\Users\可乐冰>ping -l 1470 -f
正在 Ping [202.108.22.5] 具有 1470 字节的数据:
来自 202.108.22.5 的回复: 字节=1470 时间=37ms TTL=51
来自 202.108.22.5 的回复: 字节=1470 时间=38ms TTL=51
来自 202.108.22.5 的回复: 字节=1470 时间=39ms TTL=51
来自 202.108.22.5 的回复: 字节=1470 时间=38ms TTL=51
202.108.22.5 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 37ms,最长 = 39ms,平均 = 38ms
C:\Users\可乐冰>ping -l 1450 -f
正在 Ping [202.108.22.5] 具有 1450 字节的数据:
来自 202.108.22.5 的回复: 字节=1450 时间=40ms TTL=51
来自 202.108.22.5 的回复: 字节=1450 时间=38ms TTL=51
来自 202.108.22.5 的回复: 字节=1450 时间=37ms TTL=51
来自 202.108.22.5 的回复: 字节=1450 时间=36ms TTL=51
202.108.22.5 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 36ms,最长 = 40ms,平均 = 37ms
C:\Users\可乐冰>ping -l 1500 -f
正在 Ping [202.108.22.5] 具有 1500 字节的数据:
来自 192.168.0.44 的回复: 需要拆分数据包但是设置 DF。
来自 192.168.0.44 的回复: 需要拆分数据包但是设置 DF。
来自 192.168.0.44 的回复: 需要拆分数据包但是设置 DF。
来自 192.168.0.44 的回复: 需要拆分数据包但是设置 DF。
202.108.22.5 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
C:\Users\可乐冰>ping -l 1572 -f
正在 Ping [202.108.22.5] 具有 1572 字节的数据:
来自 192.168.0.44 的回复: 需要拆分数据包但是设置 DF。
来自 192.168.0.44 的回复: 需要拆分数据包但是设置 DF。
来自 192.168.0.44 的回复: 需要拆分数据包但是设置 DF。
来自 192.168.0.44 的回复: 需要拆分数据包但是设置 DF。
202.108.22.5 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),