專利名稱:一種無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線傳感器網(wǎng)絡(luò)領(lǐng)域,特別涉及一種采用組件化思想的數(shù)據(jù)鏈路層協(xié)議性能測試方法及系統(tǒng)。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)是由部署在監(jiān)測區(qū)域內(nèi)大量的廉價微型傳感器節(jié)點組成,通過無線通信方式形成的一個多跳的自組織的網(wǎng)絡(luò)系統(tǒng),其目的是協(xié)作地感知、采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中被感知對象的信息,并發(fā)送給觀察者。與傳統(tǒng)網(wǎng)絡(luò)相比,無線傳感器網(wǎng)絡(luò)的復(fù)雜多變,決定了其開發(fā)、維護上的困難宏觀上的系統(tǒng)任務(wù)要通過大量微觀節(jié)點的分工協(xié)作來完成,微觀節(jié)點數(shù)據(jù)的偵聽以及宏觀網(wǎng)絡(luò)狀態(tài)的監(jiān)測有很大的難度。無線傳感器網(wǎng)絡(luò)采用五層協(xié)議標準應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層。其中,數(shù)據(jù)鏈路層主要負責(zé)信道接入、控制節(jié)點的報文傳輸對無線共享媒體的占用以及通過一組規(guī)則和過程來更有效、有序和公平使用共享媒體以保證網(wǎng)絡(luò)的整體性能。它的設(shè)計優(yōu)劣對網(wǎng)絡(luò)性能影響很大。數(shù)據(jù)鏈路層設(shè)計重點關(guān)注能量效率、延遲時間、吞吐率等性能。數(shù)據(jù)鏈路層協(xié)議性能測試的一般方法步驟如下
A.設(shè)置環(huán)境變量,修改調(diào)試程序,編譯生成鏡像并手動上傳到傳感器節(jié)點中;
B.根據(jù)測試要求設(shè)置拓撲結(jié)構(gòu),搭建節(jié)點網(wǎng)絡(luò),開啟節(jié)點收集數(shù)據(jù);
C.統(tǒng)計處理數(shù)據(jù)獲得性能參數(shù)數(shù)值。上述方法的缺點主要有
1.手動上傳鏡像到節(jié)點,重復(fù)工程多,浪費時間;
2.拓撲結(jié)構(gòu)與路由有關(guān),而一般測試中反復(fù)設(shè)置相同拓撲,降低了測試效率;
3.節(jié)點數(shù)據(jù)采集方式多樣,如通過串口、匯聚方式、通過監(jiān)聽節(jié)點等;
4.性能參數(shù)計算方法多樣,且存在不精確算法;
5.對網(wǎng)絡(luò)狀態(tài)監(jiān)測不到位,不能及時發(fā)現(xiàn)異常。另外,對于無線傳感器網(wǎng)絡(luò)測試系統(tǒng),典型的有哈佛大學(xué)的MoteLab和俄亥俄州立大學(xué)的Kansei。兩者都方便了網(wǎng)絡(luò)狀態(tài)的監(jiān)測和實驗數(shù)據(jù)的采集顯示,但它們存在不可忽視的弱點
①缺少進一步的處理或數(shù)據(jù)處理接口;
②都是靜止網(wǎng)絡(luò),部署不靈活;
③應(yīng)用面窄,缺少對數(shù)據(jù)鏈路層協(xié)議性能測試的支持。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于針對上述現(xiàn)有測試方法的不足,提出一種采用組件化思想的數(shù)據(jù)鏈路層協(xié)議測試方法,為數(shù)據(jù)鏈路層協(xié)議測試提供良好的通用性、易用性, 顯著提高測試效率。為了解決上述技術(shù)問題,本發(fā)明采取如下技術(shù)方案一種無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試方法,包括以下步驟步驟A.根據(jù)數(shù)據(jù)鏈路層協(xié)議的測試要求設(shè)置測試參數(shù)、以及數(shù)據(jù)鏈路層協(xié)議性能參數(shù)的計算方法,定義數(shù)據(jù)上傳格式;步驟B.根據(jù)步驟A設(shè)置的測試參數(shù)選擇路由和傳輸協(xié)議組件組合,配置協(xié)議棧路由層協(xié)議與傳輸層協(xié)議組件模塊間的連接,搭建無線通信協(xié)議棧,編譯生成鏡像程序;步驟C.將步驟B生成的鏡像程序上傳到傳感器節(jié)點,開啟無線傳感器網(wǎng)絡(luò)內(nèi)所有節(jié)點,通過串口通信組件收集節(jié)點數(shù)據(jù)存儲到服務(wù)器端的數(shù)據(jù)庫;步驟D.在客戶端通過網(wǎng)絡(luò)狀態(tài)監(jiān)測組件監(jiān)測網(wǎng)絡(luò)拓撲變化、數(shù)據(jù)流向,通過采用步驟A中的協(xié)議性能參數(shù)計算方法得到各個協(xié)議性能參數(shù)的具體數(shù)值。
作為本發(fā)明的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試方法進一步的優(yōu)化方案,步驟 A中所述測試參數(shù)包括tiny0S版本、節(jié)點類型、節(jié)點數(shù)量、節(jié)點編號區(qū)間、節(jié)點坐標位置、 拓撲結(jié)構(gòu)、測試時間;所述協(xié)議性能參數(shù)包括節(jié)點網(wǎng)絡(luò)的能耗參數(shù)、端到端延遲及吞吐量參數(shù); 所述的數(shù)據(jù)上傳格式包括節(jié)點本地時間、事件類型、包類型、節(jié)點ID、源節(jié)點ID、 發(fā)送節(jié)點ID、接收節(jié)點ID、包序列號、生存時間、父節(jié)點、鏈路質(zhì)量和喚醒時間。
作為本發(fā)明的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試方法進一步的優(yōu)化方案,步驟 A所述協(xié)議性能參數(shù)的計算方法為所述能耗參數(shù)通過分別統(tǒng)計節(jié)點在發(fā)送、接受、休眠和偵聽狀態(tài)的時間,然后與對應(yīng)的功率相乘得到;所述端到端延遲參數(shù)通過計算數(shù)據(jù)包從源節(jié)點出發(fā)的時間與到目的節(jié)點的時間差得到;所述吞吐量參數(shù)分別通過計算節(jié)點發(fā)送、接收、轉(zhuǎn)發(fā)的包數(shù),以及與對應(yīng)的包的字節(jié)數(shù)得到。
作為本發(fā)明的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試方法進一步的優(yōu)化方案,步驟 B所述無線通信協(xié)議棧支持基于TinyOS的數(shù)據(jù)鏈路層協(xié)議性能測試,由傳輸層協(xié)議組件、 路由層協(xié)議組件和數(shù)據(jù)鏈路層協(xié)議組件構(gòu)成,所述傳輸層協(xié)議組件和所述路由層協(xié)議組件為數(shù)據(jù)鏈路層協(xié)議測試提供通用性支持;其中所述傳輸層協(xié)議組件負責(zé)速率調(diào)節(jié)和擁塞避免,根據(jù)節(jié)點網(wǎng)絡(luò)數(shù)據(jù)傳輸速率,決定采用或不采用WRCP協(xié)議組件,具體方法為11)當(dāng)網(wǎng)絡(luò)內(nèi)數(shù)據(jù)傳輸速率大于正常值時,采用WRCP協(xié)議組件,將接收者能力模型應(yīng)用于節(jié)點;12)當(dāng)網(wǎng)絡(luò)內(nèi)數(shù)據(jù)傳輸速率小于等于正常值時,不采用傳輸協(xié)議;所述路由層協(xié)議組件負責(zé)路由的建立、選擇和維護,根據(jù)節(jié)點網(wǎng)絡(luò)拓撲結(jié)構(gòu),決定采用靜態(tài)路由或CTP協(xié)議組件,具體方法為21),當(dāng)動態(tài)路由處于大規(guī)模網(wǎng)絡(luò)場景時,采用CTP協(xié)議在網(wǎng)絡(luò)中設(shè)置若干匯聚根節(jié)點,節(jié)點通過與鄰居節(jié)點交換相互的鏈路質(zhì)量估計信息來選擇父節(jié)點作為下一跳,建立一條到達某一匯聚根節(jié)點的路由;22)當(dāng)動態(tài)路由處于常見網(wǎng)絡(luò)場景時,采用靜態(tài)路由協(xié)議通過手動設(shè)置路由實現(xiàn);所述數(shù)據(jù)鏈路層協(xié)議組件由已納入測試系統(tǒng)的數(shù)據(jù)鏈路層協(xié)議以及測試者基于其開發(fā)的新協(xié)議組成,其中31)已納入測試系統(tǒng)的數(shù)據(jù)鏈路層協(xié)議包括:MLA、CSMA、LPL;32)所述新協(xié)議的開發(fā)步驟為a,采用組件化思想,將已納入測試系統(tǒng)的數(shù)據(jù)鏈路層協(xié)議的共性抽象成共性組件; b,采用組件化思想,將相對于已納入測試系統(tǒng)的數(shù)據(jù)鏈路層協(xié)議的改進部分抽象成特性組件;c,結(jié)合步驟a得到的共性組件和步驟b得到的特性組件,構(gòu)成新協(xié)議。
本發(fā)明還提出一種無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試系統(tǒng),包括節(jié)點網(wǎng)絡(luò)層、 服務(wù)器層和客戶端界面層;其中所述節(jié)點網(wǎng)絡(luò)層采用有線與無線信道相結(jié)合的方式傳輸數(shù)據(jù);其中,傳感器節(jié)點基于無線通信協(xié)議棧通過無線信道組成無線網(wǎng)絡(luò),運行測試無線通信協(xié)議棧的應(yīng)用程序,實現(xiàn)數(shù)據(jù)包的發(fā)送和接收;傳感器節(jié)點通過有線信道完成數(shù)據(jù)采集,并將采集到的數(shù)據(jù)通過串口上傳到服務(wù)器層;所述服務(wù)器層由串口通信組件、數(shù)據(jù)庫、后臺處理器組成;其中,串口通信組件通過與節(jié)點網(wǎng)絡(luò)層交互,將節(jié)點網(wǎng)絡(luò)層采集的數(shù)據(jù)上傳到數(shù)據(jù)庫;數(shù)據(jù)庫通過構(gòu)建數(shù)據(jù)表,存儲經(jīng)過串口通信組件解析的數(shù)據(jù)報文;后臺處理器采用AJAX+PHP技術(shù),通過客戶端腳本語言 Javascript獲取數(shù)據(jù)庫中的參數(shù),交由客戶端界面層處理并以字符串形式返回執(zhí)行結(jié)果; 所述客戶端界面層采用網(wǎng)頁形式運行在Apache網(wǎng)絡(luò)服務(wù)器上,包括文件上傳組件、 數(shù)據(jù)庫查詢組件、拓撲實時顯示組件、數(shù)據(jù)實時更新組件和節(jié)點網(wǎng)絡(luò)配置組件;其中,文件上傳組件用于上傳無線通信協(xié)議棧的鏡像程序,數(shù)據(jù)庫查詢組件用于客戶端查詢數(shù)據(jù)庫內(nèi)容,拓撲實時顯示組件用于實時顯示節(jié)點網(wǎng)絡(luò)拓撲及數(shù)據(jù)流向變化,數(shù)據(jù)實時更新組件用于實時更新節(jié)點網(wǎng)絡(luò)層上傳的數(shù)據(jù),節(jié)點網(wǎng)絡(luò)配置組件用于實現(xiàn)節(jié)點網(wǎng)絡(luò)層測試參數(shù)的配置。
本發(fā)明采用以上技術(shù)方案,相比與現(xiàn)有技術(shù),優(yōu)點在于1.結(jié)合測試系統(tǒng),可以方便地設(shè)置測試參數(shù),清晰地顯示網(wǎng)絡(luò)狀態(tài)變化;2.批量上傳鏡像程序到傳感器節(jié)點,實現(xiàn)同時開啟關(guān)閉,操作簡單,降低了測試消耗的時間;3.提供多種路由和傳輸協(xié)議組件,能夠?qū)崿F(xiàn)常見拓撲結(jié)構(gòu)網(wǎng)絡(luò)及大規(guī)模網(wǎng)絡(luò)的搭建, 以及不同數(shù)據(jù)包傳輸速率場景下的測試;4.統(tǒng)一的數(shù)據(jù)上傳格式和性能參數(shù)計算方法,以及與之對應(yīng)的數(shù)據(jù)處理方法,簡化了測試過程,提高了測試效率。
圖1是本發(fā)明的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試方法流程示意圖。
圖2是本發(fā)明的測試方法的節(jié)點數(shù)據(jù)Trace格式組件示意圖。
圖3是本發(fā)明的測試方法的無線通信協(xié)議棧組件示意圖。
圖4是本發(fā)明的測試系統(tǒng)的組件架構(gòu)示意圖。
圖5是本發(fā)明的測試系統(tǒng)的總體結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合優(yōu)選實施例,并參照附圖對本發(fā)明的采用組件化思想的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試方法作進一步的說明。
圖1為本發(fā)明的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試方法流程示意圖。參見圖1, 該方法包含了以下步驟步驟101 根據(jù)測試要求設(shè)置測試參數(shù)、性能參數(shù)計算方法和數(shù)據(jù)格式。
本步驟中,所設(shè)置的測試參數(shù)至少包括tinyos版本、節(jié)點類型、節(jié)點數(shù)量、節(jié)點編號區(qū)間、節(jié)點坐標位置、網(wǎng)絡(luò)拓撲結(jié)構(gòu)、測試時間。其中,tinyos版本目前主要有 tinyos-Ι. χ和tinyos-2. χ兩類,與被測數(shù)據(jù)鏈路層協(xié)議基于何種版本有關(guān);節(jié)點類型繁多,常用的有MicaZ、Mica2、Tel0SB等,本發(fā)明的測試系統(tǒng)中選擇TelosB節(jié)點;節(jié)點數(shù)量和節(jié)點編號區(qū)間用來指定測試過程中每個節(jié)點的編號,以實現(xiàn)節(jié)點間的數(shù)據(jù)包正確傳輸;節(jié)點坐標位置和網(wǎng)絡(luò)拓撲結(jié)構(gòu)通過一個拓撲文件來定義,在測試系統(tǒng)的客戶端界面,繪制了一個100X100的坐標平面,通過設(shè)定每個節(jié)點的坐標,對應(yīng)其中的位置,搭建符合測試要求的節(jié)點網(wǎng)絡(luò);測試時間指節(jié)點從測試開始節(jié)電開啟到測試結(jié)束節(jié)點關(guān)閉的時間。
所設(shè)置的性能參數(shù)計算方法主要指能耗、端到端延遲和吞吐量的統(tǒng)一計算方法。
其中,能耗的計算方法是能耗=睡眠功率χ睡眠時間+偵聽功率χ偵聽時間+發(fā)送功率χ發(fā)送時間+接收功率χ接收時間。
端到端延遲的計算方法是端到端延遲=數(shù)據(jù)包到達目的節(jié)點時刻-數(shù)據(jù)包從源節(jié)點出發(fā)時刻。
吞吐量的計算方法是吞吐量=節(jié)點發(fā)送的包字節(jié)數(shù)+節(jié)點接收的包字節(jié)數(shù)+節(jié)點轉(zhuǎn)發(fā)的包字節(jié)數(shù)。
上述計算方法是數(shù)據(jù)鏈路層協(xié)議性能參數(shù)采用的普遍方法,具有較高的準確度。 而通過統(tǒng)一計算方法的方式,并在協(xié)議底層編寫計算代碼,實現(xiàn)計算的自動化,測試結(jié)束時即可直接得到性能參數(shù)數(shù)值,省去了后期的數(shù)據(jù)處理過程,提高了測試效率。
圖2是本發(fā)明的測試方法的節(jié)點數(shù)據(jù)上傳格式示意圖。參見圖2,節(jié)點上傳的數(shù)據(jù)一般包括節(jié)點時間、事件類型、包類型、節(jié)點ID、源節(jié)點ID、發(fā)送節(jié)點ID、接收節(jié)點ID、包序列號、生存時間、父節(jié)點、鏈路質(zhì)量、喚醒時間以及與每個字段對應(yīng)的字節(jié)數(shù)。其中,節(jié)點時間指節(jié)點本身開啟后的系統(tǒng)時間,僅與本節(jié)點有關(guān);事件類型包括數(shù)據(jù)包的發(fā)送、接收和轉(zhuǎn)發(fā);包類型包括Data包和Beacon包;節(jié)點ID、源節(jié)點ID、發(fā)送節(jié)點ID和接收節(jié)點ID反映了網(wǎng)絡(luò)數(shù)據(jù)流向變化;包序列號與事件類型結(jié)合,用于計算吞吐量;生存時間指多跳傳輸中,節(jié)點轉(zhuǎn)發(fā)的跳數(shù);父節(jié)點和鏈路質(zhì)量主要在CTP路由存在時,顯示網(wǎng)絡(luò)中鏈路間的發(fā)送和接收狀況;喚醒時間指節(jié)點處于非睡眠狀態(tài)的時間,用于計算節(jié)點的占空比。
步驟102 根據(jù)所述測試參數(shù)選擇路由和傳輸協(xié)議組件組合,配置層間的模塊連接,編譯生成鏡像程序。
本步驟中,結(jié)合路由協(xié)議組件和傳輸協(xié)議組件組合,充分考慮數(shù)據(jù)鏈路層協(xié)議在不同場景下的性能測試。圖3是本發(fā)明的測試方法的無線通信協(xié)議棧組件示意圖。參見圖 3,本發(fā)明的無線通信協(xié)議棧組件由傳輸層協(xié)議組件、路由層協(xié)議組件、數(shù)據(jù)鏈路層協(xié)議組件以及層間接口組成。
傳輸層協(xié)議組件考慮網(wǎng)絡(luò)速率的不同,存在兩種情況1)網(wǎng)絡(luò)內(nèi)數(shù)據(jù)傳輸速率較大的情況下,尤其是多個節(jié)點向同一個節(jié)點發(fā)送數(shù)據(jù)的時候,出現(xiàn)擁塞的概率很大,導(dǎo)致整個網(wǎng)絡(luò)性能降低,這時采用WRCP協(xié)議組件。WRCP協(xié)議將接收者能力模型(綜合考慮當(dāng)前節(jié)點及其所有鄰居節(jié)點的接收能力,適當(dāng)調(diào)節(jié)節(jié)點數(shù)據(jù)傳輸速率)應(yīng)用于節(jié)點,可以鏈路動態(tài)變化,具有良好的速率調(diào)節(jié)和擁塞避免功能; 2 )網(wǎng)絡(luò)內(nèi)數(shù)據(jù)傳輸速率較低的時候,可以不采用傳輸協(xié)議。
路由層協(xié)議組件考慮網(wǎng)絡(luò)場景的不同,也存在兩種情況1)CTP協(xié)議,適合搭建采用動態(tài)路由的大規(guī)模網(wǎng)絡(luò)場景。CTP是一種基于TinyOS的應(yīng)用于無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)匯聚協(xié)議。該協(xié)議采用匯聚樹思想,在網(wǎng)絡(luò)中設(shè)置若干匯聚根節(jié)點,節(jié)點通過與鄰居節(jié)點交換相互的鏈路質(zhì)量估計信息來選擇父節(jié)點作為下一跳,從而建立一條可靠的到某一匯聚根節(jié)點的路由;2)靜態(tài)路由,適用于常見場景的搭建。如鏈式場景、網(wǎng)絡(luò)場景、星型場景等,通過手動設(shè)置路由實現(xiàn),路由設(shè)置后不可改變。
數(shù)據(jù)鏈路層協(xié)議組件是協(xié)議測試的主體,包括1)MLA,采用組件化思想將數(shù)據(jù)鏈路層協(xié)議的共性抽象成組件,設(shè)計新的協(xié)議時,結(jié)合共性組件和新協(xié)議的特性組件,構(gòu)成新的協(xié)議,目前MLA架構(gòu)下已經(jīng)實現(xiàn)了 5個典型的同步和異步協(xié)議,而MLA也作為本發(fā)明數(shù)據(jù)鏈路層協(xié)議設(shè)計的基礎(chǔ);2)CSMA, LPL是最早的基于競爭方式的數(shù)據(jù)鏈路層協(xié)議,許多經(jīng)典的協(xié)議由此發(fā)展而來。
另外,無線通信協(xié)議棧組件采用組件化思想設(shè)計層間的通用接口,使得每個層的組件獨立,某一層的組件替換不影響其他層的組件,從而通過組合搭建適合更多應(yīng)用的測試場景。
步驟103 上傳所述鏡像程序到節(jié)點,開啟所有節(jié)點,通過串口通信組件收集節(jié)點數(shù)據(jù)。
本步驟中,通過編寫Linux下的shell腳本程序,在進行對一個節(jié)點的操作同時, 將對其他節(jié)點的操作放在后臺運行,從而實現(xiàn)節(jié)點鏡像程序批量同時上傳、開啟、關(guān)閉以及串口偵聽。配合本發(fā)明的測試系統(tǒng),這些操作在客戶端界面通過按鈕即可完成。與一般方法的手動燒寫相比,該方式操作簡單,降低了測試復(fù)雜度,同時提高了測試效率。
步驟104 通過網(wǎng)絡(luò)狀態(tài)監(jiān)測組件監(jiān)測網(wǎng)絡(luò)拓撲變化、數(shù)據(jù)流向,通過分析最終統(tǒng)計的數(shù)據(jù)得到性能參數(shù)值。
本步驟與本發(fā)明的測試系統(tǒng)結(jié)合,也是不同于一般測試方法的一個方面。通過利用從節(jié)點網(wǎng)絡(luò)層上傳的數(shù)據(jù),利用網(wǎng)絡(luò)狀態(tài)監(jiān)測組件繪制網(wǎng)絡(luò)拓撲變化、數(shù)據(jù)流向,可以清晰形象地觀察到節(jié)點間數(shù)據(jù)包傳遞情況、鏈路情況以及可能出現(xiàn)的異常。另外,在客戶端也可以方便地獲得節(jié)點數(shù)據(jù),并通過SQL語言實現(xiàn)對這些數(shù)據(jù)的條件查詢,從而加快數(shù)據(jù)處理速度,減少數(shù)據(jù)統(tǒng)計處理的時間。
綜合上述步驟可見,本發(fā)明的數(shù)據(jù)鏈路層協(xié)議測試方法與一般的測試方法相比, 在功能性、易用性、通用性、測試效率等方面有非常明顯的優(yōu)勢。另外也可以看出,本發(fā)明的測試系統(tǒng)專門為數(shù)據(jù)鏈路層協(xié)議測試而設(shè)計,基于TinyOS嵌入式系統(tǒng),其與本發(fā)明的測試方法密切聯(lián)系,不可分割。
圖4是本發(fā)明的測試系統(tǒng)的組件架構(gòu)示意圖。參見圖4,測試系統(tǒng)包括客戶端界面層、服務(wù)器層和節(jié)點網(wǎng)絡(luò)層。測試系統(tǒng)按照測試平臺的層次結(jié)架構(gòu),將各層的功能或協(xié)議構(gòu)造成單獨的組件。當(dāng)需要進行協(xié)議或算法的測試時,通過組合、重用部分功能各異的組件,從而搭建不同的測試場景,完成測試。
客戶端界面層是一個人機交互界面,采用網(wǎng)頁的形式,其作用是發(fā)送控制命令和監(jiān)測網(wǎng)絡(luò)狀態(tài),主要包括下列組件1)文件上傳組件將編譯好的鏡像程序上傳到指定位置,以備后續(xù)上傳到節(jié)點。
2)數(shù)據(jù)庫查詢組件通過輸入SQL指令,定義數(shù)據(jù)查詢條件,獲得所需數(shù)據(jù),并以表格的形式顯示出來。
3)拓撲實時顯示組件采用PHP的⑶繪圖庫完成100X 100矩形格子的xy坐標平面圖;通過拓撲配置文件,用戶設(shè)定節(jié)點的坐標,按比例對應(yīng)實際測試平臺中節(jié)點的位置; 測試開始后,通過箭頭顯示網(wǎng)絡(luò)內(nèi)節(jié)點間的包發(fā)送和接收流向。
4)數(shù)據(jù)實時更新組件以表格形式顯示,根據(jù)網(wǎng)絡(luò)拓撲狀態(tài)更新相應(yīng)時間段內(nèi)節(jié)點上傳的數(shù)據(jù),清晰地顯示節(jié)點狀態(tài);5)節(jié)點網(wǎng)絡(luò)配置組件配置測試參數(shù),實現(xiàn)節(jié)點的批量燒錄、開啟關(guān)閉以及拓撲演示回放,顯示命令執(zhí)行狀態(tài)的字符串。
服務(wù)器層是由MySQL數(shù)據(jù)庫、后臺處理和串口通信組件構(gòu)成。服務(wù)器運行在 Apache網(wǎng)絡(luò)服務(wù)器上,它是目前最流行的開源Web服務(wù)器端軟件之一。服務(wù)器層作為客戶端層和節(jié)點網(wǎng)絡(luò)層的中間紐帶。
—方面,節(jié)點網(wǎng)絡(luò)層上傳的數(shù)據(jù)保存到服務(wù)器層的數(shù)據(jù)庫里,供客戶端查詢;另一方面,客戶端層輸入的控制命令通過服務(wù)器層的后臺處理,實現(xiàn)對網(wǎng)絡(luò)內(nèi)節(jié)點的燒錄、開啟、數(shù)據(jù)偵聽等。
節(jié)點網(wǎng)絡(luò)層由測試應(yīng)用程序、串口通信協(xié)議棧和無線通信協(xié)議棧組成。
測試應(yīng)用程序位于應(yīng)用層,通常是為協(xié)議測試搭建的網(wǎng)絡(luò)場景;串口通信協(xié)議棧采用TinyOS自帶的協(xié)議棧,承擔(dān)與服務(wù)器層交互,如接收編程命令、讀取Trace數(shù)據(jù)等;無線通信協(xié)議棧由各層組件構(gòu)成,包括傳輸層組件、路由層組件和MAC層組件。
節(jié)點的串口通信和無線通信是獨立開來的。節(jié)點通過無線信道組成無線網(wǎng)絡(luò),運行協(xié)議或算法,數(shù)據(jù)包的發(fā)送和接收通過射頻完成;而節(jié)點的數(shù)據(jù)采集是用過有線方式完成,節(jié)點之間利用USB連線和USB集線器連接到服務(wù)器上,數(shù)據(jù)的上傳通過串口完成。這種雙通道的方式使網(wǎng)絡(luò)信號和監(jiān)測數(shù)據(jù)之間互不干擾,減少了測量誤差,與通過無線信道運行測試和監(jiān)測數(shù)據(jù)的單通道方式相比,優(yōu)勢顯著。
圖5是本發(fā)明的測試系統(tǒng)的總體結(jié)構(gòu)示意圖。參見圖5,測試系統(tǒng)的硬件系統(tǒng)主要由TelosB節(jié)點、集線器、USB連線、服務(wù)器、PC機構(gòu)成。其中,節(jié)點網(wǎng)絡(luò)層由傳感器節(jié)點通過 USB連線及集線器連接構(gòu)成無線網(wǎng)絡(luò),運行測試協(xié)議或算法;服務(wù)器通過USB數(shù)據(jù)串口獲得節(jié)點網(wǎng)絡(luò)層采集的數(shù)據(jù),通過USB編程串口對節(jié)點網(wǎng)絡(luò)層發(fā)布控制命令;PC作為提供一個友好的可視化人機交互界面,承擔(dān)控制命令輸入與網(wǎng)絡(luò)狀態(tài)監(jiān)測的作用。
權(quán)利要求
1.一種無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試方法,其特征在于,包括以下步驟步驟A,根據(jù)數(shù)據(jù)鏈路層協(xié)議的測試要求設(shè)置測試參數(shù)、以及數(shù)據(jù)鏈路層協(xié)議性能參數(shù)的計算方法,定義數(shù)據(jù)上傳格式;步驟B,根據(jù)步驟A設(shè)置的測試參數(shù)選擇路由和傳輸協(xié)議組件組合,配置協(xié)議棧路由層協(xié)議與傳輸層協(xié)議組件模塊間的連接,搭建無線通信協(xié)議棧,編譯生成鏡像程序;步驟C,將步驟B生成的鏡像程序上傳到傳感器節(jié)點,開啟無線傳感器網(wǎng)絡(luò)內(nèi)所有節(jié)點,通過串口通信組件收集節(jié)點數(shù)據(jù)存儲到服務(wù)器端的數(shù)據(jù)庫;步驟D,在客戶端通過網(wǎng)絡(luò)狀態(tài)監(jiān)測組件監(jiān)測網(wǎng)絡(luò)拓撲變化、數(shù)據(jù)流向,通過采用步驟 A中的協(xié)議性能參數(shù)計算方法得到各個協(xié)議性能參數(shù)的具體數(shù)值。
2.根據(jù)權(quán)利要求1所述的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試方法,其特征在于,步驟A中所述測試參數(shù)包括tiny0S版本、節(jié)點類型、節(jié)點數(shù)量、節(jié)點編號區(qū)間、節(jié)點坐標位置、拓撲結(jié)構(gòu)、測試時間;所述協(xié)議性能參數(shù)包括節(jié)點網(wǎng)絡(luò)的能耗參數(shù)、端到端延遲及吞吐量參數(shù);所述的數(shù)據(jù)上傳格式包括節(jié)點本地時間、事件類型、包類型、節(jié)點ID、源節(jié)點ID、發(fā)送節(jié)點ID、接收節(jié)點ID、包序列號、生存時間、父節(jié)點、鏈路質(zhì)量和喚醒時間。
3.根據(jù)權(quán)利要求1或2所述的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試方法,其特征在于, 步驟A所述協(xié)議性能參數(shù)的計算方法為所述能耗參數(shù)通過分別統(tǒng)計節(jié)點在發(fā)送、接受、休眠和偵聽狀態(tài)的時間,然后與對應(yīng)的功率相乘得到;所述端到端延遲參數(shù)通過計算數(shù)據(jù)包從源節(jié)點出發(fā)的時間與到目的節(jié)點的時間差得到;所述吞吐量參數(shù)分別通過計算節(jié)點發(fā)送、接收、轉(zhuǎn)發(fā)的包數(shù),以及與對應(yīng)的包的字節(jié)數(shù)得到。
4.根據(jù)權(quán)利要求1所述的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試方法,其特征在于,步驟B所述無線通信協(xié)議棧支持基于TinyOS的數(shù)據(jù)鏈路層協(xié)議性能測試,由傳輸層協(xié)議組件、路由層協(xié)議組件和數(shù)據(jù)鏈路層協(xié)議組件構(gòu)成,所述傳輸層協(xié)議組件和所述路由層協(xié)議組件為數(shù)據(jù)鏈路層協(xié)議測試提供通用性支持;其中所述傳輸層協(xié)議組件負責(zé)速率調(diào)節(jié)和擁塞避免,根據(jù)節(jié)點網(wǎng)絡(luò)數(shù)據(jù)傳輸速率,決定采用或不采用WRCP協(xié)議組件,具體方法為11)當(dāng)網(wǎng)絡(luò)內(nèi)數(shù)據(jù)傳輸速率大于正常值時,采用WRCP協(xié)議組件,將接收者能力模型應(yīng)用于節(jié)點;12)當(dāng)網(wǎng)絡(luò)內(nèi)數(shù)據(jù)傳輸速率小于等于正常值時,不采用傳輸協(xié)議;所述路由層協(xié)議組件負責(zé)路由的建立、選擇和維護,根據(jù)節(jié)點網(wǎng)絡(luò)拓撲結(jié)構(gòu),決定采用靜態(tài)路由或CTP協(xié)議組件,具體方法為21),當(dāng)動態(tài)路由處于大規(guī)模網(wǎng)絡(luò)場景時,采用CTP協(xié)議在網(wǎng)絡(luò)中設(shè)置若干匯聚根節(jié)點,節(jié)點通過與鄰居節(jié)點交換相互的鏈路質(zhì)量估計信息來選擇父節(jié)點作為下一跳,建立一條到達某一匯聚根節(jié)點的路由;22)當(dāng)動態(tài)路由處于常見網(wǎng)絡(luò)場景時,采用靜態(tài)路由協(xié)議通過手動設(shè)置路由實現(xiàn);所述數(shù)據(jù)鏈路層協(xié)議組件由已納入測試系統(tǒng)的數(shù)據(jù)鏈路層協(xié)議以及測試者基于其開發(fā)的新協(xié)議組成,其中31)已納入測試系統(tǒng)的數(shù)據(jù)鏈路層協(xié)議包括MLA、CSMA、LPL;32)所述新協(xié)議的開發(fā)步驟為a,采用組件化思想,將已納入測試系統(tǒng)的數(shù)據(jù)鏈路層協(xié)議的共性抽象成共性組件;b,采用組件化思想,將相對于已納入測試系統(tǒng)的數(shù)據(jù)鏈路層協(xié)議的改進部分抽象成特性組件;c,結(jié)合步驟a得到的共性組件和步驟b得到的特性組件,構(gòu)成新協(xié)議。
5. 一種無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試系統(tǒng),其特征在于,包括節(jié)點網(wǎng)絡(luò)層、服務(wù)器層和客戶端界面層;其中所述節(jié)點網(wǎng)絡(luò)層采用有線與無線信道相結(jié)合的方式傳輸數(shù)據(jù);其中,傳感器節(jié)點基于無線通信協(xié)議棧通過無線信道組成無線網(wǎng)絡(luò),運行測試無線通信協(xié)議棧的應(yīng)用程序,實現(xiàn)數(shù)據(jù)包的發(fā)送和接收;傳感器節(jié)點通過有線信道完成數(shù)據(jù)采集,并將采集到的數(shù)據(jù)通過串口上傳到服務(wù)器層;所述服務(wù)器層由串口通信組件、數(shù)據(jù)庫、后臺處理器組成;其中,串口通信組件通過與節(jié)點網(wǎng)絡(luò)層交互,將節(jié)點網(wǎng)絡(luò)層采集的數(shù)據(jù)上傳到數(shù)據(jù)庫;數(shù)據(jù)庫通過構(gòu)建數(shù)據(jù)表,存儲經(jīng)過串口通信組件解析的數(shù)據(jù)報文;后臺處理器采用AJAX+PHP技術(shù),通過客戶端腳本語言 (Javascript)獲取數(shù)據(jù)庫中的參數(shù),交由客戶端界面層處理并以字符串形式返回執(zhí)行結(jié)果;所述客戶端界面層采用網(wǎng)頁形式運行在Apache網(wǎng)絡(luò)服務(wù)器上,包括文件上傳組件、 數(shù)據(jù)庫查詢組件、拓撲實時顯示組件、數(shù)據(jù)實時更新組件和節(jié)點網(wǎng)絡(luò)配置組件;其中,文件上傳組件用于上傳無線通信協(xié)議棧的鏡像程序,數(shù)據(jù)庫查詢組件用于客戶端查詢數(shù)據(jù)庫內(nèi)容,拓撲實時顯示組件用于實時顯示節(jié)點網(wǎng)絡(luò)拓撲及數(shù)據(jù)流向變化,數(shù)據(jù)實時更新組件用于實時更新節(jié)點網(wǎng)絡(luò)層上傳的數(shù)據(jù),節(jié)點網(wǎng)絡(luò)配置組件用于實現(xiàn)節(jié)點網(wǎng)絡(luò)層測試參數(shù)的配置。
全文摘要
本發(fā)明公開了一種無線傳感器網(wǎng)絡(luò)數(shù)據(jù)鏈路層協(xié)議測試方法,步驟如下A.根據(jù)測試要求設(shè)置測試參數(shù)、性能參數(shù)計算方法和數(shù)據(jù)格式;B.根據(jù)所述測試參數(shù)選擇路由和傳輸協(xié)議組件組合,配置層間的模塊連接,編譯生成鏡像程序;C.上傳所述鏡像程序到節(jié)點,開啟所有節(jié)點,通過串口通信組件收集節(jié)點數(shù)據(jù);D.通過網(wǎng)絡(luò)狀態(tài)監(jiān)測組件監(jiān)測網(wǎng)絡(luò)拓撲變化、數(shù)據(jù)流向,通過分析最終統(tǒng)計的數(shù)據(jù)得到性能參數(shù)數(shù)值。本發(fā)明還公開了一種數(shù)據(jù)鏈路層協(xié)議測試系統(tǒng)。本發(fā)明適用于基于TinyOS設(shè)計的數(shù)據(jù)鏈路層協(xié)議性能測試,具有良好的易用性、通用性,顯著提高了測試效率。
文檔編號H04L29/08GK102523136SQ20111043344
公開日2012年6月27日 申請日期2011年12月22日 優(yōu)先權(quán)日2011年12月22日
發(fā)明者劉昊, 吳建輝, 李帥, 陳昊, 駱輝 申請人:東南大學(xué)