拨号频繁断网大麻烦其实是小问题

2020-04-28 08:05
电脑爱好者 2020年2期
关键词:字节路由器数据包

什么是MTU

MTU(Maximum TransmissionUnit,最大传输单元)是指通信协议的某一层所能通过的最大数据包的大小(单位为字节)。对于各种路由器来说,最佳的MTU值通常都是默认值。虽然有时更改MTU值可提高路由器的工作性能,网络速度看起来更快(一些小技巧类文章经常会提供这样的建议),但实际上这样做往往会导致出现其他问题,如拨号频繁掉线、反复下载、游戏丢包等等。

因为在网络传输中,每个信息都会被“ 打包”传送,类似快递使用的标准包装箱、包装袋,大小就是MT U值,这样可以提高传输效率。理论上,在电脑、交换机、路由器及能访问互联网的所有设备上的MTU值应该设置为同一大小,比如MTU=1500。当然,这也仅仅是理论而已,因为在“打包”的过程中,局端或设备都会在每一个数据包头加入自己的信息,占用几个字节,这样就不可能一路全都是MTU=1500了。

MTU设置不能一个值天下通用,所以我们讲求合理设置MTU,首先要知道:

1. 本地MTU值大于网络MTU值时,本地传输的数据包过大会导致网络拆包后重新组包传输,不但产生额外的数据包,而且消耗了“拆包、组包”的时间。

2. 本地MTU值小于网络MTU值时,本地传输的数据包可以直接传输,但是未能完全利用网络给予的数据包传输尺寸的上限值,传输能力未完全发挥。

很明显,所谓合理地设置MTU值,就是让本地的MTU值与网络的MTU值一致,这样既能完整发挥传输性能,又可以让数据包无需拆组,流畅传输(图1)。

具体来说,一级运营商(比如联通、电信、移动等等)的MTU都是标准的1500,所以使用光猫通过PPPOE协议直拨上网时没有中间设备,都是默认的M T U =1500就好。但如果是用路由器连接光猫,再由路由去拨号,那么理论MTU就应除去PPPOE协议必需的8个字节的设备头开销,变成1492。因此,路由器出厂最好都是默认MTU=1492较为合理。但实际上绝大多数的路由器出厂默认设置都是MTU=1500,这样如果使用PPPOE协议拨号驱动光猫,MTU值必然不对了。每个数据“包”的大小不一样,局端服务器会认为这是有问题的,进而“踢”你的设备下线,路由器认为只是断线,于是自动重拨……这样你明白故障出在哪里了吧?

各种应用下的最佳MTU值

因此,设置正确的MTU值是非常必要的,而设置MTU的大小是一个反复试验的过程:由最大值1500开始下降,直至问题解决。当然,这也不是盲人摸象,笔者整理出了几个常用的MTU典型值供大家参考,然后跟着此方法做,就能找到自家网络配置中各设备最正确的MTU值设置。MTU = 1500:以太网信息包最大值,也是默认值。是光猫直连PPPOE的典型设置;

MTU=1492:使用路由器等设备进行PPPOE连接的最佳值;

MTU=1472:使用Ping的最大值(大于此值的信息包会先被分解);

MTU=1468:局域网内的最佳值;

MTU=1430:PPTP的最佳值;

MTU=576:拨号连接到ISP的标准值。

查看并设置网络MTU值

好了,既然知道了原理,我们就可以进行具体的设置。

首先要做的就是查看当前自己的网络MTU值。电脑直接插网线到光猫,不安装路由器(通过交换机连接也可以)进行PPPOE拨号上网,成功连接后,在开始菜单中输入cmd并回车,进入命令提示符模式(图2)。

输入以下命令并回车执行:netshinterface ipv4 show subinterfaces

如图3 中“本地链接* 1”显示的MTU = 1492就是当前环境的运营商宽带MT U值。注意看,这并非光猫或者路由固件默认的MTU =1500,这是因为拨号設备换成了电脑,而非光猫自己,所以PPPOE需要占用8个字节的包头信息,MTU=1492+8=1500。

测试MTU值找到最佳选择

前面也提到了,MTU值越大,发包量就越大,发包时间也就减小,理论上可以提高网络速率。既然明白了这一点,我们就可以测试出适合自己设备的MTU最大值,用这一MTU值上网以获得最高的网络速度。

首先使用路由器进行PPPOE拨号上网,将电脑连接到路由器上后,在cmd命令提示符下输入ping -f -l1480www.baidu.com并执行。注意,这里起始数值是自由设置的,范围建议从1480开始(由大到小逐步缩小范围)。

这时如果看到提示“需要拆分数据包但是设置 DF。”(图4)说明MTU值过大,把MTU值降低测试:继续输入命令ping -f -l1450 www.baidu.com。

这时可以看到Ping值出来了,且并未拆分(图5),说明MTU包小于传输能力,那就改为逐步增加,继续测试,比如ping -f -l1451 www.baidu.com、ping -f -l 1452www.baidu.com,直到重新出现“需要拆分数据包但是设置 DF。”的提示为止,比如笔者最后得到的不需要拆分的最大MTU包是1450。

这时,将得到的这个数值再加上数据包头大小28字节(包含设备的IP包头20字节和PPPOE的8字节,记住这个数就好),比如笔者的MTU=1450+28=1478,填写到路由器的MTU值设置中,再用路由拨号就可以了,频繁断网问题绝对不会再出现,而且基本都能达到满速下载,也不会丢包了。

小提示

根据路由器的品牌、型号不同,设置MTU大小的选项位置有很大变化。一般来说,登录路由器设置界面后,可以首先找到“高级”或“高级设置”界面,然后在其下的“接口”、“安装”等选项中寻找WAN设置,点击进入后就能看到MTU选项了。也有些产品或设置界面是先进入接口设置,然后寻找“高级-重设MTU”等设置。(图6、图7)

但不管是从何种途径设置MTU,一定在设置前确定是WAN接口的MTU设置,如果是面向其他接口或路径的MTU设置,使用我们测试得到的最优化MTU尺寸可能造成一些其他问题。

猜你喜欢
字节路由器数据包
买千兆路由器看接口参数
No.8 字节跳动将推出独立出口电商APP
路由器每天都要关
No.10 “字节跳动手机”要来了?
SmartSniff
无线路由器的保养方法
简谈MC7字节码
视觉注意的数据包优先级排序策略研究
无线路由器辐射可忽略
移动IPV6在改进数据包发送路径模型下性能分析