專利名稱:面向移動節(jié)點數(shù)據傳輸?shù)臒o線傳感器網絡仿真器的制作方法
技術領域:
本發(fā)明申請涉及用于無線傳感器網絡中數(shù)據傳輸?shù)木W絡仿真軟件,尤其涉及一種支持移動節(jié)點進行數(shù)據傳輸(收集)的無線傳感器網絡仿真器。本發(fā)明有助于對采用移動 節(jié)點進行數(shù)據收集的無線傳感器網絡進行比較準確地仿真。滿足了目前研究人員在研究無線傳感器網絡時,需要對移動節(jié)點數(shù)據采集方案/策略的各種性能指標進行仿真與測試的需求,解決了現(xiàn)有網絡仿真軟件對移動節(jié)點的移動性支持不足以及研究人員仿真開發(fā)工作量大的問題,從而使得研究人員能客觀和直觀地評價不同采集策略,屬于網絡通信技術領域。
背景技術:
傳統(tǒng)的無線傳感器網絡所使用的路由算法常常是基于多跳數(shù)據傳輸?shù)乃枷?,即將大量傳感器?jié)點組織成為節(jié)點數(shù)目龐大的Ad Hoc網絡。由于無線傳感器網絡普遍存在能量消耗過快,網絡的生命期過短等問題,而網絡整體生命期對于無線傳感器網絡來說是至關重要的一項工作指標。因此,有部分研究人員提出利用移動節(jié)點收集分布在傳感器網絡上的數(shù)據,避免多跳路由以延長網絡整體生命期的策略。另一方面,在很多低密度節(jié)點分布的傳感器網絡中,由于網絡的連通性和節(jié)點的斷續(xù)分布特征,特別是部分節(jié)點所在區(qū)域難以接近時(例如核電站周圍環(huán)境質量的監(jiān)控、生物學中野生動物行蹤記錄或空氣質量監(jiān)控等等),使用移動節(jié)點進行數(shù)據收集的方法甚至成為唯一的數(shù)據傳輸方案,有其特有的優(yōu)勢。由此可見,利用移動節(jié)點收集數(shù)據的無線傳感器網絡有著廣泛的應用前景,越來越多的移動數(shù)據采集策略被提出。如何客觀全面地評價不同的采集策略,也是研究工作中不可回避的問題。對任何一種網絡算法協(xié)議或方案策略的評價,常常通過兩種方法進行1)是把算法應用到實際網絡中,從網絡的實際運行情況檢驗算法的正確性和有效性,由于無線傳感器網絡自身的特點,將正在研究過程中的算法直接應用到實際的網絡環(huán)境進行測試的話, 代價往往會過高而導致不現(xiàn)實;2)通過仿真測試來驗證算法協(xié)議或方案策略的正確性,就成了一種低成本,高效率的評估和驗證算法正確性的手段了。在研究過程中發(fā)現(xiàn),現(xiàn)有而且比較流行的網絡仿真軟件有開源的NS-2、OMNet++ 和商用的OPNET等等。它們都能夠較好地對有線網絡、無線網絡甚至是有線和無線的混合網絡進行仿真。NS-2主要用于IS0/0SI模型的仿真,若要使其適用于無線傳感器網絡的仿真,就必須要給NS-2加入感知模型,傳感器模型,電池模型,輕量級協(xié)議,混合仿真支持和場景生成工具等其他支撐構件,所以要利用NS-2對使用移動節(jié)點收集策略的無線傳感器網絡進行仿真的話,需要對NS-2做出大量的修改,大大增加了仿真工作的難度和工作量。OMNet++也是主要面向OSI模型,并采用自定義的配置語言“NED”進行配置定義。 OMNet++的代碼量相對于NS-2和OPNET來說要少很多,這個是它的優(yōu)點,用戶可發(fā)展的空間大。同時這也是它的缺點,如果要對使用移動節(jié)點收集策略的無線傳感器網絡進行仿真的話,由于很多支撐構件都沒有封裝在內,如無線傳感器節(jié)點能量消耗情況監(jiān)控等,需要用戶手動編寫。而OPNET方面,由于OPNET是一款商用的軟件,雖然協(xié)議的代碼都完全公開,但是許多核心代碼仍處于保密狀態(tài),所以要為OPNET增加適用于無線傳感器網絡仿真的支撐構件,就顯得比較困難了,就更別說添加全面支持移動節(jié)點的支撐構件了。而且OPNET本身似乎更關注與網絡QoS的性能評價。與此同 時,NS-2和OPNET由于其龐大的網絡構件庫以及復雜的配置規(guī)則,也增加了學習和將它們利用于無線傳感器網絡仿真的難度。例如在設置移動節(jié)點的移動路徑時, NS-2需要在用戶在編寫腳本的階段便給出在某個具體時刻的移動目標位置,對于某些目標位置隨著網絡運行而需要動態(tài)規(guī)劃的采集策略或者用戶無法在腳本編寫階段給出在某個確切時刻移動節(jié)點的移動目標的時候,利用現(xiàn)有仿真器編寫配置規(guī)則將尤為困難,甚至比在實際網路中進行測試的代價更高。所以,如果要對無線傳感器網絡,尤其是使用移動節(jié)點進行數(shù)據采集的無線傳感器網絡進行仿真的話,利用現(xiàn)有的一些比較流行的網絡仿真軟件,在實際操作和研究過程中將會帶來一定的困難。
發(fā)明內容
技術問題由于目前常用的網絡仿真器均沒有對無線傳感器網絡,尤其是使用移動節(jié)點進行數(shù)據采集的無線傳感器網絡具有較好的支持,直接利用現(xiàn)有的網絡仿真軟件對使用移動節(jié)點進行數(shù)據采集的無線傳感器網絡進行仿真的話,開發(fā)代價往往會過高。例如常用的網絡仿真器NS-2和OPNET缺少感知模型,傳感器模型,電池與能量模型等等支持無線傳感器網絡仿真的支撐構件,特別在配置移動節(jié)點的移動路徑等配置過程尤為復雜。因此,基于離散事件驅動模型以及增加相關的支撐構件,使得用戶能夠利用本發(fā)明較方便地對使用移動節(jié)點進行數(shù)據采集的無線傳感器網絡進行仿真,這正式本發(fā)明的目的所在。技術方案為實現(xiàn)上述發(fā)明目的,本發(fā)明采取的技術方案是一種適用于移動節(jié)點進行數(shù)據傳輸?shù)臒o線傳感器網絡仿真器。仿真器的核心是事件調度器以及事件隊列,事件隊列為一以事件發(fā)生時刻為優(yōu)先級的優(yōu)先隊列。對于某些呈現(xiàn)連續(xù)變化的系統(tǒng)狀態(tài),例如移動節(jié)點的位置變化,傳感器節(jié)點由于不間斷的數(shù)據采集而造成的緩存變化等等,在系統(tǒng)內部設置一個系統(tǒng)定時器,利用定時器定時更新的策略,在一定誤差的情況下,化為離散型的狀態(tài)。其更新頻率越高,其精度就越接近連續(xù)變化時的狀態(tài),但是系統(tǒng)的開銷就越大, 反之亦然。具體來說,本面向移動節(jié)點數(shù)據傳輸?shù)臒o線傳感器網絡仿真器,包括a、仿真腳本仿真腳本由兩部分共同描述1)網絡拓撲腳本描述了無線傳感器節(jié)點的位置分布以及無線傳感器網絡所覆蓋面積;2)仿真場景腳本描述了仿真的環(huán)境參數(shù);b、仿真器引擎仿真器引擎包括調度器與事件隊列事件隊列按照事件發(fā)生的時刻將事件排序,調度器取出事件隊列頭部的事件后,交給相應的事件處理程序;在處理程序中,更新系統(tǒng)狀態(tài)并且向事件隊列中加入未來事件;
采集策略用戶定義的采集策略,該策略影響節(jié)點模型中節(jié)點的行為;節(jié)點模型模擬實際無線傳感器節(jié)點的能量消耗、數(shù)據采集、移動和無線通信行為;C、結果的記錄和輸出記錄來自節(jié)點模型的本仿真器的仿真結果,并展示結果。所述仿真器引擎的節(jié)點模型內部封裝了能量消耗模型,在仿真器的運行過程中, 在節(jié)點發(fā)送和接收報文時對節(jié)點的能量消耗進行仿真。節(jié)點模型的結果先經跟蹤信息格式化,再輸出結果;跟蹤信息格式化將不同事件的跟蹤信息統(tǒng)一進行格式化,按照統(tǒng)一的格式輸出到跟蹤信息文件中;結果輸出將跟蹤信息文件內容以圖形化和動畫化的形式展示。所述仿真場景腳本中,環(huán)境參數(shù)包括無線網絡的帶寬、節(jié)點的存儲容量大小、傳感器節(jié)點數(shù)據收集速度、最大的無線傳輸距離、移動節(jié)點的移動速度和的移動路徑;移動路徑以節(jié)點編號的排列表示移動節(jié)點對傳感器節(jié)點進行訪問的先后順序。在移動性方面,本發(fā)明從以下兩個方面提供比較全面的支持系統(tǒng)以腳本為接口,用戶可通過腳本設置移動節(jié)點的移動速度、移動路徑等移動節(jié)點的屬性。特別在移動路徑設置方面,相比起NS-2等現(xiàn)有仿真器需要用戶在腳本編寫階段需要用戶給出移動節(jié)點在某個確切時刻的移動目標位置,直接給出移動節(jié)點的移動路徑將更方便用戶規(guī)劃移動節(jié)點的行為。由于移動節(jié)點跟據腳本配置的移動路徑為靜態(tài)路徑,為了增加靈活性,移動節(jié)點可利用仿真器提供的接口,對移動節(jié)點的移動路徑,移動速率以及移動的目標位置進行動態(tài)的設置,改變移動節(jié)點移動方向與移動速度。以下為仿真器的整體工作流程流程1-1 仿真器在初始化階段讀入腳本進行初始化,腳本由兩部分共同描述1) 網絡拓撲腳本描述了節(jié)點的位置分布以及布置有傳感器場所的長和寬2)仿真場景腳本 描述了仿真的環(huán)境參數(shù),包括無線網絡的帶寬、節(jié)點的存儲容量、采集速度、最大的傳輸半徑以及移動節(jié)點的移動速度,移動節(jié)點的移動路徑。流程1-2 初始化后,系統(tǒng)向事件隊列加入初始化事件推動整個仿真的進行。流程1-3 調度器讀取時間隊列頭部事件后,交由相關的事件處理程序處理該事件。在事件處理程序中,更新系統(tǒng)的狀態(tài)以及向事件隊列加入未來事件。以此循環(huán),直到模擬時鐘到達用戶所設定的停止時刻為止。流程1-4 在調度器運行期間,根據所處理的事件的類型,將相應的事件信息格式化成統(tǒng)一格式后,輸出到跟蹤文件里。流程1-5 調度器仿真結束后,輔助軟件可讀取跟蹤文件,將網絡的運行情況以圖形化的方式輸出。由于不同的采集策略會根據不同的網絡環(huán)境對移動節(jié)點的行為做出決策,而且移動節(jié)點也無法實時保存網絡中所有傳感器節(jié)點的信息,所以仿真器為了能夠適應不同的采集策略,在移動節(jié)點內部設計一個數(shù)據結構虛擬節(jié)點列表,該列表存儲傳感器節(jié)點的信息并可以根據用戶的需要進行刪減后記錄用戶感興趣的信息。移動節(jié)點在與傳感器節(jié)點交互后,傳感器節(jié)點會將其內部的信息發(fā)送給移動節(jié)點,移動節(jié)點將信息保存在列表中,以作為決策的依據。同時在某些情況下,采集策略可能需要動態(tài)地改變移動節(jié)點的移動路徑,仿真器同時也提供路徑管理的接口,方便采集策略在需要時更改移動路徑或移動的目標。傳感器節(jié)點在一般情況下進入休眠狀態(tài),休眠狀態(tài)下,傳感器節(jié)點只進行數(shù)據采集,同時忽略能量的消耗。而移動節(jié)點在移動的過程中,如果進入某個節(jié)點的傳輸范圍,移動節(jié)點根據采集策略以及內部虛擬節(jié)點列表的信息,決定是否與傳感器節(jié)點發(fā)生交互以及決定與哪個傳感器節(jié)點發(fā)生交互。如果需要發(fā)生數(shù)據交互,其交互過程如下步驟2-1 移動節(jié)點檢查到進入某個節(jié)點的傳輸范圍,根據采集策略以及內部的虛擬節(jié)點列表可決定發(fā)生交互的目標傳感器節(jié)點以及是否馬上進行數(shù)據傳輸。步驟2-2 需要進行數(shù)據傳輸時,移動節(jié)點向目標節(jié)點發(fā)送REQ請求數(shù)據報文,將目標節(jié)點喚醒,其他節(jié)點保持則保持休眠狀態(tài)。步驟2-3 收到REQ請求數(shù)據報文的傳感器節(jié)點將其采集的數(shù)據封裝成DATA數(shù)據報文,向移動節(jié)點回送,并且在報文內部捎帶自身的信息。步驟2-4 移動節(jié)點收到DATA數(shù)據報文后,將負載中的數(shù)據存入自身的緩存,并利用報文內部捎帶的信息更新虛擬節(jié)點列表。步驟2-5 在在某些時刻,移動節(jié)點只需要某些傳感器節(jié)點內部的信息而不需要與其發(fā)生數(shù)據交互,此時,移動節(jié)點向目標節(jié)點發(fā)送REQUPDATE請求更新報文,將目標節(jié)點喚醒。步驟2-6 收到REQUPDATE請求更新報文的節(jié)點,將自身的信息單獨組成一個 UPDATE更新報文,向移動節(jié)點回送。移動節(jié)點收到UPDATE更新報文后,根據報文內部的信息更新其虛擬節(jié)點列表。上述幾個步驟從宏觀上說明了移動節(jié)點與傳感器節(jié)點的交互過程。而節(jié)點內部報文的處理流程如下步驟3-1 當節(jié)點有報文需要發(fā)送時,報文先在路由層,根據采集策略,填入報文的目的地址與源地址。步驟3-2 填入適當?shù)哪康牡刂放c源地址后,報文在MAC層中壓進接口隊列ifq_ 中,等待發(fā)送。MAC層主要負責無線信道的偵聽以及沖突的避免。步驟3-3 報文壓入接口隊列后,節(jié)點先偵聽無線信道,如果無線信道在偵聽時刻空閑,再等待一段時間后再次偵聽信道,若信道仍為空閑便將接口隊列頭部的報文發(fā)送,否則將暫緩報文的發(fā)送,以避免沖突的發(fā)生,等待一定的時間后再次嘗試將報文發(fā)送。步驟3- 4 報文經過MAC層后發(fā)往傳輸模型(PropagationModel),傳輸模型根據無線信道的衰減模型以及傳輸?shù)木嚯x,往報文寫入一個合適的功率值,使得報文在傳輸?shù)倪^程中,經過無線信道的衰減后仍能被目標節(jié)點正確識別和接受。步驟3-5 網絡接口 NetIF將報文發(fā)送到無線信道上。步驟3-6 無線信道將報文復制給鏈接到該無線信道上的所有節(jié)點,并且根據信道的衰減模型以及發(fā)送節(jié)點與接受節(jié)點的距離對報文的功率進行適當?shù)乃p。步驟3-7 節(jié)點從無線信道上接收報文后,首先發(fā)送到傳輸模型 (PropagationModel),斷接收報文的功率值是否大于能夠正確識別的功率閾值,如果小于則表示報文由于功率不足而不能被正確接收,否則,將報文交給網絡接口 NetIF。步驟3-8 網絡接口對接收報文進行地址檢驗,如果報文的目的地址不是廣播地址而且與本節(jié)點的地址不同,表示該報文不是發(fā)往本節(jié)點的,將其丟棄,否則交由MAC層做
進一步處理。
步驟3-9 =MAC層根據接收報文的類型和采集策略,決定節(jié)點下一步的行為。上述內容中的有關技術術語定義虛擬節(jié)點列表這個術語是和實際的傳感器節(jié)點相對而言的。所謂的虛擬,是指該列表中每一個列表項所存儲的信息均與每一個實際的節(jié)點相對應,但由于這個列表只存在于移動節(jié)點之中,故稱為虛擬節(jié)點列表。無線信道衰減模型一般來說無線信號在傳輸過程中會被傳輸媒介和障礙物吸收,造成信號強度的衰減,該模型是表示無線信號在傳輸過程中的衰減程度,本發(fā)明中使用的信道衰減模型為無線信號在自由空間傳播的衰減模型。有益效果1)本發(fā)明對無線傳感器網絡,尤其是使用移動節(jié)點進行數(shù)據采集的無線傳感器網絡有較好的支持,能夠對傳感器節(jié)點和移動節(jié)點的行為,例如傳感器節(jié)點的采集、溢出、死亡以及移動節(jié)點的移動、與傳感器節(jié)點的通訊等等進行比較準確的仿真。2)本發(fā)明配置簡單,用戶只需要按照既定格式編寫簡單的腳本配置網絡環(huán)境和給出移動節(jié)點的運行路徑后,仿真器讀取腳本文件后便能按照用戶所設置的網絡環(huán)境運行,無需因為改變網絡環(huán)境而重新編譯仿真器,與NS-2和OPNET等網絡仿真器相比,配置更加簡潔和方便。 3)本發(fā)明將網絡的運行過程以一定的格式記錄成跟蹤日志文件,用戶根據仿真后系統(tǒng)給出的跟蹤日志文件,可以完整地還原網絡的運行過程,并且根據自身的需要,對跟蹤日志文件處理后其提取感興趣的信息。4)由于跟蹤日志文件只是以文字記錄網絡的運行狀況,用戶無法直觀地看到網絡的運行狀況是否與用戶所設計的采集策略相符,所以本發(fā)明提供了一款與該仿真器配套的輔助軟件。該軟件讀入仿真器輸出的跟蹤文件后,能夠將跟蹤文件內抽象的文字信息以圖形化的方式向用戶展示,使用戶能夠對網絡的運行狀況有個直觀的了解。本發(fā)明的兼容性和透明性體現(xiàn)在1)由于本發(fā)明基于面向對象的思想,系統(tǒng)可擴展性較強,系統(tǒng)內部模塊與模塊之間的耦合性也較低,方便用戶根據自身的需求對本發(fā)明進行改寫和增加新的模塊。2)本發(fā)明封裝并提供了底層網絡操作的函數(shù)接口,例如報文的發(fā)送和接收操作,沖突發(fā)生以及沖突避免等等。用戶如無特殊需要,則只需要利用系統(tǒng)提供的底層操作接口,關注于上層采集策略的實現(xiàn)即可,無需對系統(tǒng)的其他模塊改動。
圖1是本發(fā)明的整體結構框架圖;圖2是本發(fā)明中節(jié)點內部的結構圖;圖3是本發(fā)明在某種采集策略下,報文在各層的結構圖;圖4是在某種采集策略下,移動節(jié)點內部的虛擬節(jié)點列表示意圖;圖5是移動節(jié)點的移動過程示意圖。
具體實施方式
為了提高仿真器的仿真效率,本發(fā)明在實施方式是基于離散事件仿真模型思想的。所謂的離散事件驅動模型系統(tǒng),是指其活動和狀態(tài)變化僅在離散時間點上發(fā)生的一類系統(tǒng)。這類系統(tǒng)的狀態(tài)僅與離散的時間點有關,當離散的時間點上有事件發(fā)生時,系統(tǒng)狀態(tài)才發(fā)生改變。重要特點在于所模擬系統(tǒng)的狀態(tài)呈現(xiàn)離散型變化。在離散型模擬中,事件是極其重要的概念,事件是引起系統(tǒng)狀態(tài)發(fā)生離散型變化的事實。發(fā)生事件的時間點成為事件時間點。而利用離散事件驅動模型來仿真網絡系統(tǒng)是合理的,因為網絡系統(tǒng)的狀態(tài)一般也只是會隨報文到達,定時器到時等離散型事件的發(fā)生而改變。與輪詢驅動模型相比,離散事件驅動模型的具有更高的效率。圖1描述了本發(fā)明的整體設計框架。各模塊的功能如下1)仿真場景腳本調度器讀取場景腳本后,初始化仿真器各個網絡組件的基本屬性,包括設置無線信道的帶寬,節(jié)點間的傳輸速率,移動節(jié)點的移動速率已經移動節(jié)點的移動路徑等等。2)網絡拓撲腳本用于初始化傳感器網絡的拓撲結構,包括各個節(jié)點的位置,整個布置有傳感器節(jié)點的場所的大小等等。3)調度器與事件隊列事件隊列按照事件發(fā)生的時刻將事件排序,調度器取出事件隊列頭部的事件后,交給相應的事件處理程序,在處理程序中,更新系統(tǒng)狀態(tài)并且向事件隊列中加入未來事件。4)采集策略用戶定義的采集策略,將影響節(jié)點模型中節(jié)點的行為。5)節(jié)點模型模擬實際節(jié)點的能量消耗,數(shù)據采集、移動、無線通信行為等等。6)跟蹤信息格式化將不同事件的跟蹤信息統(tǒng)一進行格式化,以便按照統(tǒng)一的格式輸出到跟蹤信息文件中。7)結果輸出將格式化后的跟蹤信息輸出到文件中,輔助軟件可讀取跟蹤信息文件后,將文件內容以圖形化的形式輸出。圖2描述了節(jié)點內部報文的傳遞流程,下面以在單跳網絡中,節(jié)點1向目標節(jié)點2 發(fā)送報文為例說明具體的傳遞流程1)節(jié)點1根據采集策略,需要向目標節(jié)點2發(fā)送一個數(shù)據報文,報文首先在路由層(Router)根據采集策略向報文填入下一跳的目的地址和源地址,由于是單跳網絡,所以此處填入的目的地址為節(jié)點2。2)填入目的地址與源地址后,報文加入接口隊列ifq_。3)MAC層負責偵聽信道以避免沖突,MAC層在網絡空閑的時候取接口隊列頭部的報文并將其發(fā)送,依此循環(huán),嘗試將隊列中的所有報文發(fā)送出去。4)將被發(fā)送的報文先送往傳輸模型(PropagationModel),根據無線信道的衰減模型、節(jié)點1和節(jié)點2之間的距離,填入適當?shù)墓β手?,以便報文經過信道的衰減后,仍能被節(jié)點2正確接收。5)報文通過網絡接口(NetIF)發(fā)送到無線信道上。6)無線信道將報文復制給所有鏈接到它上面的節(jié)點,并根據每個接收節(jié)點的位置,對報文的功率進行適當?shù)乃p。7)節(jié)點2接收到報文后,先將報文送到傳輸模型,判斷報文的功率是否大于能夠正確識別的功率閾值,由于發(fā)送方節(jié)點1在發(fā)送前,經過預測和計算,報文一般情況下都能被目標節(jié)點正確接收。8)通過功率判斷后,報文將通過節(jié)點2的網絡接口(NetIF)進行地址篩選,如果報文的目的地址不是廣播地址和節(jié)點2的本地地址,則將報文拋棄,反之,向上傳遞到MAC層。9)MAC層根據收到報文的報文類型,根據采集策略,決定下一步應采取的動作。10)其他節(jié)點,例如節(jié)點3,4,由于它們也鏈接到無線信道上,所以它們也會收到節(jié)點1向節(jié)點2發(fā)送的報文,但是,由于它們的位置可能處于節(jié)點1的通訊范圍之外,報文經過無線信道的衰減后,將不能被正確識別。即使能被正確識別,由于報文的目的地址為節(jié)點2,報文也不能通過地址篩選進入到其他節(jié)點的上層。圖3所示的是在某種采集策略的仿真環(huán)境下,報文的結構圖,途中實線表示的是該字段為本層填寫,虛線表示該字段由其他模塊填寫。由于在不同的采集策略中,不同的采集策略需要在報文中捎帶的信息各不相同,所以用戶可以根據自己的需要對報文的結構進行增減。圖4所示的是在某種采集策略的仿真環(huán)境下,移動節(jié)點內部的虛擬節(jié)點列表結構。在不同的采集策略下,移動節(jié)點也需要根據不同的信息做出決策,而且移動節(jié)點也不可能在需要做出決策時,馬上實時地獲取所有節(jié)點的信息,所以列表的作用就在于保存節(jié)點在上一次交互過后的狀態(tài)。同時,移動節(jié)點也不可能需要節(jié)點的全部信息,所以列表的結構可以根據用戶的采集策略進行增減。從例子列表中可以看出,移動節(jié)點需要根據傳感器節(jié)點的位置、剩余能量、剩余緩存等信息規(guī)劃自身的行為。圖5所示的是移動節(jié)點從節(jié)點1移動到節(jié)點3的移動過程假設移動節(jié)點當前位置在節(jié)點1處,處于節(jié)點1的傳輸范圍內,按照移動路徑,移動節(jié)點需要移動到節(jié)點3,在開始移動前,求得節(jié)點1和節(jié)點3所形成的線段與所有節(jié)點傳輸范圍的交點,即按序得到交點1- >交點2- >交點3- >交點4,而用于計算的節(jié)點信息均取自移動節(jié)點內部的虛擬節(jié)點列表。求得交點后,移動節(jié)點以交點1為移動目標,在移動的過程中,由于處于節(jié)點1的傳輸范圍內,移動節(jié)點根據采集策略決定是否采集節(jié)點1的數(shù)據。到達交點1后,判斷即將離開節(jié)點1,向節(jié)點1發(fā)送更新請求報文后,根據收到的更新報文更新其虛擬節(jié)點列表。然后以交點2為移動目標,在移動過程中,由于移動節(jié)點不在任何節(jié)點的傳輸范圍內,所以移動節(jié)點不會對任何節(jié)點進行訪問,到達交點2后,判斷即將進入節(jié)點2的傳輸范圍,并將交點3作為移動目標,以此循環(huán)。當移動節(jié)點到達交點4后,判斷即將進入節(jié)點3的傳輸范圍,由于已按序遍歷完交點集合中的所有節(jié)點,此時將節(jié)點3的位置作為移動目標向其移動,并在移動過程中采集節(jié)點3的數(shù)據,到達節(jié)點3后,根據節(jié)點3 發(fā)送的“DATA”數(shù)據報文中所捎帶的剩余緩存信息,判斷是否已將節(jié)點3的數(shù)據采集完畢, 如果否,繼續(xù)采集,否則,離開節(jié)點3,同時向節(jié)點3發(fā)送“REQUPDATE”請求更新報文,移動節(jié)點根據接收的“UPDATE”更新報文更新虛擬節(jié)點列表后,按照移動路徑,仿照上述過程繼續(xù)移動。以下從腳本配置一直到結果輸出對本發(fā)發(fā)明的使用過程做進一步說明。1)腳本配置假設用戶需要仿真的移動仿真場景,如下表
權利要求
1.一種面向移動節(jié)點數(shù)據傳輸?shù)臒o線傳感器網絡仿真器,其特征是包括a、仿真腳本仿真腳本由兩部分共同描述1)網絡拓撲腳本描述了無線傳感器節(jié)點的位置分布以及無線傳感器網絡所覆蓋面積;2)仿真場景腳本描述了仿真的環(huán)境參數(shù);b、仿真器引擎仿真器引擎包括調度器與事件隊列事件隊列按照事件發(fā)生的時刻將事件排序,調度器取出事件隊列頭部的事件后,交給相應的事件處理程序;在處理程序中,更新系統(tǒng)狀態(tài)并且向事件隊列中加入未來事件;采集策略用戶定義的采集策略,該策略影響節(jié)點模型中節(jié)點的行為; 節(jié)點模型模擬實際無線傳感器節(jié)點的能量消耗、數(shù)據采集、移動和無線通信行為; C、結果的記錄和輸出記錄來自節(jié)點模型的本仿真器的仿真結果,并展示結果。
2.根據權利要求1所述的面向移動節(jié)點數(shù)據傳輸?shù)臒o線傳感器網絡仿真器,其特征是所述仿真器引擎的節(jié)點模型內部封裝了能量消耗模型,在仿真器的運行過程中,在節(jié)點發(fā)送和接收報文時對節(jié)點的能量消耗進行仿真。
3.根據權利要求1或2所述的面向移動節(jié)點數(shù)據傳輸?shù)臒o線傳感器網絡仿真器,其特征是節(jié)點模型的結果先經跟蹤信息格式化,再輸出結果;跟蹤信息格式化將不同事件的跟蹤信息統(tǒng)一進行格式化,按照統(tǒng)一的格式輸出到跟蹤信息文件中;結果輸出將跟蹤信息文件內容以圖形化和動畫化的形式展示。
4.根據權利要求3所述的面向移動節(jié)點數(shù)據傳輸?shù)臒o線傳感器網絡仿真器,其特征是所述仿真場景腳本中,環(huán)境參數(shù)包括無線網絡的帶寬、節(jié)點的存儲容量大小、傳感器節(jié)點數(shù)據收集速度、最大的無線傳輸距離、移動節(jié)點的移動速度和的移動路徑;移動路徑以節(jié)點編號的排列表示移動節(jié)點對傳感器節(jié)點進行訪問的先后順序。
5.根據權利要求4所述的面向移動節(jié)點數(shù)據傳輸?shù)臒o線傳感器網絡仿真器,其特征在于本仿真器工作步驟如下步驟1-1 仿真器在初始化階段讀入仿真腳本進行初始化; 步驟1-2 初始化后,向事件隊列加入初始化事件,推動整個仿真的進行; 步驟1-3 調度器讀取事件隊列頭部的事件后,交由相應事件處理程序處理該事件; 步驟1-4 在調度器運行期間,根據所處理的事件的類型,將相應的事件信息格式化成統(tǒng)一格式后,輸出到跟蹤信息文件里;步驟1-5 調度器仿真結束后,由輔助軟件讀取跟蹤信息文件,并將網絡的運行情況以圖形化的方式輸出。
6.根據權利要求4所述的面向移動節(jié)點數(shù)據傳輸?shù)臒o線傳感器網絡仿真器,其特征在于節(jié)點模型模擬的節(jié)點間的交互步驟如下步驟2-1 移動節(jié)點檢查到進入某個節(jié)點的傳輸范圍,根據采集策略以及移動節(jié)點內部的虛擬節(jié)點列表決定發(fā)生交互的目標節(jié)點,以及是否馬上進行數(shù)據傳輸;步驟2-2:需要進行數(shù)據傳輸時,移動節(jié)點向目標節(jié)點發(fā)送請求數(shù)據報文,將目標節(jié)點喚醒,其他節(jié)點保持則保持休眠狀態(tài);步驟2-3 收到請求數(shù)據報文的節(jié)點將其采集的數(shù)據封裝成數(shù)據報文,向移動節(jié)點回送,并且在報文內部捎帶自身的信息;步驟2-4:移動節(jié)點收到數(shù)據報文后,將負載中的數(shù)據存入自身的緩存,并利用報文內部捎帶的信息更新移動節(jié)點的虛擬節(jié)點列表;步驟2-5 在移動節(jié)點只需要某些傳感器節(jié)點內部的信息、而不需要與其發(fā)生數(shù)據交互的時刻,移動節(jié)點向目標節(jié)點發(fā)送請求更新報文,將目標節(jié)點喚醒;步驟2-6 收到請求更新報文的節(jié)點,將自身的信息單獨組成一個更新報文,向移動節(jié)點回送;移動節(jié)點收到更新報文后,根據更新報文內部的信息更新移動節(jié)點的虛擬節(jié)點列表。
7.根據權利要求4所述的面向移動節(jié)點數(shù)據傳輸?shù)臒o線傳感器網絡仿真器,其特征在于節(jié)點模型模擬的節(jié)點內部報文的處理步驟如下步驟3-1 當節(jié)點有報文需要發(fā)送時,報文先在路由層,根據采集策略,填入報文的目的地址與源地址;步驟3-2:報文在MAC層中壓進接口隊列中,等待發(fā)送;MAC層偵聽無線信道以及避免沖突;步驟3-3 報文壓入接口隊列后,節(jié)點先偵聽無線信道;如果無線信道在偵聽時刻空閑,再等待一段時間后再次偵聽信道,若此時信道仍為空閑,便將接口隊列頭部的報文發(fā)送,否則將暫緩報文的發(fā)送,等待一定的時間后再次嘗試將報文發(fā)送;步驟3- 4 報文經過MAC層后發(fā)往節(jié)點內的傳輸模型,傳輸模型根據無線信道的衰減模型以及傳輸?shù)木嚯x,往報文寫入一個合適的功率值,使得報文在傳輸?shù)倪^程中,經過無線信道的衰減后仍能被目標節(jié)點正確識別和接受; 步驟3-5 網絡接口將報文發(fā)送到無線信道上;步驟3-6 無線信道將報文復制給鏈接到該無線信道上的所有節(jié)點,并且根據信道的衰減模型以及發(fā)送節(jié)點與接受節(jié)點的距離,對報文的功率進行適當?shù)乃p;步驟3-7:而節(jié)點從無線信道上接收報文后,首先發(fā)送到其自身的傳輸模型,判斷接收報文的功率值是否大于能夠正確識別的功率閾值,如果小于,則表示報文由于功率不足而不能被正確接收,如果不小于,則將報文交給網絡接口 ;步驟3-8 網絡接口對接收報文進行地址檢驗,如果報文的目的地址不是廣播地址而且與本節(jié)點的地址不同,表示該報文不是發(fā)往本節(jié)點的,將其丟棄,否則交由MAC層做進一步處理;步驟3-9 =MAC層根據接收報文的類型和采集策略,決定節(jié)點下一步的行為。
8.根據權利要求6所述的面向移動節(jié)點數(shù)據傳輸?shù)臒o線傳感器網絡仿真器,其特征是所述步驟2-4)中,虛擬節(jié)點列表對全網節(jié)點的最新狀態(tài)進行保存,并且具體保存的信息根據不同的采集策略進行增減。
全文摘要
現(xiàn)有的網絡仿真軟件在進行移動無線傳感器節(jié)點數(shù)據傳輸仿真時,缺乏對移動節(jié)點針對性的支持,在仿真設計中,移動節(jié)點的移動路線描述困難,仿真代碼編寫量大,結果輸出繁瑣。為此,本發(fā)明提出一個支持移動節(jié)點的面向移動節(jié)點數(shù)據傳輸?shù)臒o線傳感器網絡仿真器,仿真器在初始化階段讀入腳本進行初始化;系統(tǒng)向事件隊列加入初始化事件推動整個仿真;調度器讀取事件隊列頭部的事件后,交由相關事件處理程序處理;在調度器運行期間,仿真器根據節(jié)點模型和能量消耗模型產生的時間對節(jié)點發(fā)送和接收報文、移動節(jié)點的移動行為和節(jié)點的能量消耗情況進行仿真,并根據所處理事件類型,將相應的事件信息格式化后輸出到跟蹤文件。仿真結束后,輸出網絡的運行情況。
文檔編號H04L12/24GK102355677SQ20111020882
公開日2012年2月15日 申請日期2011年7月25日 優(yōu)先權日2011年7月25日
發(fā)明者劉智杰, 柳津, 陳文強, 陶軍 申請人:東南大學