李 曼,熊慶宇,2,石為人,冀文娟
(1.重慶大學(xué)自動化學(xué)院,重慶 400030;2.重慶大學(xué) 軟件學(xué)院,重慶 400030)
無線傳感器網(wǎng)絡(luò)MAC協(xié)議決定著無線信道的使用方式,負責(zé)為節(jié)點分配無線通信資源,直接影響著網(wǎng)絡(luò)的延遲、能耗和吞吐量等性能[1]。目前的MAC協(xié)議大都以降低節(jié)點能耗、延長網(wǎng)絡(luò)周期為首要目標(biāo)[2]。但在某些對實時性要求很高的網(wǎng)絡(luò)應(yīng)用環(huán)境,如軍事防御、災(zāi)難預(yù)警等[3],如何在最短的時間內(nèi)獲得異常是監(jiān)測的關(guān)鍵。因此,設(shè)計適用于這些情況的低時延MAC協(xié)議十分重要。
目前的低時延 MAC協(xié)議主要有 VTS協(xié)議[4],Dualmode MAC 協(xié)議[5],TOMAC 協(xié)議[6],I-EDF 協(xié)議[7]等,VTS協(xié)議將每個時間周期分割成時間隙,每個節(jié)點在固定的時間隙傳輸數(shù)據(jù),無法實現(xiàn)數(shù)據(jù)在一個時間隙內(nèi)的多跳傳輸。Dual-mode MAC分為保護模式和非保護模式2種,通過2種模式的相互轉(zhuǎn)換實現(xiàn)數(shù)據(jù)傳輸穩(wěn)定性和速度的平衡。但是,由于Dual-mode MAC要求節(jié)點已知自己的位置信息使得它的實現(xiàn)難度大。TOMAC主要應(yīng)用于單跳傳輸?shù)木W(wǎng)絡(luò)系統(tǒng),不能適應(yīng)多跳網(wǎng)絡(luò)中數(shù)據(jù)的低時延傳輸。
針對上述低時延MAC協(xié)議的不足,本文提出了一種基于信道預(yù)約和反饋的低時延RF-MAC(reservation-feedback MAC)協(xié)議。RF-MAC協(xié)議是在S-MAC的基礎(chǔ)上提出的。通過在數(shù)據(jù)發(fā)送前發(fā)送預(yù)約信息,節(jié)點在預(yù)約的時間內(nèi)自行激活傳輸數(shù)據(jù)的方法,克服了S-MAC協(xié)議周期睡眠造成延遲累加的缺點[8]。同時,通過向源節(jié)點發(fā)送反饋控制包的方法,使得后續(xù)數(shù)據(jù)提前發(fā)送,提高了信道的利用率,降低了數(shù)據(jù)傳輸?shù)臅r延。RF-MAC協(xié)議適用于數(shù)據(jù)傳輸量大且對實時性要求較高的場合。
RF-MAC協(xié)議主要針對單數(shù)據(jù)流通信的情況,即網(wǎng)絡(luò)中僅有一個源節(jié)點和一個匯聚節(jié)點。假設(shè)運行區(qū)域為線性系統(tǒng),每個節(jié)點僅能與其單跳鄰居節(jié)點通信[9]。若2個可相互通信的節(jié)點之間存在多余的節(jié)點,則將此節(jié)點設(shè)置為睡眠狀態(tài)。RF-MAC協(xié)議的網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖1所示。
圖1 RF-MAC協(xié)議的網(wǎng)絡(luò)拓撲圖Fig 1 Network topology structure of RF-MAC protocol
RF-MAC協(xié)議繼承了S-MAC協(xié)議的睡眠機制和RTS/CTS/DATA/ACK握手機制,在RTS和CTS數(shù)據(jù)包中添加預(yù)約信息實現(xiàn)信道的預(yù)約。RTS控制包中含有發(fā)送節(jié)點的最近可發(fā)送時間TS和數(shù)據(jù)傳輸持續(xù)時間TD,接收節(jié)點收到RTS后,將發(fā)送節(jié)點的TS與自身的預(yù)約時間表中的最近可接收時間TR進行比較,確定數(shù)據(jù)的預(yù)約傳輸時間。
1)若TR<TS,預(yù)約時間為[TSTS+TD]
當(dāng)TR<TS時,即接收節(jié)點在發(fā)送節(jié)點到達其最近可發(fā)送時間TS前已處于可接收數(shù)據(jù)狀態(tài),發(fā)送節(jié)點到達TS即可直接發(fā)送數(shù)據(jù)。
2)若TR>TS,預(yù)約時間為[TRTR+TD]
當(dāng)TR>TS時,即發(fā)送節(jié)點到達其最近可發(fā)送時間TS時,接收節(jié)點還不能接收數(shù)據(jù),則調(diào)整預(yù)約時間為[TR,TR+TD]。
接收節(jié)點將預(yù)約信息通過CTS控制包返回給發(fā)送節(jié)點,發(fā)送節(jié)點收到CTS控制包后即完成了數(shù)據(jù)的一跳預(yù)約。
在RF-MAC協(xié)議中,每個節(jié)點含有一個預(yù)約時間表。其格式如表1所示。
表1 預(yù)約時間表Tab 1 Reserved time list
在多數(shù)據(jù)傳輸?shù)臒o線傳感器網(wǎng)絡(luò)中,若每個數(shù)據(jù)都等待前一個數(shù)據(jù)傳輸完成再進行傳輸會造成較大的時延。RF-MAC協(xié)議中引入了反饋的思想:利用向源節(jié)點發(fā)送反饋控制包F的方法,使源節(jié)點可以及時的了解信道的忙閑情況,從而盡早的發(fā)送后續(xù)數(shù)據(jù)。
反饋機制中的參數(shù):
1)反饋控制包F的標(biāo)識符FC:反饋控制包到達源節(jié)點所需的跳數(shù)。
變化范圍為0~3
在反饋控制包F開始發(fā)送時,F(xiàn)C的初始值為3,F(xiàn)每經(jīng)過一跳傳輸,F(xiàn)C的值減少1,當(dāng)F到達源節(jié)點時,F(xiàn)C的值變?yōu)?。
2)節(jié)點標(biāo)識符NSF:決定節(jié)點收發(fā)數(shù)據(jù)情況。
變化范圍為0,1
NSF=0:僅能接收數(shù)據(jù);
NSF=1:既可接收也可發(fā)送數(shù)據(jù);
3)數(shù)據(jù)包標(biāo)識符HC:決定發(fā)送反饋控制包所需的跳數(shù)。
變化范圍為0~4,OFF
在RF-MAC中,若HC值太小,系統(tǒng)會不停地發(fā)送反饋控制包以及等待反饋控制包傳輸,這樣會造成大量的時延和能量浪費。若HC值太大,后續(xù)數(shù)據(jù)不能及時地發(fā)送。本文中設(shè)定4跳以下的數(shù)據(jù)傳輸為短距離傳輸。
數(shù)據(jù)包的HC值在源節(jié)點時為4,數(shù)據(jù)每經(jīng)過一跳,HC的值減少1,當(dāng)HC的值變?yōu)?時,收到此數(shù)據(jù)的節(jié)點向其發(fā)送節(jié)點發(fā)送ACK后,其發(fā)送節(jié)點開始向源節(jié)點發(fā)送反饋控制包F。反饋控制包F開始發(fā)送后,設(shè)定數(shù)據(jù)包的HC為OFF。
反饋機制是通過反饋控制包F的標(biāo)識符FC控制節(jié)點的NSF標(biāo)識符從而達到反饋和控制后續(xù)數(shù)據(jù)的發(fā)送的效果。
RF-MAC協(xié)議的具體運行過程如圖2所示。
圖2 RF-MAC協(xié)議運行過程Fig 2 Working process of RF-MAC protocol
N0為源節(jié)點,N10為匯聚節(jié)點,設(shè)N0有n個數(shù)據(jù)需要發(fā)送到N10。
1)數(shù)據(jù)預(yù)約
N0首先發(fā)送有預(yù)約信息的控制包RTS給N1,N1結(jié)合自己的預(yù)約時間表和收到的RTS信息確定數(shù)據(jù)發(fā)送的預(yù)約時間,N1將此預(yù)約時間寫入預(yù)約時間表并通過CTS返回給N0。N0收到CTS后即完成數(shù)據(jù)D0從N0到N1的預(yù)約。N1按同樣的方式完成數(shù)據(jù)預(yù)約以后,N0若到達預(yù)約時間則發(fā)送數(shù)據(jù)。按照相同的方式,可以完成對N2,N3,…,N10的預(yù)約。
2)數(shù)據(jù)包的發(fā)送
當(dāng)N1在其預(yù)約時間內(nèi)收到數(shù)據(jù)D0后發(fā)送ACK給N0,N0收到N1發(fā)送的ACK后,設(shè)定自身NSF為0,即此時N0只能接收數(shù)據(jù),不能發(fā)送數(shù)據(jù)。
3)反饋控制包的發(fā)送
D0的HC值在N0時為4,D0每經(jīng)過一跳,HC的值減少1,當(dāng)D0傳輸?shù)絅4時,其HC的值變?yōu)?。當(dāng)N4成功發(fā)送ACK給N3后,若檢測到D0的HC為0,則等待三個控制時段再發(fā)送D0給N5,在第一個控制時段,N3發(fā)送反饋控制包F給N2并設(shè)定自身的NSF為0。在第二個控制時段,N2發(fā)送反饋控制包F給N1并設(shè)定自身的NSF為0。在第三個控制階段,N1發(fā)送反饋信號給N0且設(shè)定自身的NSF值為1。
4)后續(xù)數(shù)據(jù)的發(fā)送
當(dāng)源節(jié)點N0的標(biāo)識符NSF變?yōu)?后,可進行下一個數(shù)據(jù)D1的預(yù)約和發(fā)送。
無線傳感器網(wǎng)絡(luò)中的時延是指從發(fā)送端發(fā)送一個數(shù)據(jù)包,直到接收端成功接收這一數(shù)據(jù)所以經(jīng)歷的時間[10]。假設(shè)在一個N跳無線傳感器網(wǎng)絡(luò)中,從源節(jié)點到目的節(jié)點的通信流連續(xù),且每個節(jié)點發(fā)送的數(shù)據(jù)速度是相同的。
在RF-MAC協(xié)議中,如圖2所示,數(shù)據(jù)每一跳傳輸都需要發(fā)送控制包RTS,CTS,ACK以及數(shù)據(jù)包DATA,且當(dāng)數(shù)據(jù)傳輸跳數(shù)N>4時,需要發(fā)送反饋控制包F。同時為了避免碰撞,當(dāng)一個偵聽周期的第一個節(jié)點發(fā)送RTS和收到CTS后,必須等待其下一個節(jié)點也完成預(yù)約,才能開始發(fā)送數(shù)據(jù),即數(shù)據(jù)第二跳以后的預(yù)約都與數(shù)據(jù)的傳輸相重疊。則單個數(shù)據(jù)傳輸N跳的時延T(1)為
式中T(1)為單個數(shù)據(jù)包傳輸所需的時間;N為數(shù)據(jù)包傳輸?shù)奶鴶?shù);M為每個偵聽周期可預(yù)約的跳數(shù),M>2;N/M為完成N跳傳輸所需要的工作周期;TDATA為數(shù)據(jù)包DATA的一跳傳輸時間;TACK為控制包ACK的一跳傳輸時間;TRTS為控制包RTS的一跳傳輸時間;TCTS為控制包CTS的一跳傳輸時間;TF為控制包F的一跳傳輸時間。
為了方便計算,數(shù)據(jù)傳輸?shù)臅r間TDATA設(shè)為TD,令控制包RTS,CTS,ACK和F的一跳傳輸時間相同,用TC表示。即TRTS=TCTS=TACK=TF=TC。
將TC,TD代入式(1)得
1)當(dāng)傳輸跳數(shù)N小于或等于4時,不需要發(fā)送反饋數(shù)據(jù)包F,則每增加一個數(shù)據(jù)傳輸產(chǎn)生的時延增量T增與單個數(shù)據(jù)傳輸時產(chǎn)生的時延相同,由公式(3)得
則n個數(shù)據(jù)傳輸完成的總時延T(n)為
2)當(dāng)傳輸距離N>4時,由圖2可知,數(shù)據(jù)傳輸4跳以后發(fā)送反饋控制包F,源節(jié)點收到F后即發(fā)送后續(xù)的數(shù)據(jù)。源節(jié)點收到F以后,前一個數(shù)據(jù)的傳輸與后面數(shù)據(jù)的傳輸是重疊的。此時每增加一個數(shù)據(jù)傳輸,總時延的增量T增為
則n個數(shù)據(jù)的總時延T(n)為
由2.1節(jié)和2.2節(jié)的分析可得,預(yù)約機制有效地降低了S-MAC周期睡眠所產(chǎn)生的傳輸時延累積,同時,反饋機制可以使后續(xù)數(shù)據(jù)與前面數(shù)據(jù)同時傳輸,增大了網(wǎng)絡(luò)的吞吐量,節(jié)省了后續(xù)數(shù)據(jù)等待發(fā)送的時間。
為了證明RF-MAC協(xié)議降低時延的有效性,本文通過OMNET++對RF-MAC協(xié)議、S-MAC協(xié)議和VTS協(xié)議的性能進行仿真比較。在仿真中設(shè)定:傳感器節(jié)點隨機的分布在1000 m×1 000 m的區(qū)域內(nèi),每個節(jié)點的通信范圍為100 m,產(chǎn)生數(shù)據(jù)的速率滿足泊松分布,提供32kbps的帶寬,設(shè)定3種協(xié)議中節(jié)點發(fā)送能耗為36 mW,空閑偵聽和接收數(shù)據(jù)能耗為12 mW,數(shù)據(jù)包長度為100 bytes,控制包長度為10 bytes。S-MAC的周期為600 ms,VTS協(xié)議的時間周期為6 s,總的仿真時間為50 s。仿真結(jié)果如圖3~圖5所示。
圖3 網(wǎng)絡(luò)中數(shù)據(jù)包的時延Fig 3 Data packet’s latency of the network
由圖3可知,RF-MAC協(xié)議產(chǎn)生的時延明顯小于SMAC協(xié)議和VTS協(xié)議產(chǎn)生的傳輸時延。在VTS協(xié)議中,由于每個節(jié)點在固定的時隙內(nèi)傳輸數(shù)據(jù),源節(jié)點須經(jīng)過一個時間周期間隔后才能再次傳輸數(shù)據(jù),因此,它的時延遠大于S-MAC,RF-MAC等基于競爭的MAC協(xié)議。S-MAC的傳輸時延會隨著周期睡眠而累加。在RF-MAC協(xié)議中,數(shù)據(jù)按照預(yù)約好的時間進行傳輸,節(jié)點可以按照預(yù)約時間調(diào)節(jié)自己的覺醒時間。同時,通過向源節(jié)點發(fā)送反饋信息,加快了后續(xù)數(shù)據(jù)測發(fā)送,因此,RF-MAC具有良好的節(jié)省時延的效果。
圖4中描述了3種協(xié)議的丟包率和網(wǎng)絡(luò)節(jié)點數(shù)之間的關(guān)系,由于基于競爭的S-MAC協(xié)議在數(shù)據(jù)的傳輸過程中會有沖突導(dǎo)致部分?jǐn)?shù)據(jù)包丟失,當(dāng)網(wǎng)絡(luò)中節(jié)點數(shù)增大時,數(shù)據(jù)丟失嚴(yán)重。而使用時隙分配信道的VTS和使用預(yù)約來分配信道的RF-MAC在避免數(shù)據(jù)沖突方面的優(yōu)勢十分明顯。
圖4 網(wǎng)絡(luò)的丟包率Fig 4 Packet loss ratio of the network
圖5中描述了3種協(xié)議的網(wǎng)絡(luò)吞吐量和節(jié)點數(shù)之間的關(guān)系。由圖可知,S-MAC協(xié)議和RF-MAC協(xié)議的吞吐量都遠大于VTS協(xié)議。VTS協(xié)議是基于時間調(diào)度的協(xié)議,且每個時隙只能有一個節(jié)點傳輸數(shù)據(jù),因而,它的吞吐量恒為1。RF-MAC協(xié)議在S-MAC協(xié)議的基礎(chǔ)上引入了反饋機制,使后續(xù)數(shù)據(jù)和前面的數(shù)據(jù)同時傳輸,從而增大了網(wǎng)絡(luò)的吞吐量。
圖5 網(wǎng)絡(luò)吞吐量Fig 5 Throughput of the network
無線傳感器網(wǎng)絡(luò)是與應(yīng)用相關(guān)的網(wǎng)絡(luò),不同的應(yīng)用環(huán)境中對MAC協(xié)議的性能要求也各不相同。本文主要針對實時性要求較高的應(yīng)用環(huán)境,提出了一種基于信道預(yù)約和RF-MAC協(xié)議對無線傳感器網(wǎng)絡(luò)的時延、丟包率和吞吐量都有一定的改善作用。下一步工作將研究RF-MAC協(xié)議在多數(shù)據(jù)流通信情況下的應(yīng)用,使RF-MAC更適合實際的應(yīng)用系統(tǒng)。
[1]王 殊,閻毓杰,胡富平,等.無線傳感器網(wǎng)絡(luò)的理論與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2007.
[2]蹇 強,龔正虎.無線傳感器網(wǎng)絡(luò)MAC協(xié)議研究進展[J].軟件學(xué)報,2008,19(2):389 -403.
[3]鄭國強,李建東,周志立.無線傳感器網(wǎng)絡(luò)MAC協(xié)議研究進展[J].自動化學(xué)報.2008,34(3):305 -315.
[4]Egea E,Vales J.A real-time MAC protocol for wireless sensor networks:Virtual TDMA for sensor(VTS)[J].Lecture Notes in Computer Science,2006,7(2):382 -396.
[5]Watteyne T,Auge B I.Proposition of a hard real-time MAC protocol for wireless sensor networks[C]//IEEE Computer Society’s Annual International Symposium on Modeling,2005:53 -56.
[6]Krohn A,Beigl M.Tomac-real-time message ordering in wireless sensor networks using the MAC layer[C]//Proceedings of the 2nd International Workshop on Networked Sensing Systems,INSS,2005:175 -181.
[7]Caccamo M,Zhang L Y.The capacity of implicit EDF in wireless sensor networks[C]//15th IEEE Euromicro Conference on Real-Time System,Portugal:IEEE,2003:267 -275.
[8]李洪峻,李 迅,馬宏須.無線傳感器網(wǎng)絡(luò)MAC協(xié)議實時性研究[J].計算機工程,2009,35(23):75 -80.
[9]Ye W,Estrin D.An energy-efficient MAC protocol for wireless sensor networks[C]//Proceedings of the 21st Annual Joint Conference of the IEEE Computer and Communications Societies,New York:USA,IEEE,2002:1567 -1576.
[10]鄧延安,沈連豐,許 波.一種應(yīng)用于多跳網(wǎng)絡(luò)的可調(diào)占空比固定時延MAC協(xié)議[J].東南大學(xué)學(xué)報:自然科學(xué)版,2008,38(6):942-948.