一種多信道混合方式的無線傳感器網(wǎng)絡(luò)MAC協(xié)議
掃描二維碼
隨時隨地手機(jī)看文章
引言
隨著人們對周圍信息的需求不斷增大,無線傳感器網(wǎng)絡(luò)會被應(yīng)用到各種環(huán)境之中。無線傳感器網(wǎng)絡(luò)所承載的信息也會也來越多,對網(wǎng)絡(luò)的實時性及帶寬會要求更高。由于無線傳感器網(wǎng)絡(luò)中的節(jié)點是由電池供電,能量有限,為了維持節(jié)點較長的生命周期,很多MAC協(xié)議忽視了網(wǎng)絡(luò)對實時性及帶寬的需求。事實上,必須重新考慮協(xié)議的設(shè)計,使網(wǎng)絡(luò)既能保持較長的生命周期,又能減少延遲,兼顧實時性和吞吐量。
1相關(guān)工作
目前的無線傳感器網(wǎng)絡(luò)MAC協(xié)議按信道類型分為單信道與多信道。單信道類型的MAC協(xié)議的所有節(jié)點都在一個信道上,節(jié)點要監(jiān)聽信道的狀態(tài),在信道空閑時傳輸數(shù)據(jù)。而多信道則將一個頻段分為多個小的信道,節(jié)點可以有選擇地選擇其中的一個或多個進(jìn)行數(shù)據(jù)接收與傳送。這樣就可以在一個時間片槽內(nèi)傳輸多路信息,提高了網(wǎng)絡(luò)的帶寬與吞吐率。顯然,多信道的協(xié)議設(shè)計更能滿足網(wǎng)絡(luò)對數(shù)據(jù)傳輸量的需要。
無線傳感器網(wǎng)絡(luò)的MAC協(xié)議的信道訪問策略主要有基于競爭的方式、基于調(diào)度的方式以及混合的方式。競爭方式的協(xié)議簡單,利于實現(xiàn),不需要全局網(wǎng)絡(luò)信息,拓展性良好,但節(jié)點需要監(jiān)聽信道的狀態(tài),長時間的無用的監(jiān)聽浪費了節(jié)點的能量。基于調(diào)度的方式可以分時槽地進(jìn)行數(shù)據(jù)傳輸,減少了無用的監(jiān)聽及數(shù)據(jù)的沖突,節(jié)省了能量,但基于調(diào)度式的方法實現(xiàn)復(fù)雜,需要時間同步,拓展性不好。而混合了兩種方式的混合協(xié)議可以吸取它們雙方的優(yōu)點,再通過適當(dāng)?shù)慕M合方式盡量減小它們的弱點對網(wǎng)絡(luò)性能的影響。
在無線傳感器網(wǎng)絡(luò)領(lǐng)域,S-MAC協(xié)議是最為經(jīng)典的基于競爭方式的MAC協(xié)議。S-MAC協(xié)議采用了睡眠周期的方式來節(jié)省能量,極大地提高了網(wǎng)絡(luò)節(jié)點的生存周期。之后的T-MAC協(xié)議在S-MAC協(xié)議的基礎(chǔ)上調(diào)整了睡眠周期的時間長度,使睡眠周期隨著網(wǎng)絡(luò)狀態(tài)可變,提高了節(jié)點的能量利用^adjustE0E1E2E3Sleep效率。EM-MAC是一種多信道的基于調(diào)度方式的MAC協(xié)議,它采用接收端初始化與提前喚醒的調(diào)度方式,節(jié)省了能量。ZMAC是一種結(jié)合CSMA與TDMA方式的混合協(xié)議。在網(wǎng)絡(luò)低負(fù)載時,采用CSMA的方式,提高信道利用率,減少時延。在高負(fù)載時,采用TDMA的方式,減少對信道的過度競爭產(chǎn)生的沖突與擁塞。IEEE802.15.4定義的MAC協(xié)議也是一種典型的混合方式的MAC協(xié)議,它在超幀的狀態(tài)下將工作周期分為兩個階段,即信道競爭接入階段(ContentionAccessPeriod)和信道非競爭階段(ContentionFreePeriod)。這種幀格式的方法較為靈活。
2協(xié)議設(shè)計
2.1幀結(jié)構(gòu)
本協(xié)議借鑒IEEE802.15.4的超幀格式,將超幀分為三個階段,分別為信標(biāo)階段(Beacon)、活躍階段(Active)和睡眠階段(Sleep)。在信標(biāo)階段,匯聚節(jié)點廣播信標(biāo)數(shù)據(jù)包。在活躍階段里,又分為兩個周期,為競爭訪問周期(ContentionAccessPeriod,CAP)和調(diào)度訪問周期(ScheduledAccessPeriod,SAP)。在競爭訪問周期,采用帶沖突避免的載波監(jiān)聽多路訪問(CSMA/CA)的方式接入信道。在調(diào)度訪問周期,采用時分多路訪問(TDMA)的方式接入。超幀結(jié)構(gòu)示意圖如圖1所示。
圖1超幀結(jié)構(gòu)示意圖
信標(biāo)幀在超幀的最前端,標(biāo)志著超幀的起始界限。本協(xié)議的信標(biāo)幀除了包括自身的基本信息,如地址(Add)、類型(Type)、長度(Len)和校驗信息(CRC)外,還攜帶了多樣的控制信息(ControlMessages),減少了節(jié)點發(fā)送數(shù)據(jù)包的數(shù)量,降低了數(shù)據(jù)沖突的概率,節(jié)省了能量。信標(biāo)幀包含了競爭訪問周期分配長度(CAPAssignList)和調(diào)度訪問周期分配長度(SAPAssignList)及上次傳輸給匯聚節(jié)點的幀的確認(rèn)信息(ACKMessages)。另外,信標(biāo)幀還包含對活躍階段和睡眠階段的時間長度的動態(tài)調(diào)整信息列表(AdjustMessagesList)。信標(biāo)幀的結(jié)構(gòu)示意圖如圖2所示。
2.2節(jié)點活躍與睡眠階段的動態(tài)調(diào)整
無線傳感器網(wǎng)絡(luò)中的節(jié)點能量有限,所以采用工作與睡眠交替進(jìn)行的方式來節(jié)省能量。在活躍階段,節(jié)點感應(yīng)實時信息,并將感應(yīng)信息發(fā)送給匯聚節(jié)點,同時節(jié)點也可以接收匯聚節(jié)點或其他節(jié)點發(fā)來的信息并進(jìn)行轉(zhuǎn)發(fā)。而在睡眠階段,節(jié)點則進(jìn)入到低功耗狀態(tài),不接收和發(fā)送信息。但是,在很多情況下固定地分配這兩種狀態(tài)的時長會影響節(jié)點發(fā)送數(shù)據(jù)的實時性,導(dǎo)致一些重要信息的延遲,因而需要進(jìn)行動態(tài)的調(diào)整。
圖2信標(biāo)幀的結(jié)構(gòu)示意圖
在本協(xié)議中,用Tmm代表活躍階段的時長,T;ct,ve代表下一個工作周期活躍階段的時長,E。、E1、E,、E3分別代表感知事件。設(shè)置兩個參數(shù)Adjust和TPlan,分別代表兩個時間變量。初始時,設(shè)定Tplan=0.3Tactive?Tadjust=0.2Tplan°對活躍和睡眠階段的動態(tài)調(diào)整如圖3所示,在7Pian之外有感知事件E。、E1發(fā)生,但在TPlan之內(nèi)沒有感知事件發(fā)生。說明感知事件發(fā)送得較早,那么應(yīng)當(dāng)可以減小激活周期,節(jié)省能量,則在下一次的工作周期中T,active=Tactive-Tadjust°在^plan之內(nèi)有感知事件E2發(fā)生并且在Adjust之內(nèi)沒有感知事件發(fā)生,則說明感知事件正好在活躍周期內(nèi),下一次工作周期不做調(diào)整。在Adjust之內(nèi)有感知事件E3發(fā)生,說明活躍周期過短,有可能會錯過一些感知事件,則Tactive=Tlctive+Tadjust,T,active=Tactive+Tldjust°同時也要對下一周期的Adjust進(jìn)行調(diào)整,保證感知事件的信息及時感應(yīng)并發(fā)送出去,所以,下一周期要滿足如下條件:
ust_^active—Tplan
^plan^active
按照這個比例調(diào)整,下一周期就會適當(dāng)調(diào)大Tadjust,不會錯過在活躍階段邊緣的感知事件,保證網(wǎng)絡(luò)的實時性。
2.3信道狀態(tài)估計算法
本協(xié)議中,在發(fā)送數(shù)據(jù)前要對信道狀態(tài)有基本的估計。節(jié)點應(yīng)盡量在信道狀態(tài)較好的信道上進(jìn)行收發(fā)數(shù)據(jù),保證信息的及時到達(dá),減少重傳,達(dá)到節(jié)省能量與降低網(wǎng)絡(luò)時延的目的。在節(jié)點內(nèi)存中,通??梢酝ㄟ^維護(hù)一個信道狀態(tài)表來確定信道狀態(tài)。信道狀態(tài)分為兩類:好與壞。設(shè)置變量checknumber初始值為1,最大值為3。如果節(jié)點經(jīng)一個信道連續(xù)發(fā)送兩次信息都丟失,則checknumber減1:若連續(xù)發(fā)送成功5次,則加1。checknumber大于等于2,則信道狀態(tài)為好。checknumber小于等于0,則信道狀態(tài)為不好。如果checknumber為1,則采用馬爾科夫鏈的方式預(yù)測下一個信道狀態(tài)的好壞。
馬爾科夫鏈?zhǔn)菙?shù)學(xué)中具有馬爾科夫性質(zhì)的隨機(jī)過程。在給定當(dāng)前信息的情況下,過去(即當(dāng)期以前的歷史狀態(tài))對于預(yù)測將來(即當(dāng)期以后的未來狀態(tài))是無關(guān)的。這里設(shè)定信道狀態(tài)轉(zhuǎn)換概率為Pv,i表示當(dāng)前狀態(tài),j表示下一周期的信道狀態(tài)。x(t)表示在t時刻的信道狀態(tài),那么信道狀態(tài)概率可以記為:pi]=p{x(t)=i\x(t+\)=j}
這樣,根據(jù)信道的狀態(tài)空間E={0,1}(0代表信道狀態(tài)好,1代表信道狀態(tài)壞),就可以得到馬氏鏈的一步轉(zhuǎn)移矩陣:
PPooPoiP=IP10P111
前一周期信道狀態(tài)好,下一周期的信道狀態(tài)轉(zhuǎn)移概率為P0j=P{x(t)=0|x(t+1)=]}。前一周期信道狀態(tài)壞,下一周期的信道狀態(tài)轉(zhuǎn)移概率為P1j=P{x(t)=1|x(t+1)=]}。這樣就可以選擇較大的信道狀態(tài)轉(zhuǎn)移概率來對信道狀態(tài)進(jìn)行判斷,并更新矩陣的概率。
2.4多信道調(diào)度
在調(diào)度訪問周期,由于每個節(jié)點有多個信道,所以要讓兩個想要相互通信的節(jié)點在同一時刻的同一個信道上相遇,為此可以采用調(diào)度表的方式。首先在協(xié)議的初始化時期,所有節(jié)點在第一個信道采用競爭訪問的方式進(jìn)行收發(fā)信息。節(jié)點會采用將注冊信息發(fā)送給鄰居節(jié)點,然后再轉(zhuǎn)發(fā)給匯聚節(jié)點。當(dāng)鄰居節(jié)點收到要轉(zhuǎn)發(fā)的注冊信息時,會發(fā)送收到信息的確認(rèn)信息,那么節(jié)點就記住給它發(fā)送確認(rèn)信息的節(jié)點的標(biāo)示,找出自己的鄰居節(jié)點。然后此節(jié)點向所有的鄰居節(jié)點廣播自己的信道調(diào)度表。信道調(diào)度表有五項元素組成,分別是信道序號(Chan)、時槽序號(Time)、信道狀態(tài)(Status)、節(jié)點標(biāo)識號(NodelD)和表標(biāo)識號(TablelD)。在每一時刻的信道上,只允許兩個節(jié)點正在通信,所以在信道序號與時槽序號交叉的單元中最多可以存放兩個節(jié)點標(biāo)識號。信道調(diào)度表如表1所列,在Time1時槽,Chan1信道上,節(jié)點1和節(jié)點2進(jìn)行通信。
鄰居節(jié)點根據(jù)自己的調(diào)度表在空閑的時槽隨機(jī)選擇時槽及信道,并更新自己的調(diào)度表,然后將信道調(diào)度表發(fā)回源節(jié)點。如果在這一時槽及這一時槽的信道都為空閑,則節(jié)點返回成功信息,然后就可以按調(diào)度表通信。若在這一過程中有其他節(jié)點先搶占了信道或時槽,則節(jié)點再次發(fā)送更新的調(diào)度表,直至完成,則可以進(jìn)入調(diào)度訪問周期進(jìn)行通信。
表1信道調(diào)度表
TableID |
Chan1 |
Chan2 |
Chan3 , |
Chan16 |
Time1 |
1/2 |
Null |
Null |
Null |
Time2 |
Null |
2/6 |
Null |
Null |
Time20 |
Null |
Null |
Null |
1/3 |
status |
0 |
0 |
1 |
0 |
3仿真與實現(xiàn)
本文在NS-2平臺下,進(jìn)行了對本協(xié)議的仿真實驗。同時在實現(xiàn)MCHMAC協(xié)議之后,還對ZMAC和單信道IEEE802.15.4MAC協(xié)議,從吞吐量和傳輸時延這兩方面進(jìn)行了比較分析。
3.1仿真參數(shù)設(shè)置
本實驗在300mX300m的實驗場景進(jìn)行,選取節(jié)點數(shù)50,節(jié)點間最大通信半徑15m。通信頻段在2.4GHz,包大小在100~300b。路由協(xié)議均采用AODV協(xié)議,數(shù)據(jù)流生成工具選擇生成CBR流。
3.2性能分析
網(wǎng)絡(luò)吞吐量是網(wǎng)絡(luò)性能的一個重要參數(shù),是指在不丟包的情況下單位時間內(nèi)節(jié)點可以接收的數(shù)據(jù)量,單位是b/s。一方面,由于MCHMAC采用多信道,做到了數(shù)據(jù)的并發(fā),提高了網(wǎng)絡(luò)的吞吐量。另一方面,信道調(diào)度算法降低了數(shù)據(jù)包的沖突率,減少了重傳等事件發(fā)生的概率,所以相對來說提高了網(wǎng)絡(luò)的吞吐量。另外,本協(xié)議在信標(biāo)幀中攜帶收到確認(rèn)信息,減少發(fā)送確認(rèn)幀的時間,進(jìn)而提高了網(wǎng)絡(luò)中有效信息的吞吐量。為了計算網(wǎng)絡(luò)的吞吐量,本文在NS-2當(dāng)中分析Trace文件時,使用以下方式計算吞吐量:
TB(n)-TB(m)RT(n)-RT(m)
RT(n)是指第i個包的接收時間,TB(n)代表第n個分組被目的節(jié)點接收時已經(jīng)傳輸?shù)臄?shù)據(jù)總量。公式表示計算從第m個分組到第n個分組的吞吐量,若m=1,則代表從第一個包開始計算,即計算網(wǎng)絡(luò)的平均吞吐量。本文中通過增加發(fā)包速率來分析網(wǎng)絡(luò)的吞吐量。在低發(fā)包速率下,網(wǎng)絡(luò)的吞吐量差距不大,但隨著發(fā)包率的增加,MCHMAC協(xié)議的吞吐量明顯優(yōu)于其他協(xié)議。具體仿真結(jié)果如圖4所示。
網(wǎng)絡(luò)傳輸時延也可以叫做端到端時延,它是網(wǎng)絡(luò)性能的重要指標(biāo)之一。本文中以分組發(fā)送和到達(dá)之間的時間間隔來計算傳輸時延,計算公式為:
D(i)=RT(i)-ST(i)
式中,D(i)表示第i個分組的傳輸時延,RT(i)表示第i個分組的接收時間,ST(i)表示第i個分組的發(fā)送時間。在文中,要分析網(wǎng)絡(luò)的平均傳輸時延,平均傳輸時延D的計算公式為:
幀發(fā)送速率越大,網(wǎng)絡(luò)的平均時延越大。MCHMAC協(xié)議的時延起伏較小,具體仿真結(jié)果如圖5所示。
4結(jié)語
本文提出了一種多信道混合方式的MAC協(xié)議一一MCHMAC,釆用了動態(tài)調(diào)整活躍和睡眠周期,保證了網(wǎng)絡(luò)的實時性,節(jié)省了能量。協(xié)議釆用了基于競爭和調(diào)度相結(jié)合的方式,并結(jié)合信道狀態(tài)估計算法和信道調(diào)度表選擇最優(yōu)信道傳輸信息,增大了網(wǎng)絡(luò)的吞吐量,降低了平均傳輸時延。
20211022_6172db7f4447b__一種多信道混合方式的無線傳感器網(wǎng)絡(luò)MAC協(xié)議