可能很少有雷友注意过“本机、网络”的“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 www.baidu.com”然后回车
含义:
ping:发起一个探测请求;
-l(L的小写):限制探测包大小;
1472:包大小为1472字节;
-f:禁止路由器拆分数据包
www.baidu.com:设百度为探测目标
(你问我为什么不用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”
剑仙
发表于 2010年10月04日 14:07
不错,在注册表中已经找到了一个MTU的值,本来才是576,被我改成了测试出来的1466,下载速度平均上了30左右,同一个任务本来是190—200变成了230-250,不过这个速度不太稳定,不知道为什么
奈良
发表于 2010年10月04日 09:46
真不错 响应速度从原来的80ms左右 提升到70ms了 ,学到知识了!
魑魅の魍魉
发表于 2010年10月03日 21:59
请问修改后回音响上网吗?
可恶
发表于 2010年10月03日 16:11
改完了 速度由500k变为几十k 求求帮助
无心
发表于 2010年10月02日 22:25
居然测出来跟教程一样都是1464字节的
风兮轻扬
发表于 2010年10月02日 14:45
果然有用,我设置前只能450k/s左右,修改后480k/s左右,偶尔还能冒到600多,呵呵
白夜
发表于 2010年09月30日 10:41
改错了也没什么…本来默认的也不匹配..
zuguolantian
发表于 2010年09月28日 09:14
我的MUT值1480,修改后,效果不错,网速测量工具显示,丢包率00%,网速也快了点,下载速度改善不太明显
mingyue
发表于 2010年10月02日 20:26
我也是
se243
发表于 2010年09月27日 01:17
我按上面说的做了,也做了测试,可是效果却很不理想,4M的网只有427kb/s但是我改回来了以后却是475kb/s.而且改了之后数据接收和传输也少了将近4000多个字节,我的网络MTU是测出来的是1422。路由器自动设定的MTU是1450,本地连接自动的是1450。我想知道是什么原因啊,我的是联想Y450,win7家庭普通版升级成的旗舰版
se243
发表于 2010年09月27日 01:18
本地连接自动是1500
市场是调查
发表于 2010年09月26日 21:34
怎么我的才548
强儿
发表于 2010年09月26日 13:44
我探测到的值是1452,加上28后是1480,与我WIN7系统的MTU一样,哈哈
1113640671
发表于 2010年09月25日 21:25
请问高手:开启了“IP报头压缩” 是否会影响到MTU的最终长度???也就是说“数据包报头”压缩后会不会就不是28个字节了?
无心
发表于 2010年10月02日 22:26
看你的工具了 ·· 有显示压缩比例的吧
colin
发表于 2010年09月25日 18:28
出现请求超时是怎么回事啊?!
哦哦哦
发表于 2010年10月06日 07:55
领导,你出现这个情况有两种,一种是网络连接没打开;另外一种情况是按照笔者的减去响应的值再进行测试就好了~
筱竹
发表于 2010年09月25日 09:47
我这个mtu值算出来和计算机之前的值就是一样的。不用改嘿嘿
开心PQ
发表于 2010年09月25日 07:22
修改了。不过,暂时没发现有多大差距。
老文
发表于 2010年09月25日 07:18
说的很明白,但是具体操作起来,还是很麻烦,如果迅雷把它形成在软件内部完成,那不是更方便么?
菜鸟一个
发表于 2010年09月24日 21:21
很有用。学习了
宝马
发表于 2010年09月24日 16:19
長江一號和改MTU的办法——–好象根本没有什么效果!!!
bingsongmy
发表于 2010年09月24日 15:48
学习一下,不过我在好几个地方上网,所以也就不该了。MTU好像是1500
西瓜
发表于 2010年09月23日 12:55
不懂就别跟着瞎折腾~~~弄不好改错了设置那就麻烦了~~~
長江一號
发表于 2010年09月23日 00:38
給Windows 7寬頻加速,一分鐘學會,釋放電腦保留的20%寬頻資源
1、按一下“開始-運行”,輸入gpedit.msc後即可打開“群組原則物件編輯器”。
2、展開 “電腦設定”-系統管理範本-網路-QoS封包排程器,按兩下右面設置欄中的“限制可保留的頻寬”,在打開的屬性對話方塊中的“設置”選項卡中將“限制可保留頻寬”設置為“已啟用”,然後在下面展開的“頻寬限制(%)”欄將頻寬值“20”設置為“0”即可。
3、修改完之後,我們可以重新打開IE流覽器或者用BT或者迅雷下載檔案,發現上網和下載的速度是不是明顯提升了?一個字爽啊。
pusaran
发表于 2010年09月23日 00:03
netsh interface ipv4 show subinterfaces “Wireless Network Connection” mtu=1492 store=persistent
为什么会出现 “mtu” is not a valid argument for this command?
天际长风
发表于 2010年09月22日 13:38
正在 Ping http://www.a.shifen.com [119.75.213.51] 具有 1472 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。
119.75.213.51 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),
这是嘛情况
ross.
发表于 2010年09月21日 13:50
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>ping -l 1472 -f http://www.baidu.com
Pinging http://www.a.shifen.com [119.75.217.56] with 1472 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 119.75.217.56:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
C:\Documents and Settings\Administrator>ping -l 1473 -f http://www.baidu.com
Pinging http://www.a.shifen.com [119.75.218.45] with 1473 bytes of data:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Ping statistics for 119.75.218.45:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
C:\Documents and Settings\Administrator>
ross.
发表于 2010年09月21日 13:51
这是怎么回事???高手讲解下。。谢谢了。
蓝猫
发表于 2010年09月22日 13:05
这个表示你的MTU值为1472,但是你网络不稳定,经常丢包
悲剧哇
发表于 2010年09月22日 21:58
估计你是重庆的吧~~ 最近重庆的DNS服务器老是抽风,所以可能出现上面的情况~!
建议你更改你的DNS地址到 61.128.128.69 再试试ping 百度!
祝你好运!
基特
发表于 2010年09月20日 22:22
我的是win7系统。我的MTU最小值就到1453,但还是需要拆分数据包。而低于1453就出现连接超时的提示。
鈊┇绀
发表于 2010年09月19日 18:35
另外说一下,某些游戏改了MTU值会玩不了,例子,下水沟勇士(DNF)
skyocean
发表于 2010年09月19日 15:06
这里应该考虑一个问题:是否用了路由器。
原因:
路由器的默认设置是在win口的高级设置里的mtu选项,这里就已经有值了。也就是说,如果是用了路由器的用户,不必去测试你的网络传输单元值,直接去路由器里查看MTU值,然后再把系统的MTU值改成路由器值即可。
如果家里直接是ADSL的话,那么,需要用到上面提到的测试方法,测出网络MTU值。
PS:win7的MTU值是1500的。
whgdja
发表于 2010年09月19日 10:14
windows7修改MTU值
察看MTU值:netsh interface ipv4 show subinterfaces
修改MTU值: netsh interface ipv4 set subinterface “xxxx” mtu=yyy store=persistent
标准MTU值:设置 MTU 大小是一个需要反复试验的过程,由最大值 1 500开始下降,直至问题解决。使用下列值之一或许能解决一些由MTU值引起的问题。
(1)1500—以太网信息包最大值,也是默认值,是没有PPPoE和VPN 的网络连接的典型设置。是大部分路由器、网络适配器和交换机的默认设置。
(2)1492—PPPoE的最佳值。
(3)1472—使用ping的最大值(大于此值的信息包会先被分解)。
(4)1468—DHCP的最佳值。
(5)1430—VPN 和 PPTP的最佳值。
(6)576—拨号连接到ISP的标准值。
游戏MTU值:netsh interface ipv4 set subinterface “宽带连接” mtu=300 store=persistent
默认MTU值:netsh interface ipv4 set subinterface “宽带连接” mtu=1492 store=persistent
james02100
发表于 2010年09月19日 02:04
我测出我的ADSL网络的最大传输单元是1452+28(包头大小)=1480;当我把我的操作系统的MTU设成1480后却有四分之一的数据包通不过了,这是怎么回事?
C:\Windows\system32>netsh interface ipv4 show subinterfaces
MTU MediaSenseState 传入字节 传出字节 接口
—— ————— ——— ——— ————-
4294967295 1 0 21282 Loopback Pseudo-Interface 1
1500 5 0 0 无线网络连接
1500 1 64808755 21383918 本地连接
C:\Windows\system32>netsh interface ipv4 set subinterface 本地连接 mtu=1480 stor
e=persistent
确定。
C:\Windows\system32>netsh interface ipv4 show subinterfaces
MTU MediaSenseState 传入字节 传出字节 接口
—— ————— ——— ——— ————-
4294967295 1 0 21282 Loopback Pseudo-Interface 1
1500 5 0 0 无线网络连接
1480 1 65014403 23703358 本地连接
C:\Windows\system32>ping -l 1452 -f http://www.baidu.com
正在 Ping http://www.a.shifen.com [119.75.218.45] 具有 1452 字节的数据:
来自 119.75.218.45 的回复: 字节=1452 时间=296ms TTL=51
请求超时。
来自 119.75.218.45 的回复: 字节=1452 时间=227ms TTL=51
来自 119.75.218.45 的回复: 字节=1452 时间=223ms TTL=51
119.75.218.45 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 3,丢失 = 1 (25% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 223ms,最长 = 296ms,平均 = 248ms
C:\Windows\system32>ping -l 1451 -f http://www.baidu.com
正在 Ping http://www.a.shifen.com [119.75.217.56] 具有 1451 字节的数据:
来自 119.75.217.56 的回复: 字节=1451 时间=257ms TTL=51
来自 119.75.217.56 的回复: 字节=1451 时间=230ms TTL=51
来自 119.75.217.56 的回复: 字节=1451 时间=256ms TTL=51
来自 119.75.217.56 的回复: 字节=1451 时间=232ms TTL=51
119.75.217.56 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 230ms,最长 = 257ms,平均 = 243ms
C:\Windows\system32>
%>_
发表于 2010年09月18日 19:28
看不懂…网卡IP…回去慢慢研究下……..
y.qfans
发表于 2010年09月18日 12:42
我的是中国移动的网络 没有路由器,怎么办?
night
发表于 2010年09月18日 20:47
我也是移动的,但我是移动的Wlan。你呢?
RRR
发表于 2010年09月18日 11:36
这个方法太繁琐了,不如迅雷集成这些功能…………
小武
发表于 2010年09月17日 18:21
ping http://www.baidu.com 未必能验证最大数据包哦?
本人刚才试验过,ping http://www.qq.com 得到的最大数据包就比baidu大哦。最终我选择了ping运营商的DNS地址。成都电信的DNS是61.139.2.69,成都联通的DNS是119.6.6.6
本人意见仅供参考,汇报完毕!
雨夜聆琴
发表于 2010年09月17日 13:24
怎么设置路由器的MTU值,有知道的朋友告诉一下,谢谢!
小武
发表于 2010年09月17日 18:26
路由器的MTU值,一般在“网络参数——WAN口设置——高级选项”里面
本人QQ8896306,欢迎诸位同学一起探讨学习
Wayde
发表于 2010年09月17日 12:20
我怎么根本ping不通,请求超时
tomhuang
发表于 2010年09月18日 08:45
你ping不通说明你设置的MTU值大于网络,只有当MTU值大于本机的时候结果才是需要拆分数据包但设置DF. 强哥的探测方法是不对的,只是探测到本机,而不是网络.
tomcat
发表于 2010年09月19日 12:42
那到底该怎么调试啊?
owen
发表于 2010年09月17日 09:24
上限已测,是1472,将数据包改到1仍然还有返回,是不是说明没有下限?
uipner
发表于 2010年09月17日 08:57
晕啊,还是没看懂。
意米
发表于 2010年09月17日 05:35
各位大哥,我不改都在用6M,下载都有600KB/S,干嘛为了那15KB/S去劳气
後来__
发表于 2010年09月16日 23:59
楼主请看一下最后的返程时间 为什么找到合适的跟第一个比较却更慢了?还是跟那个没关系?
Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\石鹏>ping -l 1467 -f http://www.baidu.com
正在 Ping http://www.a.shifen.com [61.135.169.105] 具有 1467 字节的数据:
来自 61.135.169.105 的回复: 字节=1467 时间=22ms TTL=53
来自 61.135.169.105 的回复: 字节=1467 时间=22ms TTL=53
来自 61.135.169.105 的回复: 字节=1467 时间=22ms TTL=53
来自 61.135.169.105 的回复: 字节=1467 时间=23ms TTL=53
61.135.169.105 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 22ms,最长 = 23ms,平均 = 22ms
61.135.169.105 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),
61.135.169.105 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),
C:\Users\石鹏>ping -l 1469 -f http://www.baidu.com
正在 Ping http://www.a.shifen.com [61.135.169.105] 具有 1469 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。
61.135.169.105 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),
C:\Users\石鹏>ping -l 1468 -f http://www.baidu.com
正在 Ping http://www.a.shifen.com [61.135.169.105] 具有 1468 字节的数据:
来自 61.135.169.105 的回复: 字节=1468 时间=129ms TTL=53
来自 61.135.169.105 的回复: 字节=1468 时间=131ms TTL=53
来自 61.135.169.105 的回复: 字节=1468 时间=1048ms TTL=53
来自 61.135.169.105 的回复: 字节=1468 时间=280ms TTL=53
61.135.169.105 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 129ms,最长 = 1048ms,平均 = 397ms
强伊文
发表于 2010年09月17日 10:34
你2次ping的时候,有没有其他的程序在使用网络?
华莱斯特
发表于 2010年09月16日 22:31
是不是出来确定后 就说明成功了,我不太确定 不过修改后下载速度确实提升了很多 good