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值,就可以完全解决上述问题,使上网速度达到最大化.
英文名是:Maximum Transmission Unit 中文名是:最大传输单元。
MTU,即Maximum Transmission Unit(最大传输单元),此值设定TCP/IP协议传输数据报时的最大传输单元。
设置多大的MTU值取决于你的上网方式,不同的上网方式支持不同的MTU,这些是一些上网方式的MTU值: EtherNet(一般上网方式,默认值):1500、PPPoE/ADSL:1492、Dial Up/Modem:576。
如何寻找适合自己的mtu值呢?打开命令提示符窗口中输入“ping www.163.ccom -f -l 1472”然后回车。(-l mtU 数值)
为什么要加28个字节。
这个个28字节的大小,其实就是 【ICMP的包头8字节】+【IP包头的20字节】,最后再加上实际的数据大小,就是MTU的大小了。
MTU有什么用?
举一个最简单的场景,你在家用自己的笔记本上网,用的是路由器,路由器连接电信网络,然后访问了www.163.com,从你的笔记本出发的一个以太网数据帧总共经过了以下路径:
笔记本 ->路由器 ->电信机房 ->服务器 其中,每个节点都有一个MTU值,如下: 1500 1500 1500 笔记本 ->路由器 ->电信机房 ->服务器
标准的以太网数据帧大小是:1518,头信息有14字节,尾部校验和FCS占了4字节,所以真正留给上层协议传输数据的大小就是:1518 - 14 - 5=1500。
PPoE协议头信息为: | VER(4bit) | TYPE(4bit) | CODE(8bit) | SESSION-ID(16bit) | LENGTH(16bit) | 这里总共是48位,也就是6个字节,那么另外2个字节是什么呢?答案是PPP协议的ID号,占用两个字节,所以在PPPoE环境下,最佳MTU值应该是:1500 - 6 - 2 = 1492。
那么如何设置电脑的mtu值呢。在管理员模式下运行命令指示符,输入netsh interface ipv4 show subinterfaces 可查看本机MTU。
确定要修改的连接,输入命令:
netsh interface ipv4 set subinterface "本地连接" mtu=1000 store=persistent
注:" "内为你想改的连接名称