首先要明确目前的联网方式,通过路由器直连PPPoE则理论最大MTU为1492,直连到外部局域网理论最大MTU为1500,本文按照PPPoE为例
报文就是包裹,只能大包裹套小包裹,如果小包裹太大了,就会将其拆分成两个小包裹(分片),本文目的在于找到小包裹的大小上限,使其恰好不被拆分
操作:
首先进入路由器管理界面,设置“WAN口参数”里面的MTU为1492,重启路由(比较好的路由器不必重启,但重启总是最稳妥)
然后使用管理员权限开启cmd,使用ping命令:
ping www.qq.com -f -l 1464
网址也可以用baidu.com,主流网站都可以用于测试。1464是对应1492的最大MTU,注意它们之间相差了28,差值是数据报非数据部分的长度
如果能ping通,那1464就是你的选择,如果提示:Packet needs to be fragmented but DF set,那就证明达不到理论上限,所以我们就要减少ping的长度,可以按5为一个阶梯往下减(1464 1460 1455 1450...),最终找到一个临界点(比如1453),那这个临界点就是你的选择
好了,现在我们根据刚刚选择的数值(1464 或是 1453)增加28个长度得到路由器和操作系统的MTU,然后分别在路由器和操作系统中设置就可以了,路由器设置刚刚提过,操作系统设置可以通过以下命令完成:
netsh interface ipv4 set subinterface "Wi-Fi" mtu=1492
netsh interface ipv4 set subinterface "Wi-Fi" mtu=1492 store=persistent(这条进行了永久保存)
给一个数值上的关系方便大家理解:
1500(报文最大长度) >= 1492(路由器最大MTU) >= 1492(操作系统MTU限制) >= 1464(Ping -f -l 后面的数值)