合理设置的MTU值,解决“部分网站打不开”“上网速度慢”等问题,并且可以适当提升上网速度

 一般来讲,设计好本机的MTU值,可以解决 “部分网站打不开”、“上网速度慢”的情况,但是如果你的共享主机或路由器的MTU设置有问题,有时问题仍然存或,或者出现网速过慢的情况。合理的设置路由器与本机的MTU值,就可以完全解决上述问题,使上网速度达到最大化。 可能很少有雷友注意过“本机、网络”的“MTU”值对自己网络性能产生的影响。对于追求更快的下载速度来说,MTU值设置不当,就仿佛穿着高跟鞋跑步一般。

一、MTU

      1、MTU是什么?

  即Maximum Transmission Unit(最大传输单元),单位:字节,此值设定TCP/IP协议传输数据报时的最大传输单元。 

  我们在使用互联网时进行的各种网络操作,都是通过一个又一个“数据包”传输来实现的。而MTU指定了网络中可传输数据包的最大尺寸,在我们常用的以太网中,MTU是1500字节。超过此大小的数据包就会将多余的部分拆分再单独传输。

     2、为什么MTU影响网络性能?

  让我们看看这个情况,在Windows系统中,默认MTU值也是1500字节,但是“不同的接入方式、不同地区的网络运营商、不同的路由器”有着不同的MTU设置。

  例如:ADSL接入时MTU为1492字节,假设A需要给B传输3000字节数据,如果整个传输过程中各个环节的MTU都是1500,那么2个数据包就可以传输完成。可是偏偏这时ADSL接入方式的MTU是1492字节,数据包就因为这个MTU差异额外拆分为3个(为了便于理解,暂时不将“数据包报头”纳入考虑范围)

 显然这额外增加了需要传输的数据包数量,而且拆包组包的过程也浪费了时间。如果从本地到网络采用一致的MTU就可以避免额外拆包。

    3、对下载速度的影响会有多大?

  拿电信4M带宽为例,将操作系统的MTU值改为1492,再将路由器的MTU值从1460改为1492后,下载速度从原本的435KB/s提升到了450KB/s,提升了15KB/s。电信的带宽检测工具的检测结果也从4.09M提升到了4.19M。

    4、  我该如何找出合理MTU呢?

          设置多大的MTU值取决于你的上网方式,不同的上网方式支持不同的MTU,下面列出了一些上网方式的MTU值:
                 EtherNet(一般上网方式,默认值):1500                PPPoE/ADSL:1492                                   Dial Up/Modem:576

        我们先看看什么是不合理的:

1、本地MTU值大于网络MTU值时,本地传输的数据包过大导致网络会拆包后传输,不但产生额外的数据包,而且消耗了“拆包、组包”的时间。

2、本地MTU值小于网络MTU值时,本地传输的数据包可以直接传输,但是未能完全利用网络给予的数据包传输尺寸的上限值,传输能力未完全发挥。

  这样我们就知道,所谓合理的设置MTU值,就是让本地的MTU值与网络的MTU值一致,既能完整发挥传输性能,又不让数据包拆分。

  接下来最重要的就是要找出对于你的网络环境来说MTU多少才是合理的。


 方法如下:

1)、按Win+R组合键,调出“运行”菜单,输入“cmd”然后回车

2)、在出现的“命令提示符”窗口中输入“ping -l 1472 -fwww.baidu.com”然后回车

含义: ping:发起一个探测请求;             -l(L的小写):限制探测包大小;                1472:包大小为1472字节;

           -f:禁止路由器拆分数据包               www.baidu.com:设百度为探测目标

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值设置为你得出的结果即可。

 

5、设置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”

觉得好的请回复一下,谢谢啦!!请大家把改好后的感受也恢复一下,让更多的人知道!!!!

 

 


问题一:知道了我的上网方式,如何设置MTU值?
1. 在 『开始』>『运行』中,键入regedit,点确定;
2. 选择『HKEY_Local_Machine』>『SYSTEM』>『CurrentControlSet』>『Services』>『Tcpip』>『Parameters』>『interface』;
3. 在 interface 底下可能有很多的选项,你一个一个的去看,会有一个选项与你的网卡的 IP 相同,那个就是你要挑选的选项啦!然后同样的在该选项上选择『编辑』>『新建』>『DWORD值』之后,建立一个名为『MTU』的DWORD,然后双击修改,选择十进制,填入合适 MTU 值,确定!大功告成!


问题二:我不知道自己的上网方式,如何确定MTU值呢?
ping -f -l 1500 127.0.0.1
C:\WINDOWS>ping -f -l 1500 127.0.0.1
Pinging 127.0.0.1 with 1500 bytes of data:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for 127.0.0.1:
   Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), Approximate round trip times in milli-seconds:
   Minimum = 0ms, Maximum = 0ms, Average = 0ms

上面的式子中,-l 是 L 的小写(不是 1 喔),1500 是我们要测的 MTU 值,结果出现了 Packet needs to be fragmented but DF set. 这个东西,那表示MTU值太大了,你需要更小的 MTU 值才行!好啦!那假设我们使用 1464 来测试时:

C:\WINDOWS>ping -f -l 1464 127.0.0.1
Pinging 127.0.0.1 with 1464 bytes of data:
Reply from 127.0.0.1: bytes=1464 time=10ms TTL=128
Reply from 127.0.0.1: bytes=1464 time<10ms TTL=128
Ping statistics for 127.0.0.1:
   Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds:
   Minimum = 0ms, Maximum = 10ms, Average = 2ms
结果出现了回应了!这表示这一个 MTU 值是可行的!不过,强烈建议找出可行的最大 MTU 值!这样一来,在设定的时候,才可以达到最佳的网速!
    找出 MTU 值:利用上面这个方法找到的数值还不是 MTU 喔!由于一些封包上面的问题,上面这个值再加上 28 才是我们所需要的 MTU 值!所以,在上面的例子中,我们所需要的 MTU 值是 1464+28=1492!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 是的,TCP 超时时间设置过长或 MTU 设置合理都可能导致网络速度变慢。 TCP 超时时间是指在发送数据之后,如果没有收到对端的应答,就会在超时时间后再次发送数据。如果超时时间设置过长,会导致发送数据的时间延长,从而使网络速度变慢。 MTU (Maximum Transmission Unit) 是指数据包中最大数据量,如果 MTU 设置过大,就会导致数据包中的数据量增加,从而增加了网络传输的时间,使网络速度变慢。如果 MTU 设置过小,就会导致数据分包过多,也会增加网络传输的时间,导致网络速度变慢。 ### 回答2: TCP超时时间设置过长或MTU设置合理会导致网络速度变慢。 TCP超时时间是指TCP协议在传输数据时等待接收方确认的时间。如果TCP超时时间设置过长,当出现网络拥塞或数据丢失时,发送方需要等待更长的时间才能确认数据是否成功发送。这会导致数据传输的延迟增加,并且降低整体的网络速度MTU(最大传输单元)是指在网络通信中,网络包的最大传输单位。如果MTU设置合理,比如设置过小,大量的网络包需要被分片传输,增加了传输的开销。这会导致更多的网络传输负载和额外的延迟,从而导致网络速度变慢。 因此,TCP超时时间设置过长或MTU设置合理会对网络速度产生负面影响。为了保持较高的网络速度,应该根据网络环境和需求合理设置TCP超时时间和MTU大小,以提高数据传输的效率。 ### 回答3: 是的,TCP超时时间设置过长或MTU(最大传输单元)设置合理都可能导致网络速度变慢。 首先,TCP超时时间是指在发送数据时,等待接收到对方确认的时间。如果超时时间设置过长,那么发送方在等待确认时会延长等待时间,导致发送速率降低,网络速度变慢。 其次,MTU是指在网络传输中的每个数据包所能容纳的最大数据量。如果MTU设置合理,比如设置过小,那么每个数据包携带的数据量就会减少,导致需要传输的数据包数量增加,从而影响网络速度。 此外,当MTU设置合理时,可能会导致数据包在传输过程中被分割成多个片段,每个片段需要进行额外的封装和解封装操作,增加了网络传输的开销,导致网络速度变慢。 因此,为了保证网络速度的稳定和高效,我们需要适当设置TCP超时时间和合理调整MTU,以保证网络传输的顺畅和快速。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值