我們可以把路由器比作網路世界的骨架,我們之所以能夠在網路世界里暢游,很大程度上是得益於這個鐵盒子。 路由器硬體架構 隨著專用多核網路處理器、專用轉發晶元的出現,使得現代路由器擺脫了以往純軟體轉發的局限,向著高吞吐率、硬體快速轉發等方向發展。高端的路由器設計成多板分散式+冗餘備份的架構,使轉發能力成倍 ...
我們可以把路由器比作網路世界的骨架,我們之所以能夠在網路世界里暢游,很大程度上是得益於這個鐵盒子。
路由器硬體架構
隨著專用多核網路處理器、專用轉發晶元的出現,使得現代路由器擺脫了以往純軟體轉發的局限,向著高吞吐率、硬體快速轉發等方向發展。高端的路由器設計成多板分散式+冗餘備份的架構,使轉發能力成倍的增強,同時還大大提高了業務的穩定性。
下圖是一幅典型的路由器硬體架構圖:
目前高端路由器大多採用專門的多核網路處理器作為CPU,如Cavium公司研發的Octeon系列處理器,主流的6000系列16~32個核,即將上市的7000系列多達64個核,並行處理能力大大加強。並且這類專用網路處理器在硬體上都對網路報文的解析、保序、轉發等方面提供了專門的協處理器進行支持,優化並提高了系統的轉發能力,也為軟體研發者省去了不少麻煩。
Broadcom、Marvell等公司提供專門的轉發晶元,通過VLAN、硬體路由等功能,在硬體上直接支持了對報文的二三層的線速轉發,並且多片交換晶元之間可連接,最終形成一個大的交換矩陣網路。
CPU和交換晶元之間的數據通道可由10G高速介面相連,實現海量數據的傳輸;管理通道通過PCIe匯流排相連,傳輸控制信號。
64位的CPU有著廣闊的定址空間,可以支持很大的DRAM記憶體。
CF卡或SD卡用來存儲系統程式,可以很方便的對系統程式進行升級。
BOOT ROM存儲著系統載入程式,系統上電時首先從BOOT ROM開始運行,由BOOT ROM來負責載入整個操作系統。
CPLD中存儲著系統的版本信息,由BOOT ROM來負責讀取版本參數,並通知給系統。
作為分散式系統的話,各個單板之間通過背板介面傳輸數據和管理信息。
路由器軟體架構
路由器是一個典型的嵌入式系統,我們只討論與網路相關的部分:
由於使用多核處理器,軟體的設計架構可以非常靈活,我們一般在CPU層面就把業務劃分開,拿出幾個核跑特定的核心業務(無操作系統),這樣可以大大加快核心業務的處理能力。其它的核一般跑Linux、VxWorks等嵌入式操作系統,作為控制面。相比較而言,控制面的報文轉發能力就很差了,但由於有操作系統和協議棧的支持,控制面可以跑更複雜、更定製化的業務,根據客戶需求靈活的設計業務模式。