徐曉旭 圖雅
摘 ?要: 在無(wú)線傳感網(wǎng)絡(luò)中,節(jié)點(diǎn)的資源限制給路由協(xié)議的設(shè)計(jì)提出了挑戰(zhàn)。在高數(shù)據(jù)率應(yīng)用場(chǎng)景中,帶寬和存儲(chǔ)容量成為其主要問(wèn)題。為此,提出基于多信道協(xié)作負(fù)載均衡算法(M?CoLBA)的路由協(xié)議來(lái)提升網(wǎng)絡(luò)帶寬,并避免因隊(duì)列溢出導(dǎo)致的數(shù)據(jù)包丟失。M?CoLBA協(xié)議先利用擁塞感知的動(dòng)態(tài)路由度量均衡流量負(fù)載,再依據(jù)隊(duì)列時(shí)延選擇下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn)。實(shí)驗(yàn)數(shù)據(jù)表明,與單一信道路由協(xié)議(S?CoLBA)和多信道協(xié)議(M?HopCount)相比,提出的M?CoLBA協(xié)議具有較高的數(shù)據(jù)包傳遞率。
關(guān)鍵詞: M?CoLBA; 無(wú)線傳感網(wǎng)絡(luò); 路由協(xié)議; 多信道; 負(fù)載均衡; 隊(duì)列時(shí)延; 數(shù)據(jù)包丟失
中圖分類號(hào): TN919.2?34; TP393 ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ?文章編號(hào): 1004?373X(2019)09?0005?06
Multichannel collaborative load balancing?based routing protocol
used in wireless sensor networks
XU Xiaoxu, TU Ya
(College of Mechanical and Electrical Engineering, Inner Mongolia Agricultural University, Hohhot 010018, China)
Abstract: The design of routing protocols is challenged by limited node resources in wireless sensor networks (WSNs), and the bandwidth and storage capacity become its main obstacles when WSNs are used in high data rate application scenarios. Therefore, the multichannel collaborative load balancing?based algorithm (M?CoLBA) routing protocol is proposed to promote the network bandwidth, and avoid the data packet loss caused by queue overflow. The dynamic routing metric with congestion perception is used in M?CoLBA protocol to balance the traffic load, and then the next?hop forwarding node is selected according to queue delay. The experimental data shows that, in comparison with S?CoLBA protocol and M?HopCount protocol, the proposed M?CoLBA protocol has higher data packet transfer rate.
Keywords: M?CoLBA; wireless sensor network; routing protocol; multichannel; load balancing; queue delay; data packet loss
0 ?引 ?言
無(wú)線傳感網(wǎng)絡(luò)(Wireless Sensor Networks,WSNs)已廣泛應(yīng)用于各個(gè)領(lǐng)域,如環(huán)境、工業(yè)。對(duì)于不同的應(yīng)用,對(duì)WSNs的性能要求也不同。對(duì)于低數(shù)據(jù)率、小型智能家居的應(yīng)用,依據(jù)ZigBee標(biāo)準(zhǔn)[1]就可滿足要求。然而,其他應(yīng)用可能受端到端時(shí)延的限制,如工業(yè)應(yīng)用、數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)(Supervisory Control and Data Acquisition,SCADA)。而有些應(yīng)用具有高數(shù)據(jù)率要求[2?4],如視頻監(jiān)視、振動(dòng)測(cè)量。
此外,IEEE 802.15.4標(biāo)準(zhǔn)已廣泛應(yīng)用于低功率低損網(wǎng)絡(luò)(Low Power and Lossy Networks,LLNs),如WSNs。當(dāng)將此標(biāo)準(zhǔn)應(yīng)用于共享、未注冊(cè)2.4 GHz帶寬時(shí),可提供250 Kb/s的鏈路吞吐量。然而,此帶寬也被其他通信技術(shù)使用[5],如IEEE 802.11(WiFi)和IEEE 802.15.1(藍(lán)牙)。不同技術(shù)共存于同頻帶寬就導(dǎo)致網(wǎng)絡(luò)間干擾和碰撞,最終會(huì)引起數(shù)據(jù)包丟失和網(wǎng)絡(luò)性能的下降。而利用多信道通信技術(shù)有助于減少網(wǎng)間干擾和網(wǎng)內(nèi)干擾。如多信道媒體接入?yún)f(xié)議(Medium Access Control,MAC)有助于提高吞吐量,也增加了數(shù)據(jù)流量負(fù)載[6]。但是,高流量負(fù)載容易導(dǎo)致?lián)砣部赡軙?huì)引起數(shù)據(jù)包隊(duì)列溢出。
目前,為了提高WSNs的性能,研究人員提出不同的多信道協(xié)議。如文獻(xiàn)[7]提出的基于多信道MAC的負(fù)載平衡路由,旨在平均所有潛在鏈路的流量負(fù)載。然而,該路由是針對(duì)無(wú)線Mesh網(wǎng)絡(luò),并沒(méi)有考慮到WSNs的特性。此外,文獻(xiàn)[8]也提出面向單跳多信道WSNs的認(rèn)知負(fù)載平衡算法。該算法利用網(wǎng)絡(luò)基站情況的負(fù)載分布選擇通信信道,這利于降低部分信道過(guò)載的概率。然而這些算法均是針對(duì)單跳WSNs。由于多跳WSNs的復(fù)雜性,現(xiàn)有的這些算法難以直接應(yīng)用于多跳WSNs環(huán)境。
此外,在WSNs中的多對(duì)一(也在文獻(xiàn)中稱為融合)通信是非常普遍的。在具有融合的重流量場(chǎng)景中,需要先融合來(lái)自葉節(jié)點(diǎn)的數(shù)據(jù),再將融合后的數(shù)據(jù)傳輸至信宿。依據(jù)不同的路由策略[9],一些節(jié)點(diǎn)可能超載,而其他節(jié)點(diǎn)可能輕負(fù)載。而超負(fù)載節(jié)點(diǎn)可能經(jīng)歷隊(duì)列溢出和數(shù)據(jù)丟失。
為此,針對(duì)多跳WSNs,本文提出基于多信道協(xié)作負(fù)載均衡的路由協(xié)議(Multichannel Collaborative Load Balancing?based routing,M?CoLBA)。M?CoLBA算法引用新的動(dòng)態(tài)度量平衡流量負(fù)載,目的就是解決因隊(duì)列溢出而導(dǎo)致的擁塞和數(shù)據(jù)包丟失問(wèn)題平衡網(wǎng)絡(luò)吞吐量。同時(shí),利用WSNs中的多信道MAC協(xié)議提高吞吐量。
M?CoLBA通過(guò)利用擁塞感知?jiǎng)討B(tài)路由,避免擁塞和隊(duì)列溢出問(wèn)題,進(jìn)而平衡所有潛在下一跳鄰居節(jié)點(diǎn)間的數(shù)據(jù)流量。在MAC層,M?CoLBA協(xié)議利用半動(dòng)態(tài)信道分配的多信道協(xié)議;網(wǎng)絡(luò)層引用基于平均數(shù)據(jù)包隊(duì)列時(shí)延的擁塞感知?jiǎng)討B(tài)路由。實(shí)驗(yàn)數(shù)據(jù)表明,提出的M?CoLBA路由平衡了流量,提高了數(shù)據(jù)包傳遞率。
1 ?M?CoLBA協(xié)議
M?CoLBA協(xié)議先通過(guò)交互beacon包發(fā)現(xiàn)鄰居節(jié)點(diǎn),一旦建立鄰居節(jié)點(diǎn)集后,就進(jìn)入數(shù)據(jù)傳輸階段。換而言之,每個(gè)節(jié)點(diǎn)的活動(dòng)周期可劃分為beacons階段和數(shù)據(jù)階段,如圖1所示。beacons階段交互beacons包,數(shù)據(jù)階段傳輸數(shù)據(jù)。
此外,M?CoLBA協(xié)議引用具有三個(gè)無(wú)線接口的信宿,使得信宿從不同信道同時(shí)接收數(shù)據(jù)。
1.1 ?發(fā)現(xiàn)鄰居
通過(guò)發(fā)現(xiàn)鄰居節(jié)點(diǎn),可避免已被鄰居節(jié)點(diǎn)使用的信道。因此,網(wǎng)絡(luò)內(nèi)除信宿外的所有節(jié)點(diǎn)必須發(fā)現(xiàn)一跳 (1?hop)、二跳(2?hop)和三跳(3?hop)鄰居節(jié)點(diǎn)。利用beacon包發(fā)現(xiàn)這些鄰居節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)先利用它從鄰居節(jié)點(diǎn)接收的數(shù)據(jù)包建立1?hop鄰居集。然后,將1?hop鄰居集載入beacon包,再?gòu)V播。一旦接收了此包后,節(jié)點(diǎn)就能建立2?hop鄰居集。再將2?hop鄰居集載入beacon包中,并廣播此包。接收到此包的節(jié)點(diǎn)就能建立3?hop鄰居節(jié)點(diǎn)集。
然而,在網(wǎng)絡(luò)內(nèi)難免會(huì)出現(xiàn)孤立節(jié)點(diǎn)。通常將一跳范圍內(nèi)無(wú)鄰居節(jié)點(diǎn)的節(jié)點(diǎn)稱為孤立節(jié)點(diǎn),即一跳鄰居集為空。對(duì)于此類節(jié)點(diǎn),采用存儲(chǔ)?轉(zhuǎn)發(fā)機(jī)制。一旦孤立節(jié)點(diǎn)需要傳輸數(shù)據(jù),它先存儲(chǔ)數(shù)據(jù)包,直至遇到節(jié)點(diǎn)才進(jìn)行轉(zhuǎn)發(fā)。
1.2 ?信道分配
在最初的建立階段,給每個(gè)節(jié)點(diǎn)分配一個(gè)2 B整數(shù)的唯一ID號(hào)。ID號(hào)對(duì)節(jié)點(diǎn)選擇信道有重要影響。最初依據(jù)節(jié)點(diǎn)進(jìn)入網(wǎng)絡(luò)的時(shí)間進(jìn)行編號(hào),最先進(jìn)入的節(jié)點(diǎn)的ID號(hào)最小,最后進(jìn)入的節(jié)點(diǎn)的ID號(hào)最大。在選擇信道時(shí),在同等條件下,具有最小ID號(hào)的節(jié)點(diǎn)最先接入信道。下文將進(jìn)一步分析。
節(jié)點(diǎn)依據(jù)ID號(hào)、有序方式選擇信道。首先,由3?hop鄰居節(jié)點(diǎn)中具有最小ID號(hào)的節(jié)點(diǎn)先選擇信道[10?11]。只要它的前任(predecessor)沒(méi)有宣布它所選擇的接收信道,節(jié)點(diǎn)就不能選擇信道。一個(gè)節(jié)點(diǎn)的predecessor是該節(jié)點(diǎn)的1?hop、2?hop和3?hop鄰居節(jié)點(diǎn)中ID號(hào)離自己最近,且比自己ID號(hào)小的節(jié)點(diǎn)。值得注意的是,本文從3跳范圍避免沖突,原因在于文獻(xiàn)[12]所分析的:3?hop鄰居節(jié)點(diǎn)重復(fù)使用信道會(huì)導(dǎo)致碰撞。通過(guò)擴(kuò)大避免沖突范圍,降低信道碰撞率。
例如,如圖2所示節(jié)點(diǎn)8的1?hop,2?hop和3?hop鄰居節(jié)點(diǎn)為4,5,11,14,15,16和27。因此,節(jié)點(diǎn)5是節(jié)點(diǎn)8的predecessor。在節(jié)點(diǎn)5選擇信道之前,節(jié)點(diǎn)8不能選擇接收信道。
當(dāng)在同一個(gè)網(wǎng)絡(luò)內(nèi)使用多個(gè)信道時(shí),每個(gè)節(jié)點(diǎn)必須知道它的鄰居所選擇的信道,否則容易導(dǎo)致信道碰撞和擁塞。這就要求鄰居節(jié)點(diǎn)間相互共享信道分配信息。M?CoLBA協(xié)議分配信道的目的就是盡可能地避免鄰居節(jié)點(diǎn)重復(fù)使用同一個(gè)信道。
首先,每個(gè)節(jié)點(diǎn)從1?hop,2?hop和3?hop鄰居節(jié)點(diǎn)內(nèi)尋找未使用的信道。如果沒(méi)有未使用的信道,再?gòu)??hop,2?hop鄰居節(jié)點(diǎn)集內(nèi)選擇未使用的信道。如果在1?hop,2?hop鄰居集內(nèi)所有信道已被使用,則節(jié)點(diǎn)就只從1?hop鄰居集內(nèi)選擇可用信道。如果沒(méi)有可用信道,就從1?hop鄰居集內(nèi)選擇重復(fù)使用率低的信道。
依之前所提到的,作為特殊節(jié)點(diǎn),信宿具有3個(gè)無(wú)線接口。信宿首先選擇三個(gè)接收信道,然后在beacon包內(nèi)廣播此信息。隨后,沒(méi)有predecessor的節(jié)點(diǎn)就選擇它們的接收信道,再在beacon包內(nèi)廣播它們的選擇。此過(guò)程一直重復(fù),直到網(wǎng)絡(luò)內(nèi)所有節(jié)點(diǎn)選擇它們的接收信道。
1.3 ?路由指標(biāo)
WSNs中的節(jié)點(diǎn)通信范圍是有限的,而作為數(shù)據(jù)包的目的節(jié)點(diǎn),信宿可能不在網(wǎng)絡(luò)內(nèi)多個(gè)節(jié)點(diǎn)的通信范圍內(nèi)。這就要求通過(guò)多跳通信才能完成數(shù)據(jù)的轉(zhuǎn)發(fā)。通過(guò)連續(xù)地選擇下一跳節(jié)點(diǎn),進(jìn)而構(gòu)成多跳通信。M?CoLBA協(xié)議將平均媒體接入時(shí)延作為路由指標(biāo),并依據(jù)此指標(biāo)選擇路由。
由于信宿的1?hop鄰居節(jié)點(diǎn)能夠與信宿直接通信,它們不需要選擇下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn)。當(dāng)它們完成了信道分配后,信宿的1?hop鄰居節(jié)點(diǎn)就進(jìn)入數(shù)據(jù)傳輸階段,并開始向信宿傳輸數(shù)據(jù)。致使它們必須從信宿的三個(gè)接口中選擇一個(gè)接口,然后再切換至該接口的接收信道。為了避免多個(gè)節(jié)點(diǎn)選擇同一個(gè)接收信道發(fā)生碰撞,M?CoLBA協(xié)議引用CSMA/CS策略接入信道。
非信宿的1?hop鄰居節(jié)點(diǎn)必須要選擇下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn),才能完成數(shù)據(jù)的轉(zhuǎn)發(fā)。M?CoLBA協(xié)議通過(guò)時(shí)延選擇下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn)。具體而言,節(jié)點(diǎn)將所產(chǎn)生的或需要轉(zhuǎn)發(fā)的數(shù)據(jù)壓入數(shù)據(jù)包隊(duì)列中,然后再利用先進(jìn)先出(FIFO)的原則傳輸數(shù)據(jù)包。利用節(jié)點(diǎn)局部時(shí)鐘記錄數(shù)據(jù)包壓入數(shù)據(jù)包隊(duì)列的時(shí)間和出列時(shí)間。這兩個(gè)時(shí)間差就是數(shù)據(jù)包隊(duì)列時(shí)延。
將最近10個(gè)數(shù)據(jù)包的隊(duì)列時(shí)延稱為該節(jié)點(diǎn)時(shí)延[d]。如果節(jié)點(diǎn)隊(duì)列中沒(méi)有10個(gè)數(shù)據(jù)包,則節(jié)點(diǎn)時(shí)延就等于已出列數(shù)據(jù)包的平均時(shí)延。如圖3所示,設(shè)最近5個(gè)數(shù)據(jù)包的隊(duì)列時(shí)延的權(quán)重為2,將其他5個(gè)數(shù)據(jù)包隊(duì)列時(shí)延權(quán)重設(shè)為1。換而言之,最近數(shù)據(jù)包的隊(duì)列時(shí)延對(duì)節(jié)點(diǎn)時(shí)延的影響更大,這也符合實(shí)際情況。因?yàn)樽罱?duì)列時(shí)延反映當(dāng)時(shí)的網(wǎng)絡(luò)條件。因此,節(jié)點(diǎn)時(shí)延定義如下:
式中:[queueing delay(i)]為第[i]個(gè)數(shù)據(jù)包隊(duì)列時(shí)延;[λ],[β]分別表示兩類時(shí)延的權(quán)重,在仿真中考慮它們對(duì)總時(shí)延比重相同,因此,各取為0.5。
一旦節(jié)點(diǎn)已出列了10個(gè)數(shù)據(jù)包,它就利用滑動(dòng)窗口記錄最近的10個(gè)數(shù)據(jù)包。此外,值得注意的是,選用10個(gè)數(shù)據(jù)包的平均時(shí)延作為節(jié)點(diǎn)時(shí)延,原因在于連續(xù)10個(gè)數(shù)據(jù)包時(shí)延能夠反映情況,如果選用的數(shù)據(jù)包過(guò)少,就不能反映網(wǎng)絡(luò)環(huán)境的真實(shí)情況;若選用過(guò)多的數(shù)據(jù)包,必然增加了統(tǒng)計(jì)開銷。此外,通常節(jié)點(diǎn)緩存區(qū)域過(guò)小,也無(wú)法存儲(chǔ)過(guò)多的數(shù)據(jù)包。
估計(jì)完節(jié)點(diǎn)時(shí)延后,再估計(jì)路徑時(shí)延[D]。估計(jì)路徑時(shí)延的原則如下:信宿的1?hop鄰居節(jié)點(diǎn)路徑時(shí)延等于節(jié)點(diǎn)時(shí)延。如圖4所示。信宿節(jié)點(diǎn)[A]的一跳鄰居節(jié)點(diǎn)[B],[F],[C]連通節(jié)點(diǎn)[A]的路徑時(shí)延等于它們的隊(duì)列時(shí)延。例如,節(jié)點(diǎn)[B]的隊(duì)列時(shí)延[d=8]、路徑時(shí)延[D=8]。
信宿的一跳鄰居節(jié)點(diǎn)利用beacon包自己的路徑時(shí)延。當(dāng)二跳鄰居節(jié)點(diǎn)接收了此beacon包,就從一跳鄰居節(jié)點(diǎn)中選擇路徑時(shí)延最小的節(jié)點(diǎn)作為下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn)。那么,該節(jié)點(diǎn)連通信宿的路徑就等于自己的隊(duì)列時(shí)延加上一跳鄰居節(jié)點(diǎn)的路徑時(shí)延。例如二跳鄰居節(jié)點(diǎn)[G],它選擇[F]作為自己的下一跳節(jié)點(diǎn),因?yàn)閇F]離信宿的路徑時(shí)延最短。節(jié)點(diǎn)[G]連通信宿的路徑時(shí)延[D=7+4=11]。
2?hop鄰居節(jié)點(diǎn)也廣播自己的路徑時(shí)延,它的葉節(jié)點(diǎn)(3?hop節(jié)點(diǎn))接收后,再計(jì)算自己連通信宿的路徑時(shí)延。直到網(wǎng)絡(luò)內(nèi)所有節(jié)點(diǎn)已獲取了離信宿的最短時(shí)延路徑。
1.4 ?隊(duì)列溢出的避免策略
依據(jù)網(wǎng)絡(luò)拓?fù)?,每個(gè)節(jié)點(diǎn)可能有多個(gè)連通信宿的下一跳節(jié)點(diǎn)。M?CoLBA協(xié)議選擇路由的原則是:選擇路徑時(shí)延最短的路徑傳輸數(shù)據(jù)。然而,總是以最小時(shí)延選擇下一跳節(jié)點(diǎn)在密集網(wǎng)絡(luò)中會(huì)發(fā)生振動(dòng)[11]。為此,M?CoLBA協(xié)議中除了信宿和一跳鄰居節(jié)點(diǎn)外,其他節(jié)點(diǎn)需要建立top?list鄰居節(jié)點(diǎn)集。top?list內(nèi)包含了最小路徑時(shí)延[Dmin]的鄰居節(jié)點(diǎn)。同時(shí),M?CoLBA協(xié)議規(guī)定top?list也包含比最小路徑時(shí)延[Dmin]最多大于2 ms的路徑[13]。為了避免top?list的下流節(jié)點(diǎn),允許2 ms路徑時(shí)延,進(jìn)而保證無(wú)循環(huán)路由。
因此,為了避免振動(dòng),每個(gè)節(jié)點(diǎn)從top?list中隨機(jī)選擇一個(gè)鄰居節(jié)點(diǎn)作為下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn)。以圖4為例,節(jié)點(diǎn)[H]有三個(gè)潛在的下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn)[B],[F],[C]。它們的路徑時(shí)延分別為8,4,6。因此,節(jié)點(diǎn)[H]的[top?list=F,C]。如果節(jié)點(diǎn)[H]有數(shù)據(jù)需要傳輸,它將從[top?list]中隨機(jī)選擇一個(gè)節(jié)點(diǎn)作為下一跳轉(zhuǎn)發(fā)節(jié)點(diǎn)。通過(guò)[top?list]機(jī)制和隨機(jī)選擇方式平衡流量負(fù)載和隊(duì)列溢出。
2 ?性能仿真
2.1 ?仿真環(huán)境
利用Cooja建立仿真平臺(tái),進(jìn)而分析M?CoLBA協(xié)議性能。仿真中引用IEEE 802.15.4MAC協(xié)議和物理層。同時(shí),節(jié)點(diǎn)利用無(wú)槽的CSMA/CA算法接入媒體。具體的仿真參數(shù)如表1所示。值得注意的是,數(shù)據(jù)包隊(duì)列尺寸為8個(gè)數(shù)據(jù)包。之所以考慮8個(gè)數(shù)據(jù)包,主要是因?yàn)榭紤]到WSNs中傳感節(jié)點(diǎn)是微型設(shè)備,不宜具有大的緩存區(qū)域。
為了更好地分析M?CoLBA協(xié)議性能,選擇單信道的CoLBA協(xié)議[13]和多信道路由協(xié)議作為參照,它們?cè)诜抡鎴D中分別標(biāo)記為S?CoLBA協(xié)議和M?HopCount協(xié)議[14]。M?HopCount協(xié)議依據(jù)路由跳數(shù)決策路由,并且M?HopCount協(xié)議與M?CoLBA協(xié)議的信道分配策略相同。
在200 m×200 m區(qū)域內(nèi)隨機(jī)部署傳感節(jié)點(diǎn),但保證不存在孤立節(jié)點(diǎn)。仿真中傳感節(jié)點(diǎn)數(shù)分別為10,20,40,80,且信宿具有3個(gè)無(wú)線接口。同時(shí),引用數(shù)據(jù)包傳遞率、數(shù)據(jù)包丟失率和端到端傳輸時(shí)延作為性能指標(biāo)。每次實(shí)驗(yàn)獨(dú)立重復(fù)10次,取平均值作為最終的實(shí)驗(yàn)數(shù)據(jù)。
2.2 ?實(shí)驗(yàn)一
本節(jié)實(shí)驗(yàn)考查三個(gè)協(xié)議的數(shù)據(jù)包傳遞率。數(shù)據(jù)包傳遞率是指信宿所接收的數(shù)據(jù)包與網(wǎng)絡(luò)內(nèi)所有節(jié)點(diǎn)產(chǎn)生的數(shù)據(jù)包間的比值。
在低數(shù)據(jù)流量場(chǎng)景下(每個(gè)節(jié)點(diǎn)每秒產(chǎn)生5個(gè)數(shù)據(jù),簡(jiǎn)寫為5 Packet Per Second Per Node),數(shù)據(jù)包傳遞率數(shù)據(jù)如圖5所示。
從圖5可知,在低數(shù)據(jù)流量下,提出的M?CoLBA協(xié)議的數(shù)據(jù)包傳遞率只略高于S?CoLBA和M?HopCount協(xié)議。原因在于:低數(shù)據(jù)流量使得網(wǎng)絡(luò)內(nèi)所傳輸?shù)臄?shù)據(jù)包數(shù)較少,因此媒體在多數(shù)時(shí)間內(nèi)是空閑的,這就降低了碰撞風(fēng)險(xiǎn)和數(shù)據(jù)包丟失率。以圖5a)為例進(jìn)行說(shuō)明,節(jié)點(diǎn)數(shù)的增加降低了數(shù)據(jù)包傳遞率,并且在節(jié)點(diǎn)數(shù)變化期間,M?CoLBA協(xié)議傳遞率較高于S?CoLBA協(xié)議和M?HopCount協(xié)議。同時(shí)觀察圖發(fā)現(xiàn),M?CoLBA協(xié)議傳遞率較為穩(wěn)定,并沒(méi)有隨節(jié)點(diǎn)數(shù)的增加而迅速下降。
隨著數(shù)據(jù)流量的增加,M?CoLBA協(xié)議在數(shù)據(jù)包傳遞率方面上的優(yōu)勢(shì)逐漸呈現(xiàn)。注意到,當(dāng)每秒產(chǎn)生5個(gè)、10個(gè)數(shù)據(jù)包時(shí),M?CoLBA協(xié)議的吞吐量比M?HopCount協(xié)議分別提高2%,12%。原因在于M?HopCount協(xié)議選擇靜態(tài)路由指標(biāo),導(dǎo)致低的數(shù)據(jù)包傳遞率。
2.3 ?實(shí)驗(yàn)二
本次實(shí)驗(yàn)考查因隊(duì)列溢出而導(dǎo)致的數(shù)據(jù)包丟失。圖6顯示了在每秒5個(gè)數(shù)據(jù)包、每秒10個(gè)數(shù)據(jù)包環(huán)境下的數(shù)據(jù)包丟失率。
從圖6a)可知,S?CoLBA和M?CoLBA協(xié)議的隊(duì)列溢出幾乎為零。對(duì)于S?CoLBA而言,網(wǎng)絡(luò)內(nèi)所有節(jié)點(diǎn)使用同一個(gè)信道通信。當(dāng)隊(duì)列快溢出時(shí),就發(fā)送預(yù)警消息。由于M?CoLBA協(xié)議使用多個(gè)信道,廣播預(yù)警消息是復(fù)雜的,這也導(dǎo)致節(jié)點(diǎn)不可能同時(shí)收到預(yù)警消息。這也能解釋為什么在節(jié)點(diǎn)數(shù)為80時(shí),每秒產(chǎn)生10個(gè)數(shù)據(jù)包時(shí),S?CoLBA的數(shù)據(jù)包丟失率低于M?CoLBA協(xié)議。
而M?HopCount協(xié)議具有高的數(shù)據(jù)包丟失率,原因在于M?HopCount協(xié)議的路由指標(biāo)是靜態(tài)的,并且節(jié)點(diǎn)總是選擇同一個(gè)下一跳節(jié)點(diǎn)。此外,M?HopCount協(xié)議并不允許傳輸預(yù)警消息。
2.4 ?實(shí)驗(yàn)三
最后,分析M?CoLBA協(xié)議的端到端傳輸時(shí)延。端到端傳輸時(shí)延是指產(chǎn)生數(shù)據(jù)包的時(shí)間與信宿接收此數(shù)據(jù)包的時(shí)間差。圖7分別顯示了10個(gè)節(jié)點(diǎn)、每秒產(chǎn)生1個(gè)數(shù)據(jù)包和80個(gè)節(jié)點(diǎn)、每秒產(chǎn)生10個(gè)數(shù)據(jù)包的端到端傳輸時(shí)延。將前者稱為場(chǎng)景一、后者稱為場(chǎng)景二。
從圖7可知,相比于S?CoLBA協(xié)議,M?CoLBA和M?HopCount協(xié)議具有更高的端到端傳輸時(shí)延。M?CoLBA和M?HopCount協(xié)議的高傳輸時(shí)延主要來(lái)自beacon階段。beacon階段維持了2 s,而在此階段并沒(méi)有傳輸數(shù)據(jù)包。而S?CoLBA協(xié)議并沒(méi)有額外時(shí)延,因?yàn)镾?CoLBA協(xié)議內(nèi)所有節(jié)點(diǎn)使用同一個(gè)信道,無(wú)需廣播控制消息。
3 ?結(jié) ?語(yǔ)
針對(duì)WSNs的高數(shù)據(jù)率應(yīng)用,提出M?CoLBA協(xié)議。M?CoLBA協(xié)議利用多信道和負(fù)載均衡技術(shù)提高網(wǎng)絡(luò)性能。實(shí)驗(yàn)數(shù)據(jù)表明,提出的M?CoLBA協(xié)議避免了因隊(duì)列溢出而產(chǎn)生的數(shù)據(jù)包丟失。在后期,將評(píng)估網(wǎng)絡(luò)內(nèi)每個(gè)節(jié)點(diǎn)的能耗,進(jìn)而分析M?CoLBA協(xié)議的能量效率。
從實(shí)驗(yàn)數(shù)據(jù)可知,提出的M?CoLBA協(xié)議在數(shù)據(jù)包傳遞率方面優(yōu)于同類協(xié)議,但是時(shí)延仍較高,需要進(jìn)行控制。此外,本文重點(diǎn)分析研究負(fù)載均衡對(duì)網(wǎng)絡(luò)性能的影響,即從負(fù)載角度提高網(wǎng)絡(luò)性能。后期,將擴(kuò)大研究?jī)?nèi)容,考慮循環(huán)路由問(wèn)題,進(jìn)而提高M(jìn)?CoLBA協(xié)議的路由性能。
參考文獻(xiàn)
[1] CHI Q, YAN H, ZHANG C, et al. A reconfigurable smart sensor interface for industrial WSN in IoT environment [J]. IEEE transactions on industrial informatics, 2014, 10(2): 1417?1425.
[2] 范敏,謝思佳.基于空洞模型的地理位置路由改進(jìn)算法研究[J].傳感技術(shù)學(xué)報(bào),2012,25(11):1556?1561.
FAN Min, XIE Sijia. An improved geographic routing algorithm based on hole modeling [J]. Chinese journal of sensors and actuators, 2012, 25(11): 1556?1561.
[3] STINE J A. Exploiting smart antennas in wireless mesh networks using contention access [J]. IEEE wireless communications, 2016, 13(2): 38?49.
[4] SHIN J, LEE H, NA J, et al. Load balancing among internet gateways in Ad Hoc networks [C]// Proceedings of 2005 IEEE the 62nd Vehicular Technology Conference. Dallas: IEEE, 2015: 1677?1680.
[5] KYASANUR P, VAIDYA N H. Capacity of multi?channel wireless networks: impact of number of channels and interfaces [C]// Proceedings of 2015 IEEE the 11th Annual International Conference on Mobile Computing and Networking. [S.l.]: IEEE, 2015: 43?57.
[6] DIAB R, CHALHOUB G, MISSON M. Enhanced multi?channel MAC protocol for multi?hop wireless sensor networks [C]// 2014 IEEE IFIP Wireless Days. Rio de Janeiro: IEEE, 2014: 34?41.
[7] WANG X, TAN M. A load?balancing routing algorithm for multichannel wireless mesh networks [J]. International journal of sensors networks, 2015, 17(4): 249?255.
[8] SONG M, ZHAO Y, WANG J. A high throughput load balance algorithm for multichannel wireless sensor networks [C]// Proceedings of 2009 IEEE International Conference on Communications. Dresden: IEEE, 2015: 1?5.
[9] CHEN J, YU Q, CHAI B, et al. Dynamic channel assignment for wireless sensor networks: a regret matching based approach [J]. IEEE transactions on parallel and distributed systems, 2015, 26(1): 95?106.
[11] BANIMELHEM O, KHASAWNEH S. GMCAR grid?based multipath with congestion avoidance routing protocol in wireless sensor networks [J]. Ad Hoc networks, 2012, 10(7): 1346?1361.
[11] 劉卉,李澤軍.基于投影矢量的雙組播樹高效路由數(shù)據(jù)收集[J].傳感技術(shù)學(xué)報(bào),2013,26(4):570?577.
LIU Hui, LI Zejun. High?efficiency routing data collection of dual multicast tree based on the projection vector [J]. Chinese journal of sensors and actuators, 2013, 26(4): 570?577.
[12] DIAB R, CHALHOUB G, MISSON M. Hybrid multi?channel MAC protocol for wireless sensor networks: interference rate evaluation [C]// 2013 IEEE the 78th Vehicle Technology Conference. Las Vegas: IEEE, 2013: 1?6.
[13] TALL H, CHALHOUB B, MISSON M. CoLBA: a collaborative load balancing algorithm to avoid queue overflow in WSNs [C]// 2015 IEEE International Conference on Data Science and Data Intensive Systems. Sydney: IEEE, 2015: 682?687.
[14] TALL H, CHALHOUB G, MISSON M. Implementation and performance evaluation of IEEE 802.15.4 unslotted CSMA/CA protocol on Contiki OS [J]. Annals of telecommunications, 2016, 71(9): 517?526.