專利名稱:一種無線mesh網(wǎng)絡(luò)編碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種無線mesh網(wǎng)絡(luò)編碼方法,屬于網(wǎng)絡(luò)信息及網(wǎng)絡(luò)編碼技術(shù)領(lǐng)域。
背景技術(shù):
在傳統(tǒng)的網(wǎng)絡(luò)中,作為中繼的節(jié)點只能對接收到的信號進(jìn)行復(fù)制、放大和轉(zhuǎn)發(fā),這對于網(wǎng)絡(luò)資源有時候是一種浪費。2000年Ahlswede提出網(wǎng)絡(luò)編碼概念,即網(wǎng)絡(luò)節(jié)點對接收的信息比特流進(jìn)行特定操作,如模2和、有限域上的運(yùn)算等,再發(fā)送出去,而不是僅僅復(fù)制轉(zhuǎn)發(fā)。他們從信息論的角度出發(fā),嚴(yán)格證明了網(wǎng)絡(luò)編碼可以幫助我們達(dá)到通信網(wǎng)絡(luò)的最大容量,從而最大限度地利用網(wǎng)絡(luò)的現(xiàn)有資源。網(wǎng)絡(luò)編碼的提出從本質(zhì)上打破了通信網(wǎng)絡(luò)中傳統(tǒng)的信息處理方式,已成為通信網(wǎng)絡(luò)研究領(lǐng)域中的一個新的研究熱點。無線鏈路的不可靠性和物理層廣播特性非常適合使用編碼的方法,網(wǎng)絡(luò)編碼在無線網(wǎng)絡(luò)中的應(yīng)用可以提高網(wǎng)絡(luò)的吞吐量,尤其是組播吞吐量,可以減少數(shù)據(jù)包的傳播次數(shù), 降低無線發(fā)送能耗。Katti等提出的基于機(jī)會的網(wǎng)絡(luò)編碼(COPE)首次研究了網(wǎng)絡(luò)編碼在無線環(huán)境中的協(xié)議層面上具體實現(xiàn)的問題。COPE協(xié)議使用機(jī)會監(jiān)聽以及接收報告來獲取鄰居節(jié)點所存儲的報文信息。在得到所有鄰居節(jié)點所存儲的報文信息后,每個節(jié)點獨立的利用本地信息決定哪些數(shù)據(jù)包需要進(jìn)行編碼以及如何進(jìn)行編碼,以最大化一次傳輸中所能夠發(fā)送的報文數(shù)量。同時,每一個節(jié)點維護(hù)一個數(shù)據(jù)包池,用于存儲一段時間T內(nèi)該節(jié)點發(fā)送或接收到的數(shù)據(jù)包。當(dāng)節(jié)點接收到一個由η個原始數(shù)據(jù)包編碼而成的數(shù)據(jù)包時,該節(jié)點就會在數(shù)據(jù)池中搜尋存儲的η-1個原始數(shù)據(jù)包ID,如果能搜索到,節(jié)點就會將這個編碼數(shù)據(jù)包和搜索到的η-1個數(shù)據(jù)包通過相與運(yùn)算進(jìn)行解碼,得到所需的數(shù)據(jù)包;如果搜索不到也就是不能解碼時,節(jié)點將數(shù)據(jù)包簡單存入數(shù)據(jù)包池不會送到輸出隊列中,這一特性決定了 COPE編碼算法在一些網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中達(dá)不到最大的網(wǎng)絡(luò)吞吐量。
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有技術(shù)之不足,對COPE編碼方法進(jìn)行改進(jìn),提出了一種無線mesh網(wǎng)絡(luò)編碼方法,其技術(shù)方案如下一種無線mesh網(wǎng)絡(luò)編碼方法,其特征在于將鏈路分為與中繼節(jié)點相連的鏈路和與目的節(jié)點相連的鏈路兩大類,接收側(cè)僅需要在進(jìn)入中繼節(jié)點的鏈路進(jìn)行解碼,進(jìn)入目標(biāo)節(jié)點的鏈路路由選擇,在判斷目的節(jié)點的切割等于要交互的節(jié)點總數(shù)的前提下,構(gòu)建一個虛擬的組播網(wǎng)絡(luò),執(zhí)行本編碼方法在發(fā)送側(cè),每個節(jié)點都有一個輸出隊列,用于存儲要前傳的數(shù)據(jù)包,當(dāng)無線信道有效時,節(jié)點從輸出隊列中取出頭原始數(shù)據(jù)包,并檢查頭原始數(shù)據(jù)包能否與隊列中的其他原始數(shù)據(jù)包進(jìn)行編碼,如果沒有編碼機(jī)會,節(jié)點就會直接廣播該原始數(shù)據(jù)包而不會等待可匹配的原始數(shù)據(jù)包到來;如果有編碼機(jī)會,則將這些原始數(shù)據(jù)包與后形成編碼數(shù)據(jù)包廣播到各鄰居節(jié)點;節(jié)點在廣播編碼數(shù)據(jù)包之前,要在每一個數(shù)據(jù)包插入一個可變長的數(shù)據(jù)包頭, 該數(shù)據(jù)包頭對COPE協(xié)議的數(shù)據(jù)包頭進(jìn)行了改進(jìn),對于參與異或的原始數(shù)據(jù)包,包頭中除使用ΝΕΧΤΗ0ΡΕ標(biāo)識該原始數(shù)據(jù)包的下一跳之外,還增加DESN標(biāo)識該個原始數(shù)據(jù)包的目的節(jié)點;當(dāng)一個節(jié)點的MAC指示有發(fā)送機(jī)會時,該節(jié)點從其輸出隊列的頭部中取出數(shù)據(jù)包,能編碼情況下則進(jìn)行編碼,然后向數(shù)據(jù)包頭中增加接收報告和ACK后,進(jìn)行發(fā)送;在接收側(cè),當(dāng)一個節(jié)點接收到一個鄰居節(jié)點發(fā)來的數(shù)據(jù)包時,提取該鄰居節(jié)點所有的ACK,接著提取所有的接收報告并將更新存儲鄰居節(jié)點擁有的數(shù)據(jù)包的庫,根據(jù)接收數(shù)據(jù)包頭的DESN標(biāo)識判斷下一跳鏈路屬于“中繼節(jié)點相連的鏈路”還是“與目的節(jié)點相連的鏈路”,對進(jìn)入中繼節(jié)點的鏈路進(jìn)行解碼,對進(jìn)入目標(biāo)節(jié)點的鏈路進(jìn)行路由選擇,如果本節(jié)點不是目標(biāo)節(jié)點,則判斷本節(jié)點的其他鄰居節(jié)點是不是該數(shù)據(jù)包的目的地節(jié)點,如果是則直接路由給鄰居節(jié)點;如果本節(jié)點是目標(biāo)節(jié)點,檢查這個數(shù)據(jù)包是否是編碼數(shù)據(jù)包,如果是編碼數(shù)據(jù)包,則本節(jié)點就從數(shù)據(jù)包池中找出相應(yīng)的參與編碼的原始數(shù)據(jù)包來解碼,解碼成功后將ACK反饋上一跳節(jié)點,并將解碼所得的數(shù)據(jù)包存儲;然后本節(jié)點檢查自己是否是解碼所得數(shù)據(jù)包的最終目的地,如果是,則將數(shù)據(jù)包存儲在網(wǎng)絡(luò)棧的高層,否則將數(shù)據(jù)包放在輸出隊列,以進(jìn)行下一次的傳輸,如果本節(jié)點不能解碼,同樣判斷本節(jié)點的其他鄰居節(jié)點是不是該數(shù)據(jù)包的目的地節(jié)點,如果是則直接路由給鄰居節(jié)點。所說每一個編碼數(shù)據(jù)包插入一個可變長的數(shù)據(jù)包頭的方法是如果路由協(xié)議有自己的頭文件,數(shù)據(jù)包頭就在MAC頭和路由頭之間,否則就在MAC和IP頭之間;數(shù)據(jù)包頭由原始數(shù)據(jù)包ID、接收報告和異步確認(rèn)ACK三部分組成,其中原始數(shù)據(jù)包ID部分用于標(biāo)識參加編碼的原始數(shù)據(jù)包,接收報告部分用于標(biāo)識已收到的原始數(shù)據(jù)包的接收報告,ACK部分用于節(jié)點正確接收原始數(shù)據(jù)包的確認(rèn),在數(shù)據(jù)包頭的原始數(shù)據(jù)包ID部分,使用DESN標(biāo)識每個原始數(shù)據(jù)包的目的節(jié)點,接收側(cè)通過DESN標(biāo)識判斷自己或者鄰居是否是目的節(jié)點。本發(fā)明的優(yōu)點及其顯著效果在COPE協(xié)議中,每個節(jié)點對傳輸媒體進(jìn)行偵聽,獲得它的鄰居節(jié)點的狀態(tài)信息,決定進(jìn)行編碼的機(jī)會,并在本地的FIFO緩存結(jié)構(gòu)內(nèi)進(jìn)行編碼,然后進(jìn)行基于機(jī)會的路由選擇。COPE編碼算法易于實現(xiàn)但是存在不足,本發(fā)明提出的編碼方法對COPE編碼算法進(jìn)行了改進(jìn),優(yōu)化了 COPE網(wǎng)絡(luò)編碼的數(shù)據(jù)轉(zhuǎn)發(fā)機(jī)制,能夠減少原始數(shù)據(jù)包傳輸?shù)拇螖?shù),有效提高網(wǎng)絡(luò)編碼增益和網(wǎng)絡(luò)吞吐量,具有很好的實用價值,為網(wǎng)絡(luò)編碼的研究和設(shè)計提供了一條新的途徑??蓮V泛應(yīng)用于各種通信網(wǎng)絡(luò)中,例如無線mesh網(wǎng)絡(luò)、Ad hoc網(wǎng)、WLAN等等,
圖1為傳統(tǒng)路由工作方式示意圖;圖2為COPE工作方式的拓?fù)浣Y(jié)構(gòu)圖;圖3為本發(fā)明源節(jié)點S廣播數(shù)據(jù)包A到B的編碼路由方式示意圖;圖4為本發(fā)明的網(wǎng)絡(luò)編碼方法工作方式示意圖;圖5為本發(fā)明發(fā)送側(cè)的執(zhí)行過程流程圖;圖6為本發(fā)明的數(shù)據(jù)包頭結(jié)構(gòu)圖;圖7為本發(fā)明接收側(cè)的執(zhí)行過程流程圖;圖8為3種方式下所需要的平均傳輸次數(shù)比較圖;圖9為2種編碼方式下的編碼增益比較圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。傳統(tǒng)路由工作方式如圖1所示,節(jié)點1,2各自傳輸數(shù)據(jù)包A,B至節(jié)點5,4,傳統(tǒng)路由方式下傳輸次數(shù)為6。根據(jù)COPE編碼算法,節(jié)點收到編碼數(shù)據(jù)包后,若不能解碼,則將數(shù)據(jù)包簡單存入數(shù)據(jù)包池不會送到輸出隊列中;若能解碼,則直接解碼后進(jìn)行下一步傳輸。 COPE編碼算法工作方式如圖2所示,共需要傳輸次數(shù)為5次,編碼增益是1. 2,有一定改善, 但是由于忽略了節(jié)點3的作用,形成了浪費。本發(fā)明針對這個問題對COPE編碼算法進(jìn)行了改進(jìn),優(yōu)化COPE網(wǎng)絡(luò)編碼的數(shù)據(jù)轉(zhuǎn)發(fā)機(jī)制。根據(jù)無線mesh網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)易知節(jié)點4,5的切割為2,考慮節(jié)點0編碼后,數(shù)據(jù)經(jīng)節(jié)點3路由選擇的條件下,有效利用節(jié)點3,可以將其等效為構(gòu)造的一個虛擬源節(jié)點S, 如圖3所示,S負(fù)責(zé)廣播數(shù)據(jù)包A,B至節(jié)點4,5的組播編碼路由選擇方式。本發(fā)明的編碼工作方式如圖4所示,編碼次數(shù)為4次,從而與COPE算法相比,進(jìn)一步有效地降低了傳輸次數(shù),編碼增益為1.5。本發(fā)明在發(fā)送側(cè),當(dāng)無線信道有效時,節(jié)點就會從輸出隊列中取出頭原始數(shù)據(jù)包, 并檢查頭原始數(shù)據(jù)包能否與隊列中的其他原始數(shù)據(jù)包進(jìn)行編碼。如果能,則將這些原始數(shù)據(jù)包相與后廣播到各鄰居節(jié)點。如果沒有編碼機(jī)會,節(jié)點就會直接廣播該原始數(shù)據(jù)包而不會等待可匹配的原始數(shù)據(jù)包到來。發(fā)送側(cè)的執(zhí)行過程流程圖如圖5所示,當(dāng)一個節(jié)點的MAC 指示有發(fā)送機(jī)會時,該節(jié)點從其輸出隊列的頭部中取出數(shù)據(jù)包,能編碼情況下則進(jìn)行編碼, 然后向數(shù)據(jù)包頭中增加接收報告和ACK后,進(jìn)行發(fā)送。此外,為了確保下一跳節(jié)點集能夠正確解碼還原所需的原始數(shù)據(jù)包,中繼節(jié)點需要知道其鄰居節(jié)點已經(jīng)存儲了哪些原始數(shù)據(jù)包。如果中繼節(jié)點沒有收到鄰居節(jié)點發(fā)來的接收報告,那么在缺乏確定信息的情況下,該節(jié)點就會使用路由協(xié)議來計算下一跳節(jié)點間鏈路的投遞率,并依據(jù)投遞率來估計下一跳節(jié)點存儲某原始數(shù)據(jù)包的可能性,并據(jù)此決定是否進(jìn)行網(wǎng)絡(luò)編碼,以提高下一跳節(jié)點集的正確解碼概率。假設(shè),某中繼節(jié)點一次將η個數(shù)據(jù)包進(jìn)行相與的編碼,并假設(shè)第η個數(shù)據(jù)包的下一跳接收節(jié)點監(jiān)聽到其他某一個數(shù)據(jù)包i的概率為Pi,那么該接收節(jié)點能正確解碼的概率Pd 等于這節(jié)點能監(jiān)聽參與編碼的其他n-1個原始數(shù)據(jù)包的概率Pd = P1XP2X. . . Plrft5現(xiàn)在考慮編碼的中間過程,怎樣搜索可編碼的數(shù)據(jù)包的問題。假設(shè)現(xiàn)在已經(jīng)將n-1個原始數(shù)據(jù)包編碼在一起,并考慮編碼相與第η個原始數(shù)據(jù)包。這時編碼算法就會判斷這η個原始數(shù)據(jù)包的下一跳節(jié)點集可解碼的概率Pd是否滿足大于一個門限值G(—般默認(rèn)G = 0.8)。如果滿足上述的門限值,就意味著下一跳節(jié)點集可以正確解碼的概率至少是G,從而進(jìn)行這樣的網(wǎng)絡(luò)編碼就可能有較大的網(wǎng)絡(luò)增益。節(jié)點在廣播數(shù)據(jù)包之前,要在每一個數(shù)據(jù)包插入一個可變長的數(shù)據(jù)包頭,如圖 6所示,數(shù)據(jù)包頭(Added Header)就是圖中的陰影部分。如果路由協(xié)議有自己的頭文件,數(shù)據(jù)包頭就在MAC頭和路由頭之間,否則就在MAC和IP頭之間。數(shù)據(jù)包頭由原始數(shù)據(jù)包的 ID (Packets X0R_ed together),接收報告(Reception Reports)和異步確認(rèn) (Acknowledge, ACK)三部分組成。1)原始數(shù)據(jù)包的 ID (Packets X0R_ed together)第一塊主要用于標(biāo)識參加編碼的原始數(shù)據(jù)包。它的第一部分是ENC0DED_N-UM,用于標(biāo)識參與編碼的原始數(shù)據(jù)包的數(shù)量。接下來就依次列出參與編碼的原始數(shù)據(jù)包的 ID(PKT_ID)和該數(shù)據(jù)包的下一跳節(jié)點(ΝΕΧΤΗ0Ρ)。當(dāng)某節(jié)點接收到一個編碼包時,節(jié)點就會檢查自己是否屬于ΝΕΧΤΗ0Ρ列表內(nèi),如果屬于就會選擇解碼,得到所需的數(shù)據(jù)包。2)接收 艮告(Reception Reports)第二塊是由接收報告組成。它的第一部分是REP0RT_NUM,用于表示已收到的原始數(shù)據(jù)包的接收報告的數(shù)量。緊接著是SRC_IP,用于表示每一個接收報告的源地址。最后是 LAST_PKT和BIT MAP,分別表示從對應(yīng)SRC_IP這個源地址收到的最后一個數(shù)據(jù)包的IP序列號,以及之前收到的數(shù)據(jù)包。3)異步確認(rèn)(Acknowledge,ACK)接收節(jié)點正確接收后需要通過ACK進(jìn)行確認(rèn)。為了確保ACK能以低消耗方式傳輸,通常使用累積ACK。一個節(jié)點對鄰居節(jié)點維系一個16bit的計數(shù)器,這個計數(shù)器叫做 Neighborjeqnc^Counter。當(dāng)該節(jié)點向某個鄰居節(jié)點發(fā)送一個數(shù)據(jù)包時,對應(yīng)的計數(shù)器就會計數(shù),并將計數(shù)后的值賦給該數(shù)據(jù)包作為本地序列號,Local_PKT_SEQ_NUM。一對鄰居節(jié)點使用該序列號來區(qū)分不同的數(shù)據(jù)包。在這個基礎(chǔ)上使用累積ACK,每一個編碼數(shù)據(jù)包都包含一個ACK頭。ACK塊的第一部分是ACK條目的數(shù)目,接下來就是數(shù)據(jù)包的本地序列號。 每一個ACK條目的第一部分是一個鄰居節(jié)點的MAC地址,接下來是一個指針告訴鄰居節(jié)點累積ACK在哪里停止以及一個指示之前收到和丟失的數(shù)據(jù)包的表。本發(fā)明接收側(cè)的執(zhí)行過程流程圖如圖7所示,當(dāng)一個節(jié)點接收到一個鄰居節(jié)點發(fā)來的數(shù)據(jù)包時,首先提取該鄰居節(jié)點所有的ACK,接著提取所有的接收報告并將更新存儲鄰居節(jié)點擁有的數(shù)據(jù)包的庫。接下來的處理就要取決于本節(jié)點是否是目標(biāo)節(jié)點,根據(jù)接收數(shù)據(jù)包頭的DESN標(biāo)識判斷如果本節(jié)點不是目標(biāo)節(jié)點,則判斷本節(jié)點的其他鄰居節(jié)點是不是該數(shù)據(jù)包的目的地節(jié)點,如果是則直接路由給鄰居節(jié)點;如果本節(jié)點是目標(biāo)節(jié)點,就會檢查這個數(shù)據(jù)包是否是編碼數(shù)據(jù)包,如果是編碼數(shù)據(jù)包,則本節(jié)點就會試圖從數(shù)據(jù)包池中找出相應(yīng)的參與編碼的原始數(shù)據(jù)包來解碼,解碼成功后將ACK反饋上一跳節(jié)點,并將解碼所得的數(shù)據(jù)包存儲。接下來本節(jié)點就會檢查自己是否是解碼所得數(shù)據(jù)包的最終目的地。如果是,則將數(shù)據(jù)包存儲在網(wǎng)絡(luò)棧的高層,否則的話將數(shù)據(jù)包放在輸出隊列,以進(jìn)行下一次的傳輸。如果本節(jié)點不能解碼,同樣判斷本節(jié)點的其他鄰居節(jié)點是不是該數(shù)據(jù)包的目的地節(jié)點, 如果是則直接路由給鄰居節(jié)點。三種方式平均傳輸一個數(shù)據(jù)所需的傳輸次數(shù)性能比較如圖8所示,圖中曲線a為 COPE編碼方式;b為本發(fā)明提出的編碼方式;(為直接路由方式,顯然本發(fā)明(曲線b)傳輸數(shù)據(jù)的效率最高。圖9給出了方案的編碼增益性能,c/b表示直接路由選擇所需要的平均傳輸次數(shù)與采用方案的編碼方式后所需要的平均傳輸次數(shù)之比,即本發(fā)明的網(wǎng)絡(luò)編碼新方式的編碼增益。同理c/a表示采用COPE編碼方式下的編碼增益。結(jié)果表明,本發(fā)明在編碼增益指標(biāo)上有明顯改善,提高了網(wǎng)絡(luò)吞吐量。本發(fā)明的本質(zhì)是將鏈路分為與中繼節(jié)點相連的鏈路和與目的節(jié)點相連的鏈路兩大類,接收側(cè)僅需要在進(jìn)入中繼節(jié)點的鏈路進(jìn)行解碼,進(jìn)入目標(biāo)節(jié)點的鏈路路由選擇。在接收側(cè),對接收數(shù)據(jù)包進(jìn)行分析,如果數(shù)據(jù)包的目的節(jié)點是接收節(jié)點的鄰居,直接路由傳給目的節(jié)點,通過這種機(jī)制可以有效提高網(wǎng)絡(luò)編碼的性能。
權(quán)利要求
1.一種無線mesh網(wǎng)絡(luò)編碼方法,其特征在于將鏈路分為與中繼節(jié)點相連的鏈路和與目的節(jié)點相連的鏈路兩大類,接收側(cè)僅需要在進(jìn)入中繼節(jié)點的鏈路進(jìn)行解碼,進(jìn)入目標(biāo)節(jié)點的鏈路路由選擇,在判斷目的節(jié)點的切割等于要交互的節(jié)點總數(shù)的前提下,構(gòu)建一個虛擬的組播網(wǎng)絡(luò),執(zhí)行本編碼方法在發(fā)送側(cè),每個節(jié)點都有一個輸出隊列,用于存儲要前傳的數(shù)據(jù)包,當(dāng)無線信道有效時,節(jié)點從輸出隊列中取出頭原始數(shù)據(jù)包,并檢查頭原始數(shù)據(jù)包能否與隊列中的其他原始數(shù)據(jù)包進(jìn)行編碼,如果沒有編碼機(jī)會,節(jié)點就會直接廣播該原始數(shù)據(jù)包而不會等待可匹配的原始數(shù)據(jù)包到來;如果有編碼機(jī)會,則將這些原始數(shù)據(jù)包與后形成編碼數(shù)據(jù)包廣播到各鄰居節(jié)點;節(jié)點在廣播編碼數(shù)據(jù)包之前,要在每一個數(shù)據(jù)包插入一個可變長的數(shù)據(jù)包頭,該數(shù)據(jù)包頭對COPE協(xié)議的數(shù)據(jù)包頭進(jìn)行了改進(jìn),對于參與異或的原始數(shù)據(jù)包,包頭中除使用 ΝΕΧΤΗ0ΡΕ標(biāo)識該原始數(shù)據(jù)包的下一跳之外,還增加DESN標(biāo)識該個原始數(shù)據(jù)包的目的節(jié)點; 當(dāng)一個節(jié)點的MAC指示有發(fā)送機(jī)會時,該節(jié)點從其輸出隊列的頭部中取出數(shù)據(jù)包,能編碼情況下則進(jìn)行編碼,然后向數(shù)據(jù)包頭中增加接收報告和ACK后,進(jìn)行發(fā)送;在接收側(cè),當(dāng)一個節(jié)點接收到一個鄰居節(jié)點發(fā)來的數(shù)據(jù)包時,提取該鄰居節(jié)點所有的 ACK,接著提取所有的接收報告并將更新存儲鄰居節(jié)點擁有的數(shù)據(jù)包的庫,根據(jù)接收數(shù)據(jù)包頭的DESN標(biāo)識判斷下一跳鏈路屬于“中繼節(jié)點相連的鏈路”還是“與目的節(jié)點相連的鏈路”,對進(jìn)入中繼節(jié)點的鏈路進(jìn)行解碼,對進(jìn)入目標(biāo)節(jié)點的鏈路進(jìn)行路由選擇,如果本節(jié)點不是目標(biāo)節(jié)點,則判斷本節(jié)點的其他鄰居節(jié)點是不是該數(shù)據(jù)包的目的地節(jié)點,如果是則直接路由給鄰居節(jié)點;如果本節(jié)點是目標(biāo)節(jié)點,檢查這個數(shù)據(jù)包是否是編碼數(shù)據(jù)包,如果是編碼數(shù)據(jù)包,則本節(jié)點就從數(shù)據(jù)包池中找出相應(yīng)的參與編碼的原始數(shù)據(jù)包來解碼,解碼成功后將ACK反饋上一跳節(jié)點,并將解碼所得的數(shù)據(jù)包存儲;然后本節(jié)點檢查自己是否是解碼所得數(shù)據(jù)包的最終目的地,如果是,則將數(shù)據(jù)包存儲在網(wǎng)絡(luò)棧的高層,否則將數(shù)據(jù)包放在輸出隊列,以進(jìn)行下一次的傳輸,如果本節(jié)點不能解碼,同樣判斷本節(jié)點的其他鄰居節(jié)點是不是該數(shù)據(jù)包的目的地節(jié)點,如果是則直接路由給鄰居節(jié)點。
2.根據(jù)權(quán)利要求1所述的無線mesh網(wǎng)絡(luò)編碼方法,其特征在于所說每一個編碼數(shù)據(jù)包插入一個可變長的數(shù)據(jù)包頭的方法是如果路由協(xié)議有自己的頭文件,數(shù)據(jù)包頭就在 MAC頭和路由頭之間,否則就在MAC和IP頭之間;數(shù)據(jù)包頭由原始數(shù)據(jù)包ID、接收報告和異步確認(rèn)ACK三部分組成,其中原始數(shù)據(jù)包ID部分用于標(biāo)識參加編碼的原始數(shù)據(jù)包,接收報告部分用于標(biāo)識已收到的原始數(shù)據(jù)包的接收報告,ACK部分用于節(jié)點正確接收原始數(shù)據(jù)包的確認(rèn),在數(shù)據(jù)包頭的原始數(shù)據(jù)包ID部分,使用DESN標(biāo)識每個原始數(shù)據(jù)包的目的節(jié)點,接收側(cè)通過DESN標(biāo)識判斷自己或者鄰居是否是目的節(jié)點。
全文摘要
本發(fā)明公開了一種無線mesh網(wǎng)絡(luò)編碼方法,解決了現(xiàn)有COPE編碼算法編碼增益低的問題。在本方法中,對于參與異或的原始數(shù)據(jù)包,在生成的數(shù)據(jù)包的包頭中加入DESN標(biāo)識,用來標(biāo)識原始數(shù)據(jù)包的目的節(jié)點,接收側(cè)通過DESN標(biāo)識判斷自己或者鄰居是否是目的節(jié)點,執(zhí)行不同的策略,接收側(cè)僅需要在進(jìn)入中繼節(jié)點的鏈路進(jìn)行解碼,進(jìn)入目標(biāo)節(jié)點的鏈路路由選擇,通過采用這種機(jī)制提高網(wǎng)絡(luò)編碼的性能。本發(fā)明可以應(yīng)用與各種通信網(wǎng)絡(luò)中,能夠減少原始數(shù)據(jù)包傳輸?shù)拇螖?shù),有效提高網(wǎng)絡(luò)編碼增益和網(wǎng)絡(luò)吞吐量,具有很好的實用價值,為網(wǎng)絡(luò)編碼的研究和設(shè)計提供一條新的途徑。
文檔編號H04L1/18GK102487306SQ20101057427
公開日2012年6月6日 申請日期2010年12月6日 優(yōu)先權(quán)日2010年12月6日
發(fā)明者孔媛媛, 楊震, 梅中輝, 鄧文君 申請人:南京郵電大學(xué)