基于SMAC的無線傳感器網(wǎng)絡(luò)MAC協(xié)議的分析與優(yōu)化
掃描二維碼
隨時隨地手機看文章
摘要:首先對MAC協(xié)議進行了相關(guān)介紹。然后重點介紹了一種基于競爭的無線傳感器網(wǎng)絡(luò)MAC層協(xié)議SMAC協(xié)議。其核心是提出了一種新的無線傳感器網(wǎng)絡(luò)的MAC協(xié)議設(shè)計方案?;趧討B(tài)調(diào)整占空比的思想,提出了ATC-SMAC協(xié)議。該協(xié)議在S-MAC協(xié)議的基礎(chǔ)上改進了固定占空比的劣勢,根據(jù)每個節(jié)點上的數(shù)據(jù)包的平均延遲調(diào)整占空比。通過動態(tài)地調(diào)整每個節(jié)點的占空比,使不同流量的節(jié)點擁有不同的工作時間,協(xié)議根據(jù)不同節(jié)點的流量情況自適應(yīng)地對其占空比進行調(diào)整。經(jīng)過仿真試驗,得到ATC-MAC在網(wǎng)絡(luò)端對端延遲、能量消耗以及吞吐量方面較S-MAC協(xié)議都有比較明顯的提高。
關(guān)鍵詞:無線傳感器網(wǎng)路;MAC協(xié)議;動態(tài)占空比;ATC-SMAC協(xié)議
無線傳感器網(wǎng)絡(luò)協(xié)議ATC-SMAC主要是提高基于競爭的S-MAC協(xié)議的能量使用率,同時減少S-MAC協(xié)議的網(wǎng)絡(luò)延遲。ATC-SMAC協(xié)議通過自適應(yīng)地調(diào)整每一個節(jié)點的占空比,讓節(jié)點在不同的流量下使用不同的占空比工作,做到流量大時工作更長的時間,流量小時工作更短的時間,沒有流量的時候就不工作。
1 S-MAC協(xié)議的分析和研究
S-MAC協(xié)議是一種基于競爭的控制協(xié)議,具有同步機制功能與無中心等特點,不需要局部或全局中心主節(jié)點的調(diào)度傳感器節(jié)點自己發(fā)現(xiàn)鄰居節(jié)點,并合理地安排占用信道的時間。
1.1 S-MAC協(xié)議
S-MAC協(xié)議時間分為若干個幀,幀長度由應(yīng)用程序來確定,幀內(nèi)分為活動與睡眠兩個部分。在睡覺時段,節(jié)點關(guān)閉發(fā)送器模塊,緩存在此時負責采集數(shù)據(jù)信息,數(shù)據(jù)在等待序列中,到活動階段集中進行發(fā)送。在活動開始時,發(fā)送節(jié)點進入同步機制決定幀長度的確定方式,之后通過(RTS/CTS/DATA/ACK)機制發(fā)送數(shù)據(jù)信息,這個機制能夠避免因沖突產(chǎn)生的能耗。通過同步機制,局部的節(jié)點之間可以采用相同的時間周期,采用相同的工作休眠策略,它方便了無線傳感器網(wǎng)絡(luò)發(fā)現(xiàn)新節(jié)點。
1.2 S-MAC的節(jié)能機制分析
為了減少無線傳感器網(wǎng)絡(luò)消耗的能量,在IEEE 802.11基礎(chǔ)上提出了一種專門的傳感器網(wǎng)絡(luò)MAC協(xié)議S-MAc協(xié)議。無線傳感器網(wǎng)絡(luò)的沖突重傳、接收到不是發(fā)送給自己的數(shù)據(jù)、控制信號、空閑偵聽等造成傳感器網(wǎng)絡(luò)耗能的原因。它引入了節(jié)點間的SYNC機制,允許沒有數(shù)據(jù)發(fā)送和接收的節(jié)點進入休眠狀態(tài)以節(jié)省耗能。但根據(jù)前文所討論的,睡眠的本身會引起數(shù)據(jù)的傳輸中斷,從而增加延時。下面將具體分析S-MAC協(xié)議是怎么節(jié)能的。
1.2.1 交替?zhèn)陕牐邫C制
S-MAC協(xié)議的工作是按照周期進行的,在每個周期里,每一個基于S-MAC協(xié)議的節(jié)點都會工作一段時間、睡眠一段時間,通過減少節(jié)點的工作時間來節(jié)省能量。如圖1所示S-MAC協(xié)議的一個周期包含了睡眠和偵聽兩個階段,偵聽階段屬于工作階段,偵聽階段如果收到數(shù)據(jù)包,則節(jié)點之間會建立通信。如果節(jié)點處于睡眠狀態(tài),則節(jié)點不能接收任何數(shù)據(jù),發(fā)送給它的數(shù)據(jù)都會被阻塞。處于睡眠狀態(tài)的節(jié)點會在一定時間后醒來。在S-MAC協(xié)議中,相鄰的節(jié)點是盡量同時睡眠同時偵聽的,為了保證時間上的一致,防止時鐘偏移,不同節(jié)點間需要定期廣播同步包來交換時間信息,從而進行調(diào)整,做到同步。
1.2.2 “虛擬簇”機制
S-MAC協(xié)議使用了“虛擬簇”的機制,在“虛擬簇”機制下,節(jié)點之間的調(diào)度信息是通過節(jié)點廣播SYNC包來實現(xiàn)的。S-MAC協(xié)議使用調(diào)度表來保存調(diào)度信息,每一個節(jié)點會保存一個調(diào)度表。節(jié)點會在啟動的初期監(jiān)聽一段時間,因為S-MAC協(xié)議是固定占空比的,所以這段時間是固定的。在監(jiān)聽的這段時間,如果節(jié)點能夠收到鄰居節(jié)點的調(diào)度信息,則它使用鄰居節(jié)點的調(diào)度周期更新自己的調(diào)度周期,并且它會在一段時間后廣播自己的調(diào)度信息。如果接收到的鄰居節(jié)點的調(diào)度方式與自己的調(diào)度方式相同,則調(diào)度方式不變;如果發(fā)現(xiàn)鄰居節(jié)點的調(diào)度方式與自己不同,而且還沒有收到與自己調(diào)度方式相同的節(jié)點消息,則使用新的調(diào)度方式進行調(diào)度。
1.2.3 串音避免機制
基于競爭MAC協(xié)議能量消耗的一個重要原因就是串音。在S-MAC協(xié)議中,如果節(jié)點收到不是發(fā)送給自己的RTS數(shù)據(jù)包或CTS數(shù)據(jù)包,節(jié)點會直接進入睡眠狀態(tài)。這樣,發(fā)送數(shù)據(jù)包的節(jié)點就不會把數(shù)據(jù)包和ACK報文發(fā)送到剛剛進入睡眠的節(jié)點,從而減少了節(jié)點處理這些數(shù)據(jù)包所消耗的能量。
1.2.4 沖突避免機制
競爭信道時產(chǎn)生的碰撞是每一個競爭類協(xié)議都會碰到的問題,S-MAC協(xié)議也對該問題進行了解決,盡量減少不必要的能量浪費。
1.2.5 消息分段機制
如果傳感器網(wǎng)絡(luò)傳遞比較長的數(shù)據(jù)包,一個包出錯就會重傳,這就將耗費比較多的能量。S-MAC為了解決這個問題采用了消息分段機制,將長消息分成幾個小的消息發(fā)送出去。[!--empirenews.page--]
1.2.6 自適應(yīng)偵聽機制
自適應(yīng)偵聽機制的基本思想是:當一個節(jié)點收到RTS或者CTS數(shù)據(jù)包,偵聽到鄰居節(jié)點有數(shù)據(jù)通信,就進入睡眠,同時記錄它的通信時間。對通信時間的記錄幫助節(jié)點通信結(jié)束后能夠醒來,在一個較短的時間內(nèi)偵聽信道查看是否有數(shù)據(jù)包需要傳遞,這種偵聽同樣是通過是否接收RTS數(shù)據(jù)包和CTS數(shù)據(jù)包來實現(xiàn)的。通信結(jié)束后節(jié)點會醒來,這個時候節(jié)點進入工作狀態(tài),偵聽是否有數(shù)據(jù)包到達,如果有數(shù)據(jù)包到達則建立信道進行通信,如果沒有數(shù)據(jù)包到達,則結(jié)束偵聽,繼續(xù)進入睡眠,按照既定調(diào)度方式工作。
2 改進的MAC協(xié)議ATC-SMAC
如前面所述,S-MAC協(xié)議由于采用了固定的占空比,它不能根據(jù)網(wǎng)絡(luò)中數(shù)據(jù)流的延遲情況動態(tài)調(diào)整占空比大小,造成了兩個主要的問題。本節(jié)提出了一種新的無線傳感器網(wǎng)絡(luò)的MAC層協(xié)議——ATC-SMAC(Automation of Time Controlled-SMAC),該協(xié)議在S-MAC協(xié)議的基礎(chǔ)上改進了固定占空比的劣勢,采用根據(jù)每個節(jié)點上的數(shù)據(jù)包的平均延遲調(diào)整占空比的策略。
2.1 ATC-SMAC協(xié)議的工作原理
ATC-SMAC協(xié)議支持傳感器網(wǎng)絡(luò)中的不同節(jié)點擁有不同的占空比?,F(xiàn)在假設(shè)節(jié)點的初始化占空比為P,幀長為T,睡眠時間為Tsleep,工作時間為Tactive,顯然有,P=Tactive/T。設(shè)數(shù)據(jù)包在某節(jié)點的平均阻塞延遲為Tblock。
ATC-SMAC的節(jié)點占空比調(diào)整策略如下:如果Tblock的變化超過了Pctr,那么占空比也要調(diào)整相應(yīng)的比例;不論這種變化是增加還是減少,只要變化的范圍超過了Pctr,占空比都會調(diào)整;根據(jù)Tblock變化的幅度,占空比調(diào)整的幅度也會相應(yīng)地變化。本文中Pctr選為20%,經(jīng)過后面的仿真實驗驗證,Pctr為20%的ATC-SMAC協(xié)議要比自適應(yīng)的S-MAC協(xié)議更加優(yōu)秀。為了通過減少節(jié)點的計算量從而達到節(jié)省節(jié)點能量的目的,節(jié)點的數(shù)據(jù)包平均時延為兩個同步周期計算一次。節(jié)點統(tǒng)計在剛剛過去的兩個同步周期內(nèi)自己轉(zhuǎn)發(fā)的所有數(shù)據(jù)包的延遲。對于每一個數(shù)據(jù)包,在它進入節(jié)點的緩沖隊列的時候,從數(shù)據(jù)包的報頭中可以看到上一個節(jié)點發(fā)送出該數(shù)據(jù)包的時刻Tin,忽略數(shù)據(jù)在物理介質(zhì)中傳播的時間,記錄該數(shù)據(jù)包從本節(jié)點上發(fā)送出去的時刻Tout,該節(jié)點的延遲Ti=Tout-Tin。對于該節(jié)點轉(zhuǎn)發(fā)的數(shù)據(jù)包1,2,…,n,統(tǒng)計得出它們的延遲T1,T2,…,Tn,得到該節(jié)點的平均延遲Teven為:
Teven=(T1+T2+…+Tn)/n (1)
節(jié)點除了計算剛剛過去的兩個同步周期內(nèi)的平均延遲外,還保存上兩個同步周期內(nèi)的平均延遲Tpast。
如果在剛剛過去的兩個同步周期內(nèi),節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包的量比較大,延遲較高,Teven>Tpast,那么計算Teven高于Tpast的百分比P,如果P不到20%,那么該節(jié)點的占空比不做調(diào)整;如果P高于20%(包括20%)小于40%,那么該節(jié)點在下一個同步周期的時候?qū)⒆约旱恼伎毡壬险{(diào)20%;如果P高于40%(包括40%)小于60%,那么占空比往上調(diào)整40%;依次類推,如果P高于C%(包括C%,其中C為20的整數(shù)倍)而小于(C+20)%,那么占空比往上調(diào)整C%。
同理可得向下調(diào)整占空比的方式:如果在剛剛過去的兩個同步周期內(nèi),節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包的量比較小,延遲較低,Teven<Tpast,那么計算Teven低于Tpast的百分比P,如果P不到20%,那么該節(jié)點的占空比不做調(diào)整;如果P高于20%(包括20%)小于40%,那么該節(jié)點在進入下一個同步周期的時候?qū)⒆约旱恼伎毡认抡{(diào)20%;如果P高于40%(包括40%)小于60%,那么占空比往下調(diào)整40%;依次類推,如果P高于C%(包括C%,其中C為20的整數(shù)倍)而小于(C+20)%,那么占空比往下調(diào)整C%。
占空比向上調(diào)整過程的偽代碼表示如下:
2.2 ATC-SMAC的節(jié)能策略分析
Pctr為20%的基于ATC-SMAC協(xié)議的傳感器在吞吐量、端到端延時以及能量消耗上都要略優(yōu)于動態(tài)的S-MAC協(xié)議。與使用固定占空比的S-MAC協(xié)議相比,ATC-SMAC在吞吐量上平均要比S-MAC協(xié)議高大約1倍;在端到端延時這項上,ATC-SMAC的數(shù)據(jù)包平均時延大約為S-MAC協(xié)議的0.6倍;ATC-SMAC平均每字節(jié)消耗的能量大概為S-MAC協(xié)議的0.4倍。與動態(tài)調(diào)整的S-MAC協(xié)議相比,ATC-SMAC協(xié)議的平均端到端時間大概為動態(tài)S-MAC協(xié)議的70%,ATC-SMAC協(xié)議的平均吞吐量大概為動態(tài)S-MAC協(xié)議的1.2倍,ATC-SMAC平均傳輸每字節(jié)消耗的能量大概為動態(tài)S-MAC協(xié)議的75%。
3 結(jié)語
ATC-SMAC協(xié)議在SMAC協(xié)議的基礎(chǔ)上進行了改進,使用了更加優(yōu)秀的動態(tài)調(diào)整占空比的算法。它可以讓節(jié)點根據(jù)自己流量的變化動態(tài)地調(diào)整自身的占空比。通過仿真結(jié)果,可以看出ATC-SMAC協(xié)議在端到端延遲、能量使用效率以及網(wǎng)絡(luò)吞吐量等方面較S-MAC協(xié)議(自適應(yīng)和非自適應(yīng)兩種)都有一定程度的提高。