基于多包解碼的無線傳感器網絡數據重傳精簡方法
【專利摘要】本發明涉及一種基于多包解碼的無線傳感器網絡數據重傳精簡方法,源節點向各節點廣播信息包,各節點向源節點廣播確認信息,進行反饋;源節點收到確認信息,在緩存中形成緩存信息包矩陣;依次在緩存信息包矩陣中尋找每行的第一個為“1”的位置所對應的信息包;根據各信息包的ID號從小到大進行編碼,遵循同一個信息包不在同一個編碼序列中重復出現的規則,形成編碼組合信息包,同時將原位置賦為“0”;去除編碼組合信息包間的冗余數據包;源節點向各節點廣播發送處理后的編碼組合信息包;接收節點按照編碼組合信息包的發送順序,對各編碼組合信息包進行循環解碼,直至全部丟失包解碼成功。
【專利說明】基于多包解碼的無線傳感器網絡數據重傳精簡方法
【技術領域】
[0001] 本發明涉及一種基于多包解碼的無線傳感器網絡數據重傳精簡方法。
【背景技術】
[0002] 網絡編碼技術通過增加網絡節點的計算能力來提高網絡整體性能。網絡節點使用 比較好的網絡編碼算法將收到的數據進行編碼后,一次性發送出去。這樣,就可以實現將多 次發送數據變為一次發送數據,從而大大減少了網絡數據的發送次數,節約了網絡的帶寬 資源和節省了節點能耗,有效緩解了網絡擁塞。
[0003] 網絡編碼已被證明是可以逼近網絡傳輸容量極限的有效方法,其在提高網絡吞吐 量、魯棒性和安全性方面的優勢已得到國際學術界和工業界人士的廣泛認同。網絡編碼的 早期研究僅限于有線網絡的組播傳輸,目前的研究領域已發展到覆蓋有線和無線網絡的各 個層面,并且新的理論和應用方向仍在不斷涌現。從目前的發展現狀看,網絡編碼的理論研 究尚處于初級階段,實際應用也遠未挖掘出其真正潛力,還有大量的困難亟待解決。
[0004] 廣播重傳作為提高無線網絡數據可靠性傳輸的一種方式,也得到了越來越多的關 注。為更好地減少重傳次數,提高網絡吞吐量,重慶郵電大學的姚玉坤等在《廣播重傳中基 于多包解碼的高效快速網絡編碼》中提出了多包解碼高效快速網絡編碼方法,引入了多包 解碼思想。在經典的網絡編碼廣播重傳策略(NCWBR)中,每個編碼包重傳后,如果解碼失敗 立即丟棄,即使后面解出的數據包能被前面的編碼包利用,也會丟棄,這樣會造成重傳次數 的增加。與之不同,多包解碼方法中,多個編碼包都對每個節點產生作用,即使前面的編碼 包解碼失敗,也會儲存在緩存中,加以利用,但是多包解碼編碼策略會造成編碼數據包的冗 余,兩個編碼包中存在兩個或兩個以上數據包相同的情況,致使解碼失敗,同時也增加了運 算的復雜度。本發明解決了這兩種方法存在的問題,即去掉了編碼過程中存在的冗余,也將 無法解碼數據包再次重傳的問題簡化,同時也將重傳次數大幅度減少。
【發明內容】
[0005] 本發明目的在于提供一種基于多包解碼的無線傳感器網絡數據重傳精簡方法,可 以有效減少廣播重傳次數,提高無線傳感器網絡吞吐量。
[0006] 實現本發明目的技術方案:
[0007] 基于多包解碼的無線傳感器網絡數據重傳精簡方法,其特征在于:
[0008] 步驟1 :源節點向各節點廣播信息包,各節點向源節點廣播確認信息,進行反饋;
[0009] 步驟2 :源節點收到確認信息,在緩存中形成緩存信息包矩陣;
[0010] 該矩陣中,各行對應各個節點,各列對應各個信息包,行號、列號分別對應節點、信 息包的ID號,節點矩陣中的元素代表對應節點對相應信息包的接收情況,其中,"0"代表該 節點接收到了該信息包,"1"代表該節點沒有收到該信息包;
[0011] 步驟3 :依次在緩存信息包矩陣中尋找每行的第一個為"1"的位置所對應的信息 包;
[0012] 步驟4 :針對步驟3尋找到的各信息包,根據各信息包的ID號,從ID號小的開始 編碼,形成編碼組合信息包,并遵循同一個信息包不在同一個編碼序列中重復出現的規則, 同時將原位置賦為"0";
[0013] 步驟5 :重復步驟3、步驟4,直至形成所有編碼組合信息包,進入步驟6 ;
[0014] 步驟6 :源節點向節點廣播發送各編碼組合信息包;
[0015] 步驟7 :接收節點按照編碼組合信息包的發送順序,對各編碼組合信息包進行循 環解碼,直至全部丟失包解碼成功。
[0016] 2、根據權利要求1所述的基于多包解碼的無線傳感器網絡數據重傳精簡方法,其 特征在于:步驟6中,源節點向節點廣播發送各編碼組合信息包前,進行砍包,即將編碼組 合信息包通過ID號從小到大進行網絡編碼異或操作,若兩個編碼組合信息包中存在兩個 或兩個以上信息包重復,貝 1J在其中一個編碼組合信息包中,去掉一個ID號最小的信息包。
[0017] 3、根據權利要求2所述的基于多包解碼的無線傳感器網絡數據重傳精簡方法,其 特征在于:步驟7中,若接收節點收到編碼組合信息包后,不能成功解碼出信息包,則將解 碼失敗的編碼組合信息包存儲在當前節點的緩存中;再利用之后解碼的信息包和之前存在 緩存中的編碼組合信息包,進行解碼。
[0018] 4、根據權利要求3所述的基于多包解碼的無線傳感器網絡數據重傳精簡方法,其 特征在于:步驟7中,對于最終無法解碼的信息包,直接重傳 ID號小的信息包,再利用節點 緩存中的編碼組合信息包進行解碼。
[0019] 本發明具有的有益效果:
[0020] 本發明提出了一種基于多包解碼的無線傳感器網絡數據重傳精簡策略,既能利用 多包解碼的特性來減少不必要的重傳,同時精簡編碼包,解決了編碼包冗余引起解碼率下 降的問題,減少網絡負載,增加解碼的幾率。實驗表明,多包解碼精簡策略,在節點數量增加 和數據包數量增加后優勢更加明顯。因此,可以應用在大型無線傳感器網絡模型中,其對提 升網絡吞吐量,降低重傳次數具有很大的意義。
[0021] 本發明提出了一個精簡編碼方法,對編碼包做了改進和調整。對各節點反饋的丟 失數據包進行編碼時,考慮到各編碼包間可能存在一部分的重疊,如果兩個編碼包中存在 多個同樣的數據包,同樣的數據包又沒有被節點接收到,這樣是無法解碼的。因此,將同樣 的部分去掉一個數據包,可以有效提高成功解碼的幾率,減少數據重傳次數,增加網絡吞吐 量。
[0022] 本發明在去掉編碼包冗余的時候,選擇去掉ID號小的數據包。由于形成信息包緩 存矩陣后,搜索每行的第一個"1"是從ID號小的數據包開始搜索的,所以ID號小的數據包 被編入編碼的概率就會上升,產生冗余的可能性也會增加,去掉ID號較小的數據包可以更 好地優化編碼包,減少重傳次數。
[0023] 本發明提出的多包解碼精簡方法特點鮮明,能夠運用于大型無線傳感器網絡中。 在無線傳感器網絡應用中,往往環境惡劣,節點數目較多,需要節點節省能量,但是重傳次 數的增加對于能量的消耗十分嚴重。運用多包解碼精簡方法,可以避免節點丟失數據包編 碼時產生大量冗余,并盡可能重傳能夠使節點成功解碼的編碼包。
[0024] 本發明運用多包解碼思想,多個編碼進行解碼對于編碼包的重傳順序和解碼順序 沒有固定要求,解碼失敗的編碼包會在節點的緩存中,等待隨時調用。然而,在無線傳感器 網絡中,往往會因為較差的網絡環境導致時延,致使先傳輸的包后到,所以對編碼包順序有 要求的編碼方法,許多編碼包重傳無效,就會導致網絡的魯棒性差。多包解碼方法顯然增加 了編碼包傳輸的穩定性、解碼的成功率和網絡的魯棒性。
【專利附圖】
【附圖說明】
[0025] 圖1為本發明基于多包解碼的無線傳感器網絡數據重傳精簡方法的流程圖;
[0026] 圖2為多包解碼方法的編碼包選取情況示意圖;
[0027] 圖3為多包解碼方法不可解碼的緩存信息包矩陣圖;
[0028] 圖4為多包解碼精簡方法不可解碼的緩存信息包矩陣圖;
[0029] 圖5為節點數量變化下的平均重傳次數變化示意圖;
[0030] 圖6為節點丟包率變化下的平均重傳次數變化示意圖。
【具體實施方式】
[0031] 如圖1所示,本發明基于多包解碼的無線傳感器網絡數據重傳精簡方法包括如下 步驟:
[0032] 步驟1 :源節點向各節點廣播信息包,各節點向源節點廣播確認信息,進行反饋;
[0033] 假設廣播源節點以固定的時間間隔廣播發送一個信息包,各接收節點都通過同步 發送確認消息(ACKs)和否認消息(NAKs)到源節點反饋其接收情況。
[0034] 步驟2 :根據接收節點的確認信息在源節點形成信息包緩存矩陣;
[0035] 廣播源節點將每個接收節點反饋的信息報接收情況通過矩陣的形式保存,形成信 息包緩存矩陣。
[0036] 緩存信息包矩陣是廣播源節點根據各接收節點對于收到信息包情況反饋生成的 一個矩陣。該矩陣中,"行"代表接收節點個數,"列"代表信息報個數,矩陣中的元素代表對 應節點對相應包的接收情況,其中,"〇"代表該節點接收到了該數據包,"1"代表該節點沒有 收到該信息包。
[0037] 步驟3 :依次在緩存信息包矩陣中尋找每行的第一個為"1"的位置所對應的信息 包;
[0038] 步驟4 :針對步驟3尋找到的各信息包,根據各信息包的ID號,從ID號小的開始 編碼,形成編碼組合信息包,并遵循同一個信息包不在同一個編碼序列中重復出現的規則, 同時將原位置賦為"〇";
[0039] 步驟5 :重復步驟3、步驟4,直至形成所有編碼組合信息包,進入步驟6 ;
[0040] 圖2給出了多包解碼策略的編碼方法示意圖,矩陣表示5個節點和10個包 形成的信息包緩存矩陣情況。利用多包解碼策略,將每行的第一個"1"進行編碼組 合,并把"1"的位置直接變為"0",以此類推,循環往復。因此,根據每一次編碼組合 包要遵循同一個數據包只編碼一次的規則,形成了 3個編碼組合的數據包,分別為 1Θ2Θ3Θ4Θ5、3Θ6Φ7十8、5十9Φ10。在接收節點,傳來的編碼組合包即使 不能立即將丟失的數據包解開,也要儲存在該節點的緩存中,之后收到的編碼包將某個數 據包解開后,再利用緩存中的編碼組合包進行解碼,直至所有的編碼組合包不再對各節點 的解碼起作用,再釋放內存。可見,相同的緩存包矩陣利用多包解碼原理,只需3次重傳。
[0041] 步驟6 :源節點向節點廣播發送各編碼組合信息包;源節點向節點廣播發送各編 碼組合信息包前,進行砍包,即將編碼組合信息包通過ID號從小到大進行網絡編碼異或操 作,若兩個編碼組合信息包中存在兩個或兩個以上信息包重復,則在其中一個編碼組合信 息包中,去掉一個ID號最小的信息包。
[0042] 步驟7 :接收節點按照編碼組合信息包的發送順序,對各編碼組合信息包進行循 環解碼,直至全部丟失包解碼成功。
[0043] 若接收節點收到編碼組合信息包后,不能成功解碼出信息包,則將解碼失敗的編 碼組合信息包存儲在當前節點的緩存中;再利用之后解碼的信息包和之前存在緩存中的編 碼組合信息包,進行解碼。
[0044] 對于最終無法解碼的信息包,直接重傳 ID號小的信息包,再利用節點緩存中的編 碼組合信息包進行解碼。
[0045] 以圖3所示緩存信息包矩陣中的札節點為例。
[0046] 為表不方便,如圖3通過每行第一個橢圓代表的信息包組合后來表不生成的第一 個編碼包,用每行第二個橢圓所代表的信息包組合后來表示生成的第二個編碼包,以此類 推。其中,大橢圓表示在生成某一個編碼包時,相鄰的接收節點都選擇的是同一個信息包來 參與生成這個編碼包。
[0047] 節點札收到源節點發送的編碼包1十2十3、2 Φ 3十5、4 ? 5 Θ 6十7后,都因 編碼包中同時包含多個丟失的信息包,而不能被成功解碼。于是&節點將這三個編碼包依 次存儲在緩存中,當Ri節點收到源節點發送的第四個編碼包7 Φ 8 Φ 9 Θ 10后,能夠成功 解碼出信息包7,這是將信息包7代入緩存中的不可解碼編碼包4 Φ 5 Θ 6 Θ 7中,可以解 出信息包6,但丟失的信息包2和3仍然無法成功解碼。
[0048] Ri節點不能夠成功解碼信息包2和信息包3,而前兩個編碼組合包分別 為1?203、20 3?5。在前兩個編碼包中都有2?3,這樣如果某個節點同 時丟失信息包2和信息包3,就會導致信息包通過編碼包無法直接解開。因此, 如果出現兩個編碼組合包之間有兩個或兩個以上編碼重合的情況,在編碼包中砍 掉一個信息包,將會提高解開的機會。對于&節點,形成的四個編碼組合包分別 為1?2?3、2 0 305、4050607、7?8?90 1〇,顯然,第一個包 1十2 ? 3和第二個包2 Φ3 ? 5都有2 ? 3的編碼,假設砍掉第二個編碼包中的 信息包3,即第二個編碼組合包變為2 Θ 5。將精簡后的四個編碼包1? 2? 3、 2?5、4Θ5十6Φ7、7Θ8Θ9Θ 10,代入圖3中的信息包緩存矩陣進行驗證,可以 得出全零矩陣。因此,通過此種方法可以提高解碼率,從而減少廣播重傳的次數。
[0049] 根據緩存信息包矩陣的1"分布形成編碼組合包,對編碼組合包進行精簡處 理,"砍掉"編碼包中兩個或兩個以上重復編碼形成的冗余包,使各個編碼包沒有交叉冗余。
[0050] "砍包"規則:根據緩存信息包矩陣,形成若干編碼組合包,在廣播重傳之前對每兩 個編碼包進行對比,如果兩個編碼中存在兩個或兩個以上相同的數據包組合,則去掉編碼 包ID號中數據包ID號小的數據包。
[0051] 在編碼過程中,編碼策略首先從數據包ID號小的開始編碼,搜尋每行的第一個 " 1",這樣ID號較小的數據包被編入編碼序列的可能性就更大,在"砍包"規則中,砍掉ID號 較小的包則更利于解開不能解碼的數據包。
[0052] 對于多包解碼精簡策略仍存在不可解碼的情況,如圖4所示,通過多包解碼策略 得到3個編碼組合包,分別為1十2十3Φ9、3十6十9、4十9十10,通過精簡策略簡化 后編碼包為1Φ2十9、3十6十9、4十9十10。對于節點R 3數據包3和數據包6無法通 過編碼包解碼,因此,運用多包解碼精簡策略仍然存在無法解碼的情況。對于無法解碼的情 況,源節點收到目的節點的反饋,直接重傳丟失包中ID號最小的數據包,目的節點收到數 據包后,利用緩存中編碼組合包,進行解碼,如果仍然無法解碼出所有丟失的信息包,繼續 對源節點進行反饋,再次重傳丟失ID號最小的數據包,直至所有節點收到所有的數據包。 對于圖4中的情況,R 3節點會向源節點發送數據包3和數據包6的NAKs,則源節點廣播發 送ID號小的數據包3, R3節點收到數據包后,利用緩存中的編碼組合包3 ? 6 Θ 9將丟失的 數據包6解出來。通過這種方法保證多包解碼精簡策略使所有節點能夠接收到所有的信息 包。
[0053] 下面結合仿真實例,進一步說明本發明的有益效果。
[0054] 選取簡單重傳方法(ARQ)和多包解碼精簡方法為比較對象,使用MATLAB仿真軟 件,在相同的仿真條件下進行仿真對比,比較它們在節點不同、丟包率不同情況下性能。
[0055] 實驗1接收節點數目變化。部署10個接收節點,各節點的丟包率為0. 1,數據包的 數量由2到50,每次遞增1,測試1000次,得到平均重傳次數的變化。
[0056] 圖5給出了實驗1的比較曲線。
[0057] 從圖5可見,與普通重傳方法相比較,多包解碼精簡方法,極大程度地均減少了平 均重傳次數。隨著接收節點數量的增加,平均重傳次數的減少幅度更大。多包解碼精簡策 略的優點也慢慢體現出來,而無線傳感器網絡一般由大量的傳感器節點組成,多包解碼精 簡方法在大型傳感器網絡應用中將具有十分可觀的前景。
[0058] 實驗2各節點丟包率的變化。部署10個接收節點,50個數據包,每個節點丟包率 由0. 02到0. 30,每次遞增0. 02,測試1000次,得到平均重傳次數的變化。
[0059] 圖6給出了實驗2的比較曲線。
[0060] 從圖6可見,在丟包率變化下的平均重傳次數變化,與普通重傳方法相比,多包解 碼精簡方法有十分明顯的提高,極大地減少了平均重傳次數。尤其在惡劣的環境中,丟包率 會比較大,因此,由圖中可以看出,多包解碼隨著丟包率的增加依然保持比較低的平均重傳 次數。節點丟包率越高時,盡管參與重傳的數據包的數量增加,但同時可以在搜尋中找到更 多的編碼組合,利用多包解碼精簡策略將冗余的數據包"砍掉",使得遞增的趨勢相對比較 緩慢,優勢也越來越明顯。
[0061] 從實際應用來考慮,在使用網絡編碼策略減少重傳次數的同時,會帶來較大的重 傳時延和較多的節點代價。
[0062] 在重傳延時方面,節點的編碼計算需要消耗計算時延,另一方面,源節點需要更大 的計算能力和更多的存儲空間倆對信息包進行整合、分析判定和重傳,需要消耗一定的等 待延時。然而,對于計算延時,有摩爾定律可知,該延時隨著計算能力代價的增長可以忽略 不計;對于等待延時,多包解碼中設定重傳時間間隔的策略,可以有效地降低等待時延帶來 的影響。
[0063] 在節點代價方面,相比傳統方法,多包解碼策略要求各節點有自己的緩存,所接收 的所有編碼包都要存儲在緩存中,直至該節點收到所有的數據包,這樣會消耗一定的資源。 同時,節點采用編碼操作需要消耗更大的計算能力和更多的存儲空間。但是,由摩爾定律 知,計算能力代價遠遠低于傳輸代價,這種代價是可以接受的。
[0064] 因此,通過實驗結果和對比分析可以看出,多包解碼精簡策略在提高平均重傳次 數上有了很大提高。尤其在大型無線傳感器網絡和惡劣環境中,多包解碼精簡策略極大地 減少了平均重傳次數,提高了重傳效率,增加了網絡吞吐量。
【權利要求】
1. 基于多包解碼的無線傳感器網絡數據重傳精簡方法,其特征在于: 步驟1 :源節點向各節點廣播信息包,各節點向源節點廣播確認信息,進行反饋; 步驟2 :源節點收到確認信息,在緩存中形成緩存信息包矩陣; 該矩陣中,各行對應各個節點,各列對應各個信息包,行號、列號分別對應節點、信息包 的ID號,節點矩陣中的元素代表對應節點對相應信息包的接收情況,其中,"0"代表該節點 接收到了該信息包," 1"代表該節點沒有收到該信息包; 步驟3 :依次在緩存信息包矩陣中尋找每行的第一個為"1"的位置所對應的信息包; 步驟4 :針對步驟3尋找到的各信息包,根據各信息包的ID號,從ID號小的開始編碼, 形成編碼組合信息包,并遵循同一個信息包不在同一個編碼序列中重復出現的規則,同時 將原位置賦為"〇"; 步驟5 :重復步驟3、步驟4,直至形成所有編碼組合信息包,進入步驟6 ; 步驟6 :源節點向節點廣播發送各編碼組合信息包; 步驟7 :接收節點按照編碼組合信息包的發送順序,對各編碼組合信息包進行循環解 碼,直至全部丟失包解碼成功。
2. 根據權利要求1所述的基于多包解碼的無線傳感器網絡數據重傳精簡方法,其特征 在于:步驟6中,源節點向節點廣播發送各編碼組合信息包前,進行砍包,即將編碼組合信 息包通過ID號從小到大進行網絡編碼異或操作,若兩個編碼組合信息包中存在兩個或兩 個以上信息包重復,貝 1J在其中一個編碼組合信息包中,去掉一個ID號最小的信息包。
3. 根據權利要求2所述的基于多包解碼的無線傳感器網絡數據重傳精簡方法,其特征 在于:步驟7中,若接收節點收到編碼組合信息包后,不能成功解碼出信息包,則將解碼失 敗的編碼組合信息包存儲在當前節點的緩存中;再利用之后解碼的信息包和之前存在緩存 中的編碼組合信息包,進行解碼。
4. 根據權利要求3所述的基于多包解碼的無線傳感器網絡數據重傳精簡方法,其特征 在于:步驟7中,對于最終無法解碼的信息包,直接重傳 ID號小的信息包,再利用節點緩存 中的編碼組合信息包進行解碼。
【文檔編號】H04L1/18GK104158641SQ201410409807
【公開日】2014年11月19日 申請日期:2014年8月20日 優先權日:2014年8月20日
【發明者】蔡紹濱, 潘虹杞 申請人:哈爾濱工程大學