葛文庚,宋三華
(黃淮學(xué)院信息工程學(xué)院,河南 駐馬店 463000)
無(wú)線傳感網(wǎng)絡(luò)WSNs(Wireless Sensor Networks)廣泛應(yīng)用于事件檢測(cè)應(yīng)用[1],如森林火災(zāi)檢測(cè)。WSNs節(jié)點(diǎn)通過(guò)感測(cè)環(huán)境數(shù)據(jù),并分析數(shù)據(jù)。一旦發(fā)現(xiàn)數(shù)據(jù)存在異常,則可能發(fā)生異常事件。然而,在多數(shù)情況下,無(wú)異常事件發(fā)生,即發(fā)生異常事件的頻率是非常低的。因此,節(jié)點(diǎn)在大部分時(shí)間內(nèi)只需保持空閑監(jiān)聽(Idle Listening)狀態(tài)。即使是空閑狀態(tài),仍有能耗。
此外,當(dāng)節(jié)點(diǎn)發(fā)現(xiàn)異常事件,需要將相關(guān)數(shù)據(jù)傳輸至基站[2]。而數(shù)據(jù)傳輸時(shí)延直接影響到應(yīng)用性能,特別是異常事件。多數(shù)情況下,異常事情屬于緊急情況,需要實(shí)時(shí)、快速處理。為了快速地傳輸數(shù)據(jù),多數(shù)方案采用同步的媒體接入控制協(xié)議MAC(Medium Access Control)[3-4]。在傳輸時(shí)延方面,同步MAC協(xié)議優(yōu)于異步MAC協(xié)議。
目前研究人員已對(duì)同步MAC協(xié)議進(jìn)行了大量研究。Ye等[5]提出基于周期休眠-喚醒的同步MAC協(xié)議SMAC。在SMAC協(xié)議,一個(gè)周期內(nèi)包含3個(gè)子窗口:同步窗口SW(Synchronization Window)、數(shù)據(jù)傳輸調(diào)度窗口DW(Data transmission scheduling Window)和休眠窗口SlpW(Sleep Window)。其中SW窗口用于向外傳輸自己的休眠-喚醒計(jì)劃,而DW窗口用于數(shù)據(jù)傳輸。SMAC協(xié)議通過(guò)采用休眠策略,降低了能耗。但是它只允許在一跳鄰居節(jié)點(diǎn)范圍內(nèi)傳輸數(shù)據(jù),增加了傳輸時(shí)延。
Du等[6]提出基于交互層信息的RMAC協(xié)議。RMAC協(xié)議定義新的控制包,其載入了跳距信息,并且節(jié)點(diǎn)在DW內(nèi)可完成多跳傳輸。與SMAC協(xié)議相比,RMAC協(xié)議在多跳場(chǎng)景的數(shù)據(jù)包傳遞率得到提高,降低了傳輸時(shí)延。但是,RMAC協(xié)議在一個(gè)周期內(nèi)只傳輸一個(gè)數(shù)據(jù)包,這極大地限制了數(shù)據(jù)包傳遞率。文獻(xiàn)[7-10]所提出的MAC協(xié)議均存在這個(gè)問(wèn)題。
為了解決此問(wèn)題,Canli等[11]提出PRMAC協(xié)議。PRMAC協(xié)議依據(jù)MAC層的需求,一個(gè)周期內(nèi)可多次傳輸數(shù)據(jù),降低了傳輸時(shí)延,并提高了數(shù)據(jù)包傳遞率。然而,PRMAC協(xié)議也存在一些不足,如請(qǐng)求數(shù)據(jù)包與確認(rèn)包都在DW內(nèi)傳輸,并沒(méi)有獨(dú)立分開。
據(jù)此,本文對(duì)PRMAC協(xié)議進(jìn)行改進(jìn),并提出面向多跳場(chǎng)景的PRMAC的改進(jìn)協(xié)議MH-PRMAC(Multi-Hop PRMAC)。MH-PRMAC協(xié)議對(duì)周期策略進(jìn)行改進(jìn),并將請(qǐng)求數(shù)據(jù)包和確認(rèn)包分開傳輸,進(jìn)一步降低傳輸時(shí)延。實(shí)驗(yàn)數(shù)據(jù)表明,相比于RPMAC協(xié)議,改進(jìn)后的PRMAC協(xié)議(MH-PRMAC)有效地提高了數(shù)據(jù)包傳遞率,并降低傳輸時(shí)延。
為了減少端到端傳輸時(shí)延和控制包數(shù),PRMAC協(xié)議內(nèi)的每個(gè)節(jié)點(diǎn)(假定節(jié)點(diǎn)i)需向它的下流節(jié)點(diǎn)(假定節(jié)點(diǎn)j),告知兩項(xiàng)信息:1)節(jié)點(diǎn)i需要向節(jié)點(diǎn)j發(fā)送的數(shù)據(jù)包數(shù);2)節(jié)點(diǎn)i從它的上流節(jié)點(diǎn)所接收的數(shù)據(jù)包數(shù)。
為了避免數(shù)據(jù)包碰撞,設(shè)置數(shù)據(jù)包傳輸?shù)淖钚r(shí)間間隔TP。此外,PRMAC協(xié)議引用探測(cè)數(shù)據(jù)包PPT(Probe Packet)。PPT包含了跳數(shù)和需要傳輸?shù)臄?shù)據(jù)包數(shù)。
圖1 PRAMR協(xié)議的數(shù)據(jù)包傳輸示意圖
圖1顯示了PRMAC協(xié)議原理。首先,節(jié)點(diǎn)A向節(jié)點(diǎn)B發(fā)送PPT(A),其包含了1)節(jié)點(diǎn)A需要向外傳輸?shù)臄?shù)據(jù)包數(shù),假定Num_transmitted packets=2;2)節(jié)點(diǎn)A離源節(jié)點(diǎn)的跳數(shù)h=0(由于節(jié)點(diǎn)A是源節(jié)點(diǎn),跳數(shù)h=0)。
一旦接收到PPT(A)包,節(jié)點(diǎn)B也向節(jié)點(diǎn)S傳輸PPT(B),其中Num_transmitted packets=2,h=1。由于節(jié)點(diǎn)A和B為鄰居節(jié)點(diǎn),節(jié)點(diǎn)A可以收到PPT(B)。一旦收到PPT(B),說(shuō)明節(jié)點(diǎn)B,說(shuō)明節(jié)點(diǎn)B開始傳輸PPT,此時(shí)節(jié)點(diǎn)A進(jìn)入休眠狀態(tài)。
若DW的剩余時(shí)間不足于傳輸PION包或者數(shù)據(jù)包時(shí),節(jié)點(diǎn)B和S也進(jìn)行休眠,如圖1所示。當(dāng)休眠結(jié)束后,它們就喚醒,并開始數(shù)據(jù)包的傳輸。
雖然PRMAC協(xié)議改善了傳輸時(shí)延和數(shù)據(jù)包傳遞的性能,但它仍存在一些不足。首先,在DW階段,只有剩余時(shí)間大于PPT的傳輸時(shí)間和SIFS間隔之和,才可以傳輸PPT包,這可能導(dǎo)致PPT的滯留。其次,請(qǐng)求控制包和確認(rèn)包都在DW內(nèi)傳輸,并沒(méi)有將它們分開。實(shí)際上,確認(rèn)包完全可以放在休眠階段傳輸。
與PRMAC協(xié)議不同,MH-PRMAC協(xié)議采用新的周期結(jié)構(gòu),如圖2所示。一個(gè)周期內(nèi)劃分為兩個(gè)窗口,即喚醒窗口(Wake Window,WW)和休眠窗口(Sleep Window,SlpW),而WW窗口進(jìn)一步劃分為SW和DW,其中SW用于同步信息的傳輸。
圖2 MH-PRMAC協(xié)議的周期結(jié)構(gòu)
完成了同步后,進(jìn)入DW階段。在DW階段,先利用媒體競(jìng)爭(zhēng)窗口CW(Contention Window)接入媒體。一旦成功接入,就開始傳輸請(qǐng)求發(fā)送包RTSD(Request-To-Send Data)[12]。RTSD包的格式如表1所示,由源地址、接收節(jié)點(diǎn)地址、跳數(shù)、數(shù)據(jù)包數(shù)和目的地址字段構(gòu)成,字節(jié)數(shù)分別為2 byte、2 byte、1 byte、1 byte和2 byte。
表1 RTSD格式
DW窗口結(jié)束后,進(jìn)入休眠窗口SlpW。為了提高資源利用率,將休眠窗口SlpW進(jìn)一步劃分兩個(gè)子窗口:SlpW1和SlpW2,如圖2所示。SlpW1內(nèi)由N個(gè)確認(rèn)窗口CFW(Confirmation Window)和一個(gè)請(qǐng)求窗口RQW(Request Window)組成。N值的計(jì)算如式(1)所示。
N=|TDW/(TRTSD+SIFS)|
(1)
式中:TRTSD為傳輸RTSD包的窗口時(shí)長(zhǎng),TDW為DW窗口的寬度。
一個(gè)休眠窗口由RQW和CFW兩類窗口組成,時(shí)長(zhǎng)結(jié)構(gòu)如圖3所示,其中RQW窗口時(shí)長(zhǎng)等長(zhǎng)SIFS+TRTSD,而CFW窗口時(shí)長(zhǎng)等于SIFS+TCTSD。TCTSD表示傳輸一個(gè)確認(rèn)發(fā)送數(shù)據(jù)包CTSD(Confirmation-To-Send Data)包所需要的時(shí)間[12]。此外,一個(gè)休眠窗口由多個(gè)CFW組成,第i個(gè)CFW表示為CFWi,1≤i≤N。
圖3 一個(gè)休眠窗口示意圖
一旦接收到了RTSD包,就從中提取跳距信息。如果跳距是h,則就在CFWh+1窗口喚醒。然后,再向上流節(jié)點(diǎn)發(fā)送CTSD控制包,其包含了發(fā)送節(jié)點(diǎn)、接收節(jié)點(diǎn)地址以及需要傳輸?shù)臄?shù)據(jù)包數(shù)。
以圖4所示網(wǎng)絡(luò)結(jié)構(gòu)為例,分析數(shù)據(jù)傳輸過(guò)程。節(jié)點(diǎn)A有兩個(gè)數(shù)據(jù)包需要向目的節(jié)點(diǎn)S傳輸。
圖4 網(wǎng)絡(luò)結(jié)構(gòu)示例
圖5 RTSD和CTSD控制包傳輸示意圖
首先,節(jié)點(diǎn)通過(guò)CW競(jìng)爭(zhēng)接入媒介。一旦競(jìng)爭(zhēng)成功,節(jié)點(diǎn)A就傳輸RTSD控制包。傳輸完畢后,就休眠。當(dāng)節(jié)點(diǎn)B收到RTSD包后,它再向目的節(jié)點(diǎn)S傳輸RTSD包,隨后也進(jìn)入休眠階段。類似地,當(dāng)節(jié)點(diǎn)S收到RTSD包,也進(jìn)入休眠階段,如圖5所示。
假定目的節(jié)點(diǎn)S能接收來(lái)自節(jié)點(diǎn)B發(fā)送的數(shù)據(jù)包,則它就在CFW2窗口喚醒,并向節(jié)點(diǎn)B發(fā)送CTSD包,其包含了目的節(jié)點(diǎn)S能夠接收的數(shù)據(jù)包數(shù)。類似地,在CFW1窗口開始,節(jié)點(diǎn)B向節(jié)點(diǎn)A發(fā)送CTSD,它能夠接收的數(shù)據(jù)包數(shù)。通過(guò)這種方式,使得CTSD和RTSD在不同窗口內(nèi)傳輸。
在下一個(gè)休眠窗口,節(jié)點(diǎn)A、B就喚醒,并開始傳輸、接收第1個(gè)數(shù)據(jù)包,如圖6所示。當(dāng)節(jié)點(diǎn)B收到數(shù)據(jù)包后,就向目的節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包。
圖6 數(shù)據(jù)包傳輸過(guò)程示意圖
選用NS2.3.5軟件[13-14]建立仿真平臺(tái)。900個(gè)節(jié)點(diǎn)分布于1 800 m×1 800 m的網(wǎng)絡(luò)區(qū)域內(nèi),且目的節(jié)點(diǎn)位于(900 m,900 m)的中心位置。在實(shí)驗(yàn)過(guò)程,選擇PRMAC協(xié)議作為參照,分析PRMAC協(xié)議與MH-PRMAC協(xié)議在數(shù)據(jù)包傳輸時(shí)延、數(shù)據(jù)包傳遞率的性能差異。此外,實(shí)驗(yàn)中各類控制包和數(shù)據(jù)包尺寸如表2所示。
表2 數(shù)據(jù)包尺寸
為了測(cè)試跳距對(duì)路由性能的影響,在實(shí)驗(yàn)過(guò)程中改變跳距h值,且其從1至6變化。在每一個(gè)數(shù)據(jù)流傳輸時(shí),隨機(jī)選擇某一個(gè)節(jié)點(diǎn)為源節(jié)點(diǎn),且由源節(jié)點(diǎn)產(chǎn)生CBR數(shù)據(jù)流[15]。同時(shí),規(guī)定CBR包間隔為1 s。此外,表3顯示了兩個(gè)協(xié)議的周期結(jié)構(gòu)中各窗口時(shí)長(zhǎng),如SW窗口為55.2 ms。
表3 周期時(shí)長(zhǎng)
圖7顯示了跳距對(duì)數(shù)據(jù)包傳輸時(shí)延的影響。從圖7可知,跳距的增加了傳輸時(shí)延。原因在于:跳距的增加,延長(zhǎng)數(shù)據(jù)包傳輸路徑,必然增加傳輸時(shí)延。此外,與PRMAC協(xié)議相比,改進(jìn)后的MH-PRMAC協(xié)議的傳輸時(shí)延得到有效控制。例如,在跳距h=5時(shí),MH-PRMAC協(xié)議的傳輸時(shí)延約為20 ms,而PRMAC協(xié)議的傳輸時(shí)延約為35 ms,縮短了約30%。
圖7 數(shù)據(jù)包傳輸時(shí)延隨跳距變化曲線
數(shù)據(jù)包傳輸率隨跳距變化曲線如圖8所示。從圖8可知,跳距的增加,降低了數(shù)據(jù)包傳輸率。原因在于:跳距數(shù)越大,數(shù)據(jù)包傳輸路徑也越長(zhǎng),鏈路斷裂概率也越大。相比于PRMAC協(xié)議,改進(jìn)后的MH-PRMAC協(xié)議的數(shù)據(jù)包傳輸率得到較大提升。這主要是因?yàn)?MH-PRMAC協(xié)議能進(jìn)行多跳傳輸,提高了數(shù)據(jù)包傳輸率。例如,當(dāng)跳距為5時(shí),PRMAC協(xié)議的數(shù)據(jù)包傳輸率約為0.6,而MH-PRMAC協(xié)議的數(shù)據(jù)包傳輸率提升至0.825,提高了約40%。
圖8 數(shù)據(jù)包傳遞率隨跳距變化曲線
本文以PRMAC協(xié)議為基礎(chǔ),先分析了WSNs內(nèi)的同步MAC協(xié)議,并闡述了PRMAC協(xié)議的不足,然后對(duì)PRMAC協(xié)議進(jìn)行改進(jìn)。MH-PRMAC協(xié)議引用新的周期結(jié)構(gòu),并設(shè)置兩個(gè)獨(dú)立窗口,分別傳輸RTSD和CTSD,提升了數(shù)據(jù)傳輸流量。實(shí)驗(yàn)數(shù)據(jù)表明,改進(jìn)后的MH-PRMAC協(xié)議能夠有效地控制傳輸時(shí)延,并提高數(shù)據(jù)包傳輸率。
參考文獻(xiàn):
[1] Papadopoulos G Z,Kotsiou V,Gallais A,et al. Wireless Medium Access Control under Mobility and Bursty Traffic Assumptions in WSNs[J]. Springer Mobile Networks and Applications,2015,20(5):649-660.
[2] 朱路,劉媛媛,慈白山,等. 多稀疏基分簇壓縮感知的WSN數(shù)據(jù)融合方法[J]. 傳感技術(shù)學(xué)報(bào),2016,29(3):417-222.
[3] 任昊翔,郭達(dá)偉,邵凝寧,等. 一種新型的無(wú)競(jìng)爭(zhēng)的基于TDMA的MAC協(xié)議[J]. 傳感技術(shù)學(xué)報(bào),2013,26(1):89~94.
[4] 張棟梁,曲豪,海本齋. 多信道車載網(wǎng)中基于時(shí)分多址的MAC改進(jìn)算法[J]. 電訊技術(shù),2017,57(4):23-31.
[5] Ye W,Heidemann J,Estrin D. Medium Access Control with Coordinated Adaptive Sleeping for Wireless Sensor Networks[J]. IEEE/ACM Trans Netw,2014,12(3):493-506.
[6] Du S,Saha A,Johnson D. RMAC:A Routing Enhanced Duty Cycle MAC Protocol for Wireless Sensor Networks[C]//Proc INFOCOM,2016:1 478-1 486.
[7] Sun Y,Du S,Gurewitz O,et al. DW-MAC:A Low Latency Energy Efficient Demand-Wakeup MAC Protocol for Wireless Sensor Networks[C]//Proc Mobi Hoc,2013:53-62.
[8] Liu G,Yao G. SRMAC:Staggered Routing-Enhanced MAC Protocol for Wireless Sensor Networks[C]//Proc Wi COM,2014:1-6.
[9] Cho K T,Bahk S. HE-MAC:Hop Extended MAC Protocol for Wireless Sensor Networks[C]//Proc GLOBCOM,2015:1-6.
[10] Cho K T,Bahk S. Optimal Hop Extended MAC Protocol for Wireless Sensor Networks[J]. Comput Netw,2013,56(4):1 458-1 469.
[11] Canli T,Khokhar A. PRMAC:Pipelined Routing Enhanced MAC Protocol for Wireless Sensor Networks[C]//Proc ICC,2013:1-5.
[12] Singh R,Chouhan S. A Cross-Layer MAC Protocol for Contention Reduction and Pipelined Flow Optimization in Wireless Sensor Networks[C]//Proc RETIS,2015:58-63.
[13] Hefeida M S,Canli T,Khokhar A. CL-MAC:A Cross-Layer MAC Protocol for Heterogeneous Wireless Sensor Networks[J]. Ad Hoc Netw,2013,11(1):213-225.
[14] Ripudaman Singh,Brijesh Kumar Rai,Sanjay K Bose. A Novel Framework to Enhance the Performance of Contention Based Synchronous MAC Protocols[J]. IEEE Sensors J,2016,16(16):6 447-6 457.
[15] 馮雪麗,顏伏伍. 基于跨層競(jìng)爭(zhēng)的同步MAC協(xié)議的研究[J]. 傳感器與微系統(tǒng),2017,36(11):34-41.