張亞莉,宋 梁
(河南科技大學 信息工程學院,河南 洛陽 471023)
物聯(lián)網(Internet of thing,IoT)作為繼計算機和移動互聯(lián)網之后科技發(fā)展的第三波技術潮流,可視為互聯(lián)網的延伸,其不僅能夠將人與人連接起來,而且可以實現(xiàn)人與物,甚至物與物之間的連接,是實現(xiàn)萬物互聯(lián)必不可少的條件[1]。L2(layer 2,L2)認知無線多跳網絡在5G等移動通信系統(tǒng)已成為作為擴大網絡覆蓋范圍的關鍵技術方案,其由多個智能終端通過自組網的形式在層1/層2實現(xiàn)物與物之間的無線多跳通信,并且這些智能終端具有感知、處理數(shù)據(jù)且低能耗的能力,能夠實現(xiàn)彼此間的無線通信。為了實現(xiàn)物聯(lián)網的大規(guī)模應用,L2認知無線多跳網絡需要通過與Internet連接以對該網絡下節(jié)點進行遠程管控,基于現(xiàn)有網絡設備進行組網。
傳統(tǒng)的以太網尋址是通過地址解析協(xié)議(address resolution protocol,ARP)[2],可根據(jù)目的主機的IP地址來獲得其MAC地址。源設備通過給網絡上所有設備廣播包含目標設備IP地址的ARP請求,并接收ARP響應,以此確定目標設備的MAC地址。但是在無線多跳網絡中,對所有節(jié)點做全網廣播的代價很大,不僅會造成嚴重的網絡冗余,也增加了網絡開銷。為了解決上述問題,我們在L2無線多跳網絡中提出了一種地址映射管理機制,并且在實現(xiàn)網絡連接的網關中設置地址映射表,即IP/MAC地址與節(jié)點的組網地址/ID之間的對應關系,從而在L2大規(guī)模無線網絡中實現(xiàn)快速尋址。
隨著無線通信的不斷發(fā)展,如何實現(xiàn)無線帶寬的接入也成為了研究的熱點。TCP/IP作為Ethernet網絡互聯(lián)通信的核心標準,研究無線傳感器網絡(wireless sensor network,WSN)與以太網互聯(lián)的問題,主要是研究WSN與TCP/IP協(xié)議融合的問題[3]。現(xiàn)階段關于TCP/IP與WSN間的融合主要包括:peer to peer,重疊覆蓋方式和全IP。為了實現(xiàn)異構網絡間的互聯(lián)互通,peer to peer在不同網絡之間利用網關,通過在相同協(xié)議層之間進行協(xié)議轉換。進一步地,互聯(lián)網關可根據(jù)工作的協(xié)議層的不同,分為NAT(network address translation)網關和應用網關。若無線傳感器網絡中采用的是以地址為中心的私有網絡層協(xié)議,由于以太網中是以IP協(xié)議為主,為了實現(xiàn)無線傳感器網絡和以太網間的互聯(lián),可利用NAT網關實現(xiàn)私有網絡層協(xié)議和IP協(xié)議間的轉換。文獻[4]中LowPAN網絡與外網互聯(lián)的實現(xiàn)就是通過NAT網關。應用網關[5]的實現(xiàn)是在異構網絡之間設置代理服務器。
當無線傳感器網絡中的協(xié)議棧與以太網不同時,采用重疊覆蓋的方式來實現(xiàn)網絡間的互聯(lián),這種方式不是協(xié)議轉換而是不同協(xié)議間的承載。根據(jù)承載方式的不同,無線傳感器網絡與IP網絡間的覆蓋包括:①以外網覆蓋無線傳感器網絡;②無線傳感器網絡覆蓋以外網。對于第一種方法,文獻[6]中提出了一種在無線傳感器節(jié)點上實現(xiàn)IP協(xié)議棧的方法,即u-IP,在該方法中,無線傳感器節(jié)點被分配有IP地址,以太網用戶可以利用IP地址對該節(jié)點進行直接訪問,該方法的缺點在于對無線節(jié)點的能力要求較強。對于第二種方法,文獻[7]提出了一種在IP網絡中利用VPN(virtual private network)[8]來進行專用網絡的方法。在TCP/IP協(xié)議上部署無線傳感器網絡協(xié)議棧,可將以太網用戶當成虛擬的傳感設備,并且實現(xiàn)以太網用戶與無線節(jié)點間的直接通信。同樣,這種方法的缺點是需要在以太網用戶的主機中額外部署協(xié)議棧。
全IP是指在無線傳感器網絡中采用TCP/IP協(xié)議棧[9,10],該方法使得無線傳感器網絡中的每個節(jié)點都能夠進行IP尋址,因此以太網和無線傳感器網絡通過相同的IP協(xié)議進行連接。但是,無線傳感器網絡中的節(jié)點受資源的限制,其能夠承擔的數(shù)據(jù)量一般較小,如果在該節(jié)點中設置標準的IP協(xié)議,將會給網絡帶來較大的負擔。
在以往研究工作的基礎上,本文采用peer to peer的方式,提出了一種NAT網關來實現(xiàn)L2認知無線多跳網絡與傳統(tǒng)以太網間的互聯(lián),同時在網關中設置地址映射表,既能在無線多跳網絡中利用單播的方式來進行尋址,又能很好支持以太網中的廣播尋址。
物聯(lián)網的應用涵蓋了環(huán)境保護、工業(yè)監(jiān)測、智能家居、車聯(lián)網等各行各業(yè)。我們以微環(huán)境信息(溫度,相對濕度,PM2.5,光照強度,紫外線)的應用為例,來說明網關在網絡互聯(lián)中的作用。
L2認知無線多跳網絡由集成了傳感器的無線節(jié)點和網關組成,其中無線節(jié)點能夠對區(qū)域內的環(huán)境信息進行采集,然后通過無線多跳的方式傳輸至網關。另一方面,L2認知無線多跳網絡通過網關與外部網絡相連,并且網關提供外部網絡的訪問接口。網關集成了L2認知無線多跳網絡協(xié)議,用戶可以通過網關查看微環(huán)境信息;同時,網關通過移動通信模塊/以太網模塊與外部網絡進行連接。因此,服務器可借助網關實現(xiàn)對L2認知無線多跳網絡內無線節(jié)點的遠程接入和管控。其中,L2認知無線多跳網絡與以太網互聯(lián)的網絡架構如圖1所示。
圖1 網絡互聯(lián)架構
為了滿足物聯(lián)網的應用需求,實現(xiàn)L2認知網絡內數(shù)據(jù)的協(xié)作處理以及與遠程服務器之間的數(shù)據(jù)傳輸,網關的設計應當滿足如下要求[11]:
(1)數(shù)據(jù)轉發(fā):對于互聯(lián)網關,其根本的作用就是能夠從L2認知網絡或以太網中接收數(shù)據(jù),然后相應地將其轉發(fā)給其它網絡。
(2)協(xié)議轉換:在L2認知網絡中的協(xié)議是IEEE 802.15.4/Zigbee空中接口,以太網中采用的是標準的TCP/IP協(xié)議。為了實現(xiàn)數(shù)據(jù)從L2認知網絡到以太網中的傳輸,網關需要分析傳感數(shù)據(jù)的L2協(xié)議,然后采用以太網協(xié)議的封裝格式進行發(fā)送。
(3)遠程管控:網關接收到服務器的命令時,需要對其進行分析處理,然后傳送給L2認知網絡中相應的無線節(jié)點,以實現(xiàn)服務器對無線節(jié)點的遠程管控。
與OSI(open system interconnection)參考模型不同,L2認知無線多跳網絡的網絡架構符合EWI(embedded wireless interconnect)參考模型[12]。其中,L2認知網絡中的網關和無線節(jié)點的協(xié)議棧如圖2所示。
圖2 節(jié)點和網關協(xié)議棧
L2認知網絡由無線節(jié)點和網關組成,其中在無線節(jié)點的協(xié)議棧中,MAC層和物理層可看作是接入網,而系統(tǒng)層能夠連接接入網與回程網。在網關的協(xié)議棧中,系統(tǒng)層用于進行L2協(xié)議和以太網協(xié)議間的轉換,其目的在于用戶能夠實現(xiàn)無縫的漫游。系統(tǒng)層在LLC(link logic control)之下,而MAC層和物理層能夠實現(xiàn)基于電纜/光線的以太網連接。此外,在無線節(jié)點的協(xié)議棧中沒有網絡層,因此,在L2認知網絡中,無線節(jié)點可當作來自IP站點處的2層切換[13,14]。
在L2認知網絡中,可在無線節(jié)點和網關的協(xié)議棧中實現(xiàn)用戶移動性管理。其中,用戶漫游能夠發(fā)生在鏈路層即L2漫游,也可以發(fā)生在網絡層即L3漫游。當移動用戶移動在不同的IP子網內同時其IP地址發(fā)生改變時,這種漫游屬于L3漫游。
在L2認知網絡的網關中,通過MMME(macro mobi-lity management entity)可以進行網絡層漫游中的軟切換操作。其中,MMME位于應用層,相當于是一個應用層代理,同時,和系統(tǒng)層直接連接。當用戶移動至一個新的IP子網內后,其會接聽該子網內新網關廣播的路由公告,此時用戶可以通過DHPC(dynamic host configuration protocol)來獲得新的IP地址以及其它網絡配置服務。該請求首先系統(tǒng)層進行轉換,然后再發(fā)送給MMME,接下來MMME可向網絡中的ISP咨詢以對驗證身份的合法性,如果合法,MMME會重新給該用戶分配一個屬于該子網內的IP地址。接下來,當前網關的MMME會通過TCP/IP通知移動用戶所在的前一個網關的MMME,該網關在接到上述通知之后會停止之前的服務。其中,在上述切換過程中,先前的IP地址會繼續(xù)服務于前一個網關,因此,該切換過程屬于網絡層漫游中的軟切換[13]。
組成L2認知無線多跳網絡中的無線節(jié)點屬于資源受限的設備,而該網絡的特點通常是規(guī)模較大且節(jié)點的部署比較密集。因此,如何減少甚至避免多跳網絡中因廣播算法帶來的冗余轉播進而造成嚴重的網絡開銷是很重要的[15]。
為了很好地解決上述問題,本文提出了一種編址方法,采用L2組網地址來表示L2認知無線多跳網絡內的網關和無線節(jié)點,同時在網關中設計了一種地址映射方法,通過L2組網地址和IP地址實現(xiàn)該網絡內的尋址[16,17]。
在本文中,無線節(jié)點和網關的L2組網地址包括3個字節(jié),其可以在組網前由主機利用通用配置板進行預配置,同時也能夠在組網后利用鄰域間信息進行動態(tài)配置。其中,L2組網地址的首個字節(jié)由網絡ID和節(jié)點ID組成,網絡ID位于前兩位,節(jié)點ID位于后六位,而第二、三個字節(jié)即L2組網地址的后兩個字節(jié)分別代表網關和/或無線節(jié)點在L2認知網絡中的坐標。其中,在L2認知網絡中,任意兩個節(jié)點i和j之間的曼哈頓距離di,j可表示為:di,j=|Xi-Xj|+|Yi-Yj|,其中Xi和Yi表示節(jié)點i的L2組網地址的后兩個字節(jié),即節(jié)點i在網絡中的坐標,Xj和Yj表示節(jié)點j的L2組網地址的后兩個字節(jié),即節(jié)點j在網絡中的坐標。當節(jié)點的首個字節(jié)的網絡ID相同時,節(jié)點間的曼哈頓距離與其之間的RSSI(received signal strength indication)值有關,并且RSSI值越大,節(jié)點間的曼哈頓距離越小。
在L2認知網絡中,當節(jié)點滿足下列任一條件,就能夠從發(fā)送節(jié)點包括源節(jié)點或前跳中繼節(jié)點向下一跳節(jié)點發(fā)送數(shù)據(jù)包:①源節(jié)點與目標節(jié)點的網絡ID不同,但是中繼節(jié)點與目標節(jié)點的網絡ID相同;②源節(jié)點、中繼節(jié)點以及目標節(jié)點的網絡ID相同,但是中繼節(jié)點與目標節(jié)點間的曼哈頓距離小于源節(jié)點與目標節(jié)點間的曼哈頓距離。
在L2認知無線多跳網絡中,網關節(jié)點可通過IP/MAC地址、L2組網地址來表示,無線節(jié)點可通過L2組網地址、MAC地址來表征。無線節(jié)點在接入網絡時,其需要在網關處注冊信息,其包括該節(jié)點的L2組網地址和MAC地址,并且將該無線節(jié)點與該網關進行關聯(lián)。其中,無線節(jié)點向網關發(fā)送的注冊消息的格式見表1。此時,網關處會維護一張該網絡下所有無線節(jié)點的L2組網地址以及MAC地址間的對應關系表,即addrmap(address map)表(表2)。如果網關接收到以太網發(fā)送的ARP包,其可以直接進行ARP請求回復,如果該請求的是網絡內的其它傳感器節(jié)點,網關需要將該ARP廣播包轉發(fā)至上述傳感器節(jié)點;如果網關接收到Internet發(fā)送的數(shù)據(jù)包,其首先需要查詢addrmap表,尋找該無線節(jié)點對應的L2組網地址,并將該數(shù)據(jù)包通過L2認知無線多跳網絡轉發(fā)給目的節(jié)點。
表1 無線節(jié)點向網關注冊消息格式
表2 addrmap內容
為了減少甚至避免L2認知網絡中由于廣播而造成的冗余轉播進而帶來不可負擔的網絡開銷,本文在網關中建立了地址映射機制來解決上述問題。下面以圖3為例,對利用以太網和L2認知網絡進行通信的兩臺主機間的ping過程進行消息介紹[13]。
(1)終端1給終端2發(fā)送了一個ARP請求包,其中該ARP請求包所攜帶的源IP地址和MAC地址分別是終端1的IP地址和MAC地址,對于終端2而言,終端1的MAC地址是未知的,因此,該ARP請求包中僅有終端2的IP地址。然后,與終端1相連的網關1通過以太網接收到該ARP請求包;
(2)網關1在接收到上述ARP請求包后,首先會通過L2認知無線多跳網絡將其L2組網地址與終端1的 IP/MAC 地址間的對應關系在網關2維護的addrmap表處進行注冊;
(3)網關2將網關1發(fā)送的該L2組網地址與IP/MAC地址間的對應關系記錄在addrmap中;
(4)網關1將上述ARP請求包通過L2認知無線多跳網絡發(fā)送至網關2;
(5)網關2在接收到上述ARP請求包后,不改變其IP地址,但將該ARP請求包的MAC地址修改為網關2的MAC地址,并記錄該請求包的L2組網地址并通過以太網發(fā)送給終端2;
(6)終端2通過發(fā)送ARP響應包對該ARP請求包進行回復,其中,ARP響應包中所攜帶的源IP地址和MAC地址分別是終端2的IP地址和MAC地址,目標IP地址是終端1的IP地址,而目標MAC地址則為網關2的MAC地址;
(7)網關2接收到終端2發(fā)送的ARP響應包后,根據(jù)ARP響應包的目的IP地址查詢其維護的addrmap表,通過該表查找與該IP地址對應的L2組網地址,即網關1,并將該ARP響應包發(fā)送給網關1;
(8)網關1在接收到該ARP響應包后,保持該包的源IP地址不變,但是將其源MAC地址修改成網關1的MAC地址,并發(fā)送至終端1;
(9)終端1最后接收到的終端2的ARP響應包所攜帶的源MAC地址其實為網關1的MAC地址,因為只有這樣,終端1發(fā)送給網關1的數(shù)據(jù)包才能被網關1所接收,然后網關1通過L2認知無線多跳網絡將上述數(shù)據(jù)包發(fā)送給網關2,進而通過以太網發(fā)送給終端2。
網關的硬件如圖4所示。該網關主要有以下幾個模塊:處理器采用DSPIC33FJ,射頻部分采用IEEE 802.15.4/Zigbee空中接口,也可采用其它無線系統(tǒng)的空中接口,還包括以太網接口、電源等模塊。網關的主要功能包括兩個,一個是讀取從節(jié)點處傳來的數(shù)據(jù)并轉發(fā)感知數(shù)據(jù),另一個是接受來自應用服務器的命令,并對該命令進行解析[18]。其中,網關通過以太網和IP協(xié)議棧實現(xiàn)與遠程終端的交互。以太網交互式通過設置遠程服務器的IP地址和偵聽端口來設置socket連接。
圖3 地址映射機制原理
圖4 網關硬件
網關上電啟動之后,首先對其進行boot loader,并對固件進行刷新。然后,初始化網關的各個子模塊,之后其端口便會開始監(jiān)聽是否有外部事件。當檢測到有外部事件發(fā)生時,主程序通過檢查該事件的類型來為其匹配相應的命令[19]。如果該事件來自以太網,那么屬于命令數(shù)據(jù),此時,網關內的主程序通過分析該數(shù)據(jù)的目的地址以確定目標設備是無線節(jié)點或者網關。如果該數(shù)據(jù)的內容是有關網關日志或網關屬性信息,此時主程序調用以太網接口并發(fā)送相應的數(shù)據(jù)信息;如果該數(shù)據(jù)的目標是無線節(jié)點,此時網關可利用協(xié)議分析模塊來對該數(shù)據(jù)進行分析,并調用串行數(shù)據(jù)收發(fā)器的接口向目標無線節(jié)點發(fā)送相應的數(shù)據(jù)信息。如果該事件來自無線節(jié)點,網關中的主程序調用其中的協(xié)議分析模塊來對該數(shù)據(jù)進行分析,然后調用以太網接口發(fā)送該目標數(shù)據(jù)[13]。工作流程如圖5所示。
圖5 網關工作流程
本文通過搭建實驗來測試網關的可靠性,該測試系統(tǒng)構建了一個L2認知無線多跳網絡,該網絡包括一個網關以及兩個無線節(jié)點,其中無線節(jié)點中集成了微環(huán)境傳感器以采集對區(qū)域內的微環(huán)境信息,通過網關和4G路由器傳送給遠程服務器,借助網管平臺測試網關與無線節(jié)點之間的通信能力,在應用平臺中查看實時的微環(huán)境信息。
本次測試所需要設備的信息見表3。
表3 實驗測試所需設備信息
(1)通信能力測試
首先測試無線節(jié)點與網關之間以及無線節(jié)點與無線節(jié)點之間的通信能力。其中,參數(shù)設置為:Packet interval(*50ms)=20,測試報告上報間隔設置為:Report interval(*s)=2s。
1)網關與無線節(jié)點1之間的通信能力測試
將目標組網地址設置為41.01.02,即網關的L2組網地址,將Slave Address設置為41.01.03,即無線節(jié)點1的L2組網地址,測試結果如圖6所示。
圖6 網關與無線節(jié)點1之間通信能力測試
2)網關與無線節(jié)點2之間的通信能力測試
將目標組網地址設置為41.01.02,即網關的L2組網地址,Slave Address設置為41.01.04,即無線節(jié)點2的L2組網地址,測試結果如圖7所示。
圖7 網關與無線節(jié)點2之間的通信能力測試
3)無線節(jié)點1與無線節(jié)點2之間的通信能力測試
將目標組網地址設置為41.01.03,即無線節(jié)點1的L2組網地址,Slave Address為41.01.04,即無線節(jié)點2的L2組網地址,測試結果如圖8所示。
圖8 無線節(jié)點1與無線節(jié)點2之間通信能力測試
4)結果分析
通過以上測試可以得到,L2認知網絡中的網關與無線節(jié)點之間以及無線節(jié)點與無線節(jié)點之間進行通信時,其丟包率基本上為0,該結果表明本文提出的網關系統(tǒng)的可靠性以及通信性能強。
(2)信號強度測試
測試網關和無線節(jié)點之間的RSSI值,即測試其相互間的信號強度。參數(shù)設置為:Test Interval(*50ms)=20。
1)網關與無線節(jié)點1之間的信號強度測試
將Slave Address設置成41.01.03,即無線節(jié)點1的L2組網地址;Slave Related Address設置為00.00.00。測試結果如圖9所示。
圖9 網關與無線節(jié)點1之間信號強度測試
2)網關與無線節(jié)點2之間的信號強度測試
將Slave Address設置為41.01.04,即無線節(jié)點2的L2組網地址;Slave Related Address設置為00.00.00。測試結果如圖10所示。
圖10 網關與無線節(jié)點2之間信號強度測試
3)結果分析
通過以上測試結果可以得到,在L2認知網絡中的網關與無線節(jié)點之間的相互信號強度值都在正常通信的范圍內,從而驗證該網關系統(tǒng)具有較強的信號。
認知無線多跳網絡在物聯(lián)網領域擁有廣泛的應用前景,該網絡內節(jié)點通過無線多跳實現(xiàn)自組網,并且可通過網關實現(xiàn)與遠程服務器的交互。本文提出了一種編址方法,以此通過L2組網地址和物理地址來表征無線節(jié)點;另外,在網關中設置地址映射表可避免在資源受限的無線多跳網絡中做ARP 等協(xié)議廣播,從而減少數(shù)據(jù)冗余,降低網絡開銷,從而保證整個網絡具有良好的可行性。