基于多根多樹的網(wǎng)絡(luò)編碼方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種網(wǎng)絡(luò)編碼方法,特別設(shè)及一種利用利用網(wǎng)絡(luò)編碼解決無線傳感器 網(wǎng)絡(luò)中在降低網(wǎng)絡(luò)擁塞的前提下降低和均衡網(wǎng)絡(luò)能耗的基于多根多樹的網(wǎng)絡(luò)編碼方法。
【背景技術(shù)】
[0002] 現(xiàn)有技術(shù)利用簇結(jié)構(gòu)進行數(shù)據(jù)收集時,一般采用單個根節(jié)點在簇節(jié)點之間形成單 個樹結(jié)構(gòu),然而單根單樹結(jié)構(gòu),數(shù)據(jù)流向單一,而且越靠近根節(jié)點流量擁塞問題越嚴重。
[0003] 異或編碼在鏈型拓撲和X拓撲結(jié)構(gòu)下的運用如圖1中(a)和(b)兩種情況所示,在運 兩種情況下,一個數(shù)據(jù)流a和另一個數(shù)據(jù)流b在R點相遇,R對a和b進行了異或編碼,然后將 幻史6轉(zhuǎn)發(fā)到下一跳,下一跳節(jié)點A和B(D1和D2)同時接收到編碼數(shù)據(jù)流,并且將傳輸次數(shù)從 四次將為=次。(a)和(b)兩種情況不同的地方在于,情況(b)是采用鄰居偵聽的方式獲得解 碼機會。但者兩種編碼方法都與網(wǎng)絡(luò)能耗均衡問題無關(guān)且很難實現(xiàn)在不解碼的基礎(chǔ)上再編 碼。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明是為了解決上述問題而進行的,目的在于提供一種降低網(wǎng)絡(luò)能耗,促進網(wǎng) 絡(luò)能耗均衡的基于多根多樹的網(wǎng)絡(luò)編碼方法。
[0005] 本發(fā)明提供的基于多根多樹的網(wǎng)絡(luò)編碼方法,具有運樣的特征,包括W下步驟:
[0006] 步驟一,形成簇結(jié)構(gòu),簇結(jié)構(gòu)包括一個簇頭節(jié)點和多個簇成員節(jié)點;
[0007] 步驟二,選擇多個簇頭節(jié)點作為根節(jié)點,形成覆蓋所有簇頭節(jié)點和簇成員節(jié)點的 多根多樹結(jié)構(gòu);
[000引步驟=,給樹結(jié)構(gòu)中的所有簇頭節(jié)點和簇成員節(jié)點分配樹地址,每個簇頭節(jié)點和 簇成員節(jié)擁有多個樹地址;
[0009] 步驟四,當?shù)谝粩?shù)據(jù)流和第二數(shù)據(jù)流在當前編碼節(jié)點相遇時,根據(jù)樹地址判斷第 一數(shù)據(jù)流和第二數(shù)據(jù)流是否滿足編碼條件,記錄符合編碼條件的樹路徑和W及樹路徑上可 提供解碼機會的可解碼節(jié)點;
[0010] 步驟五,如果滿足編碼條件,則根據(jù)當前編碼節(jié)點的擁塞狀況從記錄的可解碼節(jié) 點中選擇滿足第一預設(shè)條件的候選可解碼節(jié)點,根據(jù)第二預設(shè)條件從候選可解碼節(jié)點中選 擇最優(yōu)解碼節(jié)點;
[0011] 步驟六,將第一數(shù)據(jù)流和第二數(shù)據(jù)流進行異或編碼形成編碼數(shù)據(jù)流;W及
[0012] 步驟屯,將當前節(jié)點的樹地址更新為當前編碼數(shù)據(jù)流的當前臨時源地址W及將第 一數(shù)據(jù)流和第二數(shù)據(jù)流的當前編碼數(shù)據(jù)流對應(yīng)的最優(yōu)解碼節(jié)點的地址更新為當前編碼數(shù) 據(jù)流臨時目的地址,按照當前臨時源地址和當前編碼數(shù)據(jù)流臨時目的地址轉(zhuǎn)發(fā)當前編碼數(shù) 據(jù)流,
[0013] 其中,多根多樹結(jié)構(gòu)中簇頭節(jié)點形成主干,簇成員節(jié)點形成枝葉,
[0014] 編碼條件為前編碼節(jié)點和第一數(shù)據(jù)流的臨時目的地址之間存在至少一個樹路徑 經(jīng)過第二數(shù)據(jù)流的臨時源地址的至少一個同簇節(jié)點或鄰居節(jié)點且當前編碼節(jié)點與第二數(shù) 據(jù)流的臨時目的地址節(jié)點之間存在至少一個樹路徑經(jīng)過第一數(shù)據(jù)流的臨時源地址的至少 一個同簇節(jié)點或鄰居節(jié)點,
[0015] 第一預設(shè)條件為當前編碼節(jié)點到可解碼節(jié)點的最短樹路徑跳數(shù)和可解碼節(jié)點到 臨時目的節(jié)點的最短樹路徑跳數(shù)之和減去當前編碼節(jié)點到臨時目的節(jié)點的最短樹路徑跳 數(shù)的差比a(m-咖)小,m為當前編碼節(jié)點緩存中的數(shù)據(jù)流數(shù)量,咖為預設(shè)數(shù)據(jù)流數(shù)量闊值,a為 可調(diào)控的比例系數(shù),
[0016] 第二預設(shè)條件為當前編碼節(jié)點到候選可解碼節(jié)點的最短樹路徑跳數(shù)和候選解碼 節(jié)點到臨時目的節(jié)點的最短樹路徑跳數(shù)之和減去當前編碼節(jié)點到臨時目的節(jié)點的最短樹 路徑跳數(shù)的差最小。
[0017] 本發(fā)明提供的基于多根多樹的網(wǎng)絡(luò)編碼方法,具有運樣的特征:其中,簇頭節(jié)點根 據(jù)節(jié)點的剩余能量和節(jié)點密度周期性選舉,一個簇結(jié)構(gòu)中的簇成員節(jié)點數(shù)量可W根據(jù)需求 調(diào)整。
[0018] 本發(fā)明提供的基于多根多樹的網(wǎng)絡(luò)編碼方法,具有運樣的特征:其中,簇頭節(jié)點、 簇成員節(jié)點、根節(jié)點在每一個樹上的地址按照Zigbee/802.15.4協(xié)議進行分配。
[0019] 本發(fā)明提供的基于多根多樹的網(wǎng)絡(luò)編碼方法,具有運樣的特征:其中,多根多樹結(jié) 構(gòu)還包括:橋節(jié)點,當簇頭節(jié)點的通信范圍內(nèi)沒有找到其他的簇頭節(jié)點作為父節(jié)點,簇頭節(jié) 點在n倍通信半徑的范圍內(nèi)捜索距離第一個根節(jié)點最近的簇頭節(jié)點作為目標節(jié)點,并選擇 通往該目標節(jié)點最短路徑上的節(jié)點為橋節(jié)點,述橋節(jié)點在多根多樹結(jié)構(gòu)的形成過程中轉(zhuǎn)化 為簇頭節(jié)點。
[0020] 本發(fā)明提供的基于多根多樹的網(wǎng)絡(luò)編碼方法,具有運樣的特征:其中,根節(jié)點的數(shù) 量可W根據(jù)需求進行調(diào)整。
[0021] 本發(fā)明提供的基于多根多樹的網(wǎng)絡(luò)編碼方法,具有運樣的特征,包括:
[0022] 步驟八,當前編碼節(jié)點接受的數(shù)據(jù)流的臨時目的地址和當前編碼節(jié)點的地址一 致,對第一數(shù)據(jù)流和第二數(shù)據(jù)流進行解碼操作,然后執(zhí)行步驟四至步驟屯。
[0023] 發(fā)明作用和效果
[0024] 根據(jù)本發(fā)明所設(shè)及基于多根多樹的網(wǎng)絡(luò)編碼方法,使得網(wǎng)絡(luò)編碼與能耗相關(guān),也 就是越接近根節(jié)點的節(jié)點數(shù)據(jù)流量越大,擁有的編碼機會也越多;直接根據(jù)樹地址進行編 碼條件判斷的方法簡單,開銷小;本發(fā)明中多根多樹結(jié)構(gòu)有利于發(fā)現(xiàn)更多的編碼機會W及 給數(shù)據(jù)提供更多的數(shù)據(jù)流向,進一步降低網(wǎng)絡(luò)能耗,促進網(wǎng)絡(luò)能耗均衡;本發(fā)明中的臨時目 的地址和源地址更新的方法有利于數(shù)據(jù)流的無限制再編碼;本發(fā)明利用犧牲跳數(shù)的編碼方 法,基于節(jié)點的擁塞情況來選擇編碼包傳輸路徑,在緩解網(wǎng)絡(luò)擁塞的前提下降低了網(wǎng)絡(luò)能 耗,促進了網(wǎng)絡(luò)能耗均衡。
【附圖說明】
[0025] 圖1是現(xiàn)有技術(shù)中異或編碼在鏈型拓撲和X拓撲結(jié)構(gòu)下的運用的拓撲圖;
[0026] 圖2是本發(fā)明在實施例中的多根多樹主干結(jié)構(gòu)的拓撲圖;
[0027] 圖3是本發(fā)明在實施例中的基于多根多樹主的編碼條件示例圖;W及
[0028] 圖4是本發(fā)明在實施例中的臨時源地址和目的地址更新的過程示意圖。
【具體實施方式】
[0029] W下參照附圖及實施例對本發(fā)明所設(shè)及的基于多根多樹的網(wǎng)絡(luò)編碼方法作詳細 的描述。
[0030] 圖2是本發(fā)明在實施例中的多根多樹主干結(jié)構(gòu)的拓撲圖。
[0031] 如圖2所示,基于多根多樹的網(wǎng)絡(luò)編碼方法具有W下步驟。
[0032] 步驟一:形成簇結(jié)構(gòu),簇結(jié)構(gòu)包括一個簇頭節(jié)點和多個簇成員節(jié)點。簇頭節(jié)點根據(jù) 節(jié)點的剩余能量和節(jié)點密度周期性選舉,一個簇結(jié)構(gòu)中的簇成員節(jié)點數(shù)量可W根據(jù)需求調(diào) 整。
[0033] 步驟二:選擇多個簇頭節(jié)點作為根節(jié)點(例如,圖2中的=個黑色節(jié)點為根節(jié)點)形 成覆蓋所有簇頭節(jié)點和簇成員節(jié)點的多根多樹結(jié)構(gòu)(圖2中形成了=根=樹結(jié)構(gòu)。多根多樹 結(jié)構(gòu)包括簇頭節(jié)點形成的主干和簇成員節(jié)點形成的枝葉)。該多根多樹結(jié)構(gòu)還包括橋節(jié)點, 當簇頭節(jié)點的通信范圍內(nèi)沒有找到其他的簇頭節(jié)點作為父節(jié)點,簇頭節(jié)點在n倍通信半徑 的范圍內(nèi)捜索距離第一個根節(jié)點最近的簇頭節(jié)點作為目標節(jié)點,并選擇通往該目標節(jié)點最 短路徑上的節(jié)點為橋節(jié)點,橋節(jié)點在多根多樹結(jié)構(gòu)的形成過程中轉(zhuǎn)化為簇頭節(jié)點。根節(jié)點 數(shù)量也可W根據(jù)需求進行調(diào)整。
[0034] 步驟=,給所有簇頭節(jié)點、簇成員節(jié)點和橋節(jié)點分配樹地址,每個簇頭節(jié)點、簇成 員節(jié)點和橋節(jié)點擁有多個樹地址。簇頭節(jié)點、簇成員節(jié)點和橋節(jié)點在每一個樹上的地址按 照Zigbee/802.15.4協(xié)議進行分配。后續(xù)根據(jù)=個點的樹地址就可W判斷出兩點之間的樹 路徑是否經(jīng)過第=點,判斷方法相對簡單,具體根據(jù)解碼節(jié)點在哪一個樹路徑上,就用哪一 個樹路徑對應(yīng)的樹地址進行判斷。
[0035] 步驟四,當?shù)谝粩?shù)據(jù)流和第二數(shù)據(jù)流在當前編碼節(jié)點相遇時,根據(jù)樹地址判斷第 一數(shù)據(jù)流和第二數(shù)據(jù)流是否滿足編碼條件,記錄符合編碼條件的樹路徑和W及樹路徑上可 提供解碼機會的解碼節(jié)點。
[0036] 編碼條件為當前編碼節(jié)點和第一數(shù)據(jù)流的臨時目的地址之間存在至少一條樹路 徑經(jīng)過第二數(shù)據(jù)流的臨時源地址的至少一個同簇節(jié)點或鄰居節(jié)點且當前編碼節(jié)點與第二 數(shù)據(jù)流的臨時目的地址節(jié)點之間存在至少一條樹路徑經(jīng)過第一數(shù)據(jù)流的臨時源地址的至 少一個同簇節(jié)點或鄰居節(jié)點。
[0037] 編碼條件運樣設(shè)置的原因是因為同簇節(jié)點和鄰居節(jié)點會在數(shù)據(jù)流到達臨時目的 節(jié)點之前提供解碼機會。
[0038] 當數(shù)據(jù)流為非編碼數(shù)據(jù)流時,臨時源地址為數(shù)據(jù)流的