李每虎,郭淵博,王洪玉
(解放軍信息工程大學(xué) 電子技術(shù)學(xué)院,河南 鄭州 450004)
無線Mesh網(wǎng)絡(luò)[1](WMN,Wireless Mesh Networks)是從移動Ad hoc網(wǎng)絡(luò)分離出來,并承襲了部分WLAN技術(shù)的新型網(wǎng)絡(luò)技術(shù),具有較高的可靠性、較大的伸縮性和較低的投資成本。無線 Mesh網(wǎng)絡(luò)的核心思想是讓網(wǎng)絡(luò)中每個節(jié)點都發(fā)送和接收信號,網(wǎng)絡(luò)中每個節(jié)點都具備自動路由功能,具有多跳特性,能夠很好地解決無線接入“最后一公里”瓶頸及WLAN中AP“單點故障”等問題。
作為一種高容量、高速率的新型分布式無線寬帶接入網(wǎng)絡(luò),無線 Mesh網(wǎng)絡(luò)的關(guān)鍵技術(shù)以及面臨的相關(guān)問題已經(jīng)成為無線通信發(fā)展演進(jìn)中的研究熱點之一,受到了國內(nèi)外業(yè)界的廣泛關(guān)注?;ヂ?lián)網(wǎng)的發(fā)展和多媒體業(yè)務(wù)的需求加速了無線通信向真正的寬帶系統(tǒng)過渡,其面臨的多種無線通信技術(shù)及異構(gòu)網(wǎng)絡(luò)共存、融合的趨勢和要求,使得無線 Mesh網(wǎng)絡(luò)技術(shù)的廣泛研究開發(fā)和產(chǎn)業(yè)化成為當(dāng)前亟待解決的問題。而目前用于各種關(guān)鍵技術(shù)的具體實現(xiàn)、相關(guān)協(xié)議性能測試等研究的無線 Mesh網(wǎng)絡(luò)平臺不多,為了更好地將理論轉(zhuǎn)化為現(xiàn)實應(yīng)用,提出了一種構(gòu)建實用、可擴(kuò)展性強(qiáng)、能夠靈活應(yīng)用的無線 Mesh網(wǎng)絡(luò)路由協(xié)議測試平臺的方案,并進(jìn)行了原型系統(tǒng)實現(xiàn)和相關(guān)測試。方案基于Click軟件路由技術(shù)[2],應(yīng)用動態(tài)源路由選擇協(xié)議(DSR,Dynamic Source Routing Protocol)[3]和相關(guān)軟硬件,在Linux操作系統(tǒng)上實現(xiàn)了無線Mesh網(wǎng)絡(luò)路由節(jié)點,為進(jìn)一步對無線Mesh網(wǎng)絡(luò)及其路由理論的研究與應(yīng)用開發(fā)提供了方法和思路。
軟件路由技術(shù)主要是采用通用的硬件平臺結(jié)合應(yīng)用程序軟件來實現(xiàn)網(wǎng)絡(luò)路由。目前在軟件路由器研究領(lǐng)域中,基于Windows平臺的軟件路由器主要是用于商業(yè)化的,而開源的基于 Unix/Linux平臺的軟件路由技術(shù)更加適用于研究與開發(fā),應(yīng)用比較廣泛的主要有Scout系統(tǒng)和Click路由系統(tǒng)。
Click路由系統(tǒng)是由美國MIT大學(xué)Eddie Kohler博士提出并由 MIT計算機(jī)技術(shù)系并行與分布式操作系統(tǒng)實驗室開發(fā)完成的基于Linux操作系統(tǒng)實現(xiàn)的一種新型模塊化軟件路由器,目前Click軟件已經(jīng)發(fā)布到了1.8.0版本。Click的最大特點就是面向?qū)ο蟮哪K化設(shè)計方式,使路由配置和管理更加靈活,用戶可以根據(jù)自己的需要選擇不同的模塊組合起來配置路由器,而且Click的模塊化設(shè)計方式也使得用戶可以方便地在原有路由器的基礎(chǔ)上增加新的功能。
DSR路由協(xié)議是一種反應(yīng)式多跳路由協(xié)議,其網(wǎng)絡(luò)節(jié)點根據(jù)自身需求發(fā)起動態(tài)路由請求,由于在數(shù)據(jù)報文中帶有完整的源路徑信息,DSR協(xié)議能夠保證該報文按照指定路徑行進(jìn),可以有效地避免環(huán)路的產(chǎn)生,而且,它還能夠支持單向信道和非對稱路由,提供多條路由,是一種簡單而高效的按需實用路由協(xié)議。由于無線Mesh網(wǎng)絡(luò)組網(wǎng)靈活,網(wǎng)絡(luò)兼容性好,結(jié)構(gòu)復(fù)雜,選擇 DSR協(xié)議可以很好的實現(xiàn)與既有網(wǎng)絡(luò)(比如Internet)之間的無縫連接并能很好地適應(yīng)網(wǎng)絡(luò)的動態(tài)變化。
方案在借鑒Click的軟件路由器體系結(jié)構(gòu)的同時,通過分析DSR路由協(xié)議的具體特點,對DSR協(xié)議模塊化結(jié)構(gòu)進(jìn)行了充分的設(shè)計。設(shè)計后的基于Click系統(tǒng)的DSR協(xié)議組件配置結(jié)構(gòu)如圖1所示。
在分析如圖1基于Click系統(tǒng)的DSR路由組件結(jié)構(gòu)的基礎(chǔ)上,依據(jù)Click語法規(guī)則可編寫出基于文本的click配置文件dsr-userlevel.click。
在無線Mesh 網(wǎng)絡(luò)中,任何無線設(shè)備節(jié)點都可以同時作為AP 和路由器,網(wǎng)絡(luò)中的每個節(jié)點都可以發(fā)送和接收信號,每個節(jié)點都可以與一個或者多個對等節(jié)點進(jìn)行直接通信。因此所設(shè)計的基于主機(jī)的無線Mesh網(wǎng)絡(luò)路由節(jié)點的基本體系結(jié)構(gòu)包括利用Click軟件路由技術(shù)構(gòu)建的無線Mesh網(wǎng)絡(luò)路由模塊和用HostAp軟件[4]實現(xiàn)的無線Mesh網(wǎng)絡(luò)接入模塊。其軟件硬件結(jié)構(gòu)如圖2、圖3所示。
圖1 基于Click系統(tǒng)的DSR協(xié)議模塊化組件結(jié)構(gòu)
圖2 硬件結(jié)構(gòu)
圖3 軟件結(jié)構(gòu)
3.2.1 節(jié)點實現(xiàn)所需軟硬件
節(jié)點構(gòu)建所選擇硬件包括:帶有以太網(wǎng)卡的Linux系統(tǒng)主機(jī),Atheros AR5212A miniPCI無線網(wǎng)卡(可轉(zhuǎn)換成PCI),D-Link DWL-G122 USB無線網(wǎng)卡;所需的軟件主要是Click軟件包和HostAp軟件包等。
3.2.2 路由模塊的安裝與配置
在裝有Linux操作系統(tǒng)主機(jī)上安裝libgtk/libglib等基本庫文件和gcc/g++/gdb/make 等基本編程工具。
對網(wǎng)卡驅(qū)動程序進(jìn)行安裝與配置,對于Atheros AR5213無線網(wǎng)卡,由于系統(tǒng)系統(tǒng)默認(rèn)自動加載的ath5k驅(qū)動不支持MeshAP模式,因此需要從網(wǎng)站下載Madiwifi驅(qū)動并進(jìn)行安裝加載,并將網(wǎng)卡模式設(shè)為ad hoc模式以支持Mesh路由。
下載最新的 click軟件包并進(jìn)行用戶模式安裝(即userlevel模式),并將上述已編寫好的路由配置文件dsr-userlevel.click復(fù)制到相應(yīng)的目錄下(一般為../click/userlevel/conf/)。
3.2.3 接入模塊的安裝配置
加載網(wǎng)卡驅(qū)動程序,由于系統(tǒng)內(nèi)核自帶rt73驅(qū)動,可以直接通過命令行對D-Link DWL-G122 USB無線網(wǎng)卡進(jìn)行驅(qū)動加載,并將網(wǎng)卡模式配置為支持AP模式即Master模式。
安裝openssl-0.9.8與hostapd-0.5.7軟件,并根據(jù)實驗需要更改hostapd.conf配置文件。
編寫HostAP啟動腳本StartHostAP.sh,該腳本主要是通過啟用HostAP軟件,利用無線網(wǎng)卡與以太網(wǎng)卡進(jìn)行橋接的方式實現(xiàn)無線接入功能。
利用基于Click的網(wǎng)絡(luò)節(jié)點搭建一個無線Mesh網(wǎng)絡(luò)測試平臺并設(shè)置相應(yīng)IP地址和頻段,每臺主機(jī)代表一個節(jié)點,其拓?fù)浣Y(jié)構(gòu)如圖4所示。
圖4 測試平臺網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
首先,在每個節(jié)點中啟動HostAP接入模塊以啟動接入功能,可在終端輸入命令行:
./StartHostAP.sh
其次,在每個節(jié)點中啟動基于Click的DSR路由模塊以啟動路由功能,進(jìn)入/userlevel目錄,可在終端輸入命令行:
./conf/dsr-userlevel.click
這樣網(wǎng)絡(luò)中的每臺Linux主機(jī)都可以當(dāng)作無線Mesh網(wǎng)絡(luò)路由節(jié)點正常運行,并且節(jié)點之間能夠正常通信。在 IP地址為192.200.1.21的主機(jī)上使用route命令可以查看到路由表如圖5示。
所搭建的無線 Mesh網(wǎng)絡(luò)節(jié)點平臺在完成正常的無線Mesh接入和路由功能上,可以進(jìn)一步提高網(wǎng)絡(luò)的穩(wěn)定性,增加網(wǎng)絡(luò)的帶寬,提升網(wǎng)絡(luò)的速度,擴(kuò)大無線網(wǎng)狀網(wǎng)的應(yīng)用范圍,最終實現(xiàn)一個安全可管可控實用的無線網(wǎng)絡(luò)環(huán)境。該方案所設(shè)計實現(xiàn)的節(jié)點平臺還可以方便地在主機(jī)上安裝iperf和jrtplib等相關(guān)工具,實現(xiàn)對無線Mesh網(wǎng)絡(luò)路由協(xié)議的吞吐量、丟包率、網(wǎng)絡(luò)時延等數(shù)據(jù)的測試。
圖5 節(jié)點路由表
這里提出了一種在Linux操作系統(tǒng)上實現(xiàn)Mesh網(wǎng)絡(luò)節(jié)點的方法,并進(jìn)行了原型系統(tǒng)實現(xiàn)。首先,由于Linux的開源特性,該節(jié)點可以通過對不同協(xié)議的編譯與配置來分析和比較不同協(xié)議的性能,并能夠在此基礎(chǔ)上靈活的加各種入功能模塊如Web和Ftp服務(wù)、防火墻等,實現(xiàn)一機(jī)多用加大投資效益。其次,研究人員能夠借鑒該方法在不更換硬件的條件下根據(jù)個人需求方便地搭建各種Mesh網(wǎng)絡(luò)平臺并進(jìn)行應(yīng)用開發(fā)與協(xié)議研究。為了更好地將實現(xiàn)網(wǎng)絡(luò)的具體應(yīng)用,下一步的主要研究方向是在更換硬件設(shè)備和接口的基礎(chǔ)上,通過交叉編譯等方式,在開源嵌入式操作系統(tǒng)OpenWRT上,將在Linux主機(jī)上實現(xiàn)的開源無線Mesh節(jié)點平臺應(yīng)用于嵌入式開發(fā)平臺,構(gòu)建基于嵌入式的無線Mesh網(wǎng)絡(luò)節(jié)點平臺。
[1] IAN F A, WANG Xudong, WANG Weilin.Wireless Mesh Networks: a Survey[J].Computer Networks, 2005, 47(04):446-487.
[2] KOHLER E.The Click Modular Router[D].USA: MIT, 2001.
[3] JOHNSON D B, MALTZ D A, HU Y.The Dynamic Source Routing Protocol for Mobile Ad Hoc Networks[EB/OL].(2007-07-23)[2011-01-13].http://www.ietf.org/internetdrafts/draft-ieftmanet-dsr-11.txt.
[4] IEEE.Host AP Linux driver for wireless LAN cards and WPA Supplicant [EB/OL].(2008-11-01)[2011-01-13].http://hostap.epitest.fi/.