信道接入協議對網絡的性能起著決定性的作用,是WSNs技術的研究重點之一。單信道的信道接入協議在節點規模增大時,網絡性能明顯變差。采用多信道機制,可以提高網絡吞吐量,減小傳播延時,降低沖突的概率,更易于支持網絡的QoS(Quality of Service)保障。多信道協議主要應解決兩個問題:信道分配和接入控制,信道分配是要為不同的通信節點分配相應的信道,接入控制是確定節點接入信道的時機,解決好競爭和沖突的避免問題。本文介紹3種多信道的信道接入協議:多信道的CSMA(Carrier Sense Multiple Access),FAMAC(Frequency Assignment based multi-channel Multiple Access Control),DCA-PC,其中DCA-PC是本文的重點。
基于CSMA和FAMAC的多信道MAC層協議
● 多信道CSMA
是一種基于載波監聽的信道接入協議。其設計目標是通過使用多信道來減少隱終端問題的影響,減少數據報文的沖突。它采用準信道預留技術,通過分布式的載波監聽來對多個信道進行分配。
準信道預留技術的原理是:當節點發送報文時,它優先選擇上次使用過的信道;如果該信道忙,就通過載波監聽隨機選擇一個空閑信道發送數據。
多信道CSMA將可用信道分為N個不重疊的信道,一般而言N要小于無線傳感網網絡中節點的數目。每個子信道的帶寬是整個信道帶寬的1/N。
● FAMAC協議
FAMAC是一種基于頻率分配的多信道接入協議,設置一個控制信道和多個數據信道。實現時,所有節點使用一個固定的頻率作為控制信道,完成RTS(Request To Send)和CTS(Clear To Send)的交互。處于空閑狀態的節點駐留在控制信道上。另外,為每個節點分配一個不同的頻率,作為該節點的數據信道值。信道選擇時,發送者向接受者發送的RTS中,攜帶自己的頻率信息。接收者收到RTS后,記錄發送者的頻率,回送CTS,將電臺切換到發送者的頻率上,接收數據。
以上兩種協議都是針對多信道設計的,較好地解決了接入控制和信道選擇問題;隱終端和暴露終端的影響也得到了很好地控制。由于WSNs的節點通常運行在人無法接近的惡劣甚至危險的遠程環境中,能源無法代替,難以補充。所以能量受限的約束條件要求其MAC協議首先要關注的就是能量效率,要盡可能地節約能源,而上述兩種協議對此未作足夠的考慮。DCA-PC協議從節約能耗的觀點出發,在MAC協議設計中探索了集成功率控制和多信道接入兩種機制的可能性。
采用功率控制的多信道協議DCA-PC
DCA-PC協議首先在WSNs的MAC層設計中將功率控制的概念與多信道接入結合起來,節約能耗,減少鄰居節點共用信道時的相互干擾,提高信道復用度。
● 信道模型
帶寬被劃分為一個控制信道和n個數據信道D1,D2,……,Dn。控制信道用于控制報文的傳送,目標是為節點合理分配數據信道,避免沖突;數據信道用于數據報文和ACK(Acknowledgement)報文的傳送。
從避免沖突,提高信道預約成功率的角度出發,控制報文發送采用最大功率;為了降低能耗,提高信道復用度,將數據報文的發送功率劃分為大小不同的若干等級,通過RTS-CTS握手,可計算出雙方通信必需的最小功率,數據報文發送采用最接近最小發送功率的那個功率等級。
為實現動態信道分配和功率控制,每個節點都要保存3個數組。以節點A為例來說明:
Power[i]功率列表: 節點A向節點i發送數據報文時應采用的功率等級。(——可利用功率控制的原理計算得出。)
CUL(Channel Usage List)[i]信道使用狀況列表: A節點獲悉的已用信道列表。CUL[i]有4個域:
——CUL[i].host:記錄節點A的鄰居節點的主機。
——CUL[i].ch :記錄CUL[i].host占用的數據信道。
——CUL[i].rel-time :表示釋放CUL[i].ch數據信道的時間。
——CUL[i].int記錄CUL[i].host發送的信號是否會被節點A聽到(CUL[i].int值為1或0)。
FCL空閑信道列表: 節點發送數據時的可用信道列表,可根據CUL計算得出。
● 完整的協議過程
(1) 主機A要向B傳送數據報文時,首先檢查下列兩個條件
條件一:B節點的主機應滿足條件:CUL[i].rel-time≤Tcurr+(TDIFS+TRTS+TSIFS+TCTS)。否則在RTS,CTS報文交互之后,對應的數據信道CUL[i].ch仍處于忙態。
條件二:對所有數據信道CUL[i].ch,至少有一條Dj滿足:
(CUL[i].ch=)→{CUL[i].rel-time≤Tcurr+(TDIFS+TRTS+TSIFS+TCTS)}∨{(CUL[i].int=0)∧(Power[CUL[i].host]> Power[B])}
兩條件滿足時,A將所有滿足條件二的Dj加入到自己的空閑信道列表FCL中;否則A將退避等待。
(2). A向B發送RTS(含有FCL,Ld的信息)。
(3). B收到RTS(FCL,Ld)后,檢查FCL中是否有這樣的數據信道Dj,對所有的i,均滿足
(CUL[i].ch=Dj)→{CUL[i].rel-time≤Tcurr+(TSIFS+TCTS)}∨{(CUL[i].int=0)∧(Power[CUL[i].host]> Power[A])}
若有,從所有滿足條件的信道中選擇出第一條Dj,向A回復CTS(含有Dj,NAVCTS,PCTS)。這里,
NAVCTS= Ld/Bd+TACK+2τ
PCTS= Power[A]
同時B將數據收發器調整到Dj,等待接收來自A的數據報文。
若沒有找到滿足條件的Dj,B將向A回復CTS(Test)信號,Test=min{i, CUL[i].rel-time }- Tcurr-TSIFS-TCTS (Test是正在使用的數據信道的最早釋放時間減去CTS報文交換時間)
(4).除B以外的其他主機收到A的RTS(FCL,Ld)時,要計算一個退避時間,此時間內不使用控制信道:NAVCTS= 2TSIFS+TCTS+TRES+2τ,以避免沖突。
A發送RTS后,要經過TSIFS+TCTS+ TRES+2τ時期,等待B的CTS的到來。若未收到CTS,則退避重發。
(5) A收到B的CTS(Dj,NAVCTS,PCTS)后,執行以下步驟:
步驟1:添加CUL[k]到CUL信道使用列表中:
CUL[k].host=B
CUL[k].ch=Dj
CUL[k].rel-time=Tcurr+ NAVCTS
CUL[k].int=1
步驟2:用最大功率在控制信道上廣播RES(Dj,NAVRES,PRES)報文,
NAVRES= NAVCTS-TSIFS-TRES
PRES= Power[B]
步驟3:用Power[B]在數據信道Dj上傳送數據報文(步驟2與步驟3同步進行)。
若A收到的是B的CTS(Test)信號,則A回到步驟1退避等待,或者重新選擇新釋放的數據信道。
(6).除A以外的其他主機收到B的CTS(Dj,NAVCTS,PCTS)時,將更新自己的CUL,與(6)的步驟1類似。但應注意:
CUL[k].rel-time=Tcurr+ NAVCTS +τ
CUL[k].int=
若收到的是B的CTS(Test)信號,則忽略該報文。
(7) 若除A以外的其他主機收到RES(Dj,NAVRES,PRES)報文,則添加CUL[k]到CUL信道使用列表中:
CUL[k].host=A
CUL[k].ch=Dj
CUL[k].rel-time=Tcurr+ NAVRES
CUL[k].int=
(8) B收到A的完整數據報文后,用Power[A]在數據信道Dj上回送ACK報文。
結語
通過以上分析,能看出DCA-PC協議具有以下特點:首先,能按需為節點分配信道 。當節點有信號需要傳送時,協議通過RTS/CTS/RES握手控制報文取得一個信道,傳送任務完成后釋放該信道。其次,在這種按需分配傳送的機制下,網絡信道數目的分配與網絡的規模,拓撲和復雜度無關。另外,不需要在全網范圍內提供時鐘同步。具有基于CSMA和FAMAC的多信道協議不具備的優勢。現有的其他多信道協議往往只是單獨考慮信道接入和功率控制的問題,而DCA-PC獨創性地將二者結合起來。研究結果表明,使用多信道和動態信道分配技術,可以顯著提高網絡的吞吐量。通過在數據信道上使用功率控制技術,增加了頻率的空間復用度,在提高網絡吞吐量的同時,也降低了網絡的能耗,對改善WSNs的性能具有重要意義。
評論
查看更多