趙軍,陳祥光,劉春濤,余向明,岳彬
(1.北京理工大學(xué) 化工與環(huán)境學(xué)院,北京100081;2.空軍油料研究所,北京100076)
以某機(jī)場油料保障系統(tǒng)輸油管道為研究背景,在輸油管道上每隔一定距離d0安裝一個(gè)無線傳感器網(wǎng)絡(luò)(WSN)節(jié)點(diǎn),該節(jié)點(diǎn)采集到的傳感器信息通過節(jié)點(diǎn)間的多跳轉(zhuǎn)發(fā)傳送到監(jiān)控室。現(xiàn)有的WSN研究是在假設(shè)傳感器節(jié)點(diǎn)隨機(jī)分布的基礎(chǔ)上進(jìn)行的,而本文中傳感器節(jié)點(diǎn)隨著輸油管道的延伸呈鏈型分布,如圖1所示,當(dāng)某個(gè)傳感器節(jié)點(diǎn)有數(shù)據(jù)需要傳輸時(shí)只能通過前后兩個(gè)方向的鄰居節(jié)點(diǎn)依次轉(zhuǎn)發(fā)。
圖1 無線傳感器節(jié)點(diǎn)分布Fig.1 Distribution of wireless sensor nodes
媒體訪問控制(MAC)協(xié)議通常需要解決信道分配和介質(zhì)訪問的問題。前者是決定使用哪條信道,2 個(gè)節(jié)點(diǎn)至少共用一個(gè)信道才能進(jìn)行通信,文獻(xiàn)[1]把這個(gè)問題作為最優(yōu)化的問題。一些研究工作只是修改MAC 協(xié)議來支持多信道Adhoc 網(wǎng)絡(luò),從多個(gè)信道中選擇一條信道,基本上能夠避免干擾,使相鄰節(jié)點(diǎn)的數(shù)據(jù)包在多個(gè)信道并行傳輸。
文獻(xiàn)[2]提出了基于IEEE802.11 節(jié)能機(jī)制的多信道MAC 協(xié)議(MMAC)協(xié)議。MMAC 將時(shí)間分為周期為100 ms 時(shí)間片段,再細(xì)分為20 ms 的ATIM窗口和80 ms 的數(shù)據(jù)窗口。所有節(jié)點(diǎn)在ATIM 窗口偵聽一條默認(rèn)信道,發(fā)送方廣播對應(yīng)每個(gè)接收方的數(shù)據(jù)包長度,并且與每個(gè)接收方協(xié)商在數(shù)據(jù)窗口中使用的數(shù)據(jù)信道。
多信道MAC 協(xié)議動(dòng)態(tài)信道分配(DCA)[3]把可用的帶寬分為一條控制信道和n 條數(shù)據(jù)信道D1,D2,…,Dn,其中n 條數(shù)據(jù)信道的優(yōu)先級和帶寬都相同。控制信道是用來解決數(shù)據(jù)信道上的競爭并將數(shù)據(jù)信道分配給移動(dòng)節(jié)點(diǎn)。數(shù)據(jù)信道用于傳送數(shù)據(jù)包和應(yīng)答確認(rèn)。每個(gè)移動(dòng)的節(jié)點(diǎn)保存有2 個(gè)數(shù)據(jù)列表,信道使用列表(CUL)和信道空閑列表(FCL).由于CUL 是每個(gè)移動(dòng)節(jié)點(diǎn)單獨(dú)維護(hù),可能保存的信息不是很準(zhǔn)確。
文獻(xiàn)[4]提出雙忙音多址接入的MAC 協(xié)議(DBTMA),將公共信道分為2 個(gè)子信道:數(shù)據(jù)信道和控制信道,控制信道分配2 個(gè)忙音信號bt為節(jié)點(diǎn)正在數(shù)據(jù)信道上發(fā)送數(shù)據(jù)和br為節(jié)點(diǎn)正在數(shù)據(jù)信道上接收數(shù)據(jù)。文獻(xiàn)[5]移動(dòng)自組網(wǎng)(MANETs)協(xié)議將能量控制概念引入到以RTS/CTS 和忙音信號為基礎(chǔ)的多信道MAC 協(xié)議中,收發(fā)節(jié)點(diǎn)通過交換RTS和CTS 信息來確定他們之間的相對距離,根據(jù)兩者之間的距離確定發(fā)送數(shù)據(jù)的功率等級。使用較低的發(fā)送功率可以使信道在空間內(nèi)復(fù)用,提高信道的利用率。但這2 種協(xié)議都只針對于一個(gè)數(shù)據(jù)信道。
文獻(xiàn)[6]提出的接收定向傳輸協(xié)議(RDT)規(guī)定每個(gè)節(jié)點(diǎn)只有一個(gè)無線接口,每個(gè)節(jié)點(diǎn)選擇一個(gè)信道作為自己的靜態(tài)通道C,并且在空閑時(shí)監(jiān)聽這個(gè)信道。雖然充分利用了多條數(shù)據(jù)信道,但無法解決終端隱藏和終端暴露問題。擴(kuò)展的接收定向傳輸協(xié)議(xRDT)[7]在RDT 協(xié)議的基礎(chǔ)上,每個(gè)節(jié)點(diǎn)增加一個(gè)忙音接口,這樣每個(gè)節(jié)點(diǎn)的靜態(tài)信道C 都有一個(gè)忙音信號bC來表示其工作狀態(tài),當(dāng)節(jié)點(diǎn)A 在它的靜態(tài)信道A 接收數(shù)據(jù)時(shí),打開忙音信號bA.節(jié)點(diǎn)A向B 發(fā)送數(shù)據(jù),首先將數(shù)據(jù)接口和忙音接口切換到節(jié)點(diǎn)B 的數(shù)據(jù)信道B 和忙音信道bB偵聽節(jié)點(diǎn)B 的工作狀態(tài),如果偵聽到節(jié)點(diǎn)B 數(shù)據(jù)信道和忙音信號上有負(fù)載,則節(jié)點(diǎn)A 延遲其發(fā)送操作。雖然能在一定程度上解決終端隱藏和終端暴露問題,但使用了過多的頻帶,可能增加頻譜間的干擾。
基于以上分析,本文在xRDT 的基礎(chǔ)上提出了分布式多信道MAC 協(xié)議,每個(gè)節(jié)點(diǎn)配備一個(gè)數(shù)據(jù)接口和忙音信道接口,并且按順序給無線傳感器節(jié)點(diǎn)分配固定的數(shù)據(jù)信道和忙音信道,明顯提高了網(wǎng)絡(luò)的吞吐量。
目前,針對單信道WSN 已經(jīng)提出了許多MAC協(xié)議,IEEE802.11 也定義了一個(gè)標(biāo)準(zhǔn)的單信道MAC 協(xié)議模型。由于節(jié)點(diǎn)僅配備單個(gè)半雙工收發(fā)器,不能同時(shí)處于發(fā)送和接收狀態(tài),單信道無線網(wǎng)絡(luò)始終無法有效解決終端隱藏和終端暴露問題,如圖2所示,圖2(a)為終端隱藏問題,節(jié)點(diǎn)A 向節(jié)點(diǎn)B 發(fā)送數(shù)據(jù),這時(shí)節(jié)點(diǎn)C 向節(jié)點(diǎn)D 發(fā)送數(shù)據(jù),將會破壞節(jié)點(diǎn)B 的接收。圖2(b)為終端暴露問題,節(jié)點(diǎn)B正在向A 發(fā)送數(shù)據(jù),這時(shí)節(jié)點(diǎn)C 準(zhǔn)備向節(jié)點(diǎn)D 發(fā)送數(shù)據(jù),節(jié)點(diǎn)C 會等到節(jié)點(diǎn)B 的發(fā)送活動(dòng)結(jié)束后再進(jìn)行發(fā)送,事實(shí)上節(jié)點(diǎn)A、B 和節(jié)點(diǎn)C、D 之間的通信可以同時(shí)進(jìn)行。
圖2 單信道WSN 終端問題Fig.2 Terminal problems in single-channel WSN
圖3為單信道多跳WSN 單用戶理想數(shù)據(jù)包流水作業(yè)調(diào)度方案。在時(shí)間1T,源節(jié)點(diǎn)S 向節(jié)點(diǎn)1 發(fā)送數(shù)據(jù)包Pk1.在時(shí)間2T,節(jié)點(diǎn)1 向節(jié)點(diǎn)2 轉(zhuǎn)發(fā)數(shù)據(jù)包Pk1.由于節(jié)點(diǎn)1 不能同時(shí)處于發(fā)送和接收狀態(tài),源節(jié)點(diǎn)S 不能在時(shí)間2T 向節(jié)點(diǎn)1 發(fā)送數(shù)據(jù)包。在時(shí)間3T,節(jié)點(diǎn)2 向節(jié)點(diǎn)3 轉(zhuǎn)發(fā)數(shù)據(jù)包Pk1,由于工作在一條信道上,節(jié)點(diǎn)1 和節(jié)點(diǎn)3 都在節(jié)點(diǎn)2 的發(fā)送范圍內(nèi),源節(jié)點(diǎn)S 不能在時(shí)間3T 向節(jié)點(diǎn)1 發(fā)送數(shù)據(jù)。在時(shí)間4T,節(jié)點(diǎn)3 向節(jié)點(diǎn)4 轉(zhuǎn)發(fā)數(shù)據(jù)包Pk1,同時(shí)源節(jié)點(diǎn)S 可以向節(jié)點(diǎn)1 發(fā)送數(shù)據(jù)包Pk2.依此方法,源節(jié)點(diǎn)每隔2 個(gè)T 發(fā)送一個(gè)數(shù)據(jù)包,中間節(jié)點(diǎn)接收到數(shù)據(jù)包后,在下一個(gè)T 轉(zhuǎn)發(fā)該數(shù)據(jù)包。
圖3 單信道WSN 理想調(diào)度方案Fig.3 Optimal schedule scheme for single-channel WSN
假設(shè)源節(jié)點(diǎn)S 每隔2 個(gè)T 發(fā)送一個(gè)數(shù)據(jù)包,共向目的節(jié)點(diǎn)D 發(fā)送n 個(gè)數(shù)據(jù)包。理想信道中數(shù)據(jù)包沒有因噪聲干擾、鏈路誤碼的影響而丟棄,按照理想的數(shù)據(jù)包調(diào)度方案,宿節(jié)點(diǎn)D 可以每隔2 個(gè)T 接收到一個(gè)數(shù)據(jù)包,從而接收到所有的n 個(gè)數(shù)據(jù)包。那么,理想情況下單信道的吞吐量為
式中:Ep為數(shù)據(jù)包平均長度;Np為路徑長度(跳數(shù));T 為時(shí)鐘節(jié)拍。
如果n?Np,單信道網(wǎng)絡(luò)的最大吞吐量為
當(dāng)多個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),隨著網(wǎng)絡(luò)負(fù)載的增加末端節(jié)點(diǎn)沖突加劇,網(wǎng)絡(luò)的吞吐量受到傳感器節(jié)點(diǎn)吞吐量的限制,節(jié)點(diǎn)間的競爭和發(fā)送分組之間的沖突降低了信道利用率并導(dǎo)致吞吐量的迅速下降。
通過以上分析,如果采用多信道WSN 可有效提高了網(wǎng)絡(luò)的容量并且能夠有效緩解節(jié)點(diǎn)間競爭和發(fā)送分組間沖突的問題。
假設(shè)無線傳感器節(jié)點(diǎn)之間的距離d0相同,全網(wǎng)按照一個(gè)T 工作,每個(gè)傳感器節(jié)點(diǎn)配備一個(gè)數(shù)據(jù)接口和一個(gè)忙音接口。并為每個(gè)傳感器節(jié)點(diǎn)分配一條默認(rèn)的數(shù)據(jù)信道C 及其忙音信道bC,在空閑時(shí)傳感器節(jié)點(diǎn)偵聽各自的默認(rèn)信道和忙音信道。當(dāng)某個(gè)傳感器節(jié)點(diǎn)有數(shù)據(jù)需要發(fā)送時(shí),切換到前向或者后向鄰居節(jié)點(diǎn)的默認(rèn)信道,向其發(fā)送數(shù)據(jù)。由于節(jié)點(diǎn)按鏈型分布,每個(gè)節(jié)點(diǎn)只能向兩個(gè)方向發(fā)送數(shù)據(jù),因此本文只從一個(gè)方向進(jìn)行分析。
設(shè)定無線傳感器節(jié)點(diǎn)的通信范圍為d0+Δd,其中Δd 為無線信號衰減范圍所延長的距離,每個(gè)節(jié)點(diǎn)只能與其一跳鄰居節(jié)點(diǎn)進(jìn)行通信。傳感器節(jié)點(diǎn)進(jìn)行前向或者后向通信的范圍為2(d0+Δd).如果通信路徑上的2 個(gè)傳感器之間的距離大于2(d0+Δd),則這2 個(gè)節(jié)點(diǎn)可以共用1 條信道。因此,只需要3 條信道(A、B、C)就可以建立單路徑多信道模型。
WSN 單路徑多信道理想數(shù)據(jù)包調(diào)度方案如圖4所示,在時(shí)間1T,源節(jié)點(diǎn)S 切換到節(jié)點(diǎn)1 的默認(rèn)信道A 上向節(jié)點(diǎn)1 發(fā)送數(shù)據(jù)包Pk1.在時(shí)間2T,節(jié)點(diǎn)1切換到節(jié)點(diǎn)2 的默認(rèn)信道B 上向節(jié)點(diǎn)2 轉(zhuǎn)發(fā)數(shù)據(jù)包Pk1.在時(shí)間3T,節(jié)點(diǎn)2 切換到節(jié)點(diǎn)3 的默認(rèn)信道C上向節(jié)點(diǎn)3 轉(zhuǎn)發(fā)數(shù)據(jù)包Pk1.由于工作在不同的信道上,源節(jié)點(diǎn)S 可以同時(shí)在節(jié)點(diǎn)1 的缺省信道A 上繼續(xù)向節(jié)點(diǎn)1 發(fā)送數(shù)據(jù)包Pk2.在時(shí)間4T,節(jié)點(diǎn)3切換到節(jié)點(diǎn)4 的默認(rèn)信道A 上向節(jié)點(diǎn)4 轉(zhuǎn)發(fā)數(shù)據(jù)包Pk1.因?yàn)楣?jié)點(diǎn)3 與節(jié)點(diǎn)1 隔著兩跳的距離,不會對節(jié)點(diǎn)1 產(chǎn)生干擾,所以信道A 可以復(fù)用。以此方法,下游節(jié)點(diǎn)按照A—B—C 的順序復(fù)用信道。源節(jié)點(diǎn)每隔一個(gè)T 發(fā)送一個(gè)數(shù)據(jù)包,中間節(jié)點(diǎn)接收到數(shù)據(jù)包后,在下一個(gè)T 轉(zhuǎn)發(fā)該數(shù)據(jù)包。
圖4 單路徑多信道WSN 理想調(diào)度方案Fig.4 Optimal schedule scheme for single-path multi-channel WSN
理想情況下單路徑多信道的吞吐量為
如果n?Np,單路徑多信道網(wǎng)絡(luò)的最大吞吐量為
如果多個(gè)節(jié)點(diǎn)需要發(fā)送數(shù)據(jù),數(shù)據(jù)包在無線鏈路上累積,當(dāng)末端節(jié)點(diǎn)的吞吐量達(dá)到飽和后,可能會因?yàn)榫W(wǎng)絡(luò)的沖突和節(jié)點(diǎn)的退避造成吞吐量的下降。
設(shè)定無線傳感器節(jié)點(diǎn)的通信范圍為2d0+Δd,其中Δd 為無線信號衰減范圍所延長的距離,這樣每個(gè)節(jié)點(diǎn)可以與其兩跳距離內(nèi)的鄰居節(jié)點(diǎn)進(jìn)行通信。傳感器節(jié)點(diǎn)進(jìn)行前向或者后向通信的范圍為2(2d0+Δd).
如果源節(jié)點(diǎn)分別向其一跳鄰居節(jié)點(diǎn)和兩跳鄰居節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,中間節(jié)點(diǎn)收到數(shù)據(jù)包后,向其下游兩跳鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包,這樣源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間可以有兩條通信路徑。通信路徑上的2 個(gè)傳感器節(jié)點(diǎn)之間的距離大于2(2d0+Δd),可以共用一條信道。因此,需要5 條信道就可以建立雙路徑多信道模型,按照節(jié)點(diǎn)排列的順序,將其默認(rèn)信道一次分配為A—B—C—D—E,如圖5所示。
圖5 傳感器節(jié)點(diǎn)的默認(rèn)信道分配Fig.5 Default channel assignment for sensor nodes
2.2.1 源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間距離跳數(shù)為奇數(shù)
源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間距離跳數(shù)為奇數(shù)時(shí),WSN 雙路徑多信道理想數(shù)據(jù)包調(diào)度方案如圖6所示,在時(shí)間1T,源節(jié)點(diǎn)S 切換到節(jié)點(diǎn)1 的默認(rèn)信道A上向節(jié)點(diǎn)1 發(fā)送數(shù)據(jù)包Pk1.在時(shí)間2T,節(jié)點(diǎn)1 切換到節(jié)點(diǎn)3 的默認(rèn)信道C 上向節(jié)點(diǎn)3 轉(zhuǎn)發(fā)數(shù)據(jù)包Pk1,同時(shí),源節(jié)點(diǎn)S 切換到節(jié)點(diǎn)2 的默認(rèn)信道B 上向節(jié)點(diǎn)2 發(fā)送數(shù)據(jù)包Pk2.在時(shí)間3T,節(jié)點(diǎn)3 切換到節(jié)點(diǎn)5 的默認(rèn)信道E 上向節(jié)點(diǎn)5 轉(zhuǎn)發(fā)數(shù)據(jù)包Pk1,節(jié)點(diǎn)2 切換到節(jié)點(diǎn)4 的默認(rèn)信道D 上向節(jié)點(diǎn)4轉(zhuǎn)發(fā)數(shù)據(jù)包Pk2,同時(shí),源節(jié)點(diǎn)S 切換到節(jié)點(diǎn)1 的默認(rèn)信道A 上向節(jié)點(diǎn)1 發(fā)送數(shù)據(jù)包Pk3.源節(jié)點(diǎn)每個(gè)T 發(fā)送一個(gè)數(shù)據(jù)包,中間節(jié)點(diǎn)接收到數(shù)據(jù)包后,在下一個(gè)T 向其下游兩跳鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)該數(shù)據(jù)包。
圖6 距離跳數(shù)為奇數(shù)時(shí)雙路徑多信道網(wǎng)絡(luò)理想調(diào)度方案Fig.6 Optimal schedule scheme for dual-pathmulti-channel WSN in odd hop number
理想情況下距離跳數(shù)為奇數(shù)時(shí)雙路徑多信道的吞吐量為
如果n?Np,單路徑多信道網(wǎng)絡(luò)的最大吞吐量為
2.2.2 源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間距離跳數(shù)為偶數(shù)
源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間距離跳數(shù)為偶數(shù)時(shí),WSN 雙路徑多信道理想數(shù)據(jù)包調(diào)度方案如圖7所示,在時(shí)間1T,源節(jié)點(diǎn)S 切換到節(jié)點(diǎn)1 的默認(rèn)信道A上向節(jié)點(diǎn)1 發(fā)送數(shù)據(jù)包Pk1.在時(shí)間2T,節(jié)點(diǎn)1 切換到節(jié)點(diǎn)3 的默認(rèn)信道C 上向節(jié)點(diǎn)3 轉(zhuǎn)發(fā)數(shù)據(jù)包Pk1,同時(shí),源節(jié)點(diǎn)S 切換到節(jié)點(diǎn)2 的默認(rèn)信道B 上向節(jié)點(diǎn)2 發(fā)送數(shù)據(jù)包Pk2.在時(shí)間3T,節(jié)點(diǎn)3 切換到節(jié)點(diǎn)5 的默認(rèn)信道E 上向節(jié)點(diǎn)5 轉(zhuǎn)發(fā)數(shù)據(jù)包Pk1,節(jié)點(diǎn)2 切換到節(jié)點(diǎn)4 的默認(rèn)信道D 上向節(jié)點(diǎn)4轉(zhuǎn)發(fā)數(shù)據(jù)包Pk2,同時(shí),源節(jié)點(diǎn)S 切換到節(jié)點(diǎn)1 的默認(rèn)信道A 上向節(jié)點(diǎn)1 發(fā)送數(shù)據(jù)包Pk3.源節(jié)點(diǎn)每個(gè)T 發(fā)送一個(gè)數(shù)據(jù)包,中間節(jié)點(diǎn)接收到數(shù)據(jù)包后,在下一個(gè)T 向其下游兩跳鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)該數(shù)據(jù)包。
圖7 距離跳數(shù)為偶數(shù)時(shí)雙路徑多信道網(wǎng)絡(luò)理想調(diào)度方案Fig.7 Optimal schedule scheme for dual-path multi-channel WSN in even hop number
由于源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的距離條數(shù)為偶數(shù),所以源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間有奇數(shù)個(gè)中間節(jié)點(diǎn),這樣會造成兩個(gè)路徑的長度不同,在路徑末端造成通信的沖突。路徑2—4—6 比路徑1—3—5—7 少一個(gè)中間節(jié)點(diǎn),數(shù)據(jù)傳播時(shí)間少一個(gè)T.在時(shí)間5T,兩條路徑上節(jié)點(diǎn)6 和節(jié)點(diǎn)7 的數(shù)據(jù)包在同一個(gè)T 到達(dá)目的節(jié)點(diǎn)D,為了避免碰撞,其中一條路徑上的數(shù)據(jù)包延緩發(fā)送,本文中假設(shè)中間節(jié)點(diǎn)較少的路徑延緩一個(gè)T 再向目的節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,這條路徑上會有一個(gè)T 的時(shí)間延遲,會相應(yīng)的減少其吞吐量。
理想情況下距離跳數(shù)為偶數(shù)時(shí)雙路徑多信道的吞吐量為
如果n?Np,單路徑多信道網(wǎng)絡(luò)的最大吞吐量為
在本節(jié)中,假設(shè)整個(gè)無線網(wǎng)絡(luò)按照一個(gè)T 工作的前提下進(jìn)行分析的,由于實(shí)際無線網(wǎng)絡(luò)距離跨度大,單個(gè)節(jié)點(diǎn)通信范圍有限,難以實(shí)現(xiàn)嚴(yán)格的時(shí)間同步。在下一節(jié)中提出了不需要時(shí)間同步的分布式多信道MAC 協(xié)議。
基于多信道MAC 協(xié)議xRDT,為每個(gè)傳感器節(jié)點(diǎn)分配一條默認(rèn)的數(shù)據(jù)信道C 及其忙音信號bC,在前面已經(jīng)分別討論了單路徑和雙路徑情況下信道的分配和路由方式。本節(jié)將詳細(xì)介紹分布式多信道MAC 協(xié)議。
每個(gè)傳感器節(jié)點(diǎn)維護(hù)一個(gè)鄰居節(jié)點(diǎn)信息列表NIL 和數(shù)據(jù)發(fā)送列表DSL,其中NIL 包括鄰居節(jié)點(diǎn)距離網(wǎng)關(guān)的跳數(shù)NIL[i].d 和鄰居節(jié)點(diǎn)的默認(rèn)信道NIL[i].ch,DSL 包 括 源 節(jié) 點(diǎn) 距 離 網(wǎng) 關(guān) 的 跳 數(shù)DSL[i].d,數(shù)據(jù)包長度DSL[i].n 和本次通信所使用的路徑模式DSL[i].path.DSL[i].path =1 表示本次數(shù)據(jù)發(fā)送采用單路徑模式,DSL[i].path =2 表示本次數(shù)據(jù)發(fā)送采用雙路徑模式。
WSN 的通信可以分為兩個(gè)方面,鄰居節(jié)點(diǎn)間的通信和源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的通信。
以源節(jié)點(diǎn)S 向鄰居節(jié)點(diǎn)1 發(fā)送數(shù)據(jù)為例,傳感器節(jié)點(diǎn)在空閑時(shí)偵聽各自默認(rèn)的數(shù)據(jù)信道和盲音信道,當(dāng)源節(jié)點(diǎn)S 有數(shù)據(jù)包需要發(fā)送時(shí),選擇本次數(shù)據(jù)發(fā)送所使用的路徑模式DSL[i].path =2,根據(jù)選擇的路徑模式從鄰居列表NIL[i].d 中選擇距離網(wǎng)關(guān)比自己近的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn)。
源節(jié)點(diǎn)S 首先偵聽節(jié)點(diǎn)1 的忙音信號bA,如果發(fā)現(xiàn)信道忙碌,則在短暫延時(shí)后再次偵聽。當(dāng)發(fā)現(xiàn)忙音信號bA空閑后,源節(jié)點(diǎn)S 將忙音信號bE置位為忙碌狀態(tài),并且將數(shù)據(jù)信道切換到節(jié)點(diǎn)1 的默認(rèn)信道A,向節(jié)點(diǎn)1 發(fā)送請求RTS,其中包括DSL.節(jié)點(diǎn)1收到RTS 后,如果節(jié)點(diǎn)1 正準(zhǔn)備發(fā)送數(shù)據(jù),暫時(shí)不方便接收數(shù)據(jù),則向節(jié)點(diǎn)S 回復(fù)延遲發(fā)送(DTS).節(jié)點(diǎn)S 收到DTS 后,繼續(xù)偵聽節(jié)點(diǎn)1 的忙音信號bA,等待節(jié)點(diǎn)1 下次通信結(jié)束后再嘗試向節(jié)點(diǎn)1 發(fā)送數(shù)據(jù)。如果節(jié)點(diǎn)1 收到RTS 后可以接收數(shù)據(jù),則將忙音信號bA置位為忙碌狀態(tài),并向節(jié)點(diǎn)S 回復(fù)RTR.節(jié)點(diǎn)S 收到節(jié)點(diǎn)1 發(fā)送的RTR 后開始向節(jié)點(diǎn)1發(fā)送數(shù)據(jù)包DATA,節(jié)點(diǎn)接1 收完成后向節(jié)點(diǎn)S 回復(fù)接收確認(rèn)ACK,并將忙音信號bA清除,節(jié)點(diǎn)S 收到ACK 后,也將忙音信號bE清除,本次數(shù)據(jù)發(fā)送結(jié)束,如圖8所示。
圖8 節(jié)點(diǎn)S 向節(jié)點(diǎn)1 發(fā)送數(shù)據(jù)Fig.8 Data transmission from node S to node 1
首先源節(jié)點(diǎn)選擇使用路徑模式DSL[i].path =2,源節(jié)點(diǎn)S 在兩條路徑上分別向目的節(jié)點(diǎn)D 發(fā)送發(fā)送請求RTS1和RTS2,源節(jié)點(diǎn)D 收到兩條路徑上的發(fā)送請求后再分別回復(fù)RTR1和RTR2.如果節(jié)點(diǎn)D 收到其中一個(gè)RTS 后在timeout 時(shí)間內(nèi)沒有收到另一個(gè)RTS,或者節(jié)點(diǎn)S 在收到其中一個(gè)RTR 后在2timeout 時(shí)間內(nèi)沒有收到另一個(gè)RTR,則表示這條路徑上有節(jié)點(diǎn)出現(xiàn)故障,本次通信只使用一條路徑。
如果節(jié)點(diǎn)S 在Np× timeout 時(shí)間內(nèi)沒有收到RTR,可能兩條路徑上都有節(jié)點(diǎn)出現(xiàn)了故障。當(dāng)路徑上某個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),節(jié)點(diǎn)可以嘗試其一跳節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù),如圖9所示,如節(jié)點(diǎn)3 出現(xiàn)故障,節(jié)點(diǎn)1向節(jié)點(diǎn)2 轉(zhuǎn)發(fā)數(shù)據(jù)包,借助路徑1 中的節(jié)點(diǎn)2 和節(jié)點(diǎn)4,經(jīng)過節(jié)點(diǎn)4 向節(jié)點(diǎn)5 轉(zhuǎn)發(fā)數(shù)據(jù)包回到路徑2.兩條路徑共用鏈路(節(jié)點(diǎn)2—節(jié)點(diǎn)4),兩條路徑上的吞吐量受到鏈路(節(jié)點(diǎn)2—節(jié)點(diǎn)4)吞吐量的限制,理想情況下,兩條路徑上的最大吞吐量與一條路徑的吞吐量相同。由于數(shù)據(jù)包在此處出現(xiàn)碰撞,隨著延遲的增加網(wǎng)絡(luò)的吞吐量會進(jìn)一步降低。因此,只有在兩條路徑都出現(xiàn)故障時(shí)才使用這種方法。
圖9 節(jié)點(diǎn)3 故障時(shí)的路徑選擇模型Fig.9 Route choice model in node 3 failure
根據(jù)現(xiàn)場的應(yīng)用情況,通過單信道網(wǎng)絡(luò)結(jié)構(gòu)和多信道兩種路徑的網(wǎng)絡(luò)結(jié)構(gòu)在能量消耗和吞吐量兩個(gè)方面的比較,綜合分析本文提出的信道分配和路由算法以及分布式多信道MAC 協(xié)議。設(shè)定數(shù)據(jù)信道的帶寬為1 Mbit/s,數(shù)據(jù)包的長度Ld為1 kbit,發(fā)送失敗后最大的重復(fù)次數(shù)為5.下面將單信道與多信道網(wǎng)絡(luò)在能耗和吞吐量兩個(gè)方面進(jìn)行比較。發(fā)送方與接收方發(fā)送或接收數(shù)據(jù)的信號傳輸功率模型為
式中:Pr為接收方的接收功率(W);Pt為發(fā)送方的發(fā)送功率(W);gt為發(fā)送方的天線增益;gr為接收方的天線增益;d 為發(fā)送方與接收方的距離(m);λ 為載波波長(m);n 為路徑損失系數(shù),根據(jù)物理環(huán)境的不同在2~6 之間變動(dòng)。
假設(shè)Pmin為接收方的最小接收功率,gt,gr,λ 為常量,空曠環(huán)境下n 取值為2,因此,可以將發(fā)送功率Pt與距離d 的關(guān)系表示為
在單信道WSN 和多信道單路徑模型中傳感器節(jié)點(diǎn)的通信距離為d0,則發(fā)送功率為Ps= Pms=Gd20,而多信道雙路徑模型中傳感器節(jié)點(diǎn)的通信距離為2d0,發(fā)送功率為Pmd=4Gd20.以源節(jié)點(diǎn)到目的節(jié)點(diǎn)的距離的跳數(shù)為Np,節(jié)點(diǎn)發(fā)送數(shù)據(jù)所需要的時(shí)間為T,源節(jié)點(diǎn)發(fā)送n 個(gè)數(shù)據(jù)包為例。單信道和多信道單路徑網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包發(fā)送所消耗的能量為Ws=Wms=nNpGd20T.多信道雙路徑所消耗的能量為
圖10 為現(xiàn)場應(yīng)用情況下能量消耗與網(wǎng)絡(luò)負(fù)載之間的關(guān)系,多信道雙路徑網(wǎng)絡(luò)的能耗大約是單信道和多信道單路徑網(wǎng)絡(luò)的2 倍。由于單信道無法解決終端隱藏和終端暴露問題,隨著用戶負(fù)載的增加,網(wǎng)絡(luò)上的數(shù)據(jù)碰撞使傳感器節(jié)點(diǎn)發(fā)送次數(shù)增多,進(jìn)而增加了網(wǎng)絡(luò)的能量消耗,所以單信道網(wǎng)絡(luò)的能耗比多信道單路徑網(wǎng)絡(luò)多一些。
圖10 能量消耗與網(wǎng)絡(luò)負(fù)載之間的關(guān)系Fig.10 Relationship between energy consumption and network load
在前面已經(jīng)討論了理想情況下3 種網(wǎng)絡(luò)模型的吞吐量?,F(xiàn)場應(yīng)用情況下3 種網(wǎng)絡(luò)的吞吐量如圖11 所示,隨著節(jié)點(diǎn)負(fù)載的增加3 種網(wǎng)絡(luò)的吞吐量到達(dá)飽和后,傳感器節(jié)點(diǎn)間搶占信道,節(jié)點(diǎn)退避造成網(wǎng)絡(luò)延遲增加,進(jìn)而網(wǎng)絡(luò)吞吐量開始逐漸降低,其中單信道網(wǎng)絡(luò)衰減的尤為嚴(yán)重。
圖11 吞吐量與網(wǎng)絡(luò)負(fù)載之間的關(guān)系Fig.11 Relationship between throughput and network load
針對應(yīng)用在輸油管道上的單信道WSN 所遇到的問題,提出了單路徑和雙路徑2 種多信道網(wǎng)絡(luò)模型及其信道分配和路由方法。與其他MAC 協(xié)議相比,文中所提出的分布式MAC 協(xié)議不需要任何形式的時(shí)間同步,適合于節(jié)點(diǎn)距離較遠(yuǎn)的WSN.與單信道WSN 相比,所提出的多信道WSN 顯著提高了網(wǎng)絡(luò)的吞吐量,而且多信道單路徑網(wǎng)絡(luò)能量消耗少。雖然,多信道雙路徑網(wǎng)絡(luò)的傳感器節(jié)點(diǎn)采用較大的通信半徑,需要消耗較多的能量,但是提高了網(wǎng)絡(luò)的吞吐量,增強(qiáng)了網(wǎng)絡(luò)的容錯(cuò)能力。
References)
[1] Alicherry M,Bhatia R,Erran L.Joint channel assignment and routing for throughput optimization in multi-radio wireless mesh networks[J].IEEE Journal on Selected Areas in Communications,2006,24(11):1960-1971.
[2] Jungmin S,Nitin H.Multi-channel MAC for Ad hoc networks:handling multi-channel hidden terminals using a single transceiver[C]∥Proceedings of the 5th ACM International Symposium on Mobile Ad Hoc Networking and Computing.New York:ACM:2004:222-233.
[3] Wu S L,Lin C Y,Tseng Y C.A new multi-channel MAC protocol with on-demand channel assignment for multi-h(huán)op mobile ad hoc networks[C]∥International Symposium on Parallel Architectures,Algorithms and Networks.Dallas:I-SPAN,2000:232-237.
[4] Haas Z J,Jing D.Dual busy tone multiple access (DBTMA)-a multiple access control scheme for ad hoc networks[J].IEEE Transactions on Communications,2002,50(6):975-985.
[5] Wu S L,Tseng Y C,Sheu J P.Intelligent medium access for mobile ad hoc networks with busy tones and power control[J].IEEE Journal on Selected Areas in Communications,2000,18(9):1647-1657.
[6] Shacham N,King P.Architectures and performance of multichannel multihop packet radio networks[J].IEEE Journal on Selected Areas in Communications,1987,5(6):1013-1025.
[7] Maheshwari R,Gupta H,Das S R.Multichannel MAC protocols for wireless networks[C]∥3rd Annual IEEE Communications Society on Sensor and Ad Hoc Communications and Networks.Reston,VA:IEEE,2006:393-401.