为什么你家的路由器需要定期重启?今天仔细说说

这件事发生了快两周了,有一天去哥们家,这个哥们的网络卡的厉害,过去排除一下故障。

起初测速60,让iN都觉得是不是他家用的是那种免费的套餐。总之搞了好久之后发现哥们的路由器3780个小时没有停止过……关闭路由器电源,静置10秒后,再打开测速一下子就达到了600多Mbps。

所以就计算机行业的“重试、重启、重装能解决90%问题”的定律还是有效的。

那么咱们来聊聊为什么路由器要定时重启,以及路由器重启之后都有哪些改变呢?

首先,家用路由器本质上来说就是一台小电脑,有专门的CPU、内存和存储设备。

例如下面这是一台ASUS WL-500G路由器的内部电路:

你会看到在路由器的电路板上明显的分出来几块大的芯片,如果画出系统的架构图就是下面的样子

首先路由器的CPU包含了两个以太网端口,路由器用到了其中的两个,其中一个(eth0)被交换芯片扩展用于有线网络连接,另一个(eth2)被接入wifi芯片为路由器提供无线网络功能。

这款路由器使用的CPU是博通的5354,别看路由器里面这小小的一颗CPU(SOP封装)几乎你的电脑里面有什么设备,在这一个小CPU里面也都包含了什么设备。

所以很多人会用华硕的这款路由器去刷一个软路由固件做一些自己的应用。

但是这种路由器比起来真正的电脑虽然是五脏俱全,但处理能力还就低了很多,好在路由器内处理的数据大部分都是网络数据包的交换和编码操作,这就让小CPU可以有效的得到利用。

其实换句话说,现在大部分家用路由器本身都是软路由,和你手里的软路由的区别就是能不能方便的刷入你想用的软路由固件。这件事咱们不往远处去说。

通过CPU处理网络数据包也无外乎 “输入-包交换/包处理-输出”这一模式,但数据包的数据空间通常都会存入路由器的内存中。

其中最重要的报文缓冲区就放在了路由器的内存里面。

任何的网络都会有各种传输故障,一个数据包进入报文缓冲区后没有被交换控制处理和消除掉就会一直占用路由器内存空间,并不会被自动释放出去。这是由路由器本身的处理限制造成的,尤其是一些更注重成本控制的低端路由器,例如运营商给你的光猫路由器,更不会在清理内存的操作上浪费CPU的处理能力。

这就导致了长时间一直工作的路由器可用的报文缓冲区越来越小。最终到了影响网络速度的程度。

从报文缓冲区不断被错误数据填满这一特性来说可以说是商用路由器和家用路由器最重要的区别之一。商用路由器可以堆成本用更快的CPU或DPS芯片来清理内存,而家用路由器则需要寄托于手动的重启来清空内存。

不过好在,现在很多路由器自己是带有重启功能设置的。登录到路由器找到这个设置,在一个自己不用网络的时间段内(例如每天凌晨3点)设置一个自动重启也就可以完美的解决这个问题。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注