和夢琪,施偉斌
(上海理工大學(xué)光電信息與計算機(jī)工程學(xué)院,上海 200093)
無線傳感器網(wǎng)絡(luò)(WSN)由大量具有無線通信與計算能力的傳感器節(jié)點以自組織和多跳方式構(gòu)成,其大范圍的應(yīng)用及技術(shù)特點一直備受關(guān)注,涉及軍事、環(huán)境監(jiān)測、醫(yī)療服務(wù)、目標(biāo)追蹤和智慧城市等多個領(lǐng)域。介質(zhì)訪問控制(MAC)協(xié)議構(gòu)建WSN 系統(tǒng)的底層基礎(chǔ)結(jié)構(gòu),決定節(jié)點接入無線信道的方式,協(xié)調(diào)網(wǎng)絡(luò)中多個節(jié)點共享無線信道的有限通信資源,目的在于保證無線信道中的通信效率和通信可靠性,同時避免沖突,盡可能減少能量消耗,對網(wǎng)絡(luò)整體性能有直接影響[1]。
WSN 需電池供電的節(jié)點長時間處于活動狀態(tài)以實現(xiàn)可靠有效的觀察,而單個節(jié)點的能量及處理能力有限,WSN 需要網(wǎng)內(nèi)大量節(jié)點相互協(xié)作才得以實現(xiàn),這些特性使MAC 協(xié)議的發(fā)展面臨巨大挑戰(zhàn)[2]。MAC 協(xié)議設(shè)計時考慮以下方面的性能:
(1)能耗高效性。WSN 中的節(jié)點大多采用電池供電,對于部署在惡劣和不可接近環(huán)境中的節(jié)點而言,電池?zé)o法及時更換,因此節(jié)省節(jié)點能量消耗以延長網(wǎng)絡(luò)生存周期是協(xié)議設(shè)計的關(guān)鍵問題。WSN 在通信過程中的節(jié)點耗能環(huán)節(jié)如圖1 所示,MAC 協(xié)議設(shè)計應(yīng)考慮降低占空比以減少空閑偵聽能耗、避免沖突以減少重發(fā)數(shù)據(jù)能耗、避免串音干擾能耗以及減少協(xié)議運行的控制開銷等方面。
(2)自適應(yīng)性。節(jié)點移動、死亡或加入都會引起網(wǎng)絡(luò)規(guī)模及拓?fù)渥兓琈AC 協(xié)議設(shè)計需要自組織機(jī)制才能實現(xiàn)節(jié)點的隨機(jī)部署,保障網(wǎng)絡(luò)穩(wěn)定性能。
(3)整體性能最優(yōu)化。WSN 中節(jié)點的能耗有效性一般處于最高優(yōu)先級,而面向不同應(yīng)用的無線傳感器網(wǎng)絡(luò)系統(tǒng),需求會有差異。因此,協(xié)議設(shè)計需綜合考慮系統(tǒng)性能要求,如信道利用率、網(wǎng)絡(luò)時延、網(wǎng)絡(luò)吞吐量等,多種性能要求取得平衡,實現(xiàn)網(wǎng)絡(luò)整體性能最優(yōu)化。
Fig.1 Node energy consumption圖1 節(jié)點能耗環(huán)節(jié)
節(jié)點信道訪問依賴于兩種基本的多址接入機(jī)制:時分多址接入(TimeDivision Multiple Access,TDMA)和載波偵聽多址接入(Carrier Sense Multiple Access,CSMA)。當(dāng)前,MAC 協(xié)議根據(jù)信道訪問方式不同分為3 類:①基于調(diào)度的MAC 協(xié)議,如TRAMA、DEANA、PMAC 等;②基于競爭的MAC 協(xié)議,如S-MAC、T-MAC、B-MAC、WiseMAC、X-MAC等;③混合型MAC 協(xié)議,如IEEE802.15.4、Z-MAC 等[2-3]。
調(diào)度型MAC 協(xié)議調(diào)度傳輸數(shù)據(jù)的節(jié)點,按照調(diào)度的先后順序傳輸數(shù)據(jù),以免多個節(jié)點同時接入信道造成數(shù)據(jù)傳輸沖突?;谡{(diào)度的MAC 協(xié)議多采用TDMA 機(jī)制,是基于某些策略預(yù)先為不同的節(jié)點分配時隙,節(jié)點在分配的時隙內(nèi)保持活躍狀態(tài)并傳輸數(shù)據(jù),在非分配時隙保持休眠狀態(tài)以避免干擾其他節(jié)點之間的通信。
基于TDMA 策略的MAC 協(xié)議通過分配信道資源的方式,避免了節(jié)點間的相互干擾,而且數(shù)據(jù)傳輸?shù)倪^程中不需要過多的控制信息,節(jié)省了開銷。不足之處是,一般采用同步通信方式,需要節(jié)點之間比較嚴(yán)格的時間同步;如果節(jié)點在分配時隙內(nèi)無法通信則產(chǎn)生空時隙,造成能量浪費;網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)及規(guī)模變化時,時隙分配方案很難靈活調(diào)整,動態(tài)性弱。
流量自適應(yīng)介質(zhì)訪問協(xié)議(Traffic-adaptive MAC Protocol)[4]是基于傳統(tǒng)TDMA 時隙結(jié)構(gòu)的協(xié)議,且根據(jù)每個節(jié)點的流量分布式選擇時隙方案,是一種高效節(jié)能且無沖突的協(xié)議。TRAMA 協(xié)議將時間幀劃分為交替的調(diào)度訪問階段和隨機(jī)訪問階段。協(xié)議操作由3 部分構(gòu)成:鄰居協(xié)議(NeighbourProtocal,NP)、時間調(diào)度表交換協(xié)議(Schedule Exchange Protocol,SEP)、自適應(yīng)選擇算法(Adaptive Election Algorithm,AEA)。每個節(jié)點根據(jù)NP 協(xié)議獲得兩跳范圍內(nèi)鄰節(jié)點信息,確定時間調(diào)度表,采用SEP 協(xié)議將時間調(diào)度表傳給鄰節(jié)點,并計算每個節(jié)點的優(yōu)先權(quán),執(zhí)行AEA 算法確定節(jié)點時隙,實現(xiàn)節(jié)點無沖突的傳輸數(shù)據(jù)。無流量的節(jié)點則保持休眠狀態(tài),節(jié)省能量。
隨機(jī)訪問階段可處理節(jié)點的加入與退出,使網(wǎng)絡(luò)具有可擴(kuò)展性,并增加節(jié)點處在休眠階段時間的比例,減少能耗。不足之處是,為滿足SEP 協(xié)議,節(jié)點間頻繁的數(shù)據(jù)交換以及復(fù)雜的分布選則機(jī)制,引入了較大端到端的數(shù)據(jù)等待時延,導(dǎo)致額外開銷。
分布式能量感知節(jié)點協(xié)議(Distributed Energy-Aware Node Activation)[5],其時間幀由調(diào)度訪問階段的控制時隙和數(shù)據(jù)傳輸時隙,以及隨機(jī)訪問階段的信令時隙構(gòu)成。調(diào)度訪問階段,在數(shù)據(jù)傳輸時隙前設(shè)置了一個控制時隙,節(jié)點在所分配時隙內(nèi)有數(shù)據(jù)傳輸時,控制時隙會發(fā)出控制消息,指出接收節(jié)點,再傳輸數(shù)據(jù)??刂茣r隙內(nèi)所有節(jié)點保持活躍狀態(tài),獲取信道中的數(shù)據(jù)接收節(jié)點信息,若發(fā)現(xiàn)是數(shù)據(jù)接收方,在數(shù)據(jù)傳輸時隙內(nèi)繼續(xù)保持活躍態(tài)以接收數(shù)據(jù);若發(fā)現(xiàn)不是數(shù)據(jù)接收方,則不需要接收數(shù)據(jù),立馬進(jìn)入休眠狀態(tài),減少能量損耗。隨機(jī)訪問階段用來處理節(jié)點的加入與退出,并保持時間同步。
設(shè)置控制時隙,使空閑節(jié)點能夠及時進(jìn)入休眠狀態(tài),避免串音現(xiàn)象,減少能耗。并且,隨機(jī)訪問階段允許節(jié)點的加入與退出,增強(qiáng)了網(wǎng)絡(luò)的可擴(kuò)展性。不足之處是,控制時隙對節(jié)點的時間同步精度要求較高。
模式協(xié)議(Pattern MAC)[6]采用活動模式交換和時間調(diào)度表機(jī)制,是一種自適應(yīng)MAC 協(xié)議。時間幀由模式重復(fù)時間階段(Pattern Repeat TimeFrame,PRTF)和模式交換時間階段(Pattern ExchangeTime Frame,PETF)構(gòu)成。PRTF 階段由等間隔時隙以及末尾一個特殊活躍時隙構(gòu)成,在此階段所有節(jié)點重復(fù)其當(dāng)前模式。模式模型由每個時隙的0 和1 組成,1 表示節(jié)點將在時隙內(nèi)啟用即保持喚醒狀態(tài),0 表示節(jié)點將切換到休眠模式。PETE 階段也分為等間隔時隙,在此階段鄰居節(jié)點交換新模式。根據(jù)節(jié)點流量,每一個節(jié)點在交換模式后,每個時隙都被分配了模式位,確定了時間調(diào)度表?;钴S時隙節(jié)點可以及時發(fā)送數(shù)據(jù),使目標(biāo)節(jié)點更新模式并快速喚醒。
節(jié)點根據(jù)自身及鄰居節(jié)點流量模式模型,自適應(yīng)地確定休眠/活躍狀態(tài),以指數(shù)增長節(jié)點處于休眠狀態(tài)及零線性增長防止休眠過度,在高負(fù)載下可以獲得更高的吞吐量,低負(fù)載下節(jié)省更多能量。
此外,調(diào)度MAC 協(xié)議還有自適應(yīng)控制能效協(xié)議TRACE[7],其采用競爭與數(shù)據(jù)傳輸分開的方式,動態(tài)預(yù)約傳輸數(shù)據(jù),是一種集中式的MAC 協(xié)議。TRACE 協(xié)議適用于單跳網(wǎng)絡(luò),MH-TRACE[8]協(xié)議在此基礎(chǔ)上,結(jié)合分布式和集中式對網(wǎng)絡(luò)分簇,實現(xiàn)多跳通信。E-TDMA[9]能量感知MAC 協(xié)議也是分簇通信MAC 協(xié)議,收集網(wǎng)絡(luò)節(jié)點的剩余能量、位置、狀態(tài)信息,更新時隙設(shè)置,簇頭管理每跳通信時間并規(guī)劃路徑。BMA-MAC[10]位圖輔助協(xié)議是改進(jìn)的高效節(jié)能E-TDMA 協(xié)議,根據(jù)節(jié)點剩余能量選擇簇頭,簇內(nèi)節(jié)點依據(jù)需求發(fā)送大小1bit 的控制消息,簇頭主要管理時隙分配。
競爭型MAC 協(xié)議依賴于節(jié)點之間可控制的競爭機(jī)制以建立通信連接,按節(jié)點需求使用信道,需要發(fā)送數(shù)據(jù)的節(jié)點通過競爭方式獲取信道使用權(quán)?;诟偁幍腗AC 協(xié)議多采用載波偵聽多路訪問/沖突避免(Carrier Sense Multiple Access/Collision Avoidance,CSMA/CA)機(jī)制,節(jié)點先偵聽信道,建立連接通路再發(fā)送數(shù)據(jù),若與其他節(jié)點發(fā)生碰撞,則根據(jù)協(xié)議重發(fā),直到數(shù)據(jù)發(fā)送成功或者重發(fā)次數(shù)達(dá)上限后放棄。
基于CSMA/CA 機(jī)制的協(xié)議,其節(jié)點可以獨立執(zhí)行競爭與否的決定,不需要數(shù)據(jù)交換,網(wǎng)絡(luò)具有靈活性;采用偵聽和退避機(jī)制,避免節(jié)點間發(fā)生碰撞,增強(qiáng)網(wǎng)絡(luò)的健壯性。不足之處是,網(wǎng)絡(luò)負(fù)載加強(qiáng)時,隱終端數(shù)量隨之增加,退避機(jī)制會變得無效,沖突概率會隨著高負(fù)載而加大;采用偵聽機(jī)制,節(jié)點需要連續(xù)監(jiān)測信道是否處于空閑狀態(tài)造成大量能耗,當(dāng)節(jié)點無數(shù)據(jù)傳輸需求處于空閑狀態(tài)時偵聽耗能更加明顯。
競爭型MAC 協(xié)議對時鐘同步要求較低,依據(jù)節(jié)點偵聽/休眠調(diào)度表的不同,節(jié)點喚醒方式不同。從時鐘同步方面,基于競爭的MAC 協(xié)議分為同步競爭型和異步競爭型兩大類,同步競爭型選取S-MAC、T-MAC 協(xié)議,異步競爭型選取B-MAC、Wise-MAC、X-MAC 協(xié)議,對其作重點研究分析。
S-MAC 協(xié)議(Sense-MAC)[11]是基于CSMA/CA 機(jī)制,采用周期性休眠、周期性監(jiān)聽機(jī)制以減少空閑偵聽能耗。時間幀由休眠階段和偵聽階段構(gòu)成,偵聽階段包括同步段SYNC 和數(shù)據(jù)段DATA。通過節(jié)點間周期性交換時間同步消息,本地鄰居節(jié)點構(gòu)建統(tǒng)一偵聽/休眠的虛擬簇。在SYNC 內(nèi)同一個虛擬簇的所有節(jié)點同步喚醒,保持活躍狀態(tài)同步時鐘,建立時間調(diào)度表。時間調(diào)度表建立后,數(shù)據(jù)將在DATA 內(nèi)采用競爭機(jī)制進(jìn)行數(shù)據(jù)傳輸。在DATA 階段,節(jié)點通過交換RTS/CTS 分組,建立握手,發(fā)送節(jié)點則可開始傳輸數(shù)據(jù)包,虛擬簇中其他節(jié)點則切換到休眠狀態(tài)直到結(jié)束,避免了空閑偵聽時的能量浪費。協(xié)議采用虛擬簇,不需要全網(wǎng)節(jié)點時間同步,減少開銷。
S-MAC 協(xié)議由于周期性休眠機(jī)制,節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)包時,必須等到休眠狀態(tài)結(jié)束進(jìn)入下一個周期活躍狀態(tài)時才可進(jìn)行,即周期內(nèi)只能單跳傳輸,缺少多跳傳輸能力,增加了時延。改進(jìn)S-MAC 增加了自適應(yīng)偵聽機(jī)制,為節(jié)點提供多跳感知功能,自適應(yīng)偵聽允許鄰居節(jié)點偵聽數(shù)據(jù)傳輸,通過RTS/CTS 分組中的時間調(diào)度表得知此次傳輸持續(xù)時間,在數(shù)據(jù)包傳輸結(jié)束前喚醒一段時間。節(jié)點則可以立即向下一跳節(jié)點發(fā)送數(shù)據(jù),若喚醒的鄰居節(jié)點是下一跳的目標(biāo)節(jié)點,則實現(xiàn)了周期內(nèi)的兩跳數(shù)據(jù)傳輸,減少將近一半的時延;若不是下一跳的目標(biāo)節(jié)點,節(jié)點需進(jìn)入下一個周期才可以發(fā)送數(shù)據(jù),則偵聽屬于無效操作,導(dǎo)致額外開銷。
S-MAC 協(xié)議(Timeout-MAC)[12]中,所有節(jié)點流量大小都遵循固定的占空比進(jìn)行數(shù)據(jù)傳輸,流量高的節(jié)點需要更多的時間傳輸數(shù)據(jù),而周期性休眠機(jī)制使節(jié)點不得不等待幾個幀時間才能完成數(shù)據(jù)傳輸,會造成很大的時延。
T-MAC 采用超時休眠策略,引入自適應(yīng)占空比機(jī)制,偵聽、休眠階段比例可調(diào)。節(jié)點在偵聽階段SYNC 后,插入一個TA(Time Active)時隙,TA>C+R+T,C 為競爭信道時間,R 為RTS 分組傳輸時間,T 為RTS 分組結(jié)束到CTS 分組開始傳輸?shù)臅r間。若在TA 內(nèi)沒有偵聽到任何事件,則認(rèn)為信道處于空閑狀態(tài),節(jié)點提前結(jié)束偵聽,不用等待休眠階段到來就可直接進(jìn)入休眠。
T-MAC 協(xié)議可根據(jù)網(wǎng)絡(luò)負(fù)載,動態(tài)調(diào)整占空比,減少空閑偵聽造成的能耗。不足之處是,節(jié)點在TA 時隙內(nèi)若未能偵聽到發(fā)送節(jié)點向接收節(jié)點發(fā)送數(shù)據(jù)的激活事件,直接進(jìn)入休眠狀態(tài),引起節(jié)點“早睡”問題,造成延遲。
T-MAC 協(xié)議自適應(yīng)偵聽機(jī)制可有效降低周期性休眠帶來的時延,但同時也造成很多非相關(guān)節(jié)點的自適應(yīng)偵聽,造成額外開銷,在能效方面表現(xiàn)欠缺。低能耗E2SMAC[13]協(xié)議利用節(jié)點偵聽到的RTS/CTS 消息,實現(xiàn)不同區(qū)域節(jié)點狀態(tài)的選擇,最大程度地減少無關(guān)鄰居節(jié)點喚醒,減少空閑偵聽和串聽帶來的能耗。
此外,動態(tài)占空比DSMAC[14]協(xié)議采用加倍占空比機(jī)制。偵聽/休眠調(diào)度機(jī)制與S-MAC 保持一致,在高負(fù)載時將加倍占空比,使節(jié)點能夠處理更多的數(shù)據(jù)包,減少時延。針對S-MAC 協(xié)議采用CSMA/CA 機(jī)制的二進(jìn)制指數(shù)退避,在網(wǎng)絡(luò)負(fù)載高時競爭加劇,沖突隨之加劇,節(jié)點退避窗口變大,引起較長時延。Sift[15]協(xié)議采用CW 值固定窗口,節(jié)點使用非平均概率分布于不同的時隙發(fā)送數(shù)據(jù),實現(xiàn)多個節(jié)點在不同時隙的數(shù)據(jù)無沖突發(fā)送。MAC 協(xié)議關(guān)于退避時間算法,包括倍數(shù)增加線性遞減退避MILD[16]算法、隊列退避算法BDQR[17]、流量預(yù)測的服務(wù)質(zhì)量區(qū)分退避算法FPQoSD[18]、擁塞避免的自適應(yīng)退避算法CABEB[19]、自適應(yīng)隨機(jī)退避算法AD-BEB[20]等,都是依據(jù)網(wǎng)絡(luò)負(fù)載大小動態(tài)調(diào)整窗口CW 值,以減少時延。
為實現(xiàn)周期內(nèi)多跳距離數(shù)據(jù)傳輸,LD-MAC[21]協(xié)議使用擴(kuò)展RTS、CTS、ACK 幀進(jìn)行多跳傳輸?shù)墓?jié)點路徑預(yù)約;RMAC[22]協(xié)議基于S-MAC,在DATA 階段傳輸數(shù)據(jù)包前發(fā)送一個多跳的PION 幀,并預(yù)約之后的多跳節(jié)點;類似設(shè)計多跳預(yù)約協(xié)議,PR-MAC[23]協(xié)議采用不同區(qū)域的節(jié)點選擇不同長度的幀結(jié)構(gòu),依據(jù)節(jié)點幀的同步特性進(jìn)行路徑預(yù)約。
S-MAC 和T-MAC 協(xié)議采用周期性偵聽休眠機(jī)制,需形成偵聽/休眠時間調(diào)度表,網(wǎng)絡(luò)中節(jié)點才可以同時啟動,同時需要較為精確的時鐘同步。因此,B-MAC 協(xié)議(Berkeley MAC)[24]引入低功耗偵聽(Low Power Listening,LPL)的偵聽/休眠機(jī)制能得以有效改善。采用LPL 機(jī)制,網(wǎng)絡(luò)中節(jié)點可以根據(jù)需求制定自己的時間調(diào)度表,需周期性發(fā)送SYNC 同步消息構(gòu)建時間調(diào)度表以保持所有節(jié)點時鐘同步。節(jié)點在發(fā)送數(shù)據(jù)包前發(fā)送一個前導(dǎo)碼,喚醒目標(biāo)節(jié)點使之做好接收數(shù)據(jù)的準(zhǔn)備。前導(dǎo)碼的長度需要大于接收節(jié)點的休眠時長,發(fā)送節(jié)點在此時間段內(nèi)占用信道,保證接收節(jié)點能夠偵聽到前導(dǎo)碼,避免空傳。
相比周期性偵聽/休眠機(jī)制,B-MAC 協(xié)議有效縮短了喚醒時間,相對減少了空閑偵聽功耗。不足之處是,節(jié)點無需時鐘同步是以長前導(dǎo)碼為代價,每個數(shù)據(jù)包的傳輸需要消耗更多能量,網(wǎng)絡(luò)負(fù)載大時,前導(dǎo)碼會產(chǎn)生相當(dāng)大的開銷;前導(dǎo)碼傳輸過程中,節(jié)點不能獲得目標(biāo)節(jié)點的狀態(tài)消息,無論目標(biāo)節(jié)點是否已經(jīng)喚醒,都必須等待前導(dǎo)碼傳輸結(jié)束后才能夠傳輸數(shù)據(jù),增加傳輸延遲,且其他節(jié)點也能接收到該前導(dǎo)碼,造成串聽問題。
B-MAC 協(xié)議節(jié)點每一次將數(shù)據(jù)發(fā)送給目標(biāo)節(jié)點時都必須發(fā)送一次前導(dǎo)碼,等待目標(biāo)節(jié)點喚醒。若節(jié)點在完成前傳輸,且在下一次傳輸前獲得目標(biāo)節(jié)點的時間調(diào)度表,即可在目標(biāo)節(jié)點喚醒偵聽信道時,再發(fā)送前導(dǎo)碼,節(jié)省由長前導(dǎo)碼帶來的能量損耗。而WiseMAC 協(xié)議[25]采用局部自同步,通過節(jié)點維護(hù)本地鄰居節(jié)點時間調(diào)度表,最小化前導(dǎo)碼的長度。在目標(biāo)節(jié)點完成數(shù)據(jù)包的接收,向發(fā)送節(jié)點反饋的ACK 消息中添加目標(biāo)節(jié)點的時間調(diào)度表信息,發(fā)送節(jié)點收到后更新鄰居調(diào)度表,確保下一次數(shù)據(jù)傳輸時,在目標(biāo)節(jié)點喚醒前再發(fā)送前導(dǎo)碼。
WiseMAC 協(xié)議最小化前導(dǎo)碼,減少傳輸前導(dǎo)碼的能耗,且很大程度上提高目標(biāo)節(jié)點偵聽到前導(dǎo)碼的正確率,減少數(shù)據(jù)空傳發(fā)生;小的前導(dǎo)碼也減少了鄰居串聽帶來的能耗。不足之處是,鄰居節(jié)點休眠/喚醒調(diào)度時間一般不一致,節(jié)點需要更新并存儲鄰居節(jié)點的時間調(diào)度表,耗能且會占用存儲空間,網(wǎng)絡(luò)負(fù)載較大時,存儲空間被過多占用,增加協(xié)議實現(xiàn)的復(fù)雜度。
X-MAC 協(xié)議[26]采用短小的脈沖前導(dǎo)碼機(jī)制且引入握手機(jī)制,優(yōu)化前導(dǎo)碼過長以及鄰居節(jié)點串聽問題。每個脈沖前導(dǎo)碼中都帶有目標(biāo)節(jié)點的地址信息,所有接收到脈沖前導(dǎo)碼的節(jié)點,都會與前導(dǎo)碼中的目標(biāo)節(jié)點地址信息對比,若不是目標(biāo)接收節(jié)點,節(jié)點立即返回休眠狀態(tài)繼續(xù)周期性任務(wù)循環(huán);若是目標(biāo)接收節(jié)點,則在前導(dǎo)碼間隙內(nèi)反饋給發(fā)送節(jié)點一個ACK 幀,與之建立連接,發(fā)送節(jié)點立刻停止繼續(xù)發(fā)送脈沖前導(dǎo)碼,轉(zhuǎn)而開始發(fā)送數(shù)據(jù)包。采用LPL 機(jī)制的B-MAC 協(xié)議中,接收節(jié)點在完成當(dāng)前數(shù)據(jù)包接收后依然保持活躍狀態(tài)的時間內(nèi),若有其他節(jié)點想與之通信,必須等待下一周期發(fā)送前導(dǎo)碼確認(rèn)后,才能夠發(fā)送數(shù)據(jù),增加時延與開銷。對此,X-MAC 協(xié)議中引入隨機(jī)退避,接收節(jié)點在當(dāng)前傳輸完成后,會保持一段最大隨機(jī)退避時間的活躍狀態(tài),而其他節(jié)點能夠偵聽到反饋給當(dāng)前發(fā)送節(jié)點的ACK 幀,之后隨機(jī)退避一段時間,省略前導(dǎo)碼發(fā)送步驟,直接向目標(biāo)節(jié)點發(fā)送數(shù)據(jù)。
X-MAC 協(xié)議采用脈沖前導(dǎo)碼機(jī)制,減少傳輸長前導(dǎo)碼以及節(jié)點過度偵聽的能耗。不足之處是,接收節(jié)點在保持隨機(jī)退避活躍狀態(tài)的時間內(nèi),若沒有其他節(jié)點與之通信,操作無效會增加時延,且可能造成串聽。
B-MAC、WiseMAC、X-MAC 協(xié)議都是采用前導(dǎo)碼機(jī)制的協(xié)議,此外還有稀疏拓?fù)浜湍茉垂芾鞸TEM[27]協(xié)議依賴正在傳輸?shù)男?shù)據(jù)包,而不是單一的長前導(dǎo)碼,減少偵聽階段時間。節(jié)點配置兩個收發(fā)機(jī),主收發(fā)機(jī)和喚醒收發(fā)機(jī),在發(fā)送節(jié)點發(fā)送喚醒數(shù)據(jù)包后偵聽信道,若偵聽到來自目標(biāo)節(jié)點的反饋,再進(jìn)行數(shù)據(jù)傳輸則沒有能量浪費。
WiseMAC 協(xié)議和STEM 協(xié)議都通過縮短前導(dǎo)碼減少能量損耗,CSMA-MPS[28]協(xié)議結(jié)合這兩者,采用STEM 協(xié)議中的多個小喚醒數(shù)據(jù)包,同時采用WiseMAC 協(xié)議中鄰居節(jié)點時間調(diào)度表,再發(fā)送喚醒數(shù)據(jù)包,改善性能。類似長前導(dǎo)碼設(shè)計的協(xié)議還有微幀MFP[29]協(xié)議、低功耗分散Speck-MAC[30]協(xié)議。
混合型MAC 協(xié)議旨在結(jié)合調(diào)度與競爭兩種方式進(jìn)行信道分配權(quán)衡,根據(jù)網(wǎng)絡(luò)負(fù)載大小,調(diào)整信道獲取方式。通常負(fù)載小時以競爭為主,通信簡易靈活且擴(kuò)展性好;負(fù)載大時以調(diào)度為主,通信時延較小且避免碰撞和串聽。但混合型協(xié)議為了滿足網(wǎng)絡(luò)要求,設(shè)計相對復(fù)雜,運行協(xié)議控制開銷大。
本文選擇典型的混合型MAC協(xié)議,即IEEE802.15.4MAC協(xié)議和Z-MAC 協(xié)議的研究。
IEEE 802.15.4 網(wǎng)絡(luò)標(biāo)準(zhǔn)[31]是為低數(shù)據(jù)速率而設(shè)計,其中MAC 協(xié)議結(jié)合了基于調(diào)度和競爭的兩種MAC 協(xié)議。網(wǎng)絡(luò)模式分為信標(biāo)使能和非信標(biāo)使能兩種模式,非信標(biāo)使能模式下,網(wǎng)絡(luò)中節(jié)點采用非時隙CSMA/CA 機(jī)制競爭信道并傳輸數(shù)據(jù)。
信標(biāo)使能模式引入占空比,時間結(jié)構(gòu)采用有固定工作周期的超幀,超幀由活躍周期和非活躍周期組成,數(shù)據(jù)傳輸集中在活躍期,非活躍期節(jié)點進(jìn)入休眠狀態(tài)以減少能耗?;钴S期包含16 個等間時隙,進(jìn)一步劃分為信標(biāo)周期、競爭訪問期(Contention Access Period,CAP)和非競爭訪問期(Contention-Free Period,CFP)即保證時段(Guaranteed Time Slot,GTS)。協(xié)調(diào)器在信標(biāo)周期內(nèi)廣播信標(biāo)幀,全網(wǎng)節(jié)點時鐘同步且分配時隙,在競爭訪問期,節(jié)點利用時隙CSMA/CA 機(jī)制競爭信道,在給定的時隙內(nèi)進(jìn)行數(shù)據(jù)傳輸。非競爭訪問期是由信標(biāo)幀依據(jù)網(wǎng)絡(luò)流量設(shè)置,是可選的,協(xié)調(diào)器針對高優(yōu)先級節(jié)點傳輸要求,在非競爭訪問期分配了GTS 傳輸數(shù)據(jù)。
IEEE802.15.4 MAC 協(xié)議為小負(fù)載網(wǎng)絡(luò)節(jié)點接入信道提供了一種靈活的方式,提高網(wǎng)絡(luò)擴(kuò)展性且通過GTS 機(jī)制保證數(shù)據(jù)傳輸。不足之處是,GTS 可用時隙數(shù)目最大為7,無法滿足高負(fù)載網(wǎng)絡(luò)數(shù)據(jù)傳輸。超幀活躍周期長度必須通過超幀指標(biāo)(SuperframeOrder,SO)等參數(shù)預(yù)先配置,不能實時擴(kuò)展以處理突發(fā)流量負(fù)載,導(dǎo)致帶寬受限。
在混合MAC 協(xié)議IEEE 802.15.4 基礎(chǔ)上,Queue-MAC[32]協(xié)議采用標(biāo)準(zhǔn)IEEE 802.15.4 MAC 的超幀結(jié)構(gòu),將“隊列指示器”定義為IEEE 標(biāo)準(zhǔn)MAC 包有效載荷的第一個字節(jié),以此描述節(jié)點的負(fù)載,隊列長度作為網(wǎng)絡(luò)流量指示器,根據(jù)當(dāng)前網(wǎng)絡(luò)流量動態(tài)調(diào)整占空比?;赒ueue-MAC,iQueue-MAC[33]協(xié)議引入跳頻和路由節(jié)點突發(fā)傳輸機(jī)制,增強(qiáng)協(xié)議對節(jié)點多跳和多信道接入的支持。pQueue-MAC[34]在Queue-MAC 的競爭階段使用序言采樣檢查低流量條件下的潛在通信。即通過信道監(jiān)聽,可以確定哪些節(jié)點選擇休眠以節(jié)能,哪些節(jié)點選擇保持活躍以進(jìn)行數(shù)據(jù)交換。節(jié)點隊列中的數(shù)據(jù)包需等待協(xié)調(diào)器廣播下一信標(biāo)幀后才能發(fā)送,時延很大。因此,eQueue-MAC[35]協(xié)議采用在競爭周期和非競爭周期間插入次信標(biāo)幀,實現(xiàn)當(dāng)前超幀內(nèi)時隙分配。
Z-MAC 混合協(xié)議(Zebra MAC)[36]以CSMA 競爭機(jī)制為基準(zhǔn),競爭加劇時以TDMA 調(diào)度機(jī)制分配信道使用權(quán)。ZMAC 協(xié)議包括啟動階段和通信階段兩個階段,啟動階段由鄰居發(fā)現(xiàn)、時隙分配、本地時間幀交換、全局時間同步4 步驟構(gòu)成。協(xié)議運行之初,鄰居發(fā)現(xiàn)階段每個節(jié)點通過信息交換收集兩跳鄰居節(jié)點信息,再執(zhí)行DRAND 算法為每個節(jié)點分配時隙,與兩跳范圍鄰居節(jié)點時隙不會沖突,確保節(jié)點一跳范圍數(shù)據(jù)傳輸不會發(fā)生碰撞。采用本地幀結(jié)構(gòu),節(jié)點時隙分配后,指定自身本地時間幀的大小,與節(jié)點兩跳范圍鄰居節(jié)點數(shù)相對,確保節(jié)點兩跳范圍內(nèi)所有節(jié)點的數(shù)據(jù)傳輸都不會發(fā)生碰撞。網(wǎng)絡(luò)初始化后,所有節(jié)點獲得全局時鐘,且分配了時隙,在此時隙內(nèi),時隙所有者的優(yōu)先權(quán)最高。網(wǎng)絡(luò)負(fù)載小、競爭低的情況下,節(jié)點處于低沖突級別狀態(tài),可在所分配時隙內(nèi)優(yōu)先發(fā)送數(shù)據(jù),若沒有數(shù)據(jù)傳輸,其他所有節(jié)點都可通過競爭“竊取”信道;網(wǎng)絡(luò)負(fù)載大、競爭激烈情況下,節(jié)點處于高沖突級別狀態(tài),會發(fā)出一個顯示反饋通知(Explicit Contention Notification,ECN)消息給兩跳鄰居節(jié)點,禁止競爭時隙,只有時隙所有者及其一跳鄰居可以競爭信道。時隙所有者優(yōu)先級機(jī)制實現(xiàn)了依據(jù)競爭程度隱式切換CSMA 和TDMA 機(jī)制。
Z-MAC 協(xié)議與基于競爭的協(xié)議相比,在高負(fù)載時有更少能耗,但為了避免沖突,限制了節(jié)點發(fā)送數(shù)據(jù)的可選擇時隙,增加了時延;與基于調(diào)度的協(xié)議相比,在低負(fù)載時可維持與之相當(dāng)?shù)臅r延,但仍然避免不了隱終端問題。且ZMAC 采用的ECN 機(jī)制競爭激烈時容易聚爆,對此需要通過更多控制抑制聚爆,從而增加了開銷。
針對Z-MAC 協(xié)議應(yīng)用的DRAND 算法復(fù)雜度較高問題,設(shè)計一種基于能量和拓?fù)湟蜃拥姆植际絋DMA 時隙調(diào)度E-T DRAND[37]算法。該算法考慮了網(wǎng)絡(luò)節(jié)點的鄰居數(shù)和剩余能量,降低了消息復(fù)雜度、時間復(fù)雜度,從而減少了算法的執(zhí)行時間和能量消耗,提高了TDMA 時隙調(diào)度效率。但當(dāng)連續(xù)時隙請求發(fā)生時,相鄰節(jié)點之間交換數(shù)據(jù)包過多,會導(dǎo)致時隙分配時間和輪數(shù)不收斂,這將增加數(shù)據(jù)包交換的數(shù)量和時隙分配的運行時間。在此基礎(chǔ)上,通過引入Lamport 的面包樹算法思想,提出基于指數(shù)回退規(guī)則和能量拓?fù)湟蜃拥姆植际絋DMA 調(diào)度EB-ET DRAND[38]優(yōu)先級控制算法,對時隙分配的優(yōu)先級進(jìn)行適當(dāng)調(diào)整。
無線傳感器網(wǎng)絡(luò)研究熱度不減,而MAC 協(xié)議對網(wǎng)絡(luò)整體性能有直接影響。本文將MAC 協(xié)議分為調(diào)度型、競爭型和混合型三大類,并對典型的MAC 協(xié)議進(jìn)行系統(tǒng)梳理和分析比較。研究發(fā)現(xiàn),調(diào)度型MAC 協(xié)議網(wǎng)絡(luò)擴(kuò)展性相對較差,但低負(fù)載時空時隙易造成能量浪費;競爭型MAC 協(xié)議復(fù)雜度低,但高負(fù)載時沖突頻繁易增加能耗;混合型MAC協(xié)議更能適應(yīng)網(wǎng)絡(luò)動態(tài)變化,但協(xié)議復(fù)雜度高且運行開銷大。通過研究可知,現(xiàn)有的MAC 協(xié)議還沒有一種能夠適合所有WSN 應(yīng)用且保持高性能。因此,MAC 協(xié)議設(shè)計在滿足網(wǎng)絡(luò)需求且提高整體性能方面還有較大改進(jìn)空間。