黃名鈿,黎 英,高 偉,張金飛
(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)
無線傳感器網(wǎng)絡(WSN)一般由大量部署在信號監(jiān)測區(qū)的集傳感、計算和無線通信功能于一身的微型傳感器節(jié)點組成,這些節(jié)點通過無線通信的方式形成一個多跳的自組織網(wǎng)絡。無線傳感器網(wǎng)絡中,將節(jié)點相關參數(shù)更新的過程稱為小數(shù)據(jù)分發(fā)[1]。不同于傳感數(shù)據(jù),配置參數(shù)對一個網(wǎng)絡的重要性不言而喻,如果不能保證網(wǎng)絡中所有節(jié)點的配置參數(shù)一致的話,很可能導致整個網(wǎng)絡癱瘓。對部署在無人看管區(qū)域的無線傳感器網(wǎng)絡而言,如何高效和可靠地實現(xiàn)對傳感器網(wǎng)絡中的應用程序進行參數(shù)配置是一個具有很強應用需求的問題。一種最簡單的想法是將所有部署好的節(jié)點收集回來重新進行參數(shù)或程序的修改,但這種方式需要耗費大量的人力和時間,在實際應用中可操作性不強,因此研究能夠遠程將所需要配置的參數(shù)可靠地分發(fā)到傳感器節(jié)點的方法具有非常重要的意義。
小數(shù)據(jù)分發(fā)因其所發(fā)送的數(shù)據(jù)量?。ㄍǔ?赡芫蛶资畟€字節(jié)),而且數(shù)據(jù)格式往往相差很大,靈活性強,可靠性要求高,因而在實際傳感器網(wǎng)絡的操作中會使用單獨的小數(shù)據(jù)分發(fā)協(xié)議來解決這類需求。針對無線傳感器網(wǎng)絡小數(shù)據(jù)分發(fā),國內(nèi)外學者提出了許多協(xié)議。
Drip[2]協(xié)議把每個數(shù)據(jù)項都當做分發(fā)的單獨實體并為每個數(shù)據(jù)項建立一個獨立的Trickle定時器,提供了很好的粒子性控制,控制何時以及如何快速地把數(shù)據(jù)項分發(fā)出去。對于每個數(shù)據(jù)項的每一個新的版本都單獨生成一個概要元組進行通知。Drip協(xié)議中的傳輸代價是和其數(shù)據(jù)項成線性相關的。即當有N個數(shù)據(jù)項時,需要有N個相應的概要元組數(shù)據(jù)包進行通知。
DIP[3]協(xié)議采取將所有數(shù)據(jù)項借助哈希樹的數(shù)據(jù)結構壓縮到一個概要數(shù)據(jù)包中,這樣只需比較根節(jié)點數(shù)據(jù)就可以判斷是否有數(shù)據(jù)項需要更新。采用這種方案,可在O(1)時間內(nèi)作出是否有新的數(shù)據(jù)項需要更新的判斷。然而,由于這種機制將所有的通知都壓縮到一個數(shù)據(jù)包中,無法給出具體哪個數(shù)據(jù)包需要更新,并且涉及到復雜的算法,需要耗費更多的內(nèi)存。
DHV[4]協(xié)議提出了僅僅檢測版本號上的差異,以達到傳輸盡可能少的數(shù)據(jù)的目的。
BDP[7]協(xié)議采用了布隆過濾這一數(shù)據(jù)結構作為壓縮存儲數(shù)據(jù)項元數(shù)據(jù)信息的工具,能快速識別出具有相同鍵值的數(shù)據(jù)項間的版本差異,并且在保證全網(wǎng)范圍內(nèi)數(shù)據(jù)項的一致性上具有非常高的可靠性。然而由于布隆過濾天生的缺點可能導致出現(xiàn)假陽性判定錯誤概率,BDP的設計沒有考慮無線傳感器網(wǎng)絡的特點,其長度遠遠大于無線傳感器網(wǎng)絡中消息的大小,此外BDP協(xié)議應用不當可能引起死鎖。
DIP和DHV將所有數(shù)據(jù)項當做一個群體進行分發(fā),而Drip則是把每個數(shù)據(jù)項當做單一項進行分發(fā),靈活性強,很適合參數(shù)重配置這樣的應用場合[5-6]。使用了DIP和DHV協(xié)議的網(wǎng)絡中的所有節(jié)點在分發(fā)消息之前必須統(tǒng)一固定的數(shù)據(jù)集,在數(shù)據(jù)量小時容易造成高延時。盡管DIP和DHV在大規(guī)模數(shù)據(jù)項更新方面優(yōu)勢明顯,但是在小數(shù)據(jù)項更新方面性能不如Drip,并且 DIP、DHV和 BDP都使用了復雜的算法,計算復雜度使得這些協(xié)議需要消耗傳感器節(jié)點更多的內(nèi)存。
網(wǎng)絡編碼[8](NC)是編碼技術中的一種,于2000年提出,是一種通過將接收到的數(shù)據(jù)包進行編碼使得在增加傳輸信息量的同時減少網(wǎng)絡中數(shù)據(jù)包的技術。它推翻了網(wǎng)絡中獨立比特不能再被壓縮的經(jīng)典結論,理論上能使源與組播成員間達到最大流最小割的組播速率,在解決網(wǎng)絡擁塞,提高傳輸可靠性方面效果顯著。
針對像配置參數(shù)這樣的小數(shù)據(jù)分發(fā),因其數(shù)據(jù)量小、數(shù)據(jù)量數(shù)目有限、數(shù)據(jù)格式差異大、要求高可靠性的特點和傳感器節(jié)點本身資源有限的實際情況,并不適合使用采用復雜算法的小數(shù)據(jù)分發(fā)協(xié)議。因此我們結合Drip協(xié)議和網(wǎng)絡編碼技術的優(yōu)點,采取一種以空間換時間的思路,在Drip協(xié)議的基礎上使用網(wǎng)絡編碼,對其進行改進,提出一種改進的基于網(wǎng)絡編碼的無線傳感器網(wǎng)絡小數(shù)據(jù)分發(fā)協(xié)議,用以改善小數(shù)據(jù)分發(fā)在延遲和可靠性方面的性能[12]。以下為方便闡述,簡稱該改進協(xié)議為NCDP 。
Drip使用了線性掃描來輔助發(fā)現(xiàn)具有不同版本號的數(shù)據(jù)項。僅當某個節(jié)點發(fā)現(xiàn)鄰居節(jié)點上有舊的數(shù)據(jù)項時,才由前者對后者上的舊數(shù)據(jù)項進行更新,從而避免了重復傳輸。然而為了保證全網(wǎng)范圍內(nèi)數(shù)據(jù)項版本的一致性,對于每一數(shù)據(jù)項,每個節(jié)點都必須周期性地向周圍鄰居廣播相關的版本信息。一旦節(jié)點發(fā)現(xiàn)周圍存在不同版本的數(shù)據(jù),就需要發(fā)送更多的消息與鄰居協(xié)同,從而識別出哪個節(jié)點上的數(shù)據(jù)具有更新的版本號。在數(shù)據(jù)項數(shù)量較多時,如果處理不當,上述過程將造成大量的通信開銷,既浪費了節(jié)點上寶貴的能量,也占用了有限的帶寬資源。因此,如何保持該協(xié)議性能的前提下,同時降低協(xié)議開銷,是本課題的一項挑戰(zhàn)。接下來,將通過對網(wǎng)絡編碼模式進行分析,證明網(wǎng)絡編碼這一技術的可行性。
假定節(jié)點的廣播半徑為 R,D為相鄰兩節(jié)點之間的距離[9],[13]。當D>R時,源節(jié)點發(fā)出的數(shù)據(jù)包將不會到達目標節(jié)點;當 D≤R<2D時,源節(jié)點發(fā)出的數(shù)據(jù)包將逐跳傳輸?shù)礁鱾€節(jié)點,整個網(wǎng)絡形成一個多跳的結構;當3D>R≧2D時,源節(jié)點發(fā)送一次數(shù)據(jù)包,1跳范圍內(nèi)和 2跳范圍內(nèi)的節(jié)點都會收到此數(shù)據(jù)包,第1跳中的節(jié)點在轉發(fā)此數(shù)據(jù)包時2跳中的節(jié)點將收到大量重復數(shù)據(jù)包,這將嚴重降低網(wǎng)絡的性能。同理,當R≧3D時,網(wǎng)絡將產(chǎn)生更多的重復數(shù)據(jù)包,如此類推。本課題討論的無線傳感器網(wǎng)絡如圖1所示。
圖1 網(wǎng)絡拓撲結構Fig.1 Network topology
為方便起見,這里只討論一跳范圍內(nèi)的數(shù)據(jù)分發(fā)[10]。假設一個源節(jié)點S向兩個普通節(jié)點R1和R2分發(fā)N個數(shù)據(jù)項,源節(jié)點S到R1和R2的丟包率分別為 P1和 P2,且 P1 方式A(非網(wǎng)絡編碼分發(fā)方式):當一個節(jié)點在當前時隙丟失一個數(shù)據(jù)包并且先前時隙從未完整接收到該數(shù)據(jù)包時,立即發(fā)送一個 NAK消息給源節(jié)點,源節(jié)點根據(jù)丟包再進行重傳恢復。 方式B(網(wǎng)絡編碼方式):該方式與方式A相似,如果普通節(jié)點不能正確接收到數(shù)據(jù)包將會立即發(fā)送NAK消息給源節(jié)點。不同之處在于源節(jié)點需要等到所有數(shù)據(jù)包都發(fā)送出去之后才開始進行重傳恢復。同時,源節(jié)點維護有一張表,表中包含R1和R2相應丟的數(shù)據(jù)包的Id,如圖2所示。重傳過程中,先將兩者都缺失的數(shù)據(jù)包進行異或操作然后分發(fā)出去,R1和R2接收到編碼包之后根據(jù)先前已接收到的數(shù)據(jù)包進行恢復。特別的是,對于兩者同時缺失的數(shù)據(jù)包在重傳的時候不再進行異或操作。對于圖2的例子,源節(jié)點在重傳階段發(fā)送的編碼包為a1a3⊕,a4a5⊕,a6,a8。R1通過a3⊕(a1a3⊕)恢復丟失的數(shù)據(jù)包a1,R2通過a1⊕(a1a3⊕)恢復丟失的數(shù)據(jù)包 a3。由于 R1和R2同時丟失 a6,因此不對a6進行異或編碼。最后,由于只有R1丟失a8,所以也不用進行異或編碼。 圖2 網(wǎng)絡編碼方式Fig.2 Network Coding 根據(jù)以上假設,分發(fā)N個數(shù)據(jù)項,接收節(jié)點只有兩個的情況下,方式A所需發(fā)送的信息量為: 方式B需要發(fā)送的信息量為: 當接收節(jié)點數(shù)量為M時, 使用網(wǎng)絡編碼的分發(fā)方式相比非網(wǎng)絡編碼方式,同樣情況下分發(fā)更少的數(shù)據(jù),更有效率,可靠性和實時性更好。 NCDP使用了Trickle算法用來控制消息分發(fā)的速率,并隨機發(fā)送編碼包和原始數(shù)據(jù)包。因為不利用拓撲信息來決定哪些消息需要編碼,因此可以減少路由控制方面的資源開銷,降低延遲,使用網(wǎng)絡編碼提高了可靠性。相對于其它使用了復雜編碼操作的分發(fā)協(xié)議,考慮到異或操作往往作為一種硬件功能集成在CPU中這一現(xiàn)成優(yōu)勢,于是NCDP將用簡單的異或操作用于編解碼[9,15]。 NCDP是在已有分發(fā)協(xié)議Drip的基礎上增加網(wǎng)絡編碼的功能,對Drip協(xié)議中原有的相關數(shù)據(jù)幀和數(shù)據(jù)發(fā)送與接收的功能進行重新設計。 (1)相關數(shù)據(jù)幀定義 數(shù)據(jù)幀格式定義如圖3所示: 圖3 數(shù)據(jù)幀定義Fig.3 Data frame definition 分發(fā)消息幀格式定義如圖4所示: 圖4 分發(fā)消息幀定義Fig.4 Dissemination message frame definition 其中,Idi和 Idj分別為編碼包所包含的源數(shù)據(jù)項Id,Data為想要分發(fā)的原始數(shù)據(jù)項,NoteId為節(jié)點Id。 NCDP協(xié)議數(shù)據(jù)幀格式由包含編碼包信息的頭部和包含被編碼的消息主體Data組成。由于解碼過程需要知道編碼包由哪些原始數(shù)據(jù)包組成,因此編碼包頭部包含了若干個原始數(shù)據(jù)包的編號,代表該編碼包由幾個原始數(shù)據(jù)包編碼而成,每個編號占據(jù)一個字節(jié)大小,如果數(shù)據(jù)項超過256個,可以相應地對編號占據(jù)的字節(jié)數(shù)進行擴展。當數(shù)據(jù)包需要發(fā)送時,節(jié)點會將數(shù)據(jù)包幀添加到分發(fā)消息幀中,并在分發(fā)消息幀中添加上本節(jié)點的 NoteId。當數(shù)據(jù)幀中Idj為0,代表這是一個原始數(shù)據(jù),如圖5所示。 圖5 原始數(shù)據(jù)Fig.5 Raw data (2)接收與發(fā)送功能設計 NCDP數(shù)據(jù)接收與分發(fā)過程流程圖如圖6所示。 當接收到消息時,如果該消息包為原始數(shù)據(jù)包,那么就將消息存入原始數(shù)據(jù)存儲區(qū),并和已接收到的編碼包輪流進行解碼操作,嘗試解碼出其它原始數(shù)據(jù)。如果解碼成功則將解碼出來的原始數(shù)據(jù)先存儲進原始數(shù)據(jù)區(qū),然后刪除和其成功進行解碼操作的編碼包,重復此過程直到無法再解碼出新的原始數(shù)據(jù)。 當接收到的消息是編碼包時,先利用已接收到的原始數(shù)據(jù)對其進行解碼,如果解碼出另一個原始數(shù)據(jù)則存儲解碼出來的原始數(shù)據(jù)并將該編碼包刪除。如果該編碼包無法解碼出原始數(shù)據(jù),則將其先存儲到編碼包區(qū),等待下一次解碼。 如果當原始數(shù)據(jù)區(qū)的數(shù)據(jù)對應的Trickle定時器觸發(fā)時將該數(shù)據(jù)與其它已接收到的原始數(shù)據(jù)進行隨機編碼然后發(fā)送該編碼包給其它鄰居節(jié)點。當節(jié)點接收到的數(shù)據(jù)為原始數(shù)據(jù)并且該數(shù)據(jù)已存儲在原始數(shù)據(jù)區(qū)時,說明有其它節(jié)點正在發(fā)送該原始數(shù)據(jù)給鄰居節(jié)點,沒必要再發(fā)送給對方,因此將該原始數(shù)據(jù)對應的Trickle定時器定時間隔翻倍,避免重復發(fā)送冗余信息,減輕網(wǎng)絡擁塞。 圖6 NCDP數(shù)據(jù)接收與分發(fā)過程流程圖Fig.6 Process flow chart of data receiving and distribution of NCDP (3)隨機編碼算法 為了降低延遲,NCDP使用隨機編碼算法對數(shù)據(jù)包進行隨機編碼,而不是等待所有原始數(shù)據(jù)都分發(fā)出去之后才進行重傳恢復。隨機編碼流程如圖 7所示。其中rand_num為生成的16位隨機數(shù),COMB為隨機編碼概率,MAX_STORE為原始數(shù)據(jù)存儲區(qū)最大存儲量。next_content表示當前原始數(shù)據(jù)存儲區(qū)存放的數(shù)據(jù)項數(shù)量,初始值為 0,每添加一個原始數(shù)據(jù)項自加1。 圖7 隨機編碼算法流程圖Fig.7 Flow chart of random coding algorithm 隨機編碼步驟如下: 步驟 1.判斷是否是原始數(shù)據(jù),是的話進入步驟2,不是的話進入步驟7; 步驟 2.判斷是否小于編碼率,是的話進行步驟3,不是的話進入步驟6; 步驟 3.判斷兩個編碼對象是不是同一個原始數(shù)據(jù)項,不是的話進入步驟6,是的話進入步驟6; 步驟 4.判斷是否有其它原始數(shù)據(jù)可以與自身進行編碼,是的話進入步驟5,不是的話進入步驟6; 步驟5.異或編碼并進入步驟6; 步驟6.發(fā)送并進入步驟7; 步驟7.結束。 接下來我們將通過一系列實驗來評估NCDP的各項性能。本論文使用的仿真工具是 TOSSIM,TOSSIM 是 TinyOS自帶的仿真器,專門用來仿真TinyOS的應用,可以支持大規(guī)模的網(wǎng)絡仿真,而且其仿真代碼和實際的傳感器節(jié)點運行的代碼一樣,具有高可信度。TinyOS則是一款專門為無線傳感器網(wǎng)絡而開發(fā)的開源嵌入式操作系統(tǒng),廣泛應用于物聯(lián)網(wǎng)領域。 實驗過程中隨機產(chǎn)生節(jié)點的網(wǎng)絡拓撲,節(jié)點間兩兩連接,為確保仿真的可信度,每個節(jié)點都加載了噪聲道模型,每個實驗仿真10次,并選取數(shù)據(jù)的均值作為實驗結果。我們使用以下指標來評估NCDP的性能。 效率:通過網(wǎng)絡總的消息分發(fā)量來衡量效率。 可靠性:通過已接收到所有數(shù)據(jù)的節(jié)點百分比來評估可靠性。 分發(fā)速度:通過所有節(jié)點接收到所有消息的延遲時間來評估分發(fā)速度。 第一組實驗,通過對比 NCDP、Drip、DIP和DHV在不同節(jié)點數(shù)量下分發(fā)20個數(shù)據(jù)項時,網(wǎng)絡中總的消息發(fā)送量來評估其分發(fā)效率。根據(jù)Roofnet[8]項目,一般真實環(huán)境中一對收發(fā)節(jié)點有50%的丟包率,因此為提高可信度設置網(wǎng)絡的丟包率為50%,實驗結果如圖8所示。 由圖8可以看出,我們可以發(fā)現(xiàn)在不同節(jié)點數(shù)量的網(wǎng)絡中NCDP發(fā)送量總要比Drip和DHV低,但比DIP高。雖然DIP分發(fā)速度更快,但是因為涉及復雜的哈希樹使得DIP相比NCDP更消耗內(nèi)存。 圖8 分發(fā)效率評估Fig.8 Dissemination efficiency assessment 圖9 分發(fā)延遲評估Fig.9 Dissemination delay assessment 第二組實驗,對比NCDP、Drip、DIP和DHV的分發(fā)延遲,如圖9所示。圖9展示了隨機布置100個節(jié)點,分發(fā)20個數(shù)據(jù)項,節(jié)點完成率所對應的時間。由圖9可以看出,Drip、DIP和DHV剛開始時丟包率比較嚴重,因為分發(fā)起始階段只有少數(shù)的節(jié)點傳輸數(shù)據(jù),許多數(shù)據(jù)包丟失了。相比之下,得益于網(wǎng)絡編碼,NCDP在起始階段,即使只有少數(shù)的節(jié)點在傳輸消息,數(shù)據(jù)仍然傳播到網(wǎng)絡中的絕大部分。由圖9我們還可以看出最后一兩個節(jié)點往往導致整個網(wǎng)絡大范圍延遲,NCDP的網(wǎng)絡延遲比Drip、DIP和DHV更低。這是因為當一些節(jié)點沒能收到最后的消息時,使用了Drip、DIP和DHV的節(jié)點只能等待其它節(jié)點給它發(fā)送消息,這樣造成極大的延遲。相比之下,使用了NCDP的節(jié)點能通過解碼已接收到的編碼包來提高接收到最后一個數(shù)據(jù)項的可能性,降低延遲。由圖 8和圖 9,我們可以得出這樣一個結論:NCDP總體比Drip、DIP和DHV更快分發(fā)、更可靠和更有效率。 第三組實驗,我們將評估在分發(fā)過程中 NCDP每個節(jié)點所占用的緩存大小,如圖10所示[15]。通過在網(wǎng)絡中隨機布置100個節(jié)點,發(fā)送100個數(shù)據(jù)項。圖 10的 X軸表示節(jié)點所占用的最大緩存大小,Y軸表示落在相應緩存大小的節(jié)點數(shù)量。由圖10可以看出大部分節(jié)點只使用了不超過 36個字節(jié)大小的緩存,最大的緩存大小為84個字節(jié)。圖10中的折線圖顯示網(wǎng)絡中 80%的節(jié)點使用了最大為 36個字節(jié)大小的緩存。 第四組實驗,我們評估分發(fā)數(shù)據(jù)量對內(nèi)存占用的影響,如圖 11所示。實驗中,我們通過分發(fā) 10到100個數(shù)據(jù)項,每組實驗按10個數(shù)據(jù)項遞增,隨機布置100個節(jié)點到網(wǎng)絡中。由圖11可以看出盡管最大的內(nèi)存占用隨著分發(fā)數(shù)據(jù)項數(shù)量增多而激增,但是緩沖區(qū)的均值卻比較平穩(wěn)。甚至如果我們增加網(wǎng)絡的分發(fā)數(shù)據(jù)量時,實際緩存的開銷并不像編碼包數(shù)量那么多,因為編碼包一旦解碼成功就被刪除了,不會一直占用著空間。 圖10 緩存占用評估Fig.10 Cache occupancy assessment 由于NCDP使用了Trickle算法和網(wǎng)絡編碼,因此如何設置編碼率和抑制率使得NCDP能發(fā)揮出最大的性能,將是接下來兩組實驗中所要研究的。 第四組實驗,我們在一個隨機布置有100個節(jié)點的網(wǎng)絡中分發(fā)10個數(shù)據(jù)項,NCDP在不同編碼率下所需分發(fā)的消息數(shù)和網(wǎng)絡的分發(fā)用時,如圖12和圖13所示。由圖12和圖13可觀察出,將編碼率設置為30%-60%比較合適。 第五組實驗,我們在一個隨機布置有100個節(jié)點的網(wǎng)絡中分發(fā)10個數(shù)據(jù)項,NCDP在不同抑制率下所需分發(fā)的消息數(shù)和網(wǎng)絡的分發(fā)用時,如圖14和圖15所示。由圖14和圖15可以看出將抑制率設置為50%比較合適。 圖11 最大緩存與均值緩存Fig.11 Maximum caching and mean caching 圖12 編碼率與分發(fā)效率Fig.12 Coding rate and dissemination efficiency 圖13 編碼率與分發(fā)延遲Fig.13 Coding rate and distribution delay 圖14 抑制率與分發(fā)效率Fig.14 Inhibition rate and dissemination efficiency 圖15 抑制率與分發(fā)延遲Fig.15 Inhibition rate and dissemination delay 本文給出了針對現(xiàn)有小數(shù)據(jù)分發(fā)協(xié)議在無線傳感器網(wǎng)絡參數(shù)重配置場合下的不足之處,以空間換時間的思路,通過對Drip協(xié)議使用網(wǎng)絡編碼技術并對其中收發(fā)數(shù)據(jù)功能進行改進,提出 NCDP。盡管NCDP需要額外的空間用于存儲消息包的版本號和額外的緩存用來存儲編碼包。不過這些開銷可以通過指定最大編碼數(shù)和最大緩存空間來控制。通過多次仿真實驗研究結果表明,NCDP相比Drip和DHV,在同樣情況下只需發(fā)送更少的消息。盡管在同樣情況下NCDP發(fā)送的消息包多于DIP,但是相比DIP它可靠性更好。總的來說,NCDP相比 Drip、DIP和 DHV在小數(shù)據(jù)分發(fā)實時性和可靠性總體性能方面有一定提高。 [1] 潘浩, 董齊芬, 張貴軍, 等. 無線傳感器網(wǎng)絡操作系統(tǒng)TinyOS[M]. 北京: 清華大學出版社, 2011.4.PAN H, DONG Q F, ZHANG G J et al. Wireless Sensor Network Operating System[M]. Beijing: Tsinghua university press, 2011.4 [2] Tolle G, Culler D. Design of an application cooperative management system for wireless sensor network[C]. Istanbul,Turkey: Sencond European Workshop on Wireless Sensor Networks (EWSN), 2005, 121-132. [3] Lin K., Levis P. Data discovery and dissemination with dip[C]. Washington DC, USA: Proceedings of the 7th International Conference on Information Processing in Sensor,2008, 433-444. [4] Dang T., Bulusu N., Feng W. C., et al. DHV: A Code Consistency Maintenance Protocol for Multi-hop Wireless Sensor Networks[C]. Cork, Ireland: Wireless Sensor Networks, 6th European Conference, 2009, 327-342. [5] 閆彩芹, 方群. 基于能量敏感的無線傳感器網(wǎng)絡信任度計算模型[J]. 軟件, 2012, 33(4): 84-88.YAN C Q, FAN Q. A Model of Reliability Calculation of Wireless Sensor Network Based on Energy[J] Sensitivity.Software, 2012, 33(4): 84-88. [6] 周唯, 劉冬, 劉會師. 基于無線傳感器網(wǎng)絡拓撲的研究與設計[J]. 軟件, 2013, 34(12): 22-25.ZHOU W, LIU D, LIU H S. Research and Design of Wireless Sensor Network Topology[J]. Software, 2013, 34(12): 22-25. [7] Chen Tao, Guo Deke. A Bloom filters based dissemination protocol in wireless sensor networks[J]. Ad Hoc Network,2013, 11: 1359-1371. [8] Ahlswede R., Cai N., Li S. Y., et al. Network information flow[C]. Inf. Theory IEEE Trans, 2000, 46(4): 1204-1216. [9] 鄭軍、張寶賢 編著. 無線傳感器網(wǎng)絡技術[M]. 北京: 機械工業(yè)出版社, 2012.ZHENG J, ZHANG B X. Wireless Sensor Network Technology[M]. Beijing: Mechanical industry press, 2012. [10] Wang Xiumin, Wang Jianping, Xu Yinlong. Data Dissemination in Wireless Sensor Networks with Network Coding[J].EURASIP Journal on Wireless Communications and Networking, 2010, 2010: 14-30. [11] Nildo dos Santos Ribeiro Júnior. CodeDrip: Improving data dissemination for wireless sensor networks with network coding[J]. Ad Hoc Network. 2017, 54: 42-52. [12] Doddavenkatappa M., Chan M. C., Leong B. Splash: fast data dissemination with constructive interference in wireless sensor networks[C], Lombard: The 10th USENIX Symposium on Networked Systems Design and Implementation (NSDI 13), 2013, 269-282. [13] Gao Y., Bu J., Dong W., et al. Exploiting concurrency for efficient dissemination in wireless sensor networks[C], New York:IEEE Transactions on Parallel and Distributed Systems,2013, 24(4): 691-700. [14] 趙欣榮, 肖迎元, 王曉曄, 等. 無線傳感器網(wǎng)絡多路徑聚集的改進[J]. 軟件, 2014, 35(7): 7-12.ZHAO X R, XIAO Y Y, WANG X Y. Improvement of Multi-path Aggregation of Wireless Sensor Networks[J].Software, 2014, 35(7): 7-12. [15] 呂占偉, 陶崢. 重傳下的無線傳感器網(wǎng)絡的生命周期分析[J]. 軟件, 2015, 36(1): 116-121.LU Z W, TAO Z. Life Cycle Analysis of Wireless Sensor Networks under Retransmission[J]. Software, 2015, 36(1):116-121.2 NCDP的實現(xiàn)
2.1 NCDP思想
2.2 NCDP設計
3 仿真實驗
3.1 評估指標
3.2 性能評估
3.3 緩存占用分析
3.4 編碼率與抑制率分析
4 結論