葛文庚,宋三華
(黃淮學院信息工程學院,河南 駐馬店 463000)
無線傳感網(wǎng)絡WSNs(Wireless Sensor Networks)廣泛應用于事件檢測應用[1],如森林火災檢測。WSNs節(jié)點通過感測環(huán)境數(shù)據(jù),并分析數(shù)據(jù)。一旦發(fā)現(xiàn)數(shù)據(jù)存在異常,則可能發(fā)生異常事件。然而,在多數(shù)情況下,無異常事件發(fā)生,即發(fā)生異常事件的頻率是非常低的。因此,節(jié)點在大部分時間內只需保持空閑監(jiān)聽(Idle Listening)狀態(tài)。即使是空閑狀態(tài),仍有能耗。
此外,當節(jié)點發(fā)現(xiàn)異常事件,需要將相關數(shù)據(jù)傳輸至基站[2]。而數(shù)據(jù)傳輸時延直接影響到應用性能,特別是異常事件。多數(shù)情況下,異常事情屬于緊急情況,需要實時、快速處理。為了快速地傳輸數(shù)據(jù),多數(shù)方案采用同步的媒體接入控制協(xié)議MAC(Medium Access Control)[3-4]。在傳輸時延方面,同步MAC協(xié)議優(yōu)于異步MAC協(xié)議。
目前研究人員已對同步MAC協(xié)議進行了大量研究。Ye等[5]提出基于周期休眠-喚醒的同步MAC協(xié)議SMAC。在SMAC協(xié)議,一個周期內包含3個子窗口:同步窗口SW(Synchronization Window)、數(shù)據(jù)傳輸調度窗口DW(Data transmission scheduling Window)和休眠窗口SlpW(Sleep Window)。其中SW窗口用于向外傳輸自己的休眠-喚醒計劃,而DW窗口用于數(shù)據(jù)傳輸。SMAC協(xié)議通過采用休眠策略,降低了能耗。但是它只允許在一跳鄰居節(jié)點范圍內傳輸數(shù)據(jù),增加了傳輸時延。
Du等[6]提出基于交互層信息的RMAC協(xié)議。RMAC協(xié)議定義新的控制包,其載入了跳距信息,并且節(jié)點在DW內可完成多跳傳輸。與SMAC協(xié)議相比,RMAC協(xié)議在多跳場景的數(shù)據(jù)包傳遞率得到提高,降低了傳輸時延。但是,RMAC協(xié)議在一個周期內只傳輸一個數(shù)據(jù)包,這極大地限制了數(shù)據(jù)包傳遞率。文獻[7-10]所提出的MAC協(xié)議均存在這個問題。
為了解決此問題,Canli等[11]提出PRMAC協(xié)議。PRMAC協(xié)議依據(jù)MAC層的需求,一個周期內可多次傳輸數(shù)據(jù),降低了傳輸時延,并提高了數(shù)據(jù)包傳遞率。然而,PRMAC協(xié)議也存在一些不足,如請求數(shù)據(jù)包與確認包都在DW內傳輸,并沒有獨立分開。
據(jù)此,本文對PRMAC協(xié)議進行改進,并提出面向多跳場景的PRMAC的改進協(xié)議MH-PRMAC(Multi-Hop PRMAC)。MH-PRMAC協(xié)議對周期策略進行改進,并將請求數(shù)據(jù)包和確認包分開傳輸,進一步降低傳輸時延。實驗數(shù)據(jù)表明,相比于RPMAC協(xié)議,改進后的PRMAC協(xié)議(MH-PRMAC)有效地提高了數(shù)據(jù)包傳遞率,并降低傳輸時延。
為了減少端到端傳輸時延和控制包數(shù),PRMAC協(xié)議內的每個節(jié)點(假定節(jié)點i)需向它的下流節(jié)點(假定節(jié)點j),告知兩項信息:1)節(jié)點i需要向節(jié)點j發(fā)送的數(shù)據(jù)包數(shù);2)節(jié)點i從它的上流節(jié)點所接收的數(shù)據(jù)包數(shù)。
為了避免數(shù)據(jù)包碰撞,設置數(shù)據(jù)包傳輸?shù)淖钚r間間隔TP。此外,PRMAC協(xié)議引用探測數(shù)據(jù)包PPT(Probe Packet)。PPT包含了跳數(shù)和需要傳輸?shù)臄?shù)據(jù)包數(shù)。
圖1 PRAMR協(xié)議的數(shù)據(jù)包傳輸示意圖
圖1顯示了PRMAC協(xié)議原理。首先,節(jié)點A向節(jié)點B發(fā)送PPT(A),其包含了1)節(jié)點A需要向外傳輸?shù)臄?shù)據(jù)包數(shù),假定Num_transmitted packets=2;2)節(jié)點A離源節(jié)點的跳數(shù)h=0(由于節(jié)點A是源節(jié)點,跳數(shù)h=0)。
一旦接收到PPT(A)包,節(jié)點B也向節(jié)點S傳輸PPT(B),其中Num_transmitted packets=2,h=1。由于節(jié)點A和B為鄰居節(jié)點,節(jié)點A可以收到PPT(B)。一旦收到PPT(B),說明節(jié)點B,說明節(jié)點B開始傳輸PPT,此時節(jié)點A進入休眠狀態(tài)。
若DW的剩余時間不足于傳輸PION包或者數(shù)據(jù)包時,節(jié)點B和S也進行休眠,如圖1所示。當休眠結束后,它們就喚醒,并開始數(shù)據(jù)包的傳輸。
雖然PRMAC協(xié)議改善了傳輸時延和數(shù)據(jù)包傳遞的性能,但它仍存在一些不足。首先,在DW階段,只有剩余時間大于PPT的傳輸時間和SIFS間隔之和,才可以傳輸PPT包,這可能導致PPT的滯留。其次,請求控制包和確認包都在DW內傳輸,并沒有將它們分開。實際上,確認包完全可以放在休眠階段傳輸。
與PRMAC協(xié)議不同,MH-PRMAC協(xié)議采用新的周期結構,如圖2所示。一個周期內劃分為兩個窗口,即喚醒窗口(Wake Window,WW)和休眠窗口(Sleep Window,SlpW),而WW窗口進一步劃分為SW和DW,其中SW用于同步信息的傳輸。
圖2 MH-PRMAC協(xié)議的周期結構
完成了同步后,進入DW階段。在DW階段,先利用媒體競爭窗口CW(Contention Window)接入媒體。一旦成功接入,就開始傳輸請求發(fā)送包RTSD(Request-To-Send Data)[12]。RTSD包的格式如表1所示,由源地址、接收節(jié)點地址、跳數(shù)、數(shù)據(jù)包數(shù)和目的地址字段構成,字節(jié)數(shù)分別為2 byte、2 byte、1 byte、1 byte和2 byte。
表1 RTSD格式
DW窗口結束后,進入休眠窗口SlpW。為了提高資源利用率,將休眠窗口SlpW進一步劃分兩個子窗口:SlpW1和SlpW2,如圖2所示。SlpW1內由N個確認窗口CFW(Confirmation Window)和一個請求窗口RQW(Request Window)組成。N值的計算如式(1)所示。
N=|TDW/(TRTSD+SIFS)|
(1)
式中:TRTSD為傳輸RTSD包的窗口時長,TDW為DW窗口的寬度。
一個休眠窗口由RQW和CFW兩類窗口組成,時長結構如圖3所示,其中RQW窗口時長等長SIFS+TRTSD,而CFW窗口時長等于SIFS+TCTSD。TCTSD表示傳輸一個確認發(fā)送數(shù)據(jù)包CTSD(Confirmation-To-Send Data)包所需要的時間[12]。此外,一個休眠窗口由多個CFW組成,第i個CFW表示為CFWi,1≤i≤N。
圖3 一個休眠窗口示意圖
一旦接收到了RTSD包,就從中提取跳距信息。如果跳距是h,則就在CFWh+1窗口喚醒。然后,再向上流節(jié)點發(fā)送CTSD控制包,其包含了發(fā)送節(jié)點、接收節(jié)點地址以及需要傳輸?shù)臄?shù)據(jù)包數(shù)。
以圖4所示網(wǎng)絡結構為例,分析數(shù)據(jù)傳輸過程。節(jié)點A有兩個數(shù)據(jù)包需要向目的節(jié)點S傳輸。
圖4 網(wǎng)絡結構示例
圖5 RTSD和CTSD控制包傳輸示意圖
首先,節(jié)點通過CW競爭接入媒介。一旦競爭成功,節(jié)點A就傳輸RTSD控制包。傳輸完畢后,就休眠。當節(jié)點B收到RTSD包后,它再向目的節(jié)點S傳輸RTSD包,隨后也進入休眠階段。類似地,當節(jié)點S收到RTSD包,也進入休眠階段,如圖5所示。
假定目的節(jié)點S能接收來自節(jié)點B發(fā)送的數(shù)據(jù)包,則它就在CFW2窗口喚醒,并向節(jié)點B發(fā)送CTSD包,其包含了目的節(jié)點S能夠接收的數(shù)據(jù)包數(shù)。類似地,在CFW1窗口開始,節(jié)點B向節(jié)點A發(fā)送CTSD,它能夠接收的數(shù)據(jù)包數(shù)。通過這種方式,使得CTSD和RTSD在不同窗口內傳輸。
在下一個休眠窗口,節(jié)點A、B就喚醒,并開始傳輸、接收第1個數(shù)據(jù)包,如圖6所示。當節(jié)點B收到數(shù)據(jù)包后,就向目的節(jié)點轉發(fā)數(shù)據(jù)包。
圖6 數(shù)據(jù)包傳輸過程示意圖
選用NS2.3.5軟件[13-14]建立仿真平臺。900個節(jié)點分布于1 800 m×1 800 m的網(wǎng)絡區(qū)域內,且目的節(jié)點位于(900 m,900 m)的中心位置。在實驗過程,選擇PRMAC協(xié)議作為參照,分析PRMAC協(xié)議與MH-PRMAC協(xié)議在數(shù)據(jù)包傳輸時延、數(shù)據(jù)包傳遞率的性能差異。此外,實驗中各類控制包和數(shù)據(jù)包尺寸如表2所示。
表2 數(shù)據(jù)包尺寸
為了測試跳距對路由性能的影響,在實驗過程中改變跳距h值,且其從1至6變化。在每一個數(shù)據(jù)流傳輸時,隨機選擇某一個節(jié)點為源節(jié)點,且由源節(jié)點產(chǎn)生CBR數(shù)據(jù)流[15]。同時,規(guī)定CBR包間隔為1 s。此外,表3顯示了兩個協(xié)議的周期結構中各窗口時長,如SW窗口為55.2 ms。
表3 周期時長
圖7顯示了跳距對數(shù)據(jù)包傳輸時延的影響。從圖7可知,跳距的增加了傳輸時延。原因在于:跳距的增加,延長數(shù)據(jù)包傳輸路徑,必然增加傳輸時延。此外,與PRMAC協(xié)議相比,改進后的MH-PRMAC協(xié)議的傳輸時延得到有效控制。例如,在跳距h=5時,MH-PRMAC協(xié)議的傳輸時延約為20 ms,而PRMAC協(xié)議的傳輸時延約為35 ms,縮短了約30%。
圖7 數(shù)據(jù)包傳輸時延隨跳距變化曲線
數(shù)據(jù)包傳輸率隨跳距變化曲線如圖8所示。從圖8可知,跳距的增加,降低了數(shù)據(jù)包傳輸率。原因在于:跳距數(shù)越大,數(shù)據(jù)包傳輸路徑也越長,鏈路斷裂概率也越大。相比于PRMAC協(xié)議,改進后的MH-PRMAC協(xié)議的數(shù)據(jù)包傳輸率得到較大提升。這主要是因為:MH-PRMAC協(xié)議能進行多跳傳輸,提高了數(shù)據(jù)包傳輸率。例如,當跳距為5時,PRMAC協(xié)議的數(shù)據(jù)包傳輸率約為0.6,而MH-PRMAC協(xié)議的數(shù)據(jù)包傳輸率提升至0.825,提高了約40%。
圖8 數(shù)據(jù)包傳遞率隨跳距變化曲線
本文以PRMAC協(xié)議為基礎,先分析了WSNs內的同步MAC協(xié)議,并闡述了PRMAC協(xié)議的不足,然后對PRMAC協(xié)議進行改進。MH-PRMAC協(xié)議引用新的周期結構,并設置兩個獨立窗口,分別傳輸RTSD和CTSD,提升了數(shù)據(jù)傳輸流量。實驗數(shù)據(jù)表明,改進后的MH-PRMAC協(xié)議能夠有效地控制傳輸時延,并提高數(shù)據(jù)包傳輸率。
參考文獻:
[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]. 傳感技術學報,2016,29(3):417-222.
[3] 任昊翔,郭達偉,邵凝寧,等. 一種新型的無競爭的基于TDMA的MAC協(xié)議[J]. 傳感技術學報,2013,26(1):89~94.
[4] 張棟梁,曲豪,海本齋. 多信道車載網(wǎng)中基于時分多址的MAC改進算法[J]. 電訊技術,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] 馮雪麗,顏伏伍. 基于跨層競爭的同步MAC協(xié)議的研究[J]. 傳感器與微系統(tǒng),2017,36(11):34-41.