一種無線傳感器網絡的突發流量負載傳輸方法
2023-06-06 12:23:31 1
專利名稱:一種無線傳感器網絡的突發流量負載傳輸方法
技術領域:
本發明屬於無線傳感器網絡領域,特別涉及一種無線傳感器網絡中適用於突發流量負載的數據傳輸方法。
背景技術:
無線傳感器網絡(Wireless Sensor Networks, WSN)中面向環境監控和入侵檢測等事件觸發應用時,網絡呈現相關流量突發傳輸狀態,即在一段低流量的空閒周期後,多個節點同時向匯聚節點傳輸大量數據。在這種情況下,嚴重的信道碰撞會增加節點能耗及數據傳輸延時,降低了網絡通信效率和網絡生存周期。因此,在突發流量負載應用中,解決信道碰撞問題並使數據可以低功耗可靠的傳輸至關重要。MAC協議處於無線傳感器網絡協議棧的底層,決定了數據傳輸方式。其主要功能為負責信道接入、控制節點的數據傳輸對無線共享信道的佔用,以及通過一組規則和過程來更有效、有序和公平使用共享信道以保證網絡的整體性能。MAC協議是無線傳感器網絡中最重要的技術之一,對整個網絡的性能影響很大。信道碰撞是突發流量應用中普遍面臨的問題。針對上述問題,人們提出了多種MAC 協議解決方案。在基於TDMA的MAC協議中,把時間分割成周期性的巾貞,每一巾貞再分割成若干個時隙。每個節點分配獨立的用於數據發送和接收的時隙,並在其他節點佔用的時隙內進入睡眠狀態。這類MAC協議可以避免碰撞重傳問題,但是,協議需要嚴格的同步,並且用於同步、時隙分配和調度維護的開銷非常大,從而浪費能量。另一方面,空閒時隙影響信道利用率,降低網絡吞吐量。在基於CSMA的MAC協議中,通常使用二進位指數退避策略解決碰撞問題,即當碰撞發生後,每個節點為了降低再次碰撞的概率,等待一個隨機時間後再次發送數據。這種方法雖然沒有控制開銷,但是隨著網絡中節點數增加,碰撞概率越來越大,消耗能量的同時增加了數據傳輸延時,使網絡性能迅速降低。
發明內容
技術問題本發明針對突發流量的無線傳感器網絡應用場景,進行單收發器MAC 協議設計與實現,提供了一種可實現無碰撞數據傳輸過程,大大降低節點能耗、減少傳輸延時、同時提高了節點公平性的無線傳感器網絡的突發流量負載傳輸方法。
技術方案本發明的無線傳感器網絡的突發流量負載傳輸方法,首先對加入網絡的節點進行初始化,接收節點建立通信詢問調度表,發送節點建立數據發送調度表,然後根據所述接收節點建立的通信詢問調度表確定通信周期,節點在所述通信周期裡進行傳輸工作流程,當一個通信周期結束時,如發送節點和接收節點正在通信,則判斷負載傳輸沒有完成, 將發送節點和接收節點同時中斷通信,然後進入下一通信周期繼續進行傳輸工作流程,如發送節點和接收節點沒有通信,則判斷負載傳輸完成,然後直接進入下一通信周期繼續進行傳輸工作流程;節點在每個通信周期裡的傳輸工作流程包括如下步驟
1)接收節點根據初始化時建立的通信詢問調度表,廣播發送詢問幀,當發送節點在所設定的超時時間內接收到該詢問幀時,進入步驟2),否則進入步驟3);
2)判斷發送節點是否已經存儲了接收節點的通信詢問調度表,如果為是,則發送節點發送硬體確認幀HACK後,進入步驟4),否則進入步驟5);
3)接收節點在所設定的超時時間到時,進入睡眠狀態,同時,判斷發送節點是否正處於睡眠狀態,如果是,則保持睡眠狀態,否則,在所設定的超時時間到時,進入睡眠狀態;完成上述操作後進入步驟6);
4)判斷接收節點是否接收到發送節點的硬體確認幀HACK,如是,則繼續保持喚醒狀態, 否則,進入睡眠狀態;
41)發送節點開始發送檢測到的數據,當接收節點接收到發送節點檢測到的數據時,進入411),當接收節點使用空閒信道評估方法檢測到碰撞時,進入412),當接收節點既沒有接收到數據也沒有檢測到碰撞,進入413);
411)進入正常通信過程,然後判斷接收節點是否存儲了這些檢測到的數據中包含的數據發送調度表,如是,則直接回復不帶確認標識的數據確認幀後進入步驟6),否則,就將這些檢測到的數據中包含的調度信息存儲到接收節點的鄰居鍊表裡,然後在數據確認幀裡添加確認標識並發送該數據確認幀後進入步驟6);
412)接收節點立即睡眠,並在本次通信詢問周期內,根據每個發送節點的數據發送調度表依次醒來,並接收發生碰撞的數據;同時,發送節點進入睡眠狀態,然後根據數據發送調度表醒來發送檢測到的數據;完成上述操作後進入步驟6);
413)接收節點和發送節點都進入睡眠狀態,完成上述操作後進入步驟6);
5)發送節點將所述接收節點發送的詢問幀裡包含的接收節點的通信詢問調度表存儲到一個鄰居鍊表裡,然後直接發送檢測到的數據,當接收節點接收到發送節點檢測到的數據時,進入51),當接收節點使用空閒信道評估方法檢測到碰撞時,進入52),當接收節點沒有接收到發送節點檢測到的數據也沒有檢測到碰撞時,進入53);
51)進入正常通信過程,然後判斷接收節點是否存儲了這些檢測到的數據中包含的數據發送調度表,如是,則直接回復不帶確認標識的數據確認幀後進入步驟6),否則,就將這些檢測到的數據中包含的調度信息存儲到接收節點的鄰居鍊表裡,然後在數據確認幀裡添加確認標識並發送該數據確認幀後進入步驟6);
52)使用二進位指數退避方法進行數據重傳,即接收節點發送帶有退避時間的信標幀, 發送節點接收到所述信標幀後,在所述退避時間內隨機選擇一個時間重新發送檢測到的數據;完成上述操作後進入步驟6);
53)接收節點和發送節點都進入睡眠狀態,完成上述操作後進入步驟6);
6)等待通信周期到時,結束本通信周期的傳輸工作流程。本發明中,初始化時建立的數據發送調度表採用線性同餘法計算得到。
有益效果本發明方法與傳統的MAC協議數據傳輸方案相比,具有以下明顯優點充分利用一個通信詢問周期的帶寬,大大減少數據碰撞,保證了數據低功耗快速傳輸。提高傳輸率和吞吐量。同時具有很少的控制開銷,和硬體計算量。此發明中的無線傳感器網絡數據傳輸方法,不僅在突發流量負載場景下實現高效率的數據傳輸,在其它流量負載場景下仍然性能優異。對動態流量負載適應性強。具體分析如下
(I)傳統的技術方案中,當多個發送節點同時需要向同一接收節點發送檢測到的數據時,接收節點不能正確接收數據。這時為了保證順利通信。所有節點都保持喚醒狀態,並持續競爭信道,一直到成功完成通信。因此,所有節點的能耗浪費非常大;本發明方法中每個發送節點都建立一個數據發送調度表。在一個通信詢問周期內,每個節點在不同時刻發送檢測到的數據,其它時間內進入睡眠狀態。因此大大減少了節點的能耗,同時具有很少的控制開銷,和硬體計算量。(2)傳統的技術方案中,接收節點使用偽隨機序列時間參數作為通信詢問間隔,而本發明方案採用固定時間參數作為通信詢問間隔。在保證空閒能耗一致的情況下,本發明方案在無碰撞時每一跳的通信中可以減少33%的延時。例如傳統方案中採用[O. 5,I. 5]的偽隨機序列時間參數,那麼其平均每跳延時為O. 75。本發明採用固定時間參數,為了保證空閒能耗一致,我們選擇I作為固定時間參數,其平均每跳延時為O. 5,二者相比,本方案每跳延時是傳統方案的2/3 (O. 5/0. 75)。而在有碰撞時,低流量通信時,二者延時相近;高流量時,本發明方案的每跳延時優化量同流量速率成正比。
圖I為隨機分布測試場景示意圖2為平均能耗測試結果對比圖3為平均傳輸延時測試結果對比圖4為本發明方法整體流程圖5為節點在每個通信周期裡的傳輸工作流程圖6為步驟3流程圖7為步驟4流程圖8為步驟5流程圖。
具體實施例方式下面結合附圖對發明的技術方案進行詳細說明。本發明的無線傳感器網絡的突發流量負載傳輸方法,首先對加入網絡的節點進行初始化,接收節點建立通信詢問調度表,發送節點建立數據發送調度表,然後根據所述接收節點建立的通信詢問調度表確定通信周期,節點在所述通信周期裡進行傳輸工作流程,當一個通信周期結束時,如發送節點和接收節點正在通信,則判斷負載傳輸沒有完成,將發送節點和接收節點同時中斷通信,然後進入下一通信周期繼續進行傳輸工作流程,如發送節點和接收節點沒有通信,則判斷負載傳輸完成,然後直接進入下一通信周期繼續進行傳輸工作流程;
如圖4所示,節點加入網絡進行初始化時,首先需要根據節點類型建立相應的調度表。 接收節點建立通信詢問調度表,發送節點建立數據發送調度表;然後根據接收節點的通信詢問調度表,將時間分成重複的通信周期;最後節點根據通信周期的工作流程進行工作; 本發明中用戶通過對節點的網絡協議棧編程和使用節點用戶接口的方法建立通信詢問調度表和數據發送調度表。
如果是接收節點,通信詢問調度表中會生成兩個參數詢問周期間隔參數和下一次通信詢問時間參數。每進入一個新的通信詢問周期,這兩個參數都會更新。本發明中使用固定時間參數作為詢問周期間隔,下一次通信詢問時間=本次通信詢問時間+詢問周期間隔參數。在我們的實驗中,將詢問周期間隔設定為ls,用戶可以根據需要自定義周期詢問間隔。節點在每個通信周期裡的傳輸工作流程如圖5所示,具體包括如下步驟
1)接收節點根據初始化時建立的通信詢問調度表,廣播發送詢問幀,當發送節點在所設定的超時時間內接收到該詢問幀時,進入步驟2),否則進入步驟3);這裡可以具體分為三種情況[I ]發送節點未存儲接收節點的通信詢問調度表時,超時時間設置為5個通信周期時長,本發明實驗中的一個通信周期時長為ls,故此時的超時時間為5s U發送節點已存儲接收節點的通信詢問調度表時, 超時時間根據IEEE802. 15. 4標準中規定一個信標幀的超時時間進行設置;[3)發送節點沒有檢測到數據,那麼一直處於睡眠狀態,此時沒有超時時間,而且發送節點一定不會接收到該詢問幀,故直接進入步驟3);
2)判斷發送節點是否已經存儲了接收節點的通信詢問調度表,如果為是,則發送節點發送硬體確認幀HACK後,進入步驟4),否則進入步驟5);
3)如圖6所示,接收節點在所設定的超時時間到時,進入睡眠狀態,同時,判斷發送節點是否正處於睡眠狀態,如果是,則保持睡眠狀態,否則,在所設定的超時時間到時,進入睡眠狀態;完成上述操作後進入步驟6);
4)如圖7所示,判斷接收節點是否接收到發送節點的硬體確認幀HACK,如是,則繼續保持喚醒狀態,否則,進入睡眠狀態;
41)發送節點開始發送檢測到的數據,當接收節點接收到發送節點檢測到的數據時,進入411),當接收節點使用空閒信道評估(CCA)方法檢測到碰撞時,進入412),當接收節點既沒有接收到數據也沒有檢測到碰撞,進入413);其中本發明實驗中使用空閒信道評估(CCA) 提供的模式I方法檢測碰撞,即接收節點在一定時間內(本發明方案中設置的時間為1ms, 用戶可以根據實際情況進行自定義設置)未接收到正確的幀首定界符,但通過CCA方法檢測到信道正在活動,就認為,此時發生了碰撞;
411)進入正常通信過程,然後判斷接收節點是否存儲了這些檢測到的數據中包含的數據發送調度表,如是,則直接回復不帶確認標識的數據確認幀後進入步驟6),否則,就將這些檢測到的數據中包含的調度信息存儲到接收節點的鄰居鍊表裡,然後在數據確認幀裡添加確認標識並發送該數據確認幀後進入步驟6);
412)接收節點立即睡眠,並在本次通信周期內,根據每個發送節點的數據發送調度表依次醒來,並接收發生碰撞的數據,由於發生碰撞,發送節點在所設定的超時時間內不能接收到接收節點發送的數據確認幀,因此,發送節點進入睡眠狀態,然後根據數據發送調度表醒來發送檢測到的數據;完成上述操作後進入步驟6);
413)接收節點和發送節點都進入睡眠狀態,完成上述操作後進入步驟6);
5)如圖8所示,發送節點將接收節點發送的詢問幀裡包含的接收節點的通信詢問調度表存儲到一個鄰居鍊表裡,然後直接發送檢測到的數據,當接收節點接收到發送節點檢測到的數據時,進入51),當接收節點使用空閒信道評估(CCA)方法檢測到碰撞時,進入52), 當接收節點沒有接收到發送節點檢測到的數據也沒有檢測到碰撞時,進入53);
51)進入正常通信過程,然後判斷接收節點是否存儲了這些檢測到的數據中包含的數據發送調度表,如是,則直接回復不帶確認標識的數據確認幀後進入步驟6),否則,就將這些檢測到的數據中包含的調度信息存儲到接收節點的鄰居鍊表裡,然後在數據確認幀裡添加確認標識並發送該數據確認幀後進入步驟6);
52)使用二進位指數退避方法進行數據重傳,即接收節點發送帶有退避時間的信標幀, 發送節點接收到所述信標幀後,在所述退避時間內隨機選擇一個時間重新發送檢測到的數據,完成上述操作後進入步驟6);本發明實驗中選取的基礎競爭窗口為31個時隙(slot), 當重試計數器累增,競爭窗口即移至下一個2個指數倍數。當競爭窗口到達最大極限255 時就會維持該數字,直到它被重新設定;
53)接收節點和發送節點都進入睡眠狀態,完成上述操作後進入步驟6);
6)等待通信周期到時,結束本通信周期的傳輸工作流程。本發明中,初始化時,數據發送調度表建立過程如果是發送節點,數據發送調度表會生成四個參數a,c,m和Xn。並採用線性同餘法生成數據發送時間Xn+1,公式(I)所示
Xn+1= (aXn+c) mod m (I)
其中參數要求是O < m <接收節點通信詢問周期*1000,O <a<m,0^c<mo在本發明實驗中取a=21,c=7, m=750。X1JI為種子,取節點ID號為初始種子,得到的Xn+1會作為新種子進行下一次的計算,同時會更新數據發送調度表。得出的Xn+1單位為ms,需要將其換算為S,最終得到數據發送時間。值得注意的是,將m設置為小於接收節點通信詢問周期 *1000,是為了保證發送節點在每個接收節點的通信詢問周期至少可以進行一次通信。下面進行實驗測試,對比本發明方案與傳統技術方案的性能
實驗平臺NS2網絡仿真模擬器;
實驗場景50個節點隨機分布在1000*1000的區域內,其中網關節點在右上角;
網絡負載隨機觸發100次事件,事件感知半徑可變;
圖I為實驗場景,圖2為能耗測試結果,圖3為延時測試結果。從圖2和圖3中可以明顯看出,無論是能耗和傳輸延時,本發明方案都較傳統方案有顯著提高。從能耗的角度來看,隨著感知半徑的增大,本發明方案的能耗都在O. 5%以下,而傳統方案呈指數增長,最高達到2. 8% ;從延時方面來看,本發明方案都在4s以下,而傳統方案,最高延時已經達到9s。
權利要求
1.ー種無線傳感器網絡的突發流量負載傳輸方法,其特徵在於,該方法首先對加入網絡的節點進行初始化,接收節點建立通信詢問調度表,發送節點建立數據發送調度表,然後根據所述接收節點建立的通信詢問調度表確定通信周期,節點在所述通信周期裡進行傳輸工作流程,當ー個通信周期結束吋,如發送節點和接收節點正在通信,則判斷負載傳輸沒有完成,將發送節點和接收節點同時中斷通信,然後進入下一通信周期繼續進行傳輸工作流程,如發送節點和接收節點沒有通信,則判斷負載傳輸完成,然後直接進入下一通信周期繼續進行傳輸工作流程;節點在每個通信周期裡的傳輸工作流程包括如下步驟1)接收節點根據初始化時建立的通信詢問調度表,廣播發送詢問幀,當發送節點在所設定的超時時間內接收到該詢問幀時,進入步驟2),否則進入步驟3);2)判斷發送節點是否已經存儲了接收節點的通信詢問調度表,如果為是,則發送節點發送硬體確認幀HACK後,進入步驟4),否則進入步驟5);3)接收節點在所設定的超時時間到時,進入睡眠狀態,同時,判斷發送節點是否正處於睡眠狀態,如果是,則保持睡眠狀態,否則,在所設定的超時時間到時,進入睡眠狀態;完成上述操作後進入步驟6);4)判斷接收節點是否接收到發送節點的硬體確認幀HACK,如是,則繼續保持喚醒狀態, 否則,進入睡眠狀態;41)發送節點開始發送檢測到的數據,當接收節點接收到發送節點檢測到的數據時,進入411 ),當接收節點使用空閒信道評估方法檢測到碰撞時,進入412 ),當接收節點既沒有接收到數據也沒有檢測到碰撞,進入413);411)進入正常通信過程,然後判斷接收節點是否存儲了這些檢測到的數據中包含的數據發送調度表,如是,則直接回復不帶確認標識的數據確認幀後進入步驟6),否則,就將這些檢測到的數據中包含的調度信息存儲到接收節點的鄰居鍊表裡,然後在數據確認幀裡添加確認標識並發送該數據確認幀後進入步驟6);412)接收節點立即睡眠,並在本次通信周期內,根據每個發送節點的數據發送調度表依次醒來,並接收發生碰撞的數據;同時,發送節點進入睡眠狀態,然後根據數據發送調度表醒來發送檢測到的數據;完成上述操作後進入步驟6);413)接收節點和發送節點都進入睡眠狀態,完成上述操作後進入步驟6);5)發送節點將所述接收節點發送的詢問幀裡包含的接收節點的通信詢問調度表存儲到ー個鄰居鍊表裡,然後直接發送檢測到的數據,當接收節點接收到發送節點檢測到的數據時,進入51),當接收節點使用空閒信道評估方法檢測到碰撞時,進入52),當接收節點沒有接收到發送節點檢測到的數據也沒有檢測到碰撞時,進入53);51)進入正常通信過程,然後判斷接收節點是否存儲了這些檢測到的數據中包含的數據發送調度表,如是,則直接回復不帶確認標識的數據確認幀後進入步驟6),否則,就將這些檢測到的數據中包含的調度信息存儲到接收節點的鄰居鍊表裡,然後在數據確認幀裡添加確認標識並發送該數據確認幀後進入步驟6);52)使用ニ進位指數退避方法進行數據重傳,即接收節點發送帶有退避時間的信標幀, 發送節點接收到所述信標幀後,在所述退避時間內隨機選擇ー個時間重新發送檢測到的數據;完成上述操作後進入步驟6);53)接收節點和發送節點都進入睡眠狀態,完成上述操作後進入步驟6);6)等待通信周期到吋,結束本通信周期的傳輸工作流程。
2.根據權利要求I所述的無線傳感器網絡的突發流量負載傳輸方法,其特徵在於,所述的初始化時建立的數據發送調度表採用線性同餘法計算得到。
全文摘要
本發明公開了一種無線傳感器網絡中適用於突發流量負載的數據傳輸方法,使用兩種不用的調度時間表,發送節點數據發送調度表和接收節點通信詢問調度表,完成無線傳感器網絡突發流量負載應用的數據低功耗快速傳輸,利用發送節點數據發送調度表,實現無碰撞的通信環境;利用接收節點通信詢問調度表,實現節點周期性的工作,降低能耗;在此基礎上,發送硬體確認幀後直接發送數據幀,減少數據傳輸延時。本發明充分利用了帶寬,實現了無碰撞傳輸環境,減少能耗,降低延時,最終使網絡性能得到全方位的提升。本發明提出的數據傳輸方法,不僅適用於突發流量負載場景,在低流量負載場景仍表現優異。
文檔編號H04W72/12GK102612160SQ201210113650
公開日2012年7月25日 申請日期2012年4月18日 優先權日2012年4月18日
發明者劉昊, 劉野, 吳建輝, 蔣富龍 申請人:東南大學