基于SMAC的無線傳感器網(wǎng)絡MAC協(xié)議的分析與優(yōu)化
摘要:首先對MAC協(xié)議進行了相關(guān)介紹。然后重點介紹了一種基于競爭的無線傳感器網(wǎng)絡MAC層協(xié)議SMAC協(xié)議。其核心是提出了一種新的無線傳感器網(wǎng)絡的MAC協(xié)議設計方案。基于動態(tài)調(diào)整占空比的思想,提出了ATC-SMAC協(xié)議。該協(xié)議在S-MAC協(xié)議的基礎上改進了固定占空比的劣勢,根據(jù)每個節(jié)點上的數(shù)據(jù)包的平均延遲調(diào)整占空比。通過動態(tài)地調(diào)整每個節(jié)點的占空比,使不同流量的節(jié)點擁有不同的工作時間,協(xié)議根據(jù)不同節(jié)點的流量情況自適應地對其占空比進行調(diào)整。經(jīng)過仿真試驗,得到ATC-MAC在網(wǎng)絡端對端延遲、能量消耗以及吞吐量方面較S-MAC協(xié)議都有比較明顯的提高。
關(guān)鍵詞:無線傳感器網(wǎng)路;MAC協(xié)議;動態(tài)占空比;ATC-SMAC協(xié)議
無線傳感器網(wǎng)絡協(xié)議ATC-SMAC主要是提高基于競爭的S-MAC協(xié)議的能量使用率,同時減少S-MAC協(xié)議的網(wǎng)絡延遲。ATC-SMAC協(xié)議通過自適應地調(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é)議時間分為若干個幀,幀長度由應用程序來確定,幀內(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)絡發(fā)現(xiàn)新節(jié)點。
1.2 S-MAC的節(jié)能機制分析
為了減少無線傳感器網(wǎng)絡消耗的能量,在IEEE 802.11基礎上提出了一種專門的傳感器網(wǎng)絡MAC協(xié)議S-MAc協(xié)議。無線傳感器網(wǎng)絡的沖突重傳、接收到不是發(fā)送給自己的數(shù)據(jù)、控制信號、空閑偵聽等造成傳感器網(wǎng)絡耗能的原因。它引入了節(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)絡傳遞比較長的數(shù)據(jù)包,一個包出錯就會重傳,這就將耗費比較多的能量。S-MAC為了解決這個問題采用了消息分段機制,將長消息分成幾個小的消息發(fā)送出去。
評論