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