為什么你家的路由器需要定期重啟?今天仔細說說
這件事發生了快兩周了,有一天去哥們家,這個哥們的網絡卡的厲害,過去排除一下故障。
起初測速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點)設置一個自動重啟也就可以完美的解決這個問題。