MTU是什么?

MTUMaximum Transmission Unit的缩写。
意思是网络上传送的最大数据包。 MTU的单位是字节。 大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络 速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。
如何检测网关的MTU
在本机打开dos窗口,执行:
ping -f -l 1452 192.168.1.1
其中192.168.1.1是网关IP地址,1452是数据包的长度。请注意,上面的参数是“-l”(小写的L),而不是“-1”。 如果能ping通,表示数据包不需要拆包,可以通过网关发送出去。 如果出现:
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命令。从1400到1472之间多试几次,就能找到合适的数据包长度了。把数据包 长度加上数据包头28字节,就得到MTU的值。 如果检测到网关的MTU值是1500,不需要修改。 如果网关有防火墙ping不通,可以试试直接把MTU设为1400。
C:Documents and SettingsAdministrator>ping -f -l 1452 192.168.1.1
Pinging 192.168.1.1 with 1452 bytes of data:
Reply from 192.168.1.1: bytes=1452 time=5ms TTL=64
Reply from 192.168.1.1: bytes=1452 time=5ms TTL=64
Reply from 192.168.1.1: bytes=1452 time=5ms TTL=64
Reply from 192.168.1.1: bytes=1452 time=1ms TTL=64
结果出现了回应了!这表示这一个 MTU 值是可行的!不过,强烈建议找出可行的最大 MTU 值!这样一来,在设定的时候,才可以达到最佳的网速!
找出 MTU 值:利用上面这个方法找到的数值还不是 MTU 喔!由于一些封包上面的问题,上面这个值再加上 28 才是我们所需要的 MTU 值!所以,在上面的例子中,我们所需要的 MTU 值是 1464+28=1492!。
一般来讲,设计好本机的MTU值,可以解决部分网站打不开的情况,但是如果你的共享主机或路由器的MTU设置有问题,有时问题仍然存或,或者出现网速过慢的情况。合理的设置路由器与本机的MTU值,就可以完全解决上述问题,使上网速度达到最大化。
如何修改本机的MTU修改方法如下:
(1)、运行regedit
(2) HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces
(3)、Interfaces下有多个子项,每个子项对应一个网卡。请按如下方法选择网卡:
      (a)确定本机用来连接Internet的网卡或拨号连接的IP,如192.168.0.19;
      (b)用鼠标点击Interfaces上的子项,查看键值列表中的IPAddress项;
      (c)如果IPAddress的键值与(a)中的IP相同,即192.168.0.19,则该子项就是要找的网卡。
(4)、进入该子项,在右边的窗口里按鼠标右键,选择“新建”->“双字节值”,输入名称“MTU”,按回车。再用鼠标双击“MTU”,弹出修改窗口: 如图3: 填入MTU的值。填写前请先把基数设为十进制。 设置好后,需要重启机器才能生效。
实践、重启、测试,最后得出最佳的网络状态,探索无极限,努力,终会有好结果。
测试步骤 

1. 拨号上网,并打开“开始”菜单→“程序→附件→命令提示符” 

2. 输入命令“ping –l 14xx –f www.163.com”,这里我们解释一下命令参数的含义 

* –l 14xx参数:发送一个定长数据包,14xx是要测试的包大小,如前所述,ADSL的MTU一般在1450与1492之间,第3步中将每次更换一次该值 

* –f 参数:通知操作系统不能私自更改该数据包大小 

* www.163.com:任意一台Internet上的主机,也可使用其它主机名或IP地址 

3. 观察反馈结果并判断ISP的MTU值(请注意图中标黄框部分) 

1) 第一次发送测试包,包长1450 

如图1,提示数据包过大,需要分包,因此判断该数值(1450)大于ISP的MTU,应降低包大小



2) 第二次发送测试包,包长1440 

如图2,数据包大小降为1440,提示应为数据包过大,因此判断该值(1440)仍大于ISP的MTU,还应继续降低

原文地址:https://www.cnblogs.com/mefj/p/11803962.html