路由器网络断流问题可能是由于MTU大小的问题
最近几天看到论坛好多人讨论关于路由器断流的问题,我前几天也遇到此问题,所有连接线都换成了高质量传输线,双绞线都是超五类线,路由器接口牢固,故障依旧,因此考虑协议问题。在路由器(ZTE H108b v1.2)的网络设置中,所有可能影响网络质量的问题都考虑了(没有开QOS),最后就剩下mtu。
h108B 的默认设置的mtu(最大传输单元)值为1492,起初并未对此数据表示怀疑,但最后还是想找一下真实的mtu值。
在系统用ping www.sina.com.cn -l 封包长度 可以采用抽样检测的方法发现实际的最大数据单元(MDU)值,可以用尝试封包数据长度1430、1440、1450,结果发现1430可以ping,1440就不行了,因此考虑mdu是在1430-1440之间,因为一般mdu值是偶数值,因此,尝试5次,就可以发现最大MDU为1438,当为1439时,便会丢包。
找到了MDU最大值,回过头来,再说MTU,因为MTU值是由MDU与协议包头的总和构成的,所以,根据不同网络协议,加相应的协议包头大小,就是mtu值,因为路由器的网络设置的mtu是pppoe的协议,pppoe包头大小28字节,因此,h108b的设置里面的mtu为1438+28=1466
同时,windows系统的默认mtu为以太网的1500,也需要进行调整,以太网的包头40字节,因此数据最大长度为1438,最大的mtu值就为1478,windows设置这些值,要改注册表,太麻烦,下载个优化大师,自己设置就行了。
这样基本保证了局域网以太网和路由出去的pppoe的数据字段都是最大的1438,设置后,目前未出现断流情况。
另外,因为我是北京的adsl,因此mtu和mdu的值,只能是当地的情况,各地情况最好用类似方法去判断。
希望对大家有用。 本帖最后由 Salvisian 于 2009-12-28 22:59 编辑
应该跟MTU无关。长度超过MTU的包,路由器会分段的,这是路由器的基本功能。除非应用设置了IP包的不分段标志,一般的应用都不会这么做的。主机设置MTU不匹配路由的结果只是增加路由器额外的分段处理而已,并不会导致断流,除非你的路由器的分段处理代码有bug。
另外你ping sina主机得到的MDU实际上是你的主机到新浪的主机这条路径上所经历的各种路由结点的最小MDU,ping sohu或google你可能得到不同的结果,并不能说明什么。通常PPPoE拨号连接的默认MTU不大于1492即可,这是因为以太网封包的的1500字节要减去8个字节的PPP报头开销才是一次所能传输的最大IP包大小。
页:
[1]