1.MTU的定义
最大传送单元(Maximum Transfer Unit,MTU)。意思是IP数据报的最大长度(不包括帧头帧尾)。MTU的单位是字节。
2.MTU设置不当可能引发的问题
大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。
想起初中玩DNF的时候,从频道进入选择人物的界面会经常卡死。当时第一次知道了MTU的概念。若MTU设置不当本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。
有兴趣的朋友可以检查一下自己的MTU值是否合理
ping -l 1473 -f www.baidu.com
如果出现了
则说明1473较大,我们调成1470试试
ping -l 1470 -f www.baidu.com
ping成功,表示这一个 MTU 值是可行的!不过,强烈建议找出可行的最大 MTU 值!往上加,直到测到极限值。
我测到1472是我的机器最大的MTU值。
但由于ICMP和IP数据包的头部【ICMP的包头8字节】+【IP包头的20字节】,我们ping发送的数据报其实是1472+8+20=1500的大小。所以实际上1500才是我机器最大的MTU值。
最后通过命令查看本机默认的MTU
netsh interface ipv4 show subinterfaces
然后使用下面命令修改MTU值
netsh interface ipv4 set subinterface "本地连接" mtu=1500 store=persistent