73049部隊 季 燁 仇賽杰
智能路由器的軟件架構分析
73049部隊 季 燁 仇賽杰
現(xiàn)階段家用電器的發(fā)展已經(jīng)進入到了一個智能時代,智能設備大有井噴之勢。無線路由器作為家庭互聯(lián)網(wǎng)的入口設備,更是不例外的踏入了智能時代。由于軟件控制是其智能的關鍵,本文重點在于論述其軟件系統(tǒng)架構。分析智能路由器的軟件架構特點,并通過對經(jīng)典的開源智能路由器操作系統(tǒng)OpenWrt進行分析,說明了智能路由器的基礎原理。
路由器;智能路由器;openwrt
現(xiàn)階段的家用電器的發(fā)展已經(jīng)進入到了一個智能時代,智能設備大有井噴之勢。無線路由器作為家庭互聯(lián)網(wǎng)的入口設備,更是不例外的踏入了智能時代。用戶除了追求路由器的穩(wěn)定性、信號質量、連接強度以外,也越來越關注用戶體驗、路由器的功能拓展、功能的自動化等方面,這樣就是智能路由器孕育而生的原因了。這也就是為什么在當前無線路由器的整體銷量下滑的背景下,智能路由器的使用率逐步提升的原因,大有爆發(fā)性增長的可能。
無論是傳統(tǒng)路由器與智能路由器其基本功能都是通過其上的路由協(xié)議,通過相互之間的協(xié)作將IP數(shù)據(jù)包由源端送完宿端。因此就基本功能而言路由器由兩類最基本功能構成,即路由轉發(fā)和控制管理。路由轉發(fā)是將通過路由器的每個報文根據(jù)配置策略轉發(fā)給輸出鏈路,輸出鏈路通過鏈路調度實現(xiàn)高速的轉發(fā),這個功能一般由硬件實現(xiàn)。而軟件主要在控制管理方面,其包括路由交互表、系統(tǒng)配置、端口配置、協(xié)議配置、安全配置、設備升級、配置備份及恢復、系統(tǒng)管理等控制管理功能[2]。
顯然智能路由器的智能部分主要是軟件方面體現(xiàn),即在控制管理方面進一步進行擴充,提供智能化的路由器管理,相對于傳統(tǒng)路由器而言,其路由器操作系統(tǒng)除了專用與路由功能的軟件,還可以通過更多擴展應用。
從軟件的智能功能上來講,智能路由器與傳統(tǒng)路由器的區(qū)別主要在下述幾個方面。
2.1 更人性的用戶體驗
一方面路由器內部提供的用戶界面較之傳統(tǒng)界面更加人性、功能設置更加合理,配置向導更加只能,趨于傻瓜式配置。另一方面,可以提供手機、平板等智能設備通過APP直接進行設置。
2.2 存儲共享
由于智能路由器一般配備內部存儲或外部USB擴展存儲的支持。用戶一方面可以遠程共享這些網(wǎng)絡存儲服務,還可以將視頻緩存在共享存儲中離線觀看。夜間緩存用戶想看的視頻,白天不影響用戶其它網(wǎng)絡訪問。用戶還可上傳資料的時候先上傳到路由器,路由器慢慢上傳,減小用戶對上下行帶寬不一致的感受。
2.3 應用的針對性
對于一些特定的應用其可以提供更優(yōu)先的帶寬,如大量的游戲、網(wǎng)站、視頻、IPTV等。傳統(tǒng)路由器需要復雜的手工設置,而智能路由器可以根據(jù)應用的報頭自動判斷根據(jù)策略及算法動態(tài)配置。
2.4 功能的擴充
傳統(tǒng)路由器只能通過系統(tǒng)整體升級來升級功能,而智能路由器由于具有獨立的操作系統(tǒng),所以可以通過安裝應用的方式擴充功能。
2.5 內容推薦及過濾
智能路由器可以根據(jù)分析報文,了解用戶的喜好及行為,從而向其推送更加符合用戶需求的信息,如加速某些游戲、定向加速某些網(wǎng)頁的瀏覽等,同時還可以對一些廣告在報文級就自動過濾。
綜上所述,智能路由器較之傳統(tǒng)路由器主要是更加人性,用戶體驗更加合理,同時作為互聯(lián)網(wǎng)入口能夠更好的與其它應用及硬件相融合。
由于智能路由器的本質就是其具有獨立的操作系統(tǒng),因此智能路由器軟件架構就是智能路由器的操作系統(tǒng)架構。傳統(tǒng)路由器通過對固件升級來擴充其控制功能,顯然這個固件就是一種實時操作系統(tǒng)。智能路由器也提供了一個操作系統(tǒng),只是在系統(tǒng)設計上更加易于應用的擴展,可以方便設計更多貼近用戶的功能。
路由器的操作系統(tǒng),最早可追溯到上世紀八十年代,由美國WiindRiver公司推出的VxWorks,其幾乎支持市場上所有的嵌入式CPU,包括x86系列、Intel i960、SPARC、ARM、PowerPC以及xScale CPU。但是由于其封閉性,專用性,導致其推廣并不多,也不為開發(fā)人員所熟知。
后來由于linux及開源軟件的興起,一些專用于某些芯片的linux裁剪系統(tǒng)逐漸誕生。像Redhat推出的eCos、Lineo公司支持維護的uClinux等,均在一些路由器中被使用。但其裁剪較多,缺乏多任務,缺乏內存管理等限制條件,其很難被應用于智能路由器。但是,這些操作系統(tǒng)帶來了一種全新的概念,就是把linux引入到了路由器領域,很多芯片廠商也在linux裁剪、編譯、驅動、硬件加速上下了很大的力度。
操作系統(tǒng)是軟件與硬件設備的橋梁和平臺,路由器操作系統(tǒng)就是管理路由器硬件和路由器上的控制軟件、系統(tǒng)軟件以及應用軟件的平臺程序。WRT54G[3]是由思科公司推出的一款路由器經(jīng)典操作系統(tǒng),其是基于Linux內核開發(fā)的并遵守GNU(General Public License),因此其源碼也是開發(fā)的?;诖?,越來越多的人為這款操作系統(tǒng)做出了極大的貢獻,于是OpenWrt單身了。由于其易于開發(fā)、功能強大、編譯方便,目前國內外不少廠家的智能路由器都是基于開源的OpenWrt作為其操作系統(tǒng),其也慢慢進入了主流行列。本文將以OpenWrt系統(tǒng)架構作為一個經(jīng)典設計,來分析智能路由器軟件架構。
相比普通運行在PC的操作系統(tǒng),路由器操作系統(tǒng)的軟件設計更為簡潔,也裁剪了不少與路由器無關的管理功能。其基本思路是在保留基本的進程管理、內存管理、IO管理、文件管理等內核的基礎之上開發(fā)一個包含了TCP/IP的協(xié)議棧,基于協(xié)議棧開發(fā)更多的應用功能模塊以及用于用戶交互的基礎用戶接口,構成一個完整的架構。
一般而言其系統(tǒng)層次由下至上由以下六個部分構成:
(1)內核層,其提供對CPU、存儲器的管理,提供上層的服務如存儲管理、IO管理、進程調度、定時器等基礎服務。
(2)設備驅動層,對下層硬件管理,并對進程服務提供通用的訪問接口。
(3)報文緩存層,其用來存放要被交換的報文。
(4)各種基礎服務進程層,其包括如telnet、FTP、SNMP、HTTP以及各種協(xié)議服務進程:TCP、IP、RIP、UDP、OSPF、ARP、BGP、ICMP、IGMP、加解密算法服務、NAT、報文過濾、端口過濾等,WAN口配置、ATM配置、VPN配置等設備配置服務。
(5)用戶接口層,其包括命令行接口、對象管理接口、WEB管理接口、自動配置服務器接口、以及各種可擴展的接口。
(6)應用進程層,用于開發(fā)各種智能模塊,其可以使用下層的基礎服務,開發(fā)各種貼近用戶的應用程序。
作為目前在智能路由器中的主流操作系統(tǒng)OpenWrt除具備上述基礎系統(tǒng)架構,其還有著更優(yōu)良的設計。OpenWrt其系統(tǒng)設計遵循軟件架構的層次設計,由下之上分別為,Linux平臺層、各種SDK及擴展功能庫、OPG管理、統(tǒng)一配置管理接口、系統(tǒng)服務進程和包括了WEB UI代理、SNMP代理、TR069代理、Shell等的代理訪問層。其中,代理層的豐富保證了各種訪問及控制的可能,以及為更為人性化的交互設計提供了基礎服務。
隨著OpenWrt的發(fā)展,其還提供了許多商用家庭網(wǎng)關固件相關的功能,如DHCP服務、WEB無線加密、認證及證書管理等。由于其提供的OPG管理功能,可以使用統(tǒng)一的軟件包來增加或刪除軟件包來實現(xiàn)功能的擴充與變更。這樣極大擴展了路由器的功能范圍,從而實現(xiàn)了智能的效果。
由于軟件控制是其智能的關鍵,本文重點在于論述其軟件系統(tǒng)架構。分析智能路由器的軟件架構特點,并通過對經(jīng)典的開源智能路由器操作系統(tǒng)OpenWrt進行分析,說明了智能路由器的基礎原理。智能路由器的出現(xiàn),實際上是將控制層與轉發(fā)層分離,轉發(fā)由硬件完成,控制由軟件定義,這也是近些年很多這類系統(tǒng)的設計特點。相信未來的路由器必然會更加智能,其發(fā)展一定趨于定制化和開源化,更多的用戶會參與設計,更多的專業(yè)開發(fā)人員也會定制出更多樣化的產(chǎn)品。
[1]杭州華三通信技術有限公司.路由交換技術(第 1 卷)[M].北京:清華大學出版社,2011:87-89.
[2]多伊爾,卡羅爾.路由器配置操作與應用原理[M].葛建立,譯.人民郵電出版社,2006:66-69
[3]Bird Intern Articles on Routing Softeware Openwrt[M]. Hephaestus Books,2011:115-120.
季燁(1984—),女,江蘇人,解放軍73049部隊工程師,主要從事計算機軟件方面的研究。