張亞莉,宋 梁
(河南科技大學(xué) 信息工程學(xué)院,河南 洛陽(yáng) 471023)
物聯(lián)網(wǎng)(Internet of thing,IoT)作為繼計(jì)算機(jī)和移動(dòng)互聯(lián)網(wǎng)之后科技發(fā)展的第三波技術(shù)潮流,可視為互聯(lián)網(wǎng)的延伸,其不僅能夠?qū)⑷伺c人連接起來,而且可以實(shí)現(xiàn)人與物,甚至物與物之間的連接,是實(shí)現(xiàn)萬(wàn)物互聯(lián)必不可少的條件[1]。L2(layer 2,L2)認(rèn)知無線多跳網(wǎng)絡(luò)在5G等移動(dòng)通信系統(tǒng)已成為作為擴(kuò)大網(wǎng)絡(luò)覆蓋范圍的關(guān)鍵技術(shù)方案,其由多個(gè)智能終端通過自組網(wǎng)的形式在層1/層2實(shí)現(xiàn)物與物之間的無線多跳通信,并且這些智能終端具有感知、處理數(shù)據(jù)且低能耗的能力,能夠?qū)崿F(xiàn)彼此間的無線通信。為了實(shí)現(xiàn)物聯(lián)網(wǎng)的大規(guī)模應(yīng)用,L2認(rèn)知無線多跳網(wǎng)絡(luò)需要通過與Internet連接以對(duì)該網(wǎng)絡(luò)下節(jié)點(diǎn)進(jìn)行遠(yuǎn)程管控,基于現(xiàn)有網(wǎng)絡(luò)設(shè)備進(jìn)行組網(wǎng)。
傳統(tǒng)的以太網(wǎng)尋址是通過地址解析協(xié)議(address resolution protocol,ARP)[2],可根據(jù)目的主機(jī)的IP地址來獲得其MAC地址。源設(shè)備通過給網(wǎng)絡(luò)上所有設(shè)備廣播包含目標(biāo)設(shè)備IP地址的ARP請(qǐng)求,并接收ARP響應(yīng),以此確定目標(biāo)設(shè)備的MAC地址。但是在無線多跳網(wǎng)絡(luò)中,對(duì)所有節(jié)點(diǎn)做全網(wǎng)廣播的代價(jià)很大,不僅會(huì)造成嚴(yán)重的網(wǎng)絡(luò)冗余,也增加了網(wǎng)絡(luò)開銷。為了解決上述問題,我們?cè)贚2無線多跳網(wǎng)絡(luò)中提出了一種地址映射管理機(jī)制,并且在實(shí)現(xiàn)網(wǎng)絡(luò)連接的網(wǎng)關(guān)中設(shè)置地址映射表,即IP/MAC地址與節(jié)點(diǎn)的組網(wǎng)地址/ID之間的對(duì)應(yīng)關(guān)系,從而在L2大規(guī)模無線網(wǎng)絡(luò)中實(shí)現(xiàn)快速尋址。
隨著無線通信的不斷發(fā)展,如何實(shí)現(xiàn)無線帶寬的接入也成為了研究的熱點(diǎn)。TCP/IP作為Ethernet網(wǎng)絡(luò)互聯(lián)通信的核心標(biāo)準(zhǔn),研究無線傳感器網(wǎng)絡(luò)(wireless sensor network,WSN)與以太網(wǎng)互聯(lián)的問題,主要是研究WSN與TCP/IP協(xié)議融合的問題[3]。現(xiàn)階段關(guān)于TCP/IP與WSN間的融合主要包括:peer to peer,重疊覆蓋方式和全I(xiàn)P。為了實(shí)現(xiàn)異構(gòu)網(wǎng)絡(luò)間的互聯(lián)互通,peer to peer在不同網(wǎng)絡(luò)之間利用網(wǎng)關(guān),通過在相同協(xié)議層之間進(jìn)行協(xié)議轉(zhuǎn)換。進(jìn)一步地,互聯(lián)網(wǎng)關(guān)可根據(jù)工作的協(xié)議層的不同,分為NAT(network address translation)網(wǎng)關(guān)和應(yīng)用網(wǎng)關(guān)。若無線傳感器網(wǎng)絡(luò)中采用的是以地址為中心的私有網(wǎng)絡(luò)層協(xié)議,由于以太網(wǎng)中是以IP協(xié)議為主,為了實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)和以太網(wǎng)間的互聯(lián),可利用NAT網(wǎng)關(guān)實(shí)現(xiàn)私有網(wǎng)絡(luò)層協(xié)議和IP協(xié)議間的轉(zhuǎn)換。文獻(xiàn)[4]中LowPAN網(wǎng)絡(luò)與外網(wǎng)互聯(lián)的實(shí)現(xiàn)就是通過NAT網(wǎng)關(guān)。應(yīng)用網(wǎng)關(guān)[5]的實(shí)現(xiàn)是在異構(gòu)網(wǎng)絡(luò)之間設(shè)置代理服務(wù)器。
當(dāng)無線傳感器網(wǎng)絡(luò)中的協(xié)議棧與以太網(wǎng)不同時(shí),采用重疊覆蓋的方式來實(shí)現(xiàn)網(wǎng)絡(luò)間的互聯(lián),這種方式不是協(xié)議轉(zhuǎn)換而是不同協(xié)議間的承載。根據(jù)承載方式的不同,無線傳感器網(wǎng)絡(luò)與IP網(wǎng)絡(luò)間的覆蓋包括:①以外網(wǎng)覆蓋無線傳感器網(wǎng)絡(luò);②無線傳感器網(wǎng)絡(luò)覆蓋以外網(wǎng)。對(duì)于第一種方法,文獻(xiàn)[6]中提出了一種在無線傳感器節(jié)點(diǎn)上實(shí)現(xiàn)IP協(xié)議棧的方法,即u-IP,在該方法中,無線傳感器節(jié)點(diǎn)被分配有IP地址,以太網(wǎng)用戶可以利用IP地址對(duì)該節(jié)點(diǎn)進(jìn)行直接訪問,該方法的缺點(diǎn)在于對(duì)無線節(jié)點(diǎn)的能力要求較強(qiáng)。對(duì)于第二種方法,文獻(xiàn)[7]提出了一種在IP網(wǎng)絡(luò)中利用VPN(virtual private network)[8]來進(jìn)行專用網(wǎng)絡(luò)的方法。在TCP/IP協(xié)議上部署無線傳感器網(wǎng)絡(luò)協(xié)議棧,可將以太網(wǎng)用戶當(dāng)成虛擬的傳感設(shè)備,并且實(shí)現(xiàn)以太網(wǎng)用戶與無線節(jié)點(diǎn)間的直接通信。同樣,這種方法的缺點(diǎn)是需要在以太網(wǎng)用戶的主機(jī)中額外部署協(xié)議棧。
全I(xiàn)P是指在無線傳感器網(wǎng)絡(luò)中采用TCP/IP協(xié)議棧[9,10],該方法使得無線傳感器網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都能夠進(jìn)行IP尋址,因此以太網(wǎng)和無線傳感器網(wǎng)絡(luò)通過相同的IP協(xié)議進(jìn)行連接。但是,無線傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)受資源的限制,其能夠承擔(dān)的數(shù)據(jù)量一般較小,如果在該節(jié)點(diǎn)中設(shè)置標(biāo)準(zhǔn)的IP協(xié)議,將會(huì)給網(wǎng)絡(luò)帶來較大的負(fù)擔(dān)。
在以往研究工作的基礎(chǔ)上,本文采用peer to peer的方式,提出了一種NAT網(wǎng)關(guān)來實(shí)現(xiàn)L2認(rèn)知無線多跳網(wǎng)絡(luò)與傳統(tǒng)以太網(wǎng)間的互聯(lián),同時(shí)在網(wǎng)關(guān)中設(shè)置地址映射表,既能在無線多跳網(wǎng)絡(luò)中利用單播的方式來進(jìn)行尋址,又能很好支持以太網(wǎng)中的廣播尋址。
物聯(lián)網(wǎng)的應(yīng)用涵蓋了環(huán)境保護(hù)、工業(yè)監(jiān)測(cè)、智能家居、車聯(lián)網(wǎng)等各行各業(yè)。我們以微環(huán)境信息(溫度,相對(duì)濕度,PM2.5,光照強(qiáng)度,紫外線)的應(yīng)用為例,來說明網(wǎng)關(guān)在網(wǎng)絡(luò)互聯(lián)中的作用。
L2認(rèn)知無線多跳網(wǎng)絡(luò)由集成了傳感器的無線節(jié)點(diǎn)和網(wǎng)關(guān)組成,其中無線節(jié)點(diǎn)能夠?qū)^(qū)域內(nèi)的環(huán)境信息進(jìn)行采集,然后通過無線多跳的方式傳輸至網(wǎng)關(guān)。另一方面,L2認(rèn)知無線多跳網(wǎng)絡(luò)通過網(wǎng)關(guān)與外部網(wǎng)絡(luò)相連,并且網(wǎng)關(guān)提供外部網(wǎng)絡(luò)的訪問接口。網(wǎng)關(guān)集成了L2認(rèn)知無線多跳網(wǎng)絡(luò)協(xié)議,用戶可以通過網(wǎng)關(guān)查看微環(huán)境信息;同時(shí),網(wǎng)關(guān)通過移動(dòng)通信模塊/以太網(wǎng)模塊與外部網(wǎng)絡(luò)進(jìn)行連接。因此,服務(wù)器可借助網(wǎng)關(guān)實(shí)現(xiàn)對(duì)L2認(rèn)知無線多跳網(wǎng)絡(luò)內(nèi)無線節(jié)點(diǎn)的遠(yuǎn)程接入和管控。其中,L2認(rèn)知無線多跳網(wǎng)絡(luò)與以太網(wǎng)互聯(lián)的網(wǎng)絡(luò)架構(gòu)如圖1所示。

圖1 網(wǎng)絡(luò)互聯(lián)架構(gòu)
為了滿足物聯(lián)網(wǎng)的應(yīng)用需求,實(shí)現(xiàn)L2認(rèn)知網(wǎng)絡(luò)內(nèi)數(shù)據(jù)的協(xié)作處理以及與遠(yuǎn)程服務(wù)器之間的數(shù)據(jù)傳輸,網(wǎng)關(guān)的設(shè)計(jì)應(yīng)當(dāng)滿足如下要求[11]:
(1)數(shù)據(jù)轉(zhuǎn)發(fā):對(duì)于互聯(lián)網(wǎng)關(guān),其根本的作用就是能夠從L2認(rèn)知網(wǎng)絡(luò)或以太網(wǎng)中接收數(shù)據(jù),然后相應(yīng)地將其轉(zhuǎn)發(fā)給其它網(wǎng)絡(luò)。
(2)協(xié)議轉(zhuǎn)換:在L2認(rèn)知網(wǎng)絡(luò)中的協(xié)議是IEEE 802.15.4/Zigbee空中接口,以太網(wǎng)中采用的是標(biāo)準(zhǔn)的TCP/IP協(xié)議。為了實(shí)現(xiàn)數(shù)據(jù)從L2認(rèn)知網(wǎng)絡(luò)到以太網(wǎng)中的傳輸,網(wǎng)關(guān)需要分析傳感數(shù)據(jù)的L2協(xié)議,然后采用以太網(wǎng)協(xié)議的封裝格式進(jìn)行發(fā)送。
(3)遠(yuǎn)程管控:網(wǎng)關(guān)接收到服務(wù)器的命令時(shí),需要對(duì)其進(jìn)行分析處理,然后傳送給L2認(rèn)知網(wǎng)絡(luò)中相應(yīng)的無線節(jié)點(diǎn),以實(shí)現(xiàn)服務(wù)器對(duì)無線節(jié)點(diǎn)的遠(yuǎn)程管控。
與OSI(open system interconnection)參考模型不同,L2認(rèn)知無線多跳網(wǎng)絡(luò)的網(wǎng)絡(luò)架構(gòu)符合EWI(embedded wireless interconnect)參考模型[12]。其中,L2認(rèn)知網(wǎng)絡(luò)中的網(wǎng)關(guān)和無線節(jié)點(diǎn)的協(xié)議棧如圖2所示。

圖2 節(jié)點(diǎn)和網(wǎng)關(guān)協(xié)議棧
L2認(rèn)知網(wǎng)絡(luò)由無線節(jié)點(diǎn)和網(wǎng)關(guān)組成,其中在無線節(jié)點(diǎn)的協(xié)議棧中,MAC層和物理層可看作是接入網(wǎng),而系統(tǒng)層能夠連接接入網(wǎng)與回程網(wǎng)。在網(wǎng)關(guān)的協(xié)議棧中,系統(tǒng)層用于進(jìn)行L2協(xié)議和以太網(wǎng)協(xié)議間的轉(zhuǎn)換,其目的在于用戶能夠?qū)崿F(xiàn)無縫的漫游。系統(tǒng)層在LLC(link logic control)之下,而MAC層和物理層能夠?qū)崿F(xiàn)基于電纜/光線的以太網(wǎng)連接。此外,在無線節(jié)點(diǎn)的協(xié)議棧中沒有網(wǎng)絡(luò)層,因此,在L2認(rèn)知網(wǎng)絡(luò)中,無線節(jié)點(diǎn)可當(dāng)作來自IP站點(diǎn)處的2層切換[13,14]。
在L2認(rèn)知網(wǎng)絡(luò)中,可在無線節(jié)點(diǎn)和網(wǎng)關(guān)的協(xié)議棧中實(shí)現(xiàn)用戶移動(dòng)性管理。其中,用戶漫游能夠發(fā)生在鏈路層即L2漫游,也可以發(fā)生在網(wǎng)絡(luò)層即L3漫游。當(dāng)移動(dòng)用戶移動(dòng)在不同的IP子網(wǎng)內(nèi)同時(shí)其IP地址發(fā)生改變時(shí),這種漫游屬于L3漫游。
在L2認(rèn)知網(wǎng)絡(luò)的網(wǎng)關(guān)中,通過MMME(macro mobi-lity management entity)可以進(jìn)行網(wǎng)絡(luò)層漫游中的軟切換操作。其中,MMME位于應(yīng)用層,相當(dāng)于是一個(gè)應(yīng)用層代理,同時(shí),和系統(tǒng)層直接連接。當(dāng)用戶移動(dòng)至一個(gè)新的IP子網(wǎng)內(nèi)后,其會(huì)接聽該子網(wǎng)內(nèi)新網(wǎng)關(guān)廣播的路由公告,此時(shí)用戶可以通過DHPC(dynamic host configuration protocol)來獲得新的IP地址以及其它網(wǎng)絡(luò)配置服務(wù)。該請(qǐng)求首先系統(tǒng)層進(jìn)行轉(zhuǎn)換,然后再發(fā)送給MMME,接下來MMME可向網(wǎng)絡(luò)中的ISP咨詢以對(duì)驗(yàn)證身份的合法性,如果合法,MMME會(huì)重新給該用戶分配一個(gè)屬于該子網(wǎng)內(nèi)的IP地址。接下來,當(dāng)前網(wǎng)關(guān)的MMME會(huì)通過TCP/IP通知移動(dòng)用戶所在的前一個(gè)網(wǎng)關(guān)的MMME,該網(wǎng)關(guān)在接到上述通知之后會(huì)停止之前的服務(wù)。其中,在上述切換過程中,先前的IP地址會(huì)繼續(xù)服務(wù)于前一個(gè)網(wǎng)關(guān),因此,該切換過程屬于網(wǎng)絡(luò)層漫游中的軟切換[13]。
組成L2認(rèn)知無線多跳網(wǎng)絡(luò)中的無線節(jié)點(diǎn)屬于資源受限的設(shè)備,而該網(wǎng)絡(luò)的特點(diǎn)通常是規(guī)模較大且節(jié)點(diǎn)的部署比較密集。因此,如何減少甚至避免多跳網(wǎng)絡(luò)中因廣播算法帶來的冗余轉(zhuǎn)播進(jìn)而造成嚴(yán)重的網(wǎng)絡(luò)開銷是很重要的[15]。
為了很好地解決上述問題,本文提出了一種編址方法,采用L2組網(wǎng)地址來表示L2認(rèn)知無線多跳網(wǎng)絡(luò)內(nèi)的網(wǎng)關(guān)和無線節(jié)點(diǎn),同時(shí)在網(wǎng)關(guān)中設(shè)計(jì)了一種地址映射方法,通過L2組網(wǎng)地址和IP地址實(shí)現(xiàn)該網(wǎng)絡(luò)內(nèi)的尋址[16,17]。
在本文中,無線節(jié)點(diǎn)和網(wǎng)關(guān)的L2組網(wǎng)地址包括3個(gè)字節(jié),其可以在組網(wǎng)前由主機(jī)利用通用配置板進(jìn)行預(yù)配置,同時(shí)也能夠在組網(wǎng)后利用鄰域間信息進(jìn)行動(dòng)態(tài)配置。其中,L2組網(wǎng)地址的首個(gè)字節(jié)由網(wǎng)絡(luò)ID和節(jié)點(diǎn)ID組成,網(wǎng)絡(luò)ID位于前兩位,節(jié)點(diǎn)ID位于后六位,而第二、三個(gè)字節(jié)即L2組網(wǎng)地址的后兩個(gè)字節(jié)分別代表網(wǎng)關(guān)和/或無線節(jié)點(diǎn)在L2認(rèn)知網(wǎng)絡(luò)中的坐標(biāo)。其中,在L2認(rèn)知網(wǎng)絡(luò)中,任意兩個(gè)節(jié)點(diǎn)i和j之間的曼哈頓距離di,j可表示為:di,j=|Xi-Xj|+|Yi-Yj|,其中Xi和Yi表示節(jié)點(diǎn)i的L2組網(wǎng)地址的后兩個(gè)字節(jié),即節(jié)點(diǎn)i在網(wǎng)絡(luò)中的坐標(biāo),Xj和Yj表示節(jié)點(diǎn)j的L2組網(wǎng)地址的后兩個(gè)字節(jié),即節(jié)點(diǎn)j在網(wǎng)絡(luò)中的坐標(biāo)。當(dāng)節(jié)點(diǎn)的首個(gè)字節(jié)的網(wǎng)絡(luò)ID相同時(shí),節(jié)點(diǎn)間的曼哈頓距離與其之間的RSSI(received signal strength indication)值有關(guān),并且RSSI值越大,節(jié)點(diǎn)間的曼哈頓距離越小。
在L2認(rèn)知網(wǎng)絡(luò)中,當(dāng)節(jié)點(diǎn)滿足下列任一條件,就能夠從發(fā)送節(jié)點(diǎn)包括源節(jié)點(diǎn)或前跳中繼節(jié)點(diǎn)向下一跳節(jié)點(diǎn)發(fā)送數(shù)據(jù)包:①源節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)的網(wǎng)絡(luò)ID不同,但是中繼節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)的網(wǎng)絡(luò)ID相同;②源節(jié)點(diǎn)、中繼節(jié)點(diǎn)以及目標(biāo)節(jié)點(diǎn)的網(wǎng)絡(luò)ID相同,但是中繼節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)間的曼哈頓距離小于源節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)間的曼哈頓距離。
在L2認(rèn)知無線多跳網(wǎng)絡(luò)中,網(wǎng)關(guān)節(jié)點(diǎn)可通過IP/MAC地址、L2組網(wǎng)地址來表示,無線節(jié)點(diǎn)可通過L2組網(wǎng)地址、MAC地址來表征。無線節(jié)點(diǎn)在接入網(wǎng)絡(luò)時(shí),其需要在網(wǎng)關(guān)處注冊(cè)信息,其包括該節(jié)點(diǎn)的L2組網(wǎng)地址和MAC地址,并且將該無線節(jié)點(diǎn)與該網(wǎng)關(guān)進(jìn)行關(guān)聯(lián)。其中,無線節(jié)點(diǎn)向網(wǎng)關(guān)發(fā)送的注冊(cè)消息的格式見表1。此時(shí),網(wǎng)關(guān)處會(huì)維護(hù)一張?jiān)摼W(wǎng)絡(luò)下所有無線節(jié)點(diǎn)的L2組網(wǎng)地址以及MAC地址間的對(duì)應(yīng)關(guān)系表,即addrmap(address map)表(表2)。如果網(wǎng)關(guān)接收到以太網(wǎng)發(fā)送的ARP包,其可以直接進(jìn)行ARP請(qǐng)求回復(fù),如果該請(qǐng)求的是網(wǎng)絡(luò)內(nèi)的其它傳感器節(jié)點(diǎn),網(wǎng)關(guān)需要將該ARP廣播包轉(zhuǎn)發(fā)至上述傳感器節(jié)點(diǎn);如果網(wǎng)關(guān)接收到Internet發(fā)送的數(shù)據(jù)包,其首先需要查詢addrmap表,尋找該無線節(jié)點(diǎn)對(duì)應(yīng)的L2組網(wǎng)地址,并將該數(shù)據(jù)包通過L2認(rèn)知無線多跳網(wǎng)絡(luò)轉(zhuǎn)發(fā)給目的節(jié)點(diǎn)。

表1 無線節(jié)點(diǎn)向網(wǎng)關(guān)注冊(cè)消息格式

表2 addrmap內(nèi)容
為了減少甚至避免L2認(rèn)知網(wǎng)絡(luò)中由于廣播而造成的冗余轉(zhuǎn)播進(jìn)而帶來不可負(fù)擔(dān)的網(wǎng)絡(luò)開銷,本文在網(wǎng)關(guān)中建立了地址映射機(jī)制來解決上述問題。下面以圖3為例,對(duì)利用以太網(wǎng)和L2認(rèn)知網(wǎng)絡(luò)進(jìn)行通信的兩臺(tái)主機(jī)間的ping過程進(jìn)行消息介紹[13]。
(1)終端1給終端2發(fā)送了一個(gè)ARP請(qǐng)求包,其中該ARP請(qǐng)求包所攜帶的源IP地址和MAC地址分別是終端1的IP地址和MAC地址,對(duì)于終端2而言,終端1的MAC地址是未知的,因此,該ARP請(qǐng)求包中僅有終端2的IP地址。然后,與終端1相連的網(wǎng)關(guān)1通過以太網(wǎng)接收到該ARP請(qǐng)求包;
(2)網(wǎng)關(guān)1在接收到上述ARP請(qǐng)求包后,首先會(huì)通過L2認(rèn)知無線多跳網(wǎng)絡(luò)將其L2組網(wǎng)地址與終端1的 IP/MAC 地址間的對(duì)應(yīng)關(guān)系在網(wǎng)關(guān)2維護(hù)的addrmap表處進(jìn)行注冊(cè);
(3)網(wǎng)關(guān)2將網(wǎng)關(guān)1發(fā)送的該L2組網(wǎng)地址與IP/MAC地址間的對(duì)應(yīng)關(guān)系記錄在addrmap中;
(4)網(wǎng)關(guān)1將上述ARP請(qǐng)求包通過L2認(rèn)知無線多跳網(wǎng)絡(luò)發(fā)送至網(wǎng)關(guān)2;
(5)網(wǎng)關(guān)2在接收到上述ARP請(qǐng)求包后,不改變其IP地址,但將該ARP請(qǐng)求包的MAC地址修改為網(wǎng)關(guān)2的MAC地址,并記錄該請(qǐng)求包的L2組網(wǎng)地址并通過以太網(wǎng)發(fā)送給終端2;
(6)終端2通過發(fā)送ARP響應(yīng)包對(duì)該ARP請(qǐng)求包進(jìn)行回復(fù),其中,ARP響應(yīng)包中所攜帶的源IP地址和MAC地址分別是終端2的IP地址和MAC地址,目標(biāo)IP地址是終端1的IP地址,而目標(biāo)MAC地址則為網(wǎng)關(guān)2的MAC地址;
(7)網(wǎng)關(guān)2接收到終端2發(fā)送的ARP響應(yīng)包后,根據(jù)ARP響應(yīng)包的目的IP地址查詢其維護(hù)的addrmap表,通過該表查找與該IP地址對(duì)應(yīng)的L2組網(wǎng)地址,即網(wǎng)關(guān)1,并將該ARP響應(yīng)包發(fā)送給網(wǎng)關(guān)1;
(8)網(wǎng)關(guān)1在接收到該ARP響應(yīng)包后,保持該包的源IP地址不變,但是將其源MAC地址修改成網(wǎng)關(guān)1的MAC地址,并發(fā)送至終端1;
(9)終端1最后接收到的終端2的ARP響應(yīng)包所攜帶的源MAC地址其實(shí)為網(wǎng)關(guān)1的MAC地址,因?yàn)橹挥羞@樣,終端1發(fā)送給網(wǎng)關(guān)1的數(shù)據(jù)包才能被網(wǎng)關(guān)1所接收,然后網(wǎng)關(guān)1通過L2認(rèn)知無線多跳網(wǎng)絡(luò)將上述數(shù)據(jù)包發(fā)送給網(wǎng)關(guān)2,進(jìn)而通過以太網(wǎng)發(fā)送給終端2。
網(wǎng)關(guān)的硬件如圖4所示。該網(wǎng)關(guān)主要有以下幾個(gè)模塊:處理器采用DSPIC33FJ,射頻部分采用IEEE 802.15.4/Zigbee空中接口,也可采用其它無線系統(tǒng)的空中接口,還包括以太網(wǎng)接口、電源等模塊。網(wǎng)關(guān)的主要功能包括兩個(gè),一個(gè)是讀取從節(jié)點(diǎn)處傳來的數(shù)據(jù)并轉(zhuǎn)發(fā)感知數(shù)據(jù),另一個(gè)是接受來自應(yīng)用服務(wù)器的命令,并對(duì)該命令進(jìn)行解析[18]。其中,網(wǎng)關(guān)通過以太網(wǎng)和IP協(xié)議棧實(shí)現(xiàn)與遠(yuǎn)程終端的交互。以太網(wǎng)交互式通過設(shè)置遠(yuǎn)程服務(wù)器的IP地址和偵聽端口來設(shè)置socket連接。

圖3 地址映射機(jī)制原理

圖4 網(wǎng)關(guān)硬件
網(wǎng)關(guān)上電啟動(dòng)之后,首先對(duì)其進(jìn)行boot loader,并對(duì)固件進(jìn)行刷新。然后,初始化網(wǎng)關(guān)的各個(gè)子模塊,之后其端口便會(huì)開始監(jiān)聽是否有外部事件。當(dāng)檢測(cè)到有外部事件發(fā)生時(shí),主程序通過檢查該事件的類型來為其匹配相應(yīng)的命令[19]。如果該事件來自以太網(wǎng),那么屬于命令數(shù)據(jù),此時(shí),網(wǎng)關(guān)內(nèi)的主程序通過分析該數(shù)據(jù)的目的地址以確定目標(biāo)設(shè)備是無線節(jié)點(diǎn)或者網(wǎng)關(guān)。如果該數(shù)據(jù)的內(nèi)容是有關(guān)網(wǎng)關(guān)日志或網(wǎng)關(guān)屬性信息,此時(shí)主程序調(diào)用以太網(wǎng)接口并發(fā)送相應(yīng)的數(shù)據(jù)信息;如果該數(shù)據(jù)的目標(biāo)是無線節(jié)點(diǎn),此時(shí)網(wǎng)關(guān)可利用協(xié)議分析模塊來對(duì)該數(shù)據(jù)進(jìn)行分析,并調(diào)用串行數(shù)據(jù)收發(fā)器的接口向目標(biāo)無線節(jié)點(diǎn)發(fā)送相應(yīng)的數(shù)據(jù)信息。如果該事件來自無線節(jié)點(diǎn),網(wǎng)關(guān)中的主程序調(diào)用其中的協(xié)議分析模塊來對(duì)該數(shù)據(jù)進(jìn)行分析,然后調(diào)用以太網(wǎng)接口發(fā)送該目標(biāo)數(shù)據(jù)[13]。工作流程如圖5所示。

圖5 網(wǎng)關(guān)工作流程
本文通過搭建實(shí)驗(yàn)來測(cè)試網(wǎng)關(guān)的可靠性,該測(cè)試系統(tǒng)構(gòu)建了一個(gè)L2認(rèn)知無線多跳網(wǎng)絡(luò),該網(wǎng)絡(luò)包括一個(gè)網(wǎng)關(guān)以及兩個(gè)無線節(jié)點(diǎn),其中無線節(jié)點(diǎn)中集成了微環(huán)境傳感器以采集對(duì)區(qū)域內(nèi)的微環(huán)境信息,通過網(wǎng)關(guān)和4G路由器傳送給遠(yuǎn)程服務(wù)器,借助網(wǎng)管平臺(tái)測(cè)試網(wǎng)關(guān)與無線節(jié)點(diǎn)之間的通信能力,在應(yīng)用平臺(tái)中查看實(shí)時(shí)的微環(huán)境信息。
本次測(cè)試所需要設(shè)備的信息見表3。

表3 實(shí)驗(yàn)測(cè)試所需設(shè)備信息
(1)通信能力測(cè)試
首先測(cè)試無線節(jié)點(diǎn)與網(wǎng)關(guān)之間以及無線節(jié)點(diǎn)與無線節(jié)點(diǎn)之間的通信能力。其中,參數(shù)設(shè)置為:Packet interval(*50ms)=20,測(cè)試報(bào)告上報(bào)間隔設(shè)置為:Report interval(*s)=2s。
1)網(wǎng)關(guān)與無線節(jié)點(diǎn)1之間的通信能力測(cè)試
將目標(biāo)組網(wǎng)地址設(shè)置為41.01.02,即網(wǎng)關(guān)的L2組網(wǎng)地址,將Slave Address設(shè)置為41.01.03,即無線節(jié)點(diǎn)1的L2組網(wǎng)地址,測(cè)試結(jié)果如圖6所示。

圖6 網(wǎng)關(guān)與無線節(jié)點(diǎn)1之間通信能力測(cè)試
2)網(wǎng)關(guān)與無線節(jié)點(diǎn)2之間的通信能力測(cè)試
將目標(biāo)組網(wǎng)地址設(shè)置為41.01.02,即網(wǎng)關(guān)的L2組網(wǎng)地址,Slave Address設(shè)置為41.01.04,即無線節(jié)點(diǎn)2的L2組網(wǎng)地址,測(cè)試結(jié)果如圖7所示。

圖7 網(wǎng)關(guān)與無線節(jié)點(diǎn)2之間的通信能力測(cè)試
3)無線節(jié)點(diǎn)1與無線節(jié)點(diǎn)2之間的通信能力測(cè)試
將目標(biāo)組網(wǎng)地址設(shè)置為41.01.03,即無線節(jié)點(diǎn)1的L2組網(wǎng)地址,Slave Address為41.01.04,即無線節(jié)點(diǎn)2的L2組網(wǎng)地址,測(cè)試結(jié)果如圖8所示。

圖8 無線節(jié)點(diǎn)1與無線節(jié)點(diǎn)2之間通信能力測(cè)試
4)結(jié)果分析
通過以上測(cè)試可以得到,L2認(rèn)知網(wǎng)絡(luò)中的網(wǎng)關(guān)與無線節(jié)點(diǎn)之間以及無線節(jié)點(diǎn)與無線節(jié)點(diǎn)之間進(jìn)行通信時(shí),其丟包率基本上為0,該結(jié)果表明本文提出的網(wǎng)關(guān)系統(tǒng)的可靠性以及通信性能強(qiáng)。
(2)信號(hào)強(qiáng)度測(cè)試
測(cè)試網(wǎng)關(guān)和無線節(jié)點(diǎn)之間的RSSI值,即測(cè)試其相互間的信號(hào)強(qiáng)度。參數(shù)設(shè)置為:Test Interval(*50ms)=20。
1)網(wǎng)關(guān)與無線節(jié)點(diǎn)1之間的信號(hào)強(qiáng)度測(cè)試
將Slave Address設(shè)置成41.01.03,即無線節(jié)點(diǎn)1的L2組網(wǎng)地址;Slave Related Address設(shè)置為00.00.00。測(cè)試結(jié)果如圖9所示。

圖9 網(wǎng)關(guān)與無線節(jié)點(diǎn)1之間信號(hào)強(qiáng)度測(cè)試
2)網(wǎng)關(guān)與無線節(jié)點(diǎn)2之間的信號(hào)強(qiáng)度測(cè)試
將Slave Address設(shè)置為41.01.04,即無線節(jié)點(diǎn)2的L2組網(wǎng)地址;Slave Related Address設(shè)置為00.00.00。測(cè)試結(jié)果如圖10所示。

圖10 網(wǎng)關(guān)與無線節(jié)點(diǎn)2之間信號(hào)強(qiáng)度測(cè)試
3)結(jié)果分析
通過以上測(cè)試結(jié)果可以得到,在L2認(rèn)知網(wǎng)絡(luò)中的網(wǎng)關(guān)與無線節(jié)點(diǎn)之間的相互信號(hào)強(qiáng)度值都在正常通信的范圍內(nèi),從而驗(yàn)證該網(wǎng)關(guān)系統(tǒng)具有較強(qiáng)的信號(hào)。
認(rèn)知無線多跳網(wǎng)絡(luò)在物聯(lián)網(wǎng)領(lǐng)域擁有廣泛的應(yīng)用前景,該網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)通過無線多跳實(shí)現(xiàn)自組網(wǎng),并且可通過網(wǎng)關(guān)實(shí)現(xiàn)與遠(yuǎn)程服務(wù)器的交互。本文提出了一種編址方法,以此通過L2組網(wǎng)地址和物理地址來表征無線節(jié)點(diǎn);另外,在網(wǎng)關(guān)中設(shè)置地址映射表可避免在資源受限的無線多跳網(wǎng)絡(luò)中做ARP 等協(xié)議廣播,從而減少數(shù)據(jù)冗余,降低網(wǎng)絡(luò)開銷,從而保證整個(gè)網(wǎng)絡(luò)具有良好的可行性。