怎么设置电脑和路由器的MTU值?

怎么设置电脑和路由器的MTU值?,第1张

请登录路由器的管理界面并进入WAN口的设置页面,将WAN口的MTU值由默认的1500或者1492改为1400或者更小进行尝试。MTU的中文意思为最大传输单元,如同高速公路对行驶速度有限制的原理,网络中对传输的数据包大小有限制。TP-LINK路由器的MTU默认值根据国际标准设置,可达到最大效率。但有部分ISP没有按照国际标准设置,自行将默认值调小,使得有些比较大的数据包无法通过。将MTU值改小可快速解决这一问题。

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.

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 timeReply from 127.0.0.1: bytes=1464 timeReply from 127.0.0.1: bytes=1464 timePing 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!

一般来讲,设计好本机的MTU值,可以解决部分网站打不开的情况,但是如果你的共享主机或路由器的MTU设置有问题,有时问题仍然存或,或者出现网速过慢的情况。合理的设置路由器与本机的MTU值,就可以完全解决上述问题,使上网速度达到最大化.

问题 :如果能ping通外网域名,但是无法访问,这种情况通常是因为网卡的mtu值过高。那么该如何查看网卡的mtu值以及判断mtu值是否过高呢?

windows下可以使用netsh命令查看接口的mtu值

Linux下可以使用ip a 或者 netstat -i查看mtu值

为了确认mtu值是否过高,需要检测网关的mtu值

Windows下检测网关mtu值的命令如下

linux下检测网关mtu值的命令

将上述命令中的gateway替换为网关地址,并不断的调整size的大小,找到最佳的mtu值,即为网关的mtu值。(示例:1500无法通过网关,1400可以通过网关,则说明最佳mtu值在1400和1500之间,可以进一步利用二分查找算法,找到最佳mtu值)

若本机的mtu值较大,则会导致无法访问外网;若本机的mtu较小,却没有完全利用网络性能。因此,设置最合适的本地mtu值即是让本地的mtu等于网关的mtu值。

设置本机的mtu为网关的mtu,windows下利用如下命令:

linux 下的命令为:

将上述命令中的name替换为网卡名称,size替换为最佳mtu值。

若网页能够正常访问,则调整mtu值完成。

MTU,是计算机与路由器之间的最大传输单元,下面一起看看路由器怎么设置mtu吧~

“MTU=最大传输单元 单位:字节  英文:Maximum Transmission Unit”我们平时上网时的各种 *** 作,都是通过一个又一个“数据包”传输来实现的。而MTU指定了网络中可传输数据包的最大尺寸,在我们常用的以太网中,MTU是1500字节。超过此大小的数据包就会将多余的部分拆分再单独传输。就像货车通过限高的桥洞一样,货物高度超过限制高度了,就需要卸下一些货物,分两批通过限高路段。

MTU跟我的网络有神马关系?

关系还是挺密切的,在windows里,默认的MTU是1500,但是不同的网络接入方式,不同地区的网络运营商,甚至不同的路由器,它们的MTU值都可能是不同的。例如:ADSL接入时MTU为1492字节,假设A需要给B传输3000字节数据,如果整个传输过程中各个环节的MTU都是1500,那么2个数据包就可以传输完成。可是偏偏这时ADSL接入方式的MTU是1492字节,数据包就因为这个MTU差异额外拆分为3个(为了便于理解,暂时不将“数据包报头”纳入考虑范围)显然这额外增加了需要传输的数据包数量,而且拆包组包的过程也浪费了时间。如果从本地到网络采用一致的MTU就可以避免额外拆包。

我该怎么合理设置MTU呢?

更快的网速,这个理由够不够让你折腾一趟呢?显然是值得的,可是MTU值不是一个数字,天下通用的。所以在我们动手设置的时候,讲究一个合理!

那么什么情况下MTU值是合理的呢?我们先来看看不合理的。

1、本地MTU值大于网络MTU值时,本地传输的数据包过大导致网络会拆包后传输,不但产生额外的数据包,而且消耗了“拆包、组包”的时间。2、本地MTU值小于网络MTU值时,本地传输的数据包可以直接传输,但是未能完全利用网络给予的数据包传输尺寸的上限值,传输能力未完全发挥。  这样我们就知道,所谓合理的设置MTU值,就是让本地的.MTU值与网络的MTU值一致,既能完整发挥传输性能,又不让数据包拆分。

接下来最重要的就是要找出对于你的网络环境来说MTU多少才是合理的。方法也是灰常简单:1.按win+r组合键呼叫运行菜单,输入cmd后回车

2.在出现的“命令提示符”窗口中输入“ping -l 1472 -f 百度”然后回车这段杂乱无章的东东是神马意思呢?接下来Teamo稍微解释下:ping:发起一个探测请求; -l(L的小写):限制探测包大小; 1472:包大小为1472字节; -f:禁止路由器拆分数据包 百度:设百度为探测目标

3.按下回车后,会出现两种返回结果:(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值设置为你得出的结果即可进入小极后台,高级选项中的MTU设置中填入测得的数值即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11209680.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存