宋澤 毛健 王昌達



摘 要:在無線傳感網絡(WSN)中,通常使用溯源數據(Provenance)對基站(BS)接收的數據進行可信評估。鑒于Provenance傳輸能耗較高,且目前缺乏實時測量WSN中能耗的有效手段,在介紹常用Provenance壓縮傳輸方法與PowerTOSSIMz體系結構、仿真原理的基礎上,詳細給出了在TinyOS中使用PowerTOSSIMz評估上述Provenance壓縮傳輸方法能耗的解決方案。仿真結果表明,使用PowerTOSSIMz測量WSN中Provenance的傳輸能耗較為有效。
關鍵詞:無線傳感網絡;溯源數據;壓縮傳輸;PowerTOSSIMz
DOI:10.11907/rjdk.171639
中圖分類號:TP393 文獻標識碼:A 文章編號:1672-7800(2017)009-0170-03
Abstract:In wireless sensor networks (WSN), data from the base station (BS) are usually evaluated reliably usingProvenance. Due to high energy consumption of Provenance transmission, and the lack of effective method of measuring energy consumption in WSN, the paper introduces Provenance compression transmission methodbased on the system structure and the simulation principle.And the paper also describes in detail the use of PowerTOSSIMz in TinyOS solution. Simulation results show that using PowerTOSSIMz to measure the energy consumption of Provenance transmissionin WSN is an effective method.
Key Words:WSN; Provenance; compression transmission; PowerTOSSIMz
0 引言
在WSN中,通常使用Provenance對BS接收的數據進行可信性評估。但是由于Provenance記錄了一個數據從產生、轉發至BS涉及的所有操作[1-2],因而容易引發Provenance的數據量過載問題,并導致極高的傳輸能量消耗。為此,研究人員提出了一些Provenance壓縮方法,如:Provenance分段傳輸的PPM(Probabilistic Packet Marking)方法[3]與PPF(Probabilistic Provenance Flow)方法[4],以及基于字典的DP(Dictionary Based Secure Provenance Compression)方法[5]。然而,由于傳感器節點的能量有限,且實時測量Provenance的傳輸能耗缺乏有效的技術手段,因而出現了較多的嵌入式能耗測量插件,如:PowerTOSSIM[6-8]和PowerTOSSIMz[9]等。其中PowerTOSSIM提供伸縮性能耗評估環境,生成的代碼可直接在TOSSIM上運行,而由Enrico Perla等利用TOSSIM仿真器和事件驅動開發的PowerTOSSIMz,其除了具有豐富的Radio模型外,還具有較為完善的Micaz節點能耗模型。
本文首先介紹目前常用的Provenance壓縮傳輸方法,然后闡述PowerTOSSIMz[9]的仿真原理和體系結構。在此基礎上,介紹PowerTOSSIMz在TinyOS-2.1.2平臺上的配置步驟和仿真過程。實驗結果表明,與PowerTOSSIM相比較,PowerTOSSIMz測量值更加接近真實的能量消耗。
1 Provenance壓縮傳輸方法
1.1 PPM方法
Savage等[3]提出了一種基于概率數據包標記的Provenance編碼方法PPM(Probabilistic Packet Marking)。PPM除了要求一個全局變量M_ID,用于區分Provenance數據片段,還要求每個節點具有標識ID和閾值p(通常p=0.04)。在編碼過程中,若抽簽概率小于p,該節點的ID寫入Provenance緩存中,并修改M_ID的值;反之,PPM則不標記當前節點,僅僅修改M_ID的值,然后在下一個節點處繼續實施編碼。而在解碼過程中,BS首先根據M_ID對所有的Provenance片段進行分類,然后利用節點標記信息可準確地解碼出Provenance。該方法將Provenance分段傳輸至BS,解決了數據包容量受限的問題,但是由于只傳輸節點的ID,整體壓縮比不高,因而Provenance的傳輸能耗較高。
1.2 PPF壓縮方法
Fahmy等[4]提出了一種基于數據鏈路片段標記方法PPF(Probabilistic Provenance Flow)。該方法除了引入分段傳輸和素因子分解技術之外,還規定每個節點都具有標識ID,每條數據鏈路片段具有閾值p,以及一個全局變量F_ID(數據鏈路的ID)。在編碼過程中,若抽簽概率小于閾值p,則清空Provenance緩存區,然后修改F_ID的值,同時將數據鏈路上所有節點ID的最大素數乘積和偏移量之和寫入緩存區中;反之,僅須修改F_ID的值,然后將Provenance傳輸至下一個節點,繼續實施編碼。而在解碼過程中,BS先將相同的F_ID歸為一類,然后用文獻[10]的方法算出節點的ID,并結合網絡拓撲可重建數據源到BS的Provenance。PPF算法采用鏈路標記方法,達到了減少Provenance數據量的目的;但是由于應用了素因子分解算法,因而運行時間復雜度高、效率較低、能耗較大。endprint
1.3 DP壓縮方法
Wang等[5]提出了一種基于字典序的Provenance壓縮方法DP(Dictionary Based Secure Provenance Compression)。在編碼過程中,DP方法首次傳輸完整的Provenance,并在每個節點處建立數據鏈路的字典與索引,其余每次只傳輸數據鏈路在字典中的索引。而在解碼過程中,BS在所有的字典中搜索出索引所對應的字典序,從而能準確恢復出Provenance拓撲。該方法在穩定的網絡環境中,Provenance平均壓縮比較高;反之,若WSN的拓撲結構變化較快,數據鏈路的字典將會難以建立,由此也會導致Provenance的平均壓縮比下降,出現耗能較高的情況。
2 PowerTOSSIMz實現原理
2.1 PowerTOSSIMz體系結構
PowerTOSSIMz的體系結構包括基本模塊和核心模塊,其體系結構如圖1所示。其中,基本模塊是支持TOSSIM的仿真模塊,而核心模塊生成專門的功率狀態信息,通過記錄各仿真節點上硬件抽象組件的功率狀態來分析TOSSIM的仿真結果。
PowerTOSSIMz通過功率狀態信息與功率模型相結合來評估每個仿真節點的耗能情況,采用脫機的工作方式獲取功率狀態的詳細記錄,其能耗測量分為兩個過程:①功率狀態信息的生成過程,僅花費較小的代價即可記錄硬件狀態轉換的開銷;②數據處理過程,采用額外的組件將仿真節點所消耗的總能量進行可視化。因而PowerTOSSIMz評估能耗具有較強的靈活性和有效性。
2.2 PowerTOSSIMz仿真原理
PowerTOSSIMz內核維護了一個仿真器事件隊列。當執行一個仿真器事件時,仿真調度器會檢查相應仿真節點的任務隊列,按照先進先出的原則執行隊列中的任務,直至任務隊列為空。而核心調度器用一個全局狀態表指示正在運行的節點,當執行的任務從硬件抽象組件中退出時,PowerTOSSIMz立即轉去運行TOSSIM。PowerTOSSIMz通過變動較少的代碼替換TOSSIM的部分硬件抽象組件,從而使PowerTOSSIMz接口鏈接到TOSSIM的組件上。另外,PowerTOSSIMz還采用獨立的PowerState模塊測量各節點能耗的方法,有利于擴展接口支持新的硬件組件。
3 仿真
3.1 PowerTOSSIMz配置步驟
(1)根據文獻[11]所在網址下載PowerTOSSIMz源碼。
(2)使用PowerTOSSIMz的組件替換TOSSIM的相關硬件抽象組件,然后在TinyOS的相應目錄下創建PowerTOSSIMz的能耗評估文件,用于測量仿真節點消耗的能量。
(3)在文件support/make/sim.extra中增加build_storage,而在tos/platforms/micaz/sim/.platform文件中須加入如下代碼:
%T/platforms/mica2/chips/at45db
%T/platforms/mica/chips/at45db
%T/chips/at45db
(4)為了生成功率狀態信息,須在Makefile文件中添加:CFLAGS += -DPOWERTOSSIMZ。
(5)在Python的文件中須增加額外的ENERGY_HANDLER,可將標準的能耗結果輸出到指定的文件中。
3.2 PowerTOSSIMz運行過程
首先在tinyos-2.1.2/apps/test目錄下執行如下兩條命令:make micaz、make micaz sim;然后進入tinyos-2.1.2/apps/test/postprocessZ目錄中,執行命令python postprocessZ.py--powercurses Energy.txt>EnergyPowerCurses.txt。其主要的仿真過程可分為如下4個步驟:
(1)啟動。仿真程序讀取能量評估所需要的初始信息,例如仿真時間、噪聲配置信息、隨機數種子及仿真節點個數。
(2)初始化。首先初始化全局數據結構,然后初始化各仿真節點模塊,包括數模轉換模塊ADC、時鐘模塊CLOCK、射頻模塊RF,以及初始化外部通信接口和仿真時間隊列等。
(3)調度處理。PowerTOSSIMz按先進先出的原則從仿真器事件隊列中取出事件,然后在執行該事件的同時,將下一仿真器事件進入隊列,以此驅動仿真程序繼續向前執行。若仿真器發現仿真時間已到或收到了終止命令,則立即結束。
(4)結束。PowerTOSSIMz內核關閉對外的所有通信接口,將能耗信息寫入所規定的文件中,然后釋放占有的系統資源。
3.3 基于PowerTOSSIMz的仿真
為了更好體現PowerTOSSIMz測量能耗的有效性,本文對PPM[3]、PPF[4]和DP[5]方法進行了能耗對比實驗。在實驗中,使用了100個節點,其中0號節點作為BS使用,網絡直徑為12跳,對能耗測量使用的性能指標如下:
Total Energy Consumption (TEC):在仿真周期內傳輸Provenance消耗的總能量(單位:毫焦),TEC的定義如下:TEC=∑mi=1ECi 其中,ECi表示節點ni傳輸Provenance所消耗的能量,m表示WSN中節點的總數。
圖2給出了數據傳輸跳數為6時,PPM方法下PowerTOSSIMz的仿真結果。從圖中可直觀地看出WSN中仿真節點所消耗的能量,包括CPU、ADC模塊、LED模塊、無線通信模塊、總能耗及節點剩余能量等,從而可計算出所有仿真節點的能耗。endprint
在相同的仿真環境中,圖3給出了PPM方法下PowerTOSSIM測量結果。數據顯示,該工具的功能與PowerTOSSIMz類似,但并沒有給出仿真環境中節點的剩余能量。另外,也顯示了5號節點和6號節點在CPU耗能方面存在較大差異。
根據理論分析,PPM方法在各節點處都采用相同的Provenance編碼方法,由此可推導出CPU的能耗差異應較小,這與圖3中的數據差異較大,因此使用PowerTOSSIM測量傳感器節點的能耗,其穩定性低于PowerTOSSIMz。
圖4給出了當采用PowerTOSSIMz測量PPM、PPF和DP方法的能耗時,Provenance的傳輸能耗TEC與數據包傳輸跳數之間的關系曲線。由此可直觀地看出,DP方法的TEC曲線趨于水平,其成因是在網絡穩定時,每次只傳輸字典索引,因而其能耗最低,性能最好,PPF其次,而PPM最弱。
4 結語
WSN是一個典型的能量受限網絡,而能耗問題又直接影響其通信質量,因此如何評估WSN中的傳輸能耗已是重點關注的問題。由于實時測量節點的能耗目前缺乏有效的技術手段,因而本文在TinyOS-2.1.2中配置PowerTOSSIMz,能夠在TOSSIM仿真的同時記錄每個節點的能耗狀態,從而便于計算出網絡傳輸的總能耗。與PowerTOSSIM相比,仿真數據實證了PowerTOSSIMz具有更高的穩定性,還能直觀地看出節點的剩余能量,因此在WSN中使用PowerTOSSIMz測量能耗更為合理。
參考文獻:
[1] DOGAN G.A survey of provenance in wireless sensor networks[J]. Adhoc & Sensor Wireless Networks,2016.
[2] PRIYANKA, DEVIKA M.A survey of provenance management in wireless sensor network[J].Journal of Engineering Research and Applications,2016.
[3] CHAUDHARI K P, TURUKMANE A V.Dynamic probabilistic packet marking[M]. Springer Berlin Heidelberg,2013.
[4] ALAM S I, FAHMY S.A practical approach for provenance transmission in wireless sensor networks[J].Ad Hoc Networks,2014(16):28-45.
[5] WANG C, HUSSAIN S, BERTINO E.Dictionary based secure provenance compression for wireless sensor networks[J].IEEE Transactions on Parallel & Distributed Systems,2015,27(2):1.
[6] SHNAYDER V, HEMPSTEAD M, CHEN B R, et al. Simulating the power consumption of large-scale sensor network applications[C].International Conference on Embedded Networked Sensor Systems,2004:188-200.
[7] 郭克君.基于PowerTOSSIM的WSN仿真軟件研究與實現[D].南京:南京航空航天大學,2012.
[8] 熊書明,王良民,王新勝,等.PowerTOSSIM無線傳感網仿真器剖析[J].系統仿真學報,2010,22(1):75-78.
[9] PERLA E,IN A, CARBAJO R S, et al. PowerTOSSIM z: realistic energy modelling for wireless sensor network environments[C].ACM Workshop on PERFORMANCE Monitoring and Measurement of Heterogeneous Wireless and Wired Networks,2008:35-42.
[10] CORMEN T H, LEISERSON C E, RIVEST R L,et al.Introduction to algorithms[M]. MIT press Cambridge,2001.
[11] MICHAEL.Powertossimz-November-2-2010[EB/OL].http://www.dssz.com/1543634.html, 2012-11-16.
(責任編輯:孫 娟)endprint