專利名稱:基于噴泉碼和網(wǎng)絡(luò)編碼的機(jī)會(huì)路由協(xié)議數(shù)據(jù)分發(fā)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信技術(shù)領(lǐng)域,更進(jìn)一步涉及一種無(wú)線傳感器網(wǎng)絡(luò)中應(yīng)用噴泉碼與網(wǎng)絡(luò)編碼和機(jī)會(huì)路由協(xié)議進(jìn)行數(shù)據(jù)分發(fā)的方法。該方法應(yīng)用噴泉碼和網(wǎng)絡(luò)編碼對(duì)數(shù)據(jù)進(jìn)行編碼,使用改進(jìn)的機(jī)會(huì)路由協(xié)議進(jìn)行數(shù)據(jù)傳輸,接收端對(duì)收到的數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)解碼恢復(fù)原始的數(shù)據(jù)信息,可應(yīng)用于對(duì)無(wú)線傳感器網(wǎng)絡(luò)的數(shù)據(jù)分發(fā)。
背景技術(shù):
目前,在網(wǎng)絡(luò)編碼為代表的網(wǎng)絡(luò)通信技術(shù)領(lǐng)域中,廣泛使用網(wǎng)絡(luò)編碼技術(shù)與機(jī)會(huì)路由技術(shù)相結(jié)合的方法,達(dá)到可靠數(shù)據(jù)傳輸和提高網(wǎng)絡(luò)效率的目的。Chachulski ^ A^ "Chachulski S, Jennings Μ, Katti S, Katabi D. Trading structure for randomness in wireless opportunistic routing. In :Proc.of the ACM SIGCOMM 2007. New York :ACM Press,2007. 169-180. ” 提出了一種隨機(jī)機(jī)會(huì)路由方法 MORE (MAC-independent opportunistic routing and encoding protocol),該方法將流內(nèi)隨機(jī)網(wǎng)絡(luò)編碼(intra-flow random network coding)和機(jī)會(huì)路由相結(jié)合,并利用網(wǎng)絡(luò)編碼來(lái)降低重復(fù)分組發(fā)生的概率。實(shí)踐證明,這種隨機(jī)機(jī)會(huì)路由方法雖然可以提高分組成功投遞率,但由于隨機(jī)機(jī)會(huì)路由方法是以全網(wǎng)鏈路狀態(tài)為基礎(chǔ)的,采用“確認(rèn)等待”策略,不能解決大規(guī)模網(wǎng)絡(luò)中大量網(wǎng)絡(luò)冗余包的問(wèn)題,所以路由開(kāi)銷很大,不適合用于無(wú)線傳感器網(wǎng)絡(luò)。Yan Y 等人在"Yan Y, Zhang BX, Zheng J, Ma J. CORE :A coding-aware opportunistic routing mechanism for wireless mesh networks. IEEE Wireless Communications, 2010,17(3) :96-103. ”提出了一種編碼感知的機(jī)會(huì)路由方法 CORE (coding-aware opportunistic routing mechanism), i^TJ^MMWAU^t^^^i (localized inter-flow network coding)和機(jī)會(huì)路由相結(jié)合,在確定備選轉(zhuǎn)發(fā)節(jié)點(diǎn)優(yōu)先級(jí)時(shí),以編碼機(jī)會(huì)的大小為依據(jù),使得分組總是盡量轉(zhuǎn)發(fā)到編碼機(jī)會(huì)多的節(jié)點(diǎn)上去,創(chuàng)造了更多的編碼機(jī)會(huì),提高了網(wǎng)絡(luò)吞吐量。CORE雖然提高了多流無(wú)線網(wǎng)絡(luò)的吞吐率,但在執(zhí)行過(guò)程中需要節(jié)點(diǎn)保存兩跳鄰居緩存隊(duì)列內(nèi)的分組信息,存儲(chǔ)開(kāi)銷較大。Yan Y ^A^ "Yan Y, Zhang BX, Hussein Μ, Ma J. Mechanism for maximizing area-centric coding gains for wireless multi-hop networks. In :Proc.of the IEEE ICC 2009. Washington JEEE Computer Society Press,2009. ” 中提出了一種基于編碼增益的機(jī)會(huì)路由方案PACE (probabilistic area-centric network coding mechanism),該方法是一種網(wǎng)絡(luò)編碼和機(jī)會(huì)路由的有效結(jié)合,節(jié)點(diǎn)每次傳輸都著眼于提升節(jié)點(diǎn)附近區(qū)域中多個(gè)節(jié)點(diǎn)的聯(lián)合編碼增益,同時(shí)使用編碼感知的MAC層傳輸調(diào)度來(lái)保證編碼機(jī)會(huì)的實(shí)現(xiàn)。但是,PACE也要求網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)保存兩跳鄰居信息。湖南大學(xué)申請(qǐng)的專利“基于網(wǎng)絡(luò)編碼的無(wú)線傳感器網(wǎng)絡(luò)數(shù)據(jù)分發(fā)方法”(專利申請(qǐng)?zhí)?01010295107. 5,公布號(hào)CN 101951556A),公開(kāi)了一種基于網(wǎng)絡(luò)編碼的無(wú)線傳感器網(wǎng)絡(luò)數(shù)據(jù)分發(fā)方法。該方法的思路是源節(jié)點(diǎn)將要發(fā)送的數(shù)據(jù)包先進(jìn)行編碼后再發(fā)送,所有其它節(jié)點(diǎn)收到足夠的已編碼數(shù)據(jù)包后進(jìn)行再編碼并按相應(yīng)轉(zhuǎn)發(fā)機(jī)制進(jìn)行廣播,當(dāng)節(jié)點(diǎn)收到足夠的編碼包后解碼出原始的數(shù)據(jù)包。該方法的不足之處在于,編碼方式采用有比率碼,在遇到突發(fā)事件的時(shí)候不能實(shí)時(shí)的改變碼率,可能導(dǎo)致網(wǎng)絡(luò)擁塞甚至數(shù)據(jù)丟失。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提出一種基于噴泉碼和網(wǎng)絡(luò)編碼的機(jī)會(huì)路由協(xié)議數(shù)據(jù)分發(fā)方法。該方法可以根據(jù)網(wǎng)絡(luò)環(huán)境的要求而實(shí)時(shí)改變碼率,可在建立無(wú)線傳感器網(wǎng)絡(luò)的telosb傳感器節(jié)點(diǎn)的失效或傳輸鏈路不穩(wěn)定的情況時(shí),防止數(shù)據(jù)丟失。本發(fā)明實(shí)現(xiàn)的思路是源節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行噴泉碼預(yù)編碼,中間節(jié)點(diǎn)對(duì)接收到的數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)編碼,并使用機(jī)會(huì)路由協(xié)議發(fā)送編碼數(shù)據(jù),實(shí)現(xiàn)了網(wǎng)絡(luò)編碼和機(jī)會(huì)路由的結(jié)合,增加了單次傳輸?shù)男畔⒘?,減少了數(shù)據(jù)包的傳輸和重傳次數(shù),達(dá)到可靠數(shù)據(jù)傳輸、提高網(wǎng)絡(luò)效率和節(jié)省傳感器節(jié)點(diǎn)能量消耗的目的。本發(fā)明的具體步驟如下(1)網(wǎng)絡(luò)初始化la)設(shè)置 telosb 節(jié)點(diǎn)將所有telosb節(jié)點(diǎn)按照從1開(kāi)始遞增的順序設(shè)置不重復(fù)的ID編號(hào);在已設(shè)置ID 編號(hào)的telosb節(jié)點(diǎn)中,將主動(dòng)發(fā)送數(shù)據(jù)的節(jié)點(diǎn)指定為源節(jié)點(diǎn),將需要獲取數(shù)據(jù)的節(jié)點(diǎn)指定為信宿節(jié)點(diǎn),其余節(jié)點(diǎn)指定為中間節(jié)點(diǎn);lb)建立路由信息用戶根據(jù)應(yīng)用環(huán)境布置所有的telosb節(jié)點(diǎn),打開(kāi)所有telosb節(jié)點(diǎn)電源開(kāi)關(guān);源節(jié)點(diǎn)和信宿節(jié)點(diǎn)將控制包按照從1到N的順序設(shè)置為不重復(fù)的編號(hào),以洪泛的方式,根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)量廣播控制包;網(wǎng)絡(luò)中的telosb節(jié)點(diǎn)維護(hù)一個(gè)存儲(chǔ)上游節(jié)點(diǎn)ID的列表和一個(gè)存儲(chǔ)下游節(jié)點(diǎn)ID 的列表,從源節(jié)點(diǎn)發(fā)出的控制包中取出轉(zhuǎn)發(fā)當(dāng)前控制包的節(jié)點(diǎn)ID字段,用來(lái)更新上游節(jié)點(diǎn)列表,從信宿節(jié)點(diǎn)發(fā)出的控制包中取出轉(zhuǎn)發(fā)當(dāng)前控制包的節(jié)點(diǎn)ID字段,用來(lái)更新下游節(jié)點(diǎn)列表。(2)數(shù)據(jù)初始化2a)分段處理用戶將需要發(fā)送的數(shù)據(jù)分段,對(duì)每段設(shè)置一個(gè)與其它段不同的標(biāo)識(shí),段標(biāo)識(shí)按照從0開(kāi)始遞增的順序編號(hào);2b)計(jì)算中間節(jié)點(diǎn)的接收閾值每個(gè)中間節(jié)點(diǎn)按照下式分別計(jì)算接收閾值Ta
權(quán)利要求
1. 一種基于噴泉碼和網(wǎng)絡(luò)編碼的機(jī)會(huì)路由協(xié)議數(shù)據(jù)分發(fā)方法,包括以下步驟(1)網(wǎng)絡(luò)初始化la)設(shè)置telosb節(jié)點(diǎn)將所有telosb節(jié)點(diǎn)按照從1開(kāi)始遞增的順序設(shè)置不重復(fù)的ID編號(hào);在已設(shè)置ID編號(hào)的telosb節(jié)點(diǎn)中,將主動(dòng)發(fā)送數(shù)據(jù)的節(jié)點(diǎn)指定為源節(jié)點(diǎn),將需要獲取數(shù)據(jù)的節(jié)點(diǎn)指定為信宿節(jié)點(diǎn),其余節(jié)點(diǎn)指定為中間節(jié)點(diǎn); lb)建立路由信息用戶根據(jù)應(yīng)用環(huán)境布置所有的telosb節(jié)點(diǎn),打開(kāi)所有telosb節(jié)點(diǎn)電源開(kāi)關(guān); 源節(jié)點(diǎn)和信宿節(jié)點(diǎn)將控制包按照從1到N的順序設(shè)置為不重復(fù)的編號(hào),以洪泛的方式, 根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)量廣播控制包;網(wǎng)絡(luò)中的telosb節(jié)點(diǎn)維護(hù)一個(gè)存儲(chǔ)上游節(jié)點(diǎn)ID的列表和一個(gè)存儲(chǔ)下游節(jié)點(diǎn)ID的列表,從源節(jié)點(diǎn)發(fā)出的控制包中取出轉(zhuǎn)發(fā)當(dāng)前控制包的節(jié)點(diǎn)ID字段,用來(lái)更新上游節(jié)點(diǎn)列表,從信宿節(jié)點(diǎn)發(fā)出的控制包中取出轉(zhuǎn)發(fā)當(dāng)前控制包的節(jié)點(diǎn)ID字段,用來(lái)更新下游節(jié)點(diǎn)列表;(2)數(shù)據(jù)初始化 2a)分段處理用戶將需要發(fā)送的數(shù)據(jù)分段,對(duì)每段設(shè)置一個(gè)與其它段不同的標(biāo)識(shí),段標(biāo)識(shí)按照從0 開(kāi)始遞增的順序編號(hào);2b)計(jì)算中間節(jié)點(diǎn)的接收閾值每個(gè)中間節(jié)點(diǎn)按照下式分別計(jì)算接收閾值Ta
2.根據(jù)權(quán)利要求1所述的基于噴泉碼和網(wǎng)絡(luò)編碼的機(jī)會(huì)路由協(xié)議數(shù)據(jù)分發(fā)方法,其特征在于,所述的步驟la)是指在TinyOS系統(tǒng)環(huán)境下設(shè)置telosb節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求1所述的基于噴泉碼和網(wǎng)絡(luò)編碼的機(jī)會(huì)路由協(xié)議數(shù)據(jù)分發(fā)方法,其特征在于,所述的步驟lb)中控制包消息包括控制包編號(hào)、轉(zhuǎn)發(fā)當(dāng)前控制包的節(jié)點(diǎn)ID、從源節(jié)點(diǎn)或者信宿節(jié)點(diǎn)到當(dāng)前節(jié)點(diǎn)控制包經(jīng)歷的跳數(shù)。
4.根據(jù)權(quán)利要求1所述的基于噴泉碼和網(wǎng)絡(luò)編碼的機(jī)會(huì)路由協(xié)議數(shù)據(jù)分發(fā)方法,其特征在于,所述的步驟加)中用戶的數(shù)據(jù)分段按照每段包含k個(gè)數(shù)據(jù),k取2的整數(shù)次冪,不足k個(gè)數(shù)據(jù)的部分單獨(dú)作為一段的規(guī)則進(jìn)行分段。
5.根據(jù)權(quán)利要求1所述的基于噴泉碼和網(wǎng)絡(luò)編碼的機(jī)會(huì)路由協(xié)議數(shù)據(jù)分發(fā)方法,其特征在于,所述的步驟3a)的預(yù)編碼采用LT(Luby Transform)編碼方式進(jìn)行編碼。
6.根據(jù)權(quán)利要求1所述的基于噴泉碼和網(wǎng)絡(luò)編碼的機(jī)會(huì)路由協(xié)議數(shù)據(jù)分發(fā)方法,其特征在于,所述的步驟3a)下游鄰居節(jié)點(diǎn)發(fā)送的確認(rèn)消息包括下游鄰居節(jié)點(diǎn)自身的編號(hào)和確認(rèn)消息對(duì)應(yīng)的數(shù)據(jù)段編號(hào)。
7.根據(jù)權(quán)利要求1所述的基于噴泉碼和網(wǎng)絡(luò)編碼的機(jī)會(huì)路由協(xié)議數(shù)據(jù)分發(fā)方法,其特征在于,所述的步驟4b)網(wǎng)絡(luò)編碼的編碼包是由片二鞏得到的,其中,P' j為編碼包,i=\T是中間節(jié)點(diǎn)接收閾值,C^i是從伽羅華域GFO8)中隨機(jī)選取的編碼系數(shù),Pi是中間節(jié)點(diǎn)接收到的同一段數(shù)據(jù)包。
8.根據(jù)權(quán)利要求1所述的基于噴泉碼和網(wǎng)絡(luò)編碼的機(jī)會(huì)路由協(xié)議數(shù)據(jù)分發(fā)方法,其特征在于,所述的步驟4b)的ρ在0. 6 0. 8范圍內(nèi)取值。
全文摘要
一種基于噴泉碼和網(wǎng)絡(luò)編碼的機(jī)會(huì)路由協(xié)議數(shù)據(jù)分發(fā)方法,具體步驟包括(1)在TinyOS系統(tǒng)下,將所有網(wǎng)絡(luò)節(jié)點(diǎn)編號(hào),建立路由信息;(2)將數(shù)據(jù)分段并編號(hào),計(jì)算每個(gè)節(jié)點(diǎn)的接收閾值;(3)源節(jié)點(diǎn)采用噴泉碼對(duì)數(shù)據(jù)進(jìn)行預(yù)編碼,維護(hù)一個(gè)控制網(wǎng)絡(luò)中數(shù)據(jù)包數(shù)量的發(fā)送窗口;(4)中間節(jié)點(diǎn)對(duì)同一段的數(shù)據(jù)包采用網(wǎng)絡(luò)編碼,使用機(jī)會(huì)路由方法發(fā)送編碼數(shù)據(jù);(5)信宿節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)解碼,對(duì)網(wǎng)絡(luò)解碼后的數(shù)據(jù)段進(jìn)行噴泉碼解碼。本發(fā)明實(shí)現(xiàn)了網(wǎng)絡(luò)編碼和機(jī)會(huì)路由的結(jié)合,增加單次傳輸?shù)男畔⒘?,減少數(shù)據(jù)包的傳輸和重傳次數(shù),具有可靠數(shù)據(jù)傳輸、提高網(wǎng)絡(luò)效率和節(jié)省傳感器節(jié)點(diǎn)能量消耗的優(yōu)點(diǎn)。
文檔編號(hào)H04L1/00GK102170332SQ20111012744
公開(kāi)日2011年8月31日 申請(qǐng)日期2011年5月18日 優(yōu)先權(quán)日2011年5月18日
發(fā)明者冀維臻, 劉傳益, 劉惠, 張捷, 李旋, 李曉軍, 李贊, 杜軍朝, 王利敏, 鄧清哲, 郭江坤 申請(qǐng)人:西安電子科技大學(xué)