劉經(jīng)緯,李 茜,韓仲華
(華北計(jì)算技術(shù)研究所,北京100083)
無(wú)線Mesh網(wǎng)絡(luò)(wireless mesh network,WMN)是近幾年出現(xiàn)的一種新興多跳無(wú)線網(wǎng)絡(luò),相比目前依賴基礎(chǔ)設(shè)施的網(wǎng)絡(luò)(如傳統(tǒng)的蜂窩網(wǎng)絡(luò)),無(wú)線Mesh網(wǎng)絡(luò)中的各節(jié)點(diǎn)能夠以多跳方式快速構(gòu)成鏈狀、樹(shù)狀以及網(wǎng)狀等多種拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)。由于不需要基礎(chǔ)設(shè)施,無(wú)線Mesh網(wǎng)絡(luò)可作為一種臨時(shí)骨干網(wǎng)絡(luò)與應(yīng)急通信手段,保證了其它多種末端網(wǎng)絡(luò)之間能夠互聯(lián)互通,并提供較大范圍內(nèi)的無(wú)線覆蓋能力。
無(wú)線Mesh 網(wǎng) 絡(luò) 涉 及 到 路 由[1,2,10]、組 網(wǎng)[8,9],以 及 信道分配[3-7]等多種技術(shù),而在射頻與天線技術(shù)方面,現(xiàn)有無(wú)線Mesh網(wǎng)絡(luò)多采用普通全向天線,其通信距離一般比較近,難以適用于大跨距的通信場(chǎng)合。
目前出現(xiàn)了一種基于多方向天線陣列的同步無(wú)線Mesh網(wǎng)絡(luò),該網(wǎng)絡(luò)中所有節(jié)點(diǎn)均采用一種基于多方向的天線陣列技術(shù)[11],該技術(shù)中每根天線覆蓋45°扇區(qū),在滿足全向覆蓋的同時(shí)實(shí)現(xiàn)了天線的高增益,并支持天線動(dòng)態(tài)切換,大幅度地提升了整個(gè)網(wǎng)絡(luò)的吞吐量和覆蓋范圍,天線任一時(shí)刻指向某個(gè)特定方位,也能夠大幅減輕來(lái)自其它方向上的干擾。多方向天線陣列結(jié)構(gòu)如圖1所示。
文中所研究的信標(biāo)收發(fā)技術(shù)即應(yīng)用在上述多方向天線陣列結(jié)構(gòu)基礎(chǔ)上。其中,將信標(biāo)稱為Hello包,將網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)周期對(duì)外發(fā)送的信標(biāo)稱為Hello請(qǐng)求包,而將未入網(wǎng)節(jié)點(diǎn)向選定的網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)發(fā)送的信標(biāo)回應(yīng)包稱為Hello響應(yīng)包(下同)。
圖1 多方向天線陣列
該技術(shù)中的時(shí)間幀結(jié)構(gòu)如圖2所示。
圖2 幀結(jié)構(gòu)
該幀結(jié)構(gòu)中具有以下兩種時(shí)隙類型:Hello時(shí)隙;數(shù)據(jù)時(shí)隙。
其中,一個(gè)Hello時(shí)隙的時(shí)間長(zhǎng)度為整個(gè)時(shí)間幀長(zhǎng)度的1/1000,而每個(gè)時(shí)間幀中共有20個(gè)Hello時(shí)隙。
基于多方向天線陣列的同步無(wú)線Mesh 網(wǎng)絡(luò)協(xié)議中的所有與時(shí)間相關(guān)的Hello請(qǐng)求包收發(fā)規(guī)程、數(shù)據(jù)時(shí)隙中的帶寬申請(qǐng)規(guī)程以及數(shù)據(jù)時(shí)隙的普通數(shù)據(jù)收發(fā)規(guī)程均以該幀結(jié)構(gòu)為基礎(chǔ)。
1.2.1 多方向信標(biāo)發(fā)送的問(wèn)題
網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)需要在自己每根天線上均勻地對(duì)外發(fā)送Hello請(qǐng)求包,以便為未入網(wǎng)節(jié)點(diǎn)提供入網(wǎng)服務(wù)。
由于各節(jié)點(diǎn)均具有多方向天線陣列結(jié)構(gòu)并且均遵從時(shí)間幀結(jié)構(gòu),因此需要對(duì)各節(jié)點(diǎn)在Hello時(shí)隙所發(fā)送的Hello請(qǐng)求包的時(shí)間與所使用的天線號(hào)進(jìn)行合理規(guī)劃,否則容易出現(xiàn)以下問(wèn)題:
(1)鄰近的多個(gè)節(jié)點(diǎn)可能會(huì)在同一個(gè)Hello時(shí)隙內(nèi)發(fā)出Hello請(qǐng)求包。
(2)多個(gè)節(jié)點(diǎn)可能會(huì)使用具有相同天線號(hào)的天線發(fā)出Hello請(qǐng)求包。雖然由于各節(jié)點(diǎn)的隨機(jī)擺放能夠一定程度上避免各節(jié)點(diǎn)具有相同天線號(hào)的天線方向相同或相近,但仍需要在設(shè)計(jì)上使各節(jié)點(diǎn)在同一時(shí)間內(nèi)使用不同天線號(hào)的天線發(fā)送Hello請(qǐng)求包。
上述兩種情況容易使未入網(wǎng)節(jié)點(diǎn)在接收Hello請(qǐng)求包時(shí)發(fā)生錯(cuò)誤。另外,為了保證網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)發(fā)出的Hello請(qǐng)求包能夠在各個(gè)方向上均有發(fā)出,應(yīng)保證節(jié)點(diǎn)在每個(gè)時(shí)間幀內(nèi)在每根天線上各發(fā)出一個(gè)Hello請(qǐng)求包。
1.2.2 天線號(hào)序列生成算法
具有多方向天線陣列的同步無(wú)線Mesh 網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)出Hello請(qǐng)求包時(shí)的時(shí)隙位置與所用天線號(hào)的規(guī)則如下:
(1)從每個(gè)時(shí)間幀內(nèi)的20個(gè)Hello時(shí)隙中等概率選擇8個(gè)用來(lái)發(fā)送Hello請(qǐng)求包,其余12個(gè)Hello時(shí)隙則用來(lái)隨機(jī)接收Hello請(qǐng)求包。
(2)8個(gè)用來(lái)發(fā)送Hello請(qǐng)求包的天線號(hào)序列由節(jié)點(diǎn)按[0,1,2,3,4,5,6,7]序列隨機(jī)生成其置換,其余12個(gè)執(zhí)行接收Hello請(qǐng)求包的天線號(hào)則等概率隨機(jī)生成。
由于節(jié)點(diǎn)本身是隨機(jī)部署的,這兩個(gè)節(jié)點(diǎn)在距離上可能較近,也可能較遠(yuǎn),因此,通過(guò)節(jié)點(diǎn)之間距離遠(yuǎn)近的隨機(jī)性、節(jié)點(diǎn)部署時(shí)0號(hào)天線與絕對(duì)方向夾角大小的隨機(jī)性、天線號(hào)的隨機(jī)性以及發(fā)送Hello請(qǐng)求包所選擇的Hello時(shí)隙的隨機(jī)性,則能夠盡可能地減少了網(wǎng)絡(luò)內(nèi)所有節(jié)點(diǎn)在多方向天線陣列上全向發(fā)送Hello請(qǐng)求包時(shí)在未入網(wǎng)節(jié)點(diǎn)的接收上出錯(cuò)的概率。
基于多方向天線陣列的同步無(wú)線Mesh 網(wǎng)絡(luò)協(xié)議中的Hello包結(jié)構(gòu)如圖3所示。
圖3 Hello包結(jié)構(gòu)
其中:第一層包頭共24字節(jié),其內(nèi)容與節(jié)點(diǎn)之間點(diǎn)對(duì)點(diǎn)的基本通信功能相關(guān),如基本數(shù)據(jù)包類型、目的節(jié)點(diǎn)地址、源節(jié)點(diǎn)地址、序列號(hào)等。
第二層包頭由協(xié)議中不同的功能模塊所定義,如模塊類型、該模塊內(nèi)的數(shù)據(jù)包類型以及QoS等。對(duì)于Hello包,則定義了Hello包的具體類型(包括Hello請(qǐng)求包、Hello響應(yīng)包),Hello包,每種類型所對(duì)應(yīng)的具體內(nèi)容。
Hello包內(nèi)容包括測(cè)距類信息、發(fā)送天線號(hào)信息、安全類信息等。
各節(jié)點(diǎn)對(duì)Hello時(shí)隙的使用有如下3種情況:(1)網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)周期對(duì)外發(fā)送Hello請(qǐng)求包
網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)在每個(gè)時(shí)間幀內(nèi)的8處Hello時(shí)隙上在自己每根天線上各發(fā)出一個(gè)Hello請(qǐng)求包,供未入網(wǎng)節(jié)點(diǎn)接入網(wǎng)絡(luò)。當(dāng)網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)在當(dāng)前Hello時(shí)隙內(nèi)發(fā)送Hello請(qǐng)求包完畢后,便立即在該Hello時(shí)隙的剩余時(shí)間里準(zhǔn)備接收未入網(wǎng)節(jié)點(diǎn)回應(yīng)的Hello響應(yīng)包。該過(guò)程如圖4所示。
圖4 網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)周期對(duì)外發(fā)送Hello請(qǐng)求包
(2)未入網(wǎng)節(jié)點(diǎn)接收Hello請(qǐng)求包
未入網(wǎng)節(jié)點(diǎn)在入網(wǎng)前將進(jìn)行Hello請(qǐng)求包的接收。在接收定時(shí)器超時(shí)前,未入網(wǎng)節(jié)點(diǎn)將在所有Hello時(shí)隙內(nèi)都執(zhí)行接收動(dòng)作。該過(guò)程如圖5所示。
圖5 未入網(wǎng)節(jié)點(diǎn)接收Hello請(qǐng)求包
(3)未入網(wǎng)節(jié)點(diǎn)回應(yīng)Hello響應(yīng)包
當(dāng)未入網(wǎng)節(jié)點(diǎn)的接收Hello請(qǐng)求包定時(shí)器超時(shí)后,未入網(wǎng)節(jié)點(diǎn)將對(duì)所接收到的Hello請(qǐng)求包進(jìn)行排序,從中選擇信號(hào)質(zhì)量較好的網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)并嘗試從該節(jié)點(diǎn)入網(wǎng),該算法有專門論文進(jìn)行論述,文中不再提及。未入網(wǎng)節(jié)點(diǎn)為自己選出合適的網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)后,將繼續(xù)在Hello時(shí)隙上執(zhí)行接收動(dòng)作,當(dāng)再次從該網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)處接收到Hello請(qǐng)求包后,便在當(dāng)前Hello時(shí)隙的剩余時(shí)間里立即向該網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)回應(yīng)一個(gè)Hello響應(yīng)包。整個(gè)過(guò)程如圖6所示。
圖6 未入網(wǎng)節(jié)點(diǎn)向網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)回應(yīng)Hello響應(yīng)包
網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)周期性發(fā)送Hello 請(qǐng)求包的過(guò)程如圖7所示。
圖7 網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)周期性發(fā)送Hello請(qǐng)求包的過(guò)程
其中,生成Hello請(qǐng)求包的定時(shí)器時(shí)間周期設(shè)定為一個(gè)時(shí)間幀的長(zhǎng)度。安排下一個(gè)時(shí)間幀內(nèi)的Hello時(shí)隙使用的天線號(hào)和收發(fā)狀態(tài)則依據(jù)1.2節(jié)所描述的算法,而生成下一個(gè)時(shí)間幀內(nèi)的Hello請(qǐng)求包格式則按照1.3節(jié)的信標(biāo)格式填寫(xiě)。
未入網(wǎng)節(jié)點(diǎn)在入網(wǎng)前接收Hello請(qǐng)求包時(shí)的天線選擇情況如圖8所示。
圖8 未入網(wǎng)節(jié)點(diǎn)搜索網(wǎng)絡(luò)過(guò)程
未入網(wǎng)節(jié)點(diǎn)在入網(wǎng)前需要依次使用自己的0~7號(hào)天線執(zhí)行這樣的搜索,每根天線上的搜索時(shí)間為時(shí)間幀的2倍,這樣未入網(wǎng)節(jié)點(diǎn)則在8根天線上總共監(jiān)聽(tīng)的時(shí)間為時(shí)間幀的16倍。
圖9表示了網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)和未入網(wǎng)節(jié)點(diǎn)對(duì)Hello包的處理過(guò)程。
其中:左邊分支表示了未入網(wǎng)節(jié)點(diǎn)與網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)在收到Hello請(qǐng)求包時(shí)的不同處理過(guò)程。右邊分支為網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)收到來(lái)自未入網(wǎng)節(jié)點(diǎn)的Hello響應(yīng)包時(shí)的處理過(guò)程情況,當(dāng)網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)收到這樣的Hello響應(yīng)包后,表明未入網(wǎng)節(jié)點(diǎn)的后續(xù)入網(wǎng)過(guò)程即將開(kāi)始。
以下是某一個(gè)時(shí)間幀內(nèi)前5個(gè)Hello時(shí)隙中網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)周期發(fā)送Hello請(qǐng)求包與未入網(wǎng)節(jié)點(diǎn)接收Hello請(qǐng)求包以及后續(xù)某一個(gè)時(shí)間幀內(nèi)未入網(wǎng)節(jié)點(diǎn)發(fā)送Hello響應(yīng)包的示例。
(1)網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)包含網(wǎng)關(guān)節(jié)點(diǎn)和骨干節(jié)點(diǎn)1,未入網(wǎng)節(jié)點(diǎn)為骨干節(jié)點(diǎn)2。
(2)為說(shuō)明節(jié)點(diǎn)多方向信標(biāo)發(fā)送的天線號(hào)序列生成算法的隨機(jī)性與降低未入網(wǎng)節(jié)點(diǎn)在接收Hello請(qǐng)求包時(shí)失敗的概率,特選擇網(wǎng)關(guān)節(jié)點(diǎn)與骨干節(jié)點(diǎn)1的0號(hào)天線方向完全相同,并且兩個(gè)節(jié)點(diǎn)在該時(shí)間幀內(nèi)均選擇了如下Hello請(qǐng)求包發(fā)送天線序列:[2,0,5,4,3,1,7,6]。
(3)各節(jié)點(diǎn)在該時(shí)間幀內(nèi)前5個(gè)Hello時(shí)隙的天線號(hào)與收發(fā)狀態(tài),分別如圖10~圖12所示。
(4)網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)在該時(shí)間幀內(nèi)的前5個(gè)Hello時(shí)隙收發(fā)Hello請(qǐng)求包分別如圖13~圖17所示。
(1)網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)包含網(wǎng)關(guān)節(jié)點(diǎn)和骨干節(jié)點(diǎn)1,未入網(wǎng)節(jié)點(diǎn)為骨干節(jié)點(diǎn)2。
(2)在上例中,未入網(wǎng)節(jié)點(diǎn)(即骨干節(jié)點(diǎn)2)在某個(gè)時(shí)間幀內(nèi)的20個(gè)Hello時(shí)隙內(nèi)收到的hello請(qǐng)求包中,來(lái)自網(wǎng)絡(luò)內(nèi)骨干節(jié)點(diǎn)1的2 號(hào)天線的Hello請(qǐng)求包的RSSI值最大,因此,骨干節(jié)點(diǎn)2選擇骨干節(jié)點(diǎn)1作為選定的網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)并嘗試從該節(jié)點(diǎn)入網(wǎng)。骨干節(jié)點(diǎn)2 仍然用0 號(hào)天線監(jiān)聽(tīng),當(dāng)某個(gè)Hello時(shí)隙到來(lái)后再次收到來(lái)自骨干節(jié)點(diǎn)1的2號(hào)天線的Hello請(qǐng)求包后,便立即在該Hello時(shí)隙內(nèi)向骨干節(jié)點(diǎn)1回復(fù)Hello響應(yīng)包。這兩個(gè)過(guò)程分別如圖18、圖19所示。
圖9 Hello包的處理過(guò)程
圖10 網(wǎng)關(guān)節(jié)點(diǎn)在該時(shí)間幀內(nèi)的Hello時(shí)隙情況
圖11 骨干節(jié)點(diǎn)1在該時(shí)間幀內(nèi)的Hello時(shí)隙情況
圖12 骨干節(jié)點(diǎn)2在該時(shí)間幀內(nèi)的Hello時(shí)隙情況
圖15 該時(shí)間幀內(nèi)第3個(gè)Hello時(shí)隙
圖16 該時(shí)間幀內(nèi)第4個(gè)Hello時(shí)隙
圖17 該時(shí)間幀內(nèi)第5個(gè)Hello時(shí)隙
圖18 骨干節(jié)點(diǎn)2在后續(xù)Hello時(shí)隙內(nèi)監(jiān)聽(tīng)
圖19 骨干節(jié)點(diǎn)2回復(fù)Hello響應(yīng)包
基于多方向天線陣列的同步無(wú)線Mesh 網(wǎng)絡(luò)在節(jié)點(diǎn)滿足全向覆蓋的同時(shí)實(shí)現(xiàn)了各方向天線的高增益與天線之間的動(dòng)態(tài)切換,從而大幅提高整個(gè)網(wǎng)絡(luò)的吞吐量和覆蓋范圍。鑒于此,提出上述基于多方向天線陣列的同步無(wú)線Mesh網(wǎng)絡(luò)下的信標(biāo)收發(fā)技術(shù),對(duì)時(shí)間幀結(jié)構(gòu)、節(jié)點(diǎn)多方向信標(biāo)發(fā)送的天線號(hào)序列生成算法、信標(biāo)結(jié)構(gòu)、Hello時(shí)隙的使用過(guò)程進(jìn)行了詳細(xì)設(shè)計(jì)。通過(guò)該技術(shù)的使用,網(wǎng)絡(luò)內(nèi)所有已入網(wǎng)節(jié)點(diǎn)均能夠在每個(gè)發(fā)送信標(biāo)的時(shí)刻安排合適的天線,盡可能降低了未入網(wǎng)節(jié)點(diǎn)在接收信標(biāo)時(shí)出錯(cuò)的概率。
[1]HAN Dong,YAN Chuping,WANG Zhiquan,et al.Research and implementation of wireless Mesh network protocol based on NDIS [J].Computer Engineering and Design,2011,32 (3):784-787 (in Chinese).[韓冬,鄢楚平,王志泉,等.基于NDIS的無(wú)線Mesh網(wǎng)絡(luò)協(xié)議的研究和實(shí)現(xiàn) [J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32 (3):784-787.]
[2]QIN Yingying.Research on routing protocols in wireless mesh networks[J].Software Guide,2012,11 (2):99-101 (in Chinese).[秦瑩瑩.無(wú)線Mesh網(wǎng)絡(luò)路由協(xié)議研究 [J].軟件導(dǎo)刊,2012,11 (2):99-101.]
[3]SU Jiayong,XU Lei,ZHOU Guo.Study on channel assignment problem of wireless mesh network [J].Radio Communications Technology,2009,33 (5):4-6 (in Chinese).[蘇家勇,許磊,周國(guó).無(wú)線mesh網(wǎng)絡(luò)中的信道分配問(wèn)題研究 [J].無(wú)線電通信技術(shù),2009,33 (5):4-6.]
[4]LIU He,ZHANG Luyong,CHEN Minggang,et al.Design on centralized channel assignment algorithm for wireless mesh networks[J].Radio Engineering,2011,41 (5):4-6 (in Chinese).[劉賀,張陸勇,陳明剛,等.無(wú)線Mesh網(wǎng)絡(luò)集中式信道分配算法設(shè)計(jì)[J].無(wú)線電工程,2011,41 (5):4-6.]
[5]LI Jia,ZHOU Jie.Design on centralized channel assignment algorithm for wireless mesh networks[J].Radio Engineering,2009,29 (12):3235-3237 (in Chinese).[李佳,周杰.無(wú)線Mesh網(wǎng)絡(luò)集中式信道分配算法設(shè)計(jì) [J].無(wú)線電工程,2009,29 (12):3235-3237.]
[6]QIU Zhenmou,YAO Guoxiang,GUAN Quanlong,et al.Channel assignment algorithm for multicast in multi-channel wireless mesh network [J].Computer Engineering,2011,47
(18):85-87 (in Chinese). [邱振謀,姚國(guó)祥,官全龍,等.多信道無(wú)線Mesh網(wǎng)絡(luò)的多播信道分配算法 [J].計(jì)算機(jī)工程,2011,37 (6):107-109.]
[7]XIE Guifang,DUAN Sheng,LUO Yuling.Research on channel allocation in wireless mesh network [J].Computer Engineering and Applications,2011,47 (18):85-87 (in Chinese).[謝桂芳,段盛,羅玉玲.無(wú)線Mesh網(wǎng)絡(luò)信道分配研究 [J].計(jì)算機(jī)工程與應(yīng)用,2011,47 (18):85-87.]
[8]LI Hesong,LENG Supeng.Novel multi-channel MAC protocol for wireless mesh networks[J].Computer Engineering and Applications,2011,47 (26):66-69 (in Chinese).[李鶴松,冷甦鵬.一種新型無(wú)線Mesh網(wǎng)絡(luò)多信道MAC 協(xié)議 [J].計(jì)算機(jī)工程與應(yīng)用,2011,47 (26):66-69.]
[9]HE Pingshi,XU Ziping.Research on multi-channel MAC protocols using dual transreceivers in wireless Mesh networks[J].Application Research of Computers,2010,27 (1):327-329(in Chinese).[何萍實(shí),徐子平.無(wú)線Mesh網(wǎng)絡(luò)中使用雙收發(fā)器的多信道MAC 協(xié)議研究 [J].計(jì)算機(jī)應(yīng)用研究,2010,27 (1):327-329.]
[10]ZHANG Kefei,YANG Shoubao,HU Yun,et al.Research on multiple QoS constrained routing mechanism based on wireless Mesh network [J].Application Research of Computers,2009,26 (3):994-996 (in Chinese).[張克非,楊壽保,胡云,等.基于多QoS參數(shù)約束的無(wú)線Mesh網(wǎng)絡(luò)路由機(jī)制研究 [J].計(jì)算機(jī)應(yīng)用研究,2009,26 (3):994-996.]
[11]LEI Xin,GUO Lin,HAN Zhonghua,et al.Design of multisector antenna array in broadband wireless mesh networks[J].Journal of China Academy of Electronics and Information Technology,2012,7 (4):178-181 (in Chinese). [雷昕,郭琳,韓仲華,等.寬帶無(wú)線Mesh網(wǎng)絡(luò)中的多扇區(qū)天線陣列設(shè)計(jì)[J].中國(guó)電子科學(xué)研究院學(xué)報(bào),2012,7 (4):178-181.]