|
楼主 |
发表于 2022-6-15 21:21:18
|
显示全部楼层
这个MTU确实没有特殊要求没有必要更改,无非就是一个碎片的问题.所以这个帖子的目的只是想搞清楚一些问题..并且确实如你所说,能上就好.我只是想单纯搞清楚原理.
你的TCPOptiniz这个工具,我以前就用过.他只是一个测试工具.但是我遇到的问题,他却无法帮我解答..所以才来发帖想解开疑惑
首先,我不用高恪路由器,电脑与光猫直接链接.采用拨号模式.测试出来的MTU最大值是1452可以不分包通过光猫,按照网上的资料显示,这个值因为不包含IP头所以还需要加上28才是最大的值.那么我认为MTU最大值应该是1480
这时候回到高恪路由器,在高恪外网设置拨号中设置MTU.我把MTU设置为1480.拨号成功.然后把电脑接到高恪路由器.然后我发现,我用1480这个值居然不能顺利通过..居然要分包了..所以我才来论坛咨询,高恪中的MTU值,设置中的这个值,是否包含28的字节?
我在高恪中MTU设置为1480的情况下..预想了两种可能性..第一种,是当你设置为1480的情况下.高恪不会2次在加28个字节.也就是说你设置是1480那么就是1480.然后我测试了一下,然后我用1480-28=1452这个值去测试..居然通过不了.....这说明我在高恪中设置的MTU是无效的...那么问题出在哪里呢?难道说当你在高恪中设置的数值..系统还要默认在给你加上28的字节吗?可是马上就否定了.如果高恪系统默认会在加上28个字节的话.那么也说不通..因为在叠加28的话.数值也大于1452啊.既然通过不了.说明数值是小于1452这个数值的.那么究竟是多少呢?高恪又是怎么处理用户设置的这个MTU数值呢?不管了.既然1452通过不了.那么只能减数值了.通过反复测试.最后可以在不分包的情况下.可以通过的数值是1444,如果在加上28个字节那么是1472...可是我在高恪中MTU数值设置的是1480呀..为何通1472小于1480但是却通过不了呢?难道说高恪在处理用户设置MTU值的时候,不是去+28字节?而是-28字节?还是说MTU值无论怎么设置都是无效的?想弄清楚,看来还需要测试啊.虽然麻烦一点..不过没关系,反正也是闲着没事..慢慢来测试吧.
现在可以肯定是1444这个数值可以在不分包的情况下通过 如果+28的话=1472 我们记住这些数字.然后看问题出在哪里为什么在高恪中设置MTU1480居然无效.
下边的数值都是默认+28字节了..假设几种情况
1 高恪中设置的1480高恪没有+或则-28字节.用户设置多少就是多少..肯定不是这种情况..因为1472小于1480通过不了.说明用户设置的1480无效.要么是系统+或则-了这个数值.
OK那我们把数值设置为1500吧..看看能通过的最大数值是多少? 如果1472这个数值不变化的话.那么就说明高恪中MTU设置这个功能是一个无效的功能,是吧?
当在高恪中把MTU设置为1500的时候..最大的数值是1492 这说明.高恪中的MTU值设置还是有效的.因为设置1480的时候最大通过包是1472,设置1500的时候是1492.发现什么规律了吗?你在高恪MTU设置的数值,实际上能通过的最大包,是需要减少8的.设置1480的时候最大包是1472,设置1500的时候是1492.高恪默认用户设置的MTU值会减去8.
为什么光猫可以通过的最大MTU值是1480,可是连接路由器却可以通过1492呢?理论上当使用ping -l 1480 -f www.baidu.com
这个命令的时候,是不允许拆分这个包的,
我想这个命令只限制第一连接不可以拆分,至于后边的包是否拆分是不受限制的.不然1492这个包在不拆分的情况下,肯定无法通过光猫是吧?跳跃点那么多.也不可能都限制拆分是吧?所以这个不可以拆分的包可以顺利通过设置的1500,然后路由器把1492这个包拆分两个包,通过了光猫..终于搞清楚了.
那么如何做到不让路由器不拆分包.能顺利通过光猫1480的限制呢?
因为上边繁琐的测试,我们知道了,高恪默认的是会把用户设置的MTU值减去8
那么现在就简单了.如果光猫最大是通过1480,那么我们还需要在+8,设置为1488好了 因为 1488-8=1480
1488这个数值好奇怪啊.....可是没办法啊.这是高恪默认的要-8的..设置好1488,这次路由器---光猫..不用在拆包了..终于测试完了..顺便说下.固件版本4.2.6.15333,为什么用这么老的 版本呢?没办法.因为只要这个版本支持NAT1,K2P想用高恪NAT1,别无选择.那么怕是你想付费也不行..所以只能用老版本了.郁闷
|
|