[發明專利]一種免于定位的高效水聲傳感器網絡傳輸方法在審
| 申請號: | 202210894301.8 | 申請日: | 2022-07-27 |
| 公開(公告)號: | CN115379526A | 公開(公告)日: | 2022-11-22 |
| 發明(設計)人: | 趙瑞琴;楊港;申曉紅;王海燕;衛媛;陳帆;解偉亮 | 申請(專利權)人: | 西北工業大學 |
| 主分類號: | H04W40/02 | 分類號: | H04W40/02;H04W40/20;H04W40/22;H04W52/02;H04B11/00;H04B13/02 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 710072 陜西*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 免于 定位 高效 傳感器 網絡 傳輸 方法 | ||
1.一種免于定位的高效水聲傳感器網絡傳輸方法,其特征在于包括下述步驟:
包括兩個部分:(1)交互分層機制,所有傳感器結點進行周期性層級選擇的同時,通過交互獲取其鄰居結點數目,從而判斷局部網絡是否稀疏且有效避免路由空區,最終為機會路由提供準備條件;(2)路由機制,在交互分層機制完成后,基于層級、鄰居結點數目以及剩余能量規劃數據包的最優傳輸路徑,提高數據包傳輸的可靠性;
一、交互分層機制
Hello包用于交互分層機制,具體格式如下:
包類型Type 發送結點ID 層級Level
其中,發送結點ID為廣播Hello包結點的ID,層級Level用于標識結點所處層數,除sink以外的結點在本地均建立一個鄰居列表Q1,用于存儲鄰居結點信息,對鄰居列表Q1進行計數,得到鄰居結點數Nneighbor的大小;此外,除sink以外的結點在本地還建立兩個列表,分別是已發送列表Q2和待發送列表Q3;
分層交互機制具體步驟如下:
步驟1:網絡在布放成功后,所有結點的層級均為0,Hello包由Sink結點產生,并將Level字段置0后,以THello為周期進行廣播,進入步驟2;
步驟2:若有結點成功收到Hello包,首先讀取發送結點的ID是否在鄰居列表Q1中,若發送結點的ID不在鄰居列表Q1中,進入步驟3;若發送結點的ID在鄰居列表Q1中,則進入步驟4;
步驟3:在Q1隊尾寫入發送結點的ID以及接收時間,進入步驟4;
步驟4:將本地時間與Q1時間相減,得到時間差值,若時間差值小于Hello包的廣播周期THello,進入步驟5;反之,若時間差值大于等于THello,則進入步驟6;
步驟5:僅更新對應結點的接收時間戳,進入步驟7;
步驟6:將此結點從Q1中刪除,進入步驟7;
步驟7:若自身層級self_level為0,進入步驟8;若自身層級self_level不為0,進入步驟10;
步驟8:讀取Hello包字段Level的值,接著更新并保存自身結點的層級,即self_level=Level+1,進入步驟9;
步驟9:將字段Level更新為自身層級后將分層包Hello轉發出去,即Level=self_level,進入步驟11;
步驟10:直接丟棄Hello包,進入步驟11;
步驟11:若網絡最深結點未被分配層級或未能成功感知鄰居結點,進入步驟2繼續執行;否則,交互分層機制結束;
二、路由機制
在交互分層機制完成后,路由機制的實現過程如下:
路由階段采用基于接收方的機會路由,即發送結點不能確定下一跳結點,其僅利用信道的廣播特性將數據包Data廣播出去,只有成功接收到Data的結點才具有成為中繼結點的資格;數據包Data的包頭格式如下:
其中,包序列號表示數據包在源結點的生成序號,其與源結點ID兩者共同構成區分各數據包的唯一標識;標志位RCs_flag用于表示鄰居結點數和局部網絡稀疏閾值Nth的關系;
路由機制具體如下:
步驟1:若網絡中某傳感器結點i有數據包Data要發送或轉發時,首先判斷自身層級self_leveli是否為1:若self_leveli=1,結點i將標志位RCs_flag置為1后,將數據包發送;否則,若self_leveli≠1,進入步驟2;
步驟2:判斷結點i是否為空區結點;
結點i與周圍鄰居結點進行周期性的信息交互,從而獲取鄰居結點數目Nneighbor,若Nneighbor<2,結點i為空區結點,則將Data丟棄;否則,進入步驟3;
步驟3:判斷局部網絡狀況,比較鄰居結點數與局部網絡稀疏閾值Nth的大小關系,即確定標志位RCs_flag的確定;若Nth>Nneighbor,說明結點i的鄰居結點數較少,則認為結點i周圍的網絡狀況較差,故標志位RCs_flag=0;反之,若Nth≤Nneighbor,說明網絡狀況良好,則RCs_flag=1;進入步驟4;
步驟4:結點i在完成步驟3后,將數據包通過物理層的發射機廣播出去,進入步驟5;
步驟5:設結點j為結點i的某個鄰居結點,若結點j成功接收到Data,此時的時間戳為TReceiving,接著獲取包頭字段數據包ID(由源結點ID和包序列號Seq組成)的值,若該值在Q2中存在,則說明該數據包已被發送或轉發,此時直接丟棄Data并跳至步驟1;若該值在Q2中不存在,則判斷該值在Q3中是否存在;若該值在Q3中已有記錄,此時跳至步驟8;若該值在Q3中不存在,則跳至步驟6;
步驟6:結點j解析Data包頭標志位RCs_flag和層級Leveli的值;若RCs_flag=0,說明結點i的鄰居數目較少,故將結點j加入結點i的RCs;若RCs_flag=1,說明結點i的潛在轉發結點較多,故需判斷結點j的層級是否小于結點i的層級,即比較self_level與Leveli的大小:若self_level>Leveli,則丟棄Data;否則,若self_level≤Leveli,結點j成為結點i的候選集結點,接著進入步驟7;
步驟7:計算Data的預定發送時間TSending;優先級越高的結點,其對應的等待時間THolding越小;
此時,將Data的數據包ID和對應的預定發送時間一同添加至列表Q3中,然后進入步驟8;
步驟8:在當前時間TCurrent小于預定發送時間TSending時,若結點j收到相同數據包ID的數據包,不但直接丟棄此數據包,還要將數據包Data從Q3中移除;否則,若TCurrent≥TSending,在預定轉發時間到達后直接發送Data,此時,傳感器結點j的角色變為i,跳轉至步驟1繼續執行,直至Data最終到達sink結點。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西北工業大學,未經西北工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210894301.8/1.html,轉載請聲明來源鉆瓜專利網。





