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