欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳輸效率的方法及裝置的制作方法

文檔序號(hào):7654537閱讀:203來(lái)源:國(guó)知局
專利名稱:提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳輸效率的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)編碼技術(shù)領(lǐng)域,具體涉及一種提高基于隨機(jī)網(wǎng)絡(luò)編碼的 多播傳輸效率的方法及裝置。
背景技術(shù)
所謂網(wǎng)絡(luò)編碼,就是指讓網(wǎng)絡(luò)中的節(jié)點(diǎn)不光擁有存儲(chǔ)轉(zhuǎn)發(fā)數(shù)據(jù)分組的能 力,還能夠?qū)π畔⑦M(jìn)行編碼操作,從而能夠大幅度提高網(wǎng)絡(luò)在執(zhí)行多播應(yīng)用 時(shí)的吞吐率和帶寬利用率。圖1給出了一個(gè)通過(guò)網(wǎng)絡(luò)編碼改善網(wǎng)絡(luò)吞吐率的網(wǎng)絡(luò)拓樸圖,如圖l所示,假設(shè)圖中所有線路的傳輸速率均為lbit/單位時(shí)間,而節(jié)點(diǎn)S要利用該網(wǎng) 絡(luò)同時(shí)向節(jié)點(diǎn)Y和節(jié)點(diǎn)Z多播信息。假設(shè)某一單位時(shí)間內(nèi),S向T和U分 別發(fā)出比特b!和b2,如果每個(gè)節(jié)點(diǎn)都只有存儲(chǔ)轉(zhuǎn)發(fā)功能,則節(jié)點(diǎn)W只能從 b,和b2中選擇一 個(gè)傳給節(jié)點(diǎn)X,顯然節(jié)點(diǎn)Y和節(jié)點(diǎn)Z無(wú)法同時(shí)收全b!和b2 , 網(wǎng)絡(luò)提供給節(jié)點(diǎn)S到節(jié)點(diǎn)Y和Z的多播速率小于2bit/單位時(shí)間。而如果在 該網(wǎng)絡(luò)的節(jié)點(diǎn)中引入編碼功能,即讓節(jié)點(diǎn)W將b,和b2作異或運(yùn)算的結(jié)果傳 給節(jié)點(diǎn)X,再由X將該結(jié)果分別傳給Y和Z,則節(jié)點(diǎn)Y可以通過(guò)該結(jié)果和 自己從節(jié)點(diǎn)T收到的比特求解出節(jié)點(diǎn)S發(fā)送給U的比特。而節(jié)點(diǎn)Z也可以 通過(guò)類似的方式收到S發(fā)給T的比特。從而使S向Y和Z多播的速率達(dá)到 了 2bit/單位時(shí)間?,F(xiàn)有技術(shù)已經(jīng)證明任何網(wǎng)絡(luò)中,假設(shè)在進(jìn)行單播時(shí)源到各接收點(diǎn) {丁1,丁2,...,丁11}的最大速率分別為(MFi,MF2,…,MFn),則該源必定能夠以 min{MFm(m=l,2,...,n) }的速率同時(shí)對(duì)所有接收節(jié)點(diǎn)進(jìn)行多播,將min{MFm (m=l,2,...,n) }稱為源節(jié)點(diǎn)到所有宿節(jié)點(diǎn)的最大流中的最小值。而從圖l可以看到,若節(jié)點(diǎn)不具備編碼功能,該速率min(MFm"2bit/單位時(shí)間通常是無(wú) 法達(dá)到的,而只有引入了網(wǎng)絡(luò)編碼,該速率才可以達(dá)到。根據(jù)網(wǎng)絡(luò)中的節(jié)點(diǎn)的編碼向量分配方法的不同,網(wǎng)絡(luò)編碼技術(shù)產(chǎn)生了隨 機(jī)網(wǎng)絡(luò)編碼和確定性網(wǎng)絡(luò)編碼兩個(gè)分支。隨機(jī)網(wǎng)絡(luò)編碼是指網(wǎng)絡(luò)中所有鏈路 的編碼向量都是隨時(shí)間變化的,即每個(gè)節(jié)點(diǎn)在得到 一 次發(fā)送機(jī)會(huì)后都隨機(jī)地 對(duì)已經(jīng)收到的數(shù)據(jù)進(jìn)行編碼操作并且發(fā)送出去。使用隨機(jī)網(wǎng)絡(luò)編碼的網(wǎng)絡(luò)中使用了 "代"的概念,即將數(shù)據(jù)源需要多 播到宿節(jié)點(diǎn)的所有原始數(shù)據(jù)塊分為若干組,除最后一組,每組含有相等數(shù)量 的原始數(shù)據(jù)塊。在整個(gè)多播過(guò)程中,節(jié)點(diǎn)的編碼操作都只在屬于同一組的原 始數(shù)據(jù)塊及它們進(jìn)行線性組合后生成的新數(shù)據(jù)塊之間進(jìn)行。稱一組原始數(shù)據(jù) 塊和由它們線性組合生成的全部新數(shù)據(jù)塊組成的集合為一代。圖2給出了現(xiàn)有的基于隨機(jī)網(wǎng)絡(luò)編碼的多播流程圖,如圖2所示,其具 體步驟如下步驟201:在多播過(guò)程開始之前,在現(xiàn)有網(wǎng)絡(luò)的基礎(chǔ)上計(jì)算出一個(gè)多播 過(guò)程使用的邏輯子拓樸。步驟202:預(yù)先設(shè)定分組發(fā)送速度調(diào)整周期TO和冗余分組門限NO,且 每個(gè)中間節(jié)點(diǎn)和每個(gè)宿節(jié)點(diǎn)分別維護(hù)一個(gè)冗余分組計(jì)時(shí)器t和冗余分組計(jì)數(shù) 器n,并初始化t=0, n=0。步驟203:子拓樸中的源節(jié)點(diǎn)在每次要發(fā)送一個(gè)數(shù)據(jù)塊時(shí),隨機(jī)生成一 個(gè)d維向量,計(jì)算該d維向量.表示本代所有待發(fā)原始數(shù)據(jù)塊的原始數(shù)據(jù)向 量,然后將計(jì)算得到的數(shù)據(jù)塊封裝入分組,將該數(shù)據(jù)塊的代編號(hào)和生成的d 維編碼向量填入分組頭部后,將該分組發(fā)送出去。假設(shè)該子拓樸中源節(jié)點(diǎn)到所有宿節(jié)點(diǎn)最大流中的最小值是A塊/單位時(shí)間,則源節(jié)點(diǎn)向外發(fā)送數(shù)據(jù)的速率是/7塊/單位時(shí)間。多播分組的格式如圖3所示,主要由分組頭部和分組內(nèi)容組成,其中,分組頭部包括代編號(hào)和編碼向量如向量元素1、向量元素2.....向量元素d,分組內(nèi)容即數(shù)據(jù)塊。步驟204:中間節(jié)點(diǎn)收到多播分組,判斷該分組是否攜帶了新信息即 該分組是否會(huì)使得線性空間增大,若是,執(zhí)行步驟205;否則,執(zhí)行步驟206。 判斷該分組是否攜帶了新信息的具體過(guò)程為假設(shè)在收到該分組前,該 中間節(jié)點(diǎn)共收到了 "個(gè)與該分組屬于同一代的分組,其中,共有6(6《d) 個(gè)分組頭部中封裝的編碼向量是線性無(wú)關(guān)的,則收到該分組之后,該分組頭 部中的編碼向量和原有分組頭部中的向量共a+l個(gè),如果該a+l個(gè)向量中有 6+1個(gè)向量線性無(wú)關(guān),則稱該分組攜帶了新信息。步驟205:中間節(jié)點(diǎn)將該分組保存到緩存空間中,轉(zhuǎn)至步驟212。 中間節(jié)點(diǎn)丟棄該分組,令n=n+l 。中間節(jié)點(diǎn)判斷t^TO是否成立,若是,執(zhí)行步驟208;否則,步驟206: 步驟207:執(zhí)行步驟212。 步驟208:執(zhí)行步驟211。 步驟209: 步驟210V=V-VS,其中Vs為調(diào)整步長(zhǎng) 步驟211: 步驟212:中間節(jié)點(diǎn)判斷n^NO是否成立,若是,執(zhí)行步驟209;否則,中間節(jié)點(diǎn)向發(fā)來(lái)該分組的上游節(jié)點(diǎn)發(fā)送減少發(fā)送速度信令。 上游節(jié)點(diǎn)收到該減少發(fā)送速度信令后,調(diào)整分組發(fā)送速度 V'為調(diào)整后的分組發(fā)送速度,V為調(diào)整前的分組發(fā)送速率, 轉(zhuǎn)至步驟212。 中間節(jié)點(diǎn)令t二O, n=0。中間節(jié)點(diǎn)的 一條出向鏈路獲得一個(gè)發(fā)送機(jī)會(huì),中間節(jié)點(diǎn)將緩 存空間中的所有當(dāng)前代的分組所封裝的數(shù)據(jù)塊進(jìn)行一次隨機(jī)線性組合,生成 一個(gè)數(shù)據(jù)塊,并將各分組頭部中的編碼向量進(jìn)行相同的隨機(jī)線性組合,得到 一個(gè)新的編碼向量,將該生成的數(shù)據(jù)塊封裝入一個(gè)分組,將當(dāng)前代的代編號(hào) 和得到的新編碼向量填入該分組頭部,然后將該分組以自身當(dāng)前的分組發(fā)送 速率從有發(fā)送機(jī)會(huì)的出向鏈路發(fā)送出去。中間節(jié)點(diǎn)收到第 一 個(gè)屬于當(dāng)前代的下 一 代的分組時(shí),清空緩存中的當(dāng)前 代分組,進(jìn)入下一代分組的發(fā)送過(guò)程,即此后下一代變?yōu)樾碌漠?dāng)前代,以 后若再收到原當(dāng)前代的分組,直接丟棄,不再處理。步驟213:宿節(jié)點(diǎn)收到中間節(jié)點(diǎn)發(fā)來(lái)的多播分組,根據(jù)已保存的當(dāng)前代 的分組中的編碼向量和該分組中的編碼向量,判斷是否能解碼成功,若是, 對(duì)當(dāng)前代的分組進(jìn)行解碼,將得到的原始數(shù)據(jù)塊發(fā)送給上層實(shí)體;否則,繼 續(xù)等待下一個(gè)多播分組。對(duì)于每個(gè)宿節(jié)點(diǎn)來(lái)說(shuō),在步驟213中當(dāng)收到中間節(jié)點(diǎn)發(fā)來(lái)的多播分組 后,也要如中間節(jié)點(diǎn)一樣先執(zhí)行步驟204 211所述的過(guò)程,且在確定分組攜 帶了新信息后,判斷是否能夠解碼成功。從圖2所示實(shí)施例可以看出,為了減少子拓樸中的冗余信息的發(fā)送,采 取了以下措施當(dāng)一個(gè)節(jié)點(diǎn)發(fā)現(xiàn)自己在一段時(shí)間內(nèi)總是收到從某個(gè)上游節(jié)點(diǎn) 發(fā)來(lái)的不帶有新信息的分組時(shí),則確定該上游節(jié)點(diǎn)應(yīng)該減小分組的發(fā)送速 度,于是向該上游節(jié)點(diǎn)發(fā)送減小發(fā)送速率的信令。上游節(jié)點(diǎn)在收到由某個(gè)下 游節(jié)點(diǎn)發(fā)送來(lái)的減小發(fā)送速率信令后,開始逐漸減小向該下游節(jié)點(diǎn)發(fā)送分組 的速率,直到不再收到減小發(fā)送速率的信令為止??梢钥闯錾嫌喂?jié)點(diǎn)只能被動(dòng)地根據(jù)下游節(jié)點(diǎn)的信令,作出減少分組發(fā) 送速率的動(dòng)作,在上游節(jié)點(diǎn)調(diào)整到合適的發(fā)送速率之前,節(jié)點(diǎn)間會(huì)傳送相當(dāng) 數(shù)量不攜帶新信息的分組,從而出向鏈路上會(huì)有大量的帶寬被不必要地浪費(fèi) 掉,同時(shí)也降低了多播傳輸效率。另外,現(xiàn)有技術(shù)中,為了解決原當(dāng)前代與新當(dāng)前代交換的過(guò)程中存在的 帶寬浪費(fèi)現(xiàn)象,提出將多代分組看作一組分組進(jìn)行處理的方案,以讓中間節(jié) 點(diǎn)將多代分組看作同一代分組來(lái)操作,從而通過(guò)減少代交換次數(shù)以減小帶寬 浪費(fèi)。但是,該方案要求中間節(jié)點(diǎn)的緩存空間中同時(shí)存儲(chǔ)多代的分組,嚴(yán)重 增加了節(jié)點(diǎn)的緩存開銷。發(fā)明內(nèi)容本發(fā)明實(shí)施例提供一種提高基于隨機(jī)編碼網(wǎng)絡(luò)的多播傳輸效率的方法及裝置,以減少多播邏輯子拓樸中冗余信息的傳送,提高多播效率。本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的一種提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳輸效率的方法,包括多播邏輯子拓樸中的下游節(jié)點(diǎn)向自身的上游節(jié)點(diǎn)發(fā)送自身已收到的數(shù)據(jù)塊信息,上游節(jié)點(diǎn)接收并保存該數(shù)據(jù)塊信息;所述上游節(jié)點(diǎn)獲得發(fā)送機(jī)會(huì),根據(jù)已保存的下游節(jié)點(diǎn)的數(shù)據(jù)塊信息和自 身已收到的數(shù)據(jù)塊信息,通過(guò)網(wǎng)絡(luò)編碼構(gòu)造攜帶新信息的多播分組,將該多 播分組發(fā)送給下游節(jié)點(diǎn)。一種提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳輸效率的裝置,包括分組接收模塊,接收上游節(jié)點(diǎn)發(fā)來(lái)的多播分組,將已收到的分組所指示 的數(shù)據(jù)塊信息發(fā)送給上游節(jié)點(diǎn),將該分組存儲(chǔ)在分組緩存模塊中;下游節(jié)點(diǎn)數(shù)據(jù)緩存模塊,存儲(chǔ)下游節(jié)點(diǎn)發(fā)來(lái)的數(shù)據(jù)塊信息;分組緩存模塊,存儲(chǔ)自身節(jié)點(diǎn)收到的多播分組;分組發(fā)送模塊,在獲得一個(gè)發(fā)送機(jī)會(huì)時(shí),向線性組合模塊發(fā)送組合指示, 將線性組合模塊發(fā)來(lái)的向量和數(shù)據(jù)塊封裝入多播分組,將該多播分組從有發(fā) 送機(jī)會(huì)的出向鏈路發(fā)送給下游節(jié)點(diǎn);線性組合模塊,接收組合指示,從分組緩存模塊獲取當(dāng)前代的所有多播 分組,從下游節(jié)點(diǎn)數(shù)據(jù)緩存模塊獲取下游節(jié)點(diǎn)已收到的數(shù)據(jù)塊信息,根據(jù)獲 取的所有多播分組和數(shù)據(jù)塊信息,生成將為下游節(jié)點(diǎn)提供新信息的數(shù)據(jù)塊, 生成與該數(shù)據(jù)塊對(duì)應(yīng)的向量,將生成的數(shù)據(jù)塊和向量發(fā)送給分組發(fā)送模塊。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例中,下游節(jié)點(diǎn)將自身已收到的數(shù)據(jù)塊信 息發(fā)送給上游節(jié)點(diǎn),這樣上游節(jié)點(diǎn)在要向下游節(jié)點(diǎn)發(fā)送多播分組時(shí),就可根 據(jù)下游節(jié)點(diǎn)發(fā)來(lái)的數(shù)據(jù)塊信息,確定該多播分組是否將為下游節(jié)點(diǎn)提供新信 息,減少了不攜帶新信息的多播分組在多播邏輯子拓樸中的傳送,從而減少 了帶寬的浪費(fèi),并提高了多播效率。


圖1為現(xiàn)有的網(wǎng)絡(luò)編碼對(duì)網(wǎng)絡(luò)吞吐率改善的網(wǎng)絡(luò)拓樸示意圖; 圖2為現(xiàn)有的基于隨機(jī)網(wǎng)絡(luò)編碼的多播流程圖;圖3為基于隨機(jī)網(wǎng)絡(luò)編碼的多播分組的結(jié)構(gòu)示意圖; 圖4-1和4-2為本發(fā)明實(shí)施例一提供的提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳 輸效率的流程圖;圖5-1和5-2為本發(fā)明實(shí)施例二提供的提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳 輸效率的流程圖;圖6為本發(fā)明實(shí)施例提供的提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳輸效率的 裝置組成圖。
具體實(shí)施方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn) 一 步詳細(xì)的說(shuō)明。為方便描述起見(jiàn),首先給出本發(fā)明實(shí)施例所使用的主要技術(shù)用語(yǔ)的定義當(dāng)前代節(jié)點(diǎn)正在處理的分組所屬的代稱為當(dāng)前代。編碼向量通知信令當(dāng)節(jié)點(diǎn)收到上游節(jié)點(diǎn)發(fā)來(lái)的攜帶新信息的多播分組時(shí),節(jié)點(diǎn)將該分組攜帶的編碼向量攜帶在該編碼向量通知信令中發(fā)送給所有 上游節(jié)點(diǎn);節(jié)點(diǎn)在向下游節(jié)點(diǎn)發(fā)送數(shù)據(jù)前,根據(jù)所有下游節(jié)點(diǎn)發(fā)來(lái)的編碼向 量通知信令中提供的編碼向量,判斷待發(fā)送數(shù)據(jù)是否將為下游節(jié)點(diǎn)提供新信 息。向量緩存空間節(jié)點(diǎn)為自己的每一個(gè)下游節(jié)點(diǎn)維護(hù)一個(gè)向量緩存空間。 節(jié)點(diǎn)通過(guò)下游節(jié)點(diǎn)發(fā)來(lái)的編碼向量通知信令獲知每個(gè)下游節(jié)點(diǎn)已收到的數(shù) 據(jù)塊對(duì)應(yīng)的編碼向量,并將該編碼向量保存在為該下游節(jié)點(diǎn)維護(hù)的向量緩存 空間中。分組緩存空間節(jié)點(diǎn)為自己的每一個(gè)上游節(jié)點(diǎn)維護(hù)一個(gè)分組緩存空間。 當(dāng)節(jié)點(diǎn)收到某個(gè)上游節(jié)點(diǎn)發(fā)來(lái)的攜帶新信息的多播分組后,將該多播分組保 存在為該上游節(jié)點(diǎn)維護(hù)的分組緩存空間中。結(jié)束(End)信令源節(jié)點(diǎn)在發(fā)送完所有的原始數(shù)據(jù)后,通過(guò)該結(jié)束信 令通知全網(wǎng)多播過(guò)程結(jié)束。解碼成功信令宿節(jié)點(diǎn)成功解碼某代數(shù)據(jù)后向源節(jié)點(diǎn)反饋該解碼成功信令。信息量不足信令宿節(jié)點(diǎn)如果在完成原當(dāng)前代向新當(dāng)前代轉(zhuǎn)換時(shí),仍然 沒(méi)有成功解碼原當(dāng)前代的數(shù)據(jù),則向源節(jié)點(diǎn)發(fā)送該信息量不足信令。圖4為本發(fā)明實(shí)施例一提供的提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳輸效率 的流程圖,如圖4所示,其具體步驟如下步驟401:在多播過(guò)程開始前,在現(xiàn)有網(wǎng)絡(luò)的基礎(chǔ)上計(jì)算出一個(gè)多播過(guò) 程使用的邏輯子拓樸,并將計(jì)算結(jié)果發(fā)送給該子拓樸中的各節(jié)點(diǎn),以通知各 節(jié)點(diǎn)其上游節(jié)點(diǎn)和下游節(jié)點(diǎn)、以及發(fā)送多播分組所使用的多播速率。構(gòu)造多播過(guò)程使用的邏輯子拓樸的過(guò)程與現(xiàn)有技術(shù)相同,可以由路由 器,或者源節(jié)點(diǎn),或者p2p多播過(guò)程中的服務(wù)器,或者其它擁有整個(gè)網(wǎng)絡(luò)的 拓樸信息的節(jié)點(diǎn)利用現(xiàn)有技術(shù)計(jì)算得到。步驟402:源節(jié)點(diǎn)將上層實(shí)體發(fā)來(lái)的數(shù)據(jù)塊分代。由于每代的原始數(shù)據(jù)塊的數(shù)量越多,網(wǎng)絡(luò)中的鏈路帶寬和時(shí)延抖動(dòng)對(duì)網(wǎng) 絡(luò)吞吐率的不利影響越小,但編碼向量在多播分組中占用的開銷也越大,因 此,必須根據(jù)網(wǎng)絡(luò)環(huán)境合理選擇每代的原始數(shù)據(jù)塊的數(shù)目。在一般的IP網(wǎng) 絡(luò)中,每代的原始數(shù)據(jù)塊以35個(gè)左右為宜,此時(shí)可以適應(yīng)一般情況下的網(wǎng) 絡(luò)狀態(tài)變化,而編碼向量在多播分組中所占的開銷約為2%。步驟403:源節(jié)點(diǎn)檢測(cè)到一條出向鏈路有發(fā)送機(jī)會(huì),判斷是否要轉(zhuǎn)入下 一代多播分組的發(fā)送,若是,執(zhí)行步驟404;否則,執(zhí)行步驟405。源節(jié)點(diǎn)可預(yù)先設(shè)定每代分組的持續(xù)發(fā)送總數(shù),當(dāng)已發(fā)送的當(dāng)前代的多播 分組的數(shù)目小于該持續(xù)發(fā)送總數(shù)時(shí),確定繼續(xù)進(jìn)行當(dāng)前代分組的發(fā)送;當(dāng)已 發(fā)送的當(dāng)前代的多播分組的數(shù)目等于該持續(xù)發(fā)送總數(shù)時(shí),確定要轉(zhuǎn)入下一代 分組的發(fā)送?;蛘?,源節(jié)點(diǎn)也可預(yù)先設(shè)定每代分組的持續(xù)發(fā)送時(shí)長(zhǎng),當(dāng)發(fā)送當(dāng)前代分 組已持續(xù)的時(shí)長(zhǎng)小于該持續(xù)發(fā)送時(shí)長(zhǎng)時(shí),確定繼續(xù)進(jìn)行當(dāng)前代分組的發(fā)送; 當(dāng)發(fā)送當(dāng)前代分組已持續(xù)的時(shí)長(zhǎng)等于該持續(xù)發(fā)送時(shí)長(zhǎng)時(shí),確定要轉(zhuǎn)入下一代分組的發(fā)送。本實(shí)施例中,當(dāng)源節(jié)點(diǎn)判定要轉(zhuǎn)入下一代多播分組的發(fā)送后,進(jìn)一步判斷當(dāng)前代是否為最后一代,若是,將結(jié)束(END)信令多播到自身的所有出 向鏈路上,結(jié)束本次多播過(guò)程;否則,執(zhí)行步驟404。步驟404:源節(jié)點(diǎn)將當(dāng)前代的下 一代作為新的當(dāng)前代。步驟405:源節(jié)點(diǎn)隨機(jī)生成一個(gè)d維編碼向量,然后將該d維編碼向量 與當(dāng)前代的d個(gè)待發(fā)送原始數(shù)據(jù)塊進(jìn)行矩陣相乘,將相乘得到的數(shù)據(jù)塊封裝 入多播分組,然后將當(dāng)前代的代編號(hào)以及該d維編碼向量填入多播分組頭部 后,將該多播分組從有發(fā)送機(jī)會(huì)的出向鏈路發(fā)送出去。這里,d為原始數(shù)據(jù)塊的數(shù)目,d為自然數(shù)。多播分組的格式如圖3所示。步驟406:中間節(jié)點(diǎn)收到多播分組,且該多播分組攜帶的代編號(hào) > 當(dāng)前 代的代編號(hào),判斷該多播分組是否攜帶了新信息,若是,執(zhí)行步驟407;否 則,丟棄該多播分組,轉(zhuǎn)至步驟409。這里,當(dāng)前代指的是中間節(jié)點(diǎn)正在進(jìn)行的多播分組發(fā)送過(guò)程中的多播分 組所屬的代。中間節(jié)點(diǎn)收到第一個(gè)屬于第一代的多播分組之后,將第 一代作為當(dāng)前 代,此后,可通過(guò)如下方法確定當(dāng)前代的代編號(hào)更改當(dāng)中間節(jié)點(diǎn)的當(dāng)前代 為第m代,且該中間節(jié)點(diǎn)的所有入向鏈路都已收到第m+l代的多播分組時(shí), 或者某條入向鏈路已收到第m+2代的多播分組時(shí),中間節(jié)點(diǎn)將當(dāng)前代的下 一代作為新的當(dāng)前代。若中間節(jié)點(diǎn)收到代編號(hào) < 當(dāng)前代編號(hào)的多播分組,會(huì)直接將該多播分組 丟棄。中間節(jié)點(diǎn)判斷該多播分組是否攜帶了新信息的過(guò)程與現(xiàn)有技術(shù)相同, 即若中間節(jié)點(diǎn)在收到該多播分組前,已收到了 a個(gè)與該多播分組屬于同一 代的多播分組,則若該a+l個(gè)多播分組頭部中的a+l個(gè)編碼向量線性無(wú)關(guān), 則確定該多播分組攜帶了新信息。15步驟407:中間節(jié)點(diǎn)根據(jù)該多播分組的代編號(hào),將該多播分組保存到與 該代編號(hào)對(duì)應(yīng)的分組緩存空間中,并生成一個(gè)編碼向量通知信令,在該信令 中填入該多播分組的編碼向量和代編號(hào),將該信令廣播到自己所有的上游節(jié)點(diǎn)。中間節(jié)點(diǎn)為代編號(hào) > 當(dāng)前代編號(hào)的每個(gè)代分配一個(gè)分組緩存空間,用于 保存已收到的各代的多播分組。且,當(dāng)中間節(jié)點(diǎn)確定當(dāng)前代的代編號(hào)已更新 即已開始轉(zhuǎn)入新當(dāng)前代的多播分組的發(fā)送后,將屬于原當(dāng)前代的多播分組 全部從分組緩存空間中清除。在本步驟中,中間節(jié)點(diǎn)也可不將多播分組的編碼向量填入編碼向量通知 信令,而將該多播分組中的數(shù)據(jù)塊所對(duì)應(yīng)的原始數(shù)據(jù)塊標(biāo)識(shí)填入該信令,該 原始數(shù)據(jù)塊標(biāo)識(shí)可根據(jù)各原始數(shù)據(jù)塊所對(duì)應(yīng)的編碼向量和該多播分組中的 編碼向量推導(dǎo)得知,例如當(dāng)步驟405中隨機(jī)生成的d維編碼向量與d個(gè)原 始數(shù)據(jù)塊進(jìn)行矩陣相乘時(shí),設(shè)定按照d個(gè)原始數(shù)據(jù)塊在該d個(gè)原始數(shù)據(jù)塊構(gòu) 成的矩陣中的行位置,分別將位于第1行的原始數(shù)據(jù)塊稱為原始數(shù)據(jù)1、位于第2行的原始數(shù)據(jù)塊稱為原始數(shù)據(jù)塊2.....依此類推。這樣,若多播分組中的編碼向量為(1, 0, 1, 0,...),則可得知該多播分組中的數(shù)據(jù)塊 所對(duì)應(yīng)的原始數(shù)據(jù)塊標(biāo)識(shí)為1和3。另外,中間節(jié)點(diǎn)也可根據(jù)已收到的多 播分組中的編碼向量,確定成功解碼還需的編碼向量或原始數(shù)據(jù)塊標(biāo)識(shí),將 該成功解碼還需的編碼向量或原始數(shù)據(jù)塊標(biāo)識(shí)填入編碼向量通知信令,例 如設(shè)原始數(shù)據(jù)塊的個(gè)數(shù)為d個(gè),中間節(jié)點(diǎn)已收到的多播分組中的編碼向量 為e個(gè),則中間節(jié)點(diǎn)可通過(guò)矩陣運(yùn)算,構(gòu)造出d-e個(gè)編碼向量,該d-e個(gè)編 碼向量與所述e個(gè)編碼向量線性無(wú)關(guān)。步驟408:中間節(jié)點(diǎn)的上游節(jié)點(diǎn)收到該編碼向量通知信令,將該信令中 的編碼向量放入自身為該中間節(jié)點(diǎn)維護(hù)的、且與該信令中的代編號(hào)對(duì)應(yīng)的向 量緩存空間中。每個(gè)中間節(jié)點(diǎn)為自身的每個(gè)下游節(jié)點(diǎn)分別維護(hù) 一 個(gè)向量緩存空間,用于 存儲(chǔ)該下游節(jié)點(diǎn)發(fā)來(lái)的各代的編碼向量。當(dāng)中間節(jié)點(diǎn)的上游節(jié)點(diǎn)確定當(dāng)前代的代編號(hào)已更新即已開始轉(zhuǎn)入新當(dāng) 前代的多播分組的發(fā)送后,將為自身的所有下游節(jié)點(diǎn)維護(hù)的、屬于原當(dāng)前代 的編碼向量全部從向量緩存空間中清除。另外,中間節(jié)點(diǎn)在所有入向鏈路都已收到結(jié)束信令后,或者在收到第一 個(gè)結(jié)束信令預(yù)定時(shí)長(zhǎng)后,會(huì)將分組緩存空間和向量緩存空間清空,并將結(jié)束 信令多播到所有出向鏈路,并在確認(rèn)所有下游節(jié)點(diǎn)已經(jīng)收到該結(jié)束信令后退出當(dāng)前多播過(guò)程。步驟409:中間節(jié)點(diǎn)的出向鏈路獲得一個(gè)發(fā)送機(jī)會(huì),中間節(jié)點(diǎn)將自身分 組緩存空間中的、所有屬于當(dāng)前代的多播分組頭部中的編碼向量進(jìn)行一次隨 機(jī)線性組合,生成一個(gè)新的向量,稱該向量為待判向量。步驟410:中間節(jié)點(diǎn)通過(guò)自身為下游節(jié)點(diǎn)維護(hù)的、當(dāng)前代的向量緩存空 間中保存的編碼向量,判斷該待判向量對(duì)應(yīng)的待發(fā)送數(shù)據(jù)塊是否將為下游節(jié) 點(diǎn)提供新信息,若是,執(zhí)行步驟412;否則,執(zhí)行步驟411。設(shè)該中間節(jié)點(diǎn)為下游節(jié)點(diǎn)維護(hù)的、當(dāng)前代的向量緩存空間中已保存了 a 個(gè)編碼向量,該a個(gè)編碼向量線性無(wú)關(guān),則若該待判向量加入該a個(gè)編碼向 量后,該a+l個(gè)編碼向量線性無(wú)關(guān),則確定該待判向量對(duì)應(yīng)的待發(fā)送數(shù)據(jù)塊 將為下游節(jié)點(diǎn)提供新信息??梢钥闯?,在整個(gè)判斷待發(fā)送數(shù)據(jù)塊是否將為下游節(jié)點(diǎn)提供新信息的過(guò) 程中,參與運(yùn)算的都只是編碼向量而非數(shù)據(jù),而編碼向量的長(zhǎng)度一般只有多播分組總數(shù)據(jù)量的2%,所以判斷過(guò)程并不會(huì)明顯增加計(jì)算負(fù)擔(dān),提高了帶寬利用率。由于中間節(jié)點(diǎn)發(fā)送多播分組可通過(guò)單播方式也可通過(guò)多播方式,當(dāng)通過(guò) 單播方式時(shí),中間節(jié)點(diǎn)在構(gòu)造多播分組時(shí),只需考慮為單播的下游節(jié)點(diǎn)提供 新信息即可。而當(dāng)通過(guò)多播方式時(shí),中間節(jié)點(diǎn)在構(gòu)造多播分組時(shí),則希望該 多播分組能夠?yàn)楸M可能多的多播的下游節(jié)點(diǎn)提供新信息,當(dāng)然最好能為多播 的所有下游節(jié)點(diǎn)都能提供新信息。在實(shí)際應(yīng)用中,中間節(jié)點(diǎn)通常可預(yù)先設(shè)定 一個(gè)百分比,將多播的下游節(jié)點(diǎn)總數(shù)乘以該百分比,向下取整后得到一個(gè)數(shù)目,只要該待判向量對(duì)應(yīng)的待發(fā)送多播分組能夠?yàn)槎嗖サ南掠喂?jié)點(diǎn)中的所述 數(shù)目的下游節(jié)點(diǎn)同時(shí)提供新信息,就認(rèn)為滿足發(fā)送條件。步驟411:中間節(jié)點(diǎn)確定不滿足發(fā)送條件,重新對(duì)所有當(dāng)前代的多播分 組中的編碼向量進(jìn)行隨機(jī)線性組合,直到確定隨機(jī)線性組合得到的待判向量 對(duì)應(yīng)的待發(fā)送數(shù)據(jù)塊將為下游節(jié)點(diǎn)提供新信息時(shí),執(zhí)行步驟412。在步驟409 411中,中間節(jié)點(diǎn)也可根據(jù)自身為下游節(jié)點(diǎn)維護(hù)的、當(dāng)前代 的向量緩存空間中保存的編碼向量,構(gòu)造出若干個(gè)與自身已保存的編碼向量 線性無(wú)關(guān)的編碼向量,根據(jù)構(gòu)造出的編碼向量分析能夠?yàn)橄掠喂?jié)點(diǎn)帶來(lái)新信 息的多播分組對(duì)應(yīng)的編碼向量所應(yīng)滿足的規(guī)則,根據(jù)該規(guī)則,對(duì)自身分組緩 存空間中的、當(dāng)前代的所有多播分組中的編碼向量進(jìn)行線性組合,直至得到 一個(gè)滿足該規(guī)則的編碼向量,則可確定該編碼向量對(duì)應(yīng)的多播分組將為下游 節(jié)點(diǎn)提供新信息。例如中間節(jié)點(diǎn)根據(jù)構(gòu)造出的編碼向量分析出根據(jù)下游 節(jié)點(diǎn)已收到的多播分組已能夠成功解碼原始數(shù)據(jù)塊1和2,則確定在構(gòu)造能 夠?yàn)橄掠喂?jié)點(diǎn)帶來(lái)新信息的多播分組對(duì)應(yīng)的編碼向量時(shí),只需考慮該編碼向 量是否能夠成功解碼原始數(shù)據(jù)塊1和2之外的原始數(shù)據(jù)塊即可。這樣,可以 省略判斷構(gòu)造的編碼向量對(duì)應(yīng)的待發(fā)送數(shù)據(jù)塊是否將為下游節(jié)點(diǎn)提供新信 息的步驟。步驟412:中間節(jié)點(diǎn)確定滿足發(fā)送條件,采用與生成待判向量相同的線 性組合方法,對(duì)已收到的當(dāng)前代的多播分組中的數(shù)據(jù)塊進(jìn)行線性組合,生成 待判向量對(duì)應(yīng)的待發(fā)送數(shù)據(jù)塊,將該待發(fā)送數(shù)據(jù)塊封裝入一個(gè)多播分組,在 該多播分組的頭部填入當(dāng)前代的代編號(hào)和該待判向量,將該多播分組從有發(fā) 送機(jī)會(huì)的出向鏈路發(fā)送出去。步驟413:宿節(jié)點(diǎn)收到代編號(hào)> 當(dāng)前代編號(hào)的多播分組,判斷該多播分 組是否攜帶了新信息,若是,執(zhí)行步驟414;否則,丟棄該多播分組,繼續(xù) 等待下一個(gè)多播分組,本流程結(jié)束。宿節(jié)點(diǎn)確定當(dāng)前代的代編號(hào)的過(guò)程以及確定當(dāng)前代的代編號(hào)更改的過(guò) 程與步驟406中所述中間節(jié)點(diǎn)相同。若宿節(jié)點(diǎn)收到代編號(hào) < 當(dāng)前代編號(hào)的多播分組,會(huì)直接將該多播分組丟棄。步驟414:宿節(jié)點(diǎn)將該多播分組保存到與該多播分組中的代編號(hào)對(duì)應(yīng)的 分組緩存空間中,生成一個(gè)編碼向量通知信令,在該信令中填入該多播分組 的編碼向量和代編號(hào),將該信令廣播到自己所有的上游節(jié)點(diǎn)。可以看出,步驟414與步驟407類似。同樣,與步驟408類似,宿節(jié)點(diǎn) 的上游節(jié)點(diǎn)收到該編碼向量通知信令,將該信令中的編碼向量放入自身為該 宿節(jié)點(diǎn)維護(hù)的、與該信令中的代編號(hào)對(duì)應(yīng)的向量緩存空間中。步驟415:宿節(jié)點(diǎn)對(duì)與該多播分組中的代編號(hào)對(duì)應(yīng)的、分組緩存空間中 的所有多播分組中的數(shù)據(jù)塊進(jìn)行解碼,判斷是否解碼成功,若是,執(zhí)行步驟 416;否則,執(zhí)行步驟417。步驟416:宿節(jié)點(diǎn)向源節(jié)點(diǎn)返回?cái)y帶代編號(hào)的解碼成功信令,將解碼得 到的原始數(shù)據(jù)塊傳送給上層實(shí)體,并將緩存空間中保存的與該多播分組中的 代編號(hào)對(duì)應(yīng)的所有多播分組刪除,繼續(xù)等待下一個(gè)多播分組,本流程結(jié)束。與步驟416對(duì)應(yīng),本實(shí)施例中,源節(jié)點(diǎn)也可根據(jù)如下方法確定是否開始 發(fā)送下一代分組當(dāng)源節(jié)點(diǎn)收到宿節(jié)點(diǎn)返回的解碼成功信令后,也可根據(jù)該信令中攜帶的 代編號(hào),判斷是否已經(jīng)收齊所有宿節(jié)點(diǎn)發(fā)來(lái)的攜帶該代編號(hào)的解碼成功信 令,若是,則確定當(dāng)前代分組發(fā)送過(guò)程結(jié)束,開始發(fā)送下一代多播分組;否 則,繼續(xù)等待下一個(gè)攜帶該代編號(hào)的解碼成功信令。步驟417:宿節(jié)點(diǎn)判斷當(dāng)前是否滿足信息量不足信令發(fā)送條件,若是, 執(zhí)行步驟418;否則,繼續(xù)等待下一個(gè)多播分組,本流程結(jié)束。若宿節(jié)點(diǎn)的當(dāng)前代為第m代,而所有的入向鏈路都開始收到第m+l代 的分組,或者某條入向鏈路已經(jīng)收到了第m+2代的分組,當(dāng)前代數(shù)據(jù)塊仍 不能夠正確解碼,則宿節(jié)點(diǎn)確定滿足信息量不足信令發(fā)送條件。步驟418:宿節(jié)點(diǎn)將成功解碼缺失信息攜帶在信息量不足信令中發(fā)送給 源節(jié)點(diǎn),該信令同時(shí)攜帶代編號(hào)。具體地,若宿節(jié)點(diǎn)已收到的當(dāng)前代的多播分組中,包含f個(gè)線性無(wú)關(guān)的編碼向量,則宿節(jié)點(diǎn)需生成d-f個(gè)編碼向量,使得該d-f個(gè)編碼向量與已收 到的f個(gè)編碼向量即共d個(gè)編碼向量線性無(wú)關(guān),宿節(jié)點(diǎn)可將該d-f個(gè)編碼 向量或已收到所述f個(gè)編碼向量攜帶在信息量不足信令中發(fā)送給源節(jié)點(diǎn)。步驟419:源節(jié)點(diǎn)收到宿節(jié)點(diǎn)發(fā)來(lái)的信息量不足信令后,根據(jù)該信令中 攜帶的代編號(hào)以及成功解碼缺失信息,對(duì)代編號(hào)對(duì)應(yīng)代的原始數(shù)據(jù)塊進(jìn)行線 性組合,將得到的數(shù)據(jù)塊封裝入多播分組,并以相同的線性組合方法,對(duì)原 始數(shù)據(jù)塊對(duì)應(yīng)的編碼向量進(jìn)行線性組合,將得到的編碼向量填入多播分組頭 部,并添加代編號(hào)頭后通過(guò)單播路由機(jī)制發(fā)送至所述發(fā)來(lái)信息量不足信令的 宿節(jié)點(diǎn)。例如若信息量不足信令中攜帶了 d-f個(gè)解碼成功還需的編碼向量,則 源節(jié)點(diǎn)將該d-f個(gè)編碼向量分別與信息量不足信令中攜帶的代編號(hào)對(duì)應(yīng)的d 個(gè)原始數(shù)據(jù)塊進(jìn)行矩陣相乘,將每次相乘得到的數(shù)據(jù)塊封裝入一個(gè)多播分 組,將得到的d-f個(gè)多播分組通過(guò)單播路由機(jī)制發(fā)送至所述發(fā)來(lái)信息量不足 信令的宿節(jié)點(diǎn)。網(wǎng)絡(luò)中的所有節(jié)點(diǎn)收到該以單播方式傳送的多播分組后,將該多播分組 作為傳輸優(yōu)先級(jí)最高的多播分組來(lái)發(fā)送。步驟420:宿節(jié)點(diǎn)收到通過(guò)單播路由機(jī)制發(fā)來(lái)的多播分組后,將該多播 分組放入與該多播分組中的代編號(hào)對(duì)應(yīng)的分組緩存空間,然后根據(jù)該多播分 組頭部中的代編號(hào),從分組緩存空間中讀取與該代編號(hào)對(duì)應(yīng)的多播分組中的 所有編碼向量,根據(jù)該讀取的編碼向量與該收到的多播分組頭部中的編碼向 量,判斷是否能夠解碼成功,若是,則向源節(jié)點(diǎn)發(fā)送攜帶代編號(hào)的解碼成功 信令,繼續(xù)等待下一個(gè)多播分組;否則,繼續(xù)等待源節(jié)點(diǎn)發(fā)來(lái)的多播分組。在本發(fā)明實(shí)施例中,在宿節(jié)點(diǎn)確定已進(jìn)入新當(dāng)前代的分組發(fā)送過(guò)程而對(duì) 原當(dāng)前代的解碼仍不成功后,也可通過(guò)如下方法獲取成功解碼還需的數(shù)據(jù)首先,每個(gè)中間節(jié)點(diǎn)在確定已進(jìn)入新當(dāng)前代的分組發(fā)送過(guò)程后,仍在預(yù) 定時(shí)長(zhǎng)內(nèi)暫存儲(chǔ)原當(dāng)前代的分組;然后,宿節(jié)點(diǎn)確定已進(jìn)入新當(dāng)前代的分組發(fā)送過(guò)程而對(duì)原當(dāng)前代的解碼仍不成功后,將成功解碼缺失信息和原當(dāng)前代 代編號(hào)攜帶在信息量不足信令中,將該信令由下而上逐級(jí)反饋給各中間節(jié) 點(diǎn),當(dāng)中間節(jié)點(diǎn)收到宿節(jié)點(diǎn)發(fā)來(lái)的信息量不足信令后,根據(jù)該信令中的成功 解碼缺失信息,判斷自身是否能夠提供成功解碼還需的數(shù)據(jù),若能,則對(duì)自 身保存的原當(dāng)前代的所有多播分組進(jìn)行線性組合,將得到的數(shù)據(jù)塊封裝入多 播分組,然后對(duì)各數(shù)據(jù)塊對(duì)應(yīng)的編碼向量進(jìn)行相同的線性組合,將得到的新 編碼向量和代編號(hào)封裝入多播分組頭部,然后將該多播分組發(fā)送給宿節(jié)點(diǎn),同時(shí),停止該信息量不足信令的傳送。若所有中間節(jié)點(diǎn)都未保存與所述信息 量不足信令中的缺失信息對(duì)應(yīng)的多播分組,則該信令將被傳送給源節(jié)點(diǎn),由 源節(jié)點(diǎn)構(gòu)造與該缺失信息對(duì)應(yīng)的多播分組,并將該多播分組傳送給宿節(jié)點(diǎn)。圖4所示實(shí)施例給出的是,中間節(jié)點(diǎn)和宿節(jié)點(diǎn)只要收到攜帶新信息的多 播分組,就將該多播分組中的編碼向量通過(guò)編碼向量通知信令發(fā)送給上游節(jié) 點(diǎn)。在實(shí)際應(yīng)用中,為了減少信令開銷,中間節(jié)點(diǎn)或宿節(jié)點(diǎn)也可每隔一段時(shí) 間,向上游節(jié)點(diǎn)發(fā)送一次自身在該段時(shí)間內(nèi)收到的、攜帶新信息的多播分組 中的編碼向量。在圖4所示實(shí)施例中,每個(gè)中間節(jié)點(diǎn)或宿節(jié)點(diǎn)在收到 一個(gè)攜帶了新信息 的多播分組后,都要將該多播分組的編碼向量通過(guò)編碼向量通知信令發(fā)送給 上游節(jié)點(diǎn),以便上游節(jié)點(diǎn)在發(fā)送多播分組時(shí),根據(jù)自身緩存的所有下游節(jié)點(diǎn) 的編碼向量,判斷待發(fā)送多播分組是否將為下游節(jié)點(diǎn)提供新信息。該處理過(guò) 程在網(wǎng)絡(luò)狀況不穩(wěn)定時(shí),可以避免冗余多播分組的傳送,提高帶寬利用率, 但是,編碼向量通知信令的頻繁發(fā)送也會(huì)增加網(wǎng)絡(luò)開銷。對(duì)于多播分組長(zhǎng)度 較短,鏈路狀況不穩(wěn)定的網(wǎng)絡(luò),則可以采用以下方法減少編碼向量通知信令 帶來(lái)的網(wǎng)絡(luò)開銷圖5為本發(fā)明實(shí)施例二提供的提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳輸效率 的流程圖,如圖5所示,其具體步驟如下 步驟501與步驟401相同。步驟502:每個(gè)中間節(jié)點(diǎn)為自身的每個(gè)下游節(jié)點(diǎn)分別設(shè)置一個(gè)狀態(tài)標(biāo)志位,且將該狀態(tài)標(biāo)志位初始化為0;同時(shí),每個(gè)中間節(jié)點(diǎn)和每個(gè)宿節(jié)點(diǎn)分別 為自身的每個(gè)上游節(jié)點(diǎn)分別設(shè)置一個(gè)狀態(tài)標(biāo)志位,且將該狀態(tài)標(biāo)志位初始化 為0。當(dāng)中間節(jié)點(diǎn)確定已完成從原當(dāng)前代到新當(dāng)前代的轉(zhuǎn)換時(shí),該中間節(jié)點(diǎn)要 將自身為每個(gè)下游節(jié)點(diǎn)和每個(gè)上游節(jié)點(diǎn)設(shè)置的狀態(tài)標(biāo)志位置0;當(dāng)宿節(jié)點(diǎn)確 定已完成從原當(dāng)前代到新當(dāng)前代的轉(zhuǎn)換時(shí),也要將自身為每個(gè)上游節(jié)點(diǎn)設(shè)置 的狀態(tài)標(biāo)志位置0。步驟503 506與步驟402 405相同。步驟507:中間節(jié)點(diǎn)收到代編號(hào)> 當(dāng)前代編號(hào)的多播分組,判斷該多播 分組是否攜帶了新信息,若是,執(zhí)行步驟508;否則,執(zhí)行步驟511。步驟508:中間節(jié)點(diǎn)根據(jù)該多播分組的代編號(hào),將該多播分組保存到與 該代編號(hào)對(duì)應(yīng)的分組緩存空間中。步驟509:中間節(jié)點(diǎn)判斷發(fā)送該多播分組的上游節(jié)點(diǎn)的狀態(tài)標(biāo)志位是否 為1,若是,執(zhí)行步驟510;否則,轉(zhuǎn)至步驟514。步驟510:中間節(jié)點(diǎn)將該多播分組頭部中的編碼向量和代編號(hào)通過(guò)編碼 向量通知信令發(fā)送給上游節(jié)點(diǎn),轉(zhuǎn)至步驟514。上游節(jié)點(diǎn)收到該編碼向量和代編號(hào)后,將該編碼向量保存到自身為所述 中間節(jié)點(diǎn)維護(hù)的、與該代編號(hào)對(duì)應(yīng)的向量緩存空間中。步驟511:中間節(jié)點(diǎn)丟棄該多播分組,并判斷自身保存的該上游節(jié)點(diǎn)的 狀態(tài)標(biāo)志位是否為O,若是,執(zhí)行步驟512;否則,轉(zhuǎn)至步驟514。步驟512:中間節(jié)點(diǎn)生成一個(gè)編碼向量通知信令,在該信令中填入自身 已收到的當(dāng)前代的所有多播分組的編碼向量和代編號(hào),將該信令發(fā)送給發(fā)來(lái) 該多播分組的上游節(jié)點(diǎn),同時(shí)將自身保存的該上游節(jié)點(diǎn)的狀態(tài)標(biāo)志位置1。步驟513:中間節(jié)點(diǎn)的上游節(jié)點(diǎn)收到該編碼向量通知信令,將該信令中 的編碼向量放入自身為該中間節(jié)點(diǎn)維護(hù)的、且與該信令中的代編號(hào)對(duì)應(yīng)的向 量緩存空間中,同時(shí)將自身保存的該下游節(jié)點(diǎn)的狀態(tài)標(biāo)志位置1。步驟514:中間節(jié)點(diǎn)的一條出向鏈路獲得一個(gè)發(fā)送機(jī)會(huì),中間節(jié)點(diǎn)將自身緩存空間中的、所有屬于當(dāng)前代的多播分組頭部中的編碼向量進(jìn)行一次隨 機(jī)線性組合,生成一個(gè)新的向量,稱該向量為待判向量。步驟515:中間節(jié)點(diǎn)判斷自身保存的與該出向鏈路對(duì)應(yīng)的下游節(jié)點(diǎn)的狀 態(tài)標(biāo)志位是否為0,若是,執(zhí)行步驟518;否則,執(zhí)行步驟516。 步驟516~518與步驟410~412相同。步驟519:宿節(jié)點(diǎn)收到代編號(hào)> 當(dāng)前代編號(hào)的多播分組,判斷該多播分 組是否攜帶了新信息,若是,執(zhí)行步驟520;否則,執(zhí)行步驟523。步驟520:宿節(jié)點(diǎn)根據(jù)該多播分組的代編號(hào),將該多播分組保存到與該 代編號(hào)對(duì)應(yīng)的分組緩存空間中。步驟521:宿節(jié)點(diǎn)判斷發(fā)送該多播分組的上游節(jié)點(diǎn)的狀態(tài)標(biāo)志位是否為 1,若是,執(zhí)行步驟522;否則,轉(zhuǎn)至步驟526。步驟522:宿節(jié)點(diǎn)將該多播分組頭部中的編碼向量和代編號(hào)通過(guò)編碼向 量通知信令發(fā)送給上游節(jié)點(diǎn),轉(zhuǎn)至步驟526。上游節(jié)點(diǎn)收到該編碼向量和代編號(hào)后,將該編碼向量保存到自身為所述 中間節(jié)點(diǎn)維護(hù)的、與該代編號(hào)對(duì)應(yīng)的向量緩存空間中。步驟523:宿節(jié)點(diǎn)丟棄該多播分組,并判斷自身保存的該上游節(jié)點(diǎn)的狀 態(tài)標(biāo)志位是否為O,若是,執(zhí)行步驟524;否則,繼續(xù)等待下一個(gè)多播分組, 本流程結(jié)束。步驟524:宿節(jié)點(diǎn)生成一個(gè)編碼向量通知信令,在該信令中填入自身已 收到的當(dāng)前代的所有多播分組的編碼向量和代編號(hào),將該信令發(fā)送給發(fā)來(lái)該 多播分組的上游節(jié)點(diǎn),同時(shí)將自身保存的該上游節(jié)點(diǎn)的狀態(tài)標(biāo)志位置1。步驟525:宿節(jié)點(diǎn)的上游節(jié)點(diǎn)收到該編碼向量通知信令,將該信令中的 編碼向量放入自身為該宿節(jié)點(diǎn)維護(hù)的、且與該信令中的代編號(hào)對(duì)應(yīng)的向量緩 存空間中,同時(shí)將自身保存的該宿節(jié)點(diǎn)的狀態(tài)標(biāo)志位置1。步驟526 - 531與步驟415 ~420相同。圖6為本發(fā)明實(shí)施例提供的提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳輸效率的 裝置組成圖,如圖6所示,其主要包括分組接收模塊61、向量緩存模塊62、分組緩存模塊63、分組發(fā)送模塊64和線性組合模塊65,其中分組接收模塊61:用于接收上游節(jié)點(diǎn)發(fā)來(lái)的代編號(hào)> 當(dāng)前代編號(hào)的多 播分組,根據(jù)該多播分組頭部中的代編號(hào),在分組緩存模塊63中查找與該 代編號(hào)對(duì)應(yīng)的多播分組頭部中的編碼向量,根據(jù)查找到的所有編碼向量以及 該多播分組頭部中的編碼向量,判斷該多播分組是否攜帶了新信息,若是, 將該多播分組存儲(chǔ)到分組緩存模塊63中,將該多播分組頭部中的編碼向量 和代編號(hào)通過(guò)編碼向量通知信令發(fā)送給所有上游節(jié)點(diǎn);否則,丟棄該多播分 組。向量緩存模塊62:用于存儲(chǔ)下游節(jié)點(diǎn)發(fā)來(lái)的編碼向量通知信令中的編 碼向量和代編號(hào)。分組緩存模塊63:用于存儲(chǔ)分組接收模塊61發(fā)來(lái)的自身節(jié)點(diǎn)收到的攜 帶新信息的多播分組。分組發(fā)送模塊64:用于在確定有一條出向鏈路獲得一個(gè)發(fā)送機(jī)會(huì)時(shí), 向線性組合模塊65發(fā)送組合指示,接收線性組合模塊65發(fā)來(lái)的向量和數(shù)據(jù) 塊,將該數(shù)據(jù)塊封裝入多播分組,將該向量和當(dāng)前代編碼封裝入多播分組頭 部,將該封裝好的多播分組從所述出向鏈路發(fā)送給下游節(jié)點(diǎn)。線性組合模塊65:用于在收到分組發(fā)送模塊64發(fā)來(lái)的組合指示后,從 分組緩存模塊63獲取當(dāng)前代的所有多播分組中的編碼向量,對(duì)該獲取的所 有編碼向量進(jìn)行隨機(jī)線性組合,生成一個(gè)待判向量,從向量緩存模塊62中 獲取有發(fā)送機(jī)會(huì)的出向鏈路對(duì)應(yīng)的下游節(jié)點(diǎn)的、與當(dāng)前代標(biāo)識(shí)對(duì)應(yīng)的所有編 碼向量,根據(jù)獲取的所有編碼向量,判斷該待判向量對(duì)應(yīng)的待發(fā)送多播分組 是否將為下游節(jié)點(diǎn)提供新信息,若是,采用與生成該待判向量相同的線性組 合方法,對(duì)分組緩存模塊63中緩存的當(dāng)前代的所有多播分組中的數(shù)據(jù)塊進(jìn) 行線性組合,將生成的數(shù)據(jù)塊和該待判向量發(fā)送給分組發(fā)送模塊64;否則, 繼續(xù)對(duì)自身節(jié)點(diǎn)當(dāng)前代的所有編碼向量進(jìn)行隨機(jī)線性組合,直至所生成的待 判向量對(duì)應(yīng)的待發(fā)送多播分組將為下游節(jié)點(diǎn)提供新信息時(shí),采用與生成該待 判向量相同的線性組合方法,對(duì)分組緩存模塊63中緩存的當(dāng)前代的所有多播分組中的數(shù)據(jù)塊進(jìn)行線性組合,將生成的數(shù)據(jù)塊和該待判向量發(fā)送給分組 發(fā)送模塊64。本發(fā)明實(shí)施例提供的裝置還可進(jìn)一步包括狀態(tài)標(biāo)志設(shè)置模塊66:用 于為自身的每個(gè)上游節(jié)點(diǎn)和每個(gè)下游節(jié)點(diǎn)分別設(shè)置一個(gè)狀態(tài)標(biāo)志位,并在多 播開始時(shí)、以及自身節(jié)點(diǎn)完成從原當(dāng)前代到新當(dāng)前代的轉(zhuǎn)換時(shí),將所有狀態(tài) 才示志^f立置為0。同時(shí),分組接收模塊61在判定上游節(jié)點(diǎn)發(fā)來(lái)的多播分組攜帶了新信息 時(shí),向狀態(tài)標(biāo)志設(shè)置模塊66查詢?cè)撋嫌喂?jié)點(diǎn)的狀態(tài)標(biāo)志位,若為1,則將 該多播分組頭部中的編碼向量和代編號(hào)通過(guò)編碼向量通知信令發(fā)送給該上 游節(jié)點(diǎn);否則,不將該多播分組頭部中的編碼向量和代編號(hào)發(fā)送給該上游節(jié) 點(diǎn)。在判定上游節(jié)點(diǎn)發(fā)來(lái)的多播分組不攜帶新信息時(shí),向狀態(tài)標(biāo)志設(shè)置模塊 66查詢?cè)撋嫌喂?jié)點(diǎn)的狀態(tài)標(biāo)志位,若為0,則將狀態(tài)標(biāo)志設(shè)置模塊66中存 儲(chǔ)的該上游節(jié)點(diǎn)的狀態(tài)標(biāo)志位置為1,并丟棄該多播分組,同時(shí)從分組緩存 模塊63中獲取與該多播分組頭部中的代編號(hào)對(duì)應(yīng)的所有多播分組頭部中的 編碼向量和代編號(hào),將獲取的所有編碼向量和代編號(hào)通過(guò)編碼向量通知信令 發(fā)送給所述上游節(jié)點(diǎn);若為1,直接丟棄該多播分組。同時(shí),分組發(fā)送模塊64還可在確定有一條出向鏈路獲得一個(gè)發(fā)送機(jī)會(huì) 時(shí),向狀態(tài)標(biāo)志查詢模塊66查詢獲得該出向鏈路指向的下游節(jié)點(diǎn)的狀態(tài)標(biāo) 志位,并將查詢得到的狀態(tài)標(biāo)志位與線性組合指示一起發(fā)送給線性組合模塊 65。線性組合模塊65接收分組發(fā)送模塊64發(fā)來(lái)的狀態(tài)標(biāo)志位,并在生成待 判向量后,判斷分組發(fā)送模塊64發(fā)來(lái)的狀態(tài)標(biāo)志位是否為0,若是,釆用 與生成該待判向量相同的線性組合方法,對(duì)分組緩存模塊63中緩存的當(dāng)前 代的所有多播分組中的數(shù)據(jù)塊進(jìn)行線性組合,將生成的數(shù)據(jù)塊和該待判向量 發(fā)送給多播分組發(fā)送模塊64;否則,判斷該待判向量對(duì)應(yīng)的待發(fā)送多播分 組是否將為下游節(jié)點(diǎn)提供新信息。另外,本發(fā)明實(shí)施例提供的裝置還可包括結(jié)束處理模塊67,用于在自身的所有入向鏈路都已收到上游節(jié)點(diǎn)發(fā)來(lái)的結(jié)束信令后,或者自身收到第一個(gè)結(jié)束信令預(yù)定時(shí)長(zhǎng)后,向分組緩存模塊63和向量緩存模塊62發(fā)送清除指令,同時(shí)將該結(jié)束信令多播到自身的所有出向鏈路,并在確認(rèn)收到自身所 有下游節(jié)點(diǎn)發(fā)來(lái)的結(jié)束確認(rèn)信令后退出該多播過(guò)程。同時(shí),所述分組緩存模塊63在收到所述清除指令后,清除自身緩存的 所有多播分組。所述向量緩存模塊62在收到所述清除指令后,清除自身緩存的所有編 碼向量。另外,本發(fā)明實(shí)施例提供的裝置還可進(jìn)一步包括解碼模塊68:接收 分組接收模塊61發(fā)來(lái)的多播分組,從分組緩存模塊63中取出與該多播分組 攜帶的代編號(hào)對(duì)應(yīng)的所有多播分組中的編碼向量,根據(jù)該取出的編碼向量以 及該多播分組中的編碼向量,判斷是否能夠成功解碼,若是,從分組緩存模 塊63中取出與該多播分組攜帶的代編號(hào)對(duì)應(yīng)的所有多播分組,對(duì)取出的所 有多播分組以及分組接收模塊61發(fā)來(lái)的多播分組中的數(shù)據(jù)塊進(jìn)行解碼,將 解碼得到的原始數(shù)據(jù)塊發(fā)送給上層實(shí)體,并向源節(jié)點(diǎn)返回?cái)y帶代編號(hào)的解碼 成功信令;否則,當(dāng)前是否已完成分組接收模塊61發(fā)來(lái)的多播分組攜帶的 代編號(hào)所對(duì)應(yīng)代向下一代的轉(zhuǎn)換,若是,將成功解碼缺失信息和所述代編號(hào) 攜帶在信息量不足信令中發(fā)送給源節(jié)點(diǎn),接收源節(jié)點(diǎn)發(fā)來(lái)的攜帶所述代編號(hào) 的多播分組,根據(jù)該多播分組以及從分組緩存模塊63取出的與所述代編號(hào) 對(duì)應(yīng)的所有多播分組,對(duì)該代的數(shù)據(jù)塊進(jìn)行解碼。在實(shí)際應(yīng)用中,分組接收模塊61也可在判定多播分組攜帶了新信息之 后,將成功解碼還需的編碼向量發(fā)送給向量緩存模塊62保存。向量緩存模塊62也可以原始數(shù)據(jù)塊信息存儲(chǔ)模塊62代替,原始數(shù)據(jù)塊 信息存儲(chǔ)模塊62中保存的是下游節(jié)點(diǎn)發(fā)來(lái)的代編號(hào)和已收到的多播分組所 指示的原始數(shù)據(jù)塊標(biāo)識(shí)。此時(shí),分組接收模塊61在判定多播分組攜帶了信 息之后,要將該多播分組所指示的原始數(shù)據(jù)塊標(biāo)識(shí)發(fā)送給原始數(shù)據(jù)塊信息存 儲(chǔ)模塊62。26向量緩存模塊62和原始數(shù)據(jù)塊信息存儲(chǔ)模塊62都可稱為下游節(jié)點(diǎn)數(shù)據(jù) 緩存模塊。
需要指出的是,本發(fā)明實(shí)施例中涉及到的所有運(yùn)算可都在8bit的Galois
內(nèi)進(jìn)行。
從圖4所示實(shí)施例可以看出,下游節(jié)點(diǎn)在確定收到的多播分組攜帶新信 息時(shí),將該多播分組的編碼向量和代編號(hào)發(fā)送給所有上游節(jié)點(diǎn),這樣上游節(jié) 點(diǎn)在要向下游節(jié)點(diǎn)發(fā)送多播分組時(shí),就可根據(jù)下游節(jié)點(diǎn)已發(fā)來(lái)的編碼向量, 得到該多播分組是否將為下游節(jié)點(diǎn)提供新信息,避免了不攜帶新信息的多播 分組在多播邏輯子拓樸中的傳送,減少了帶寬的浪費(fèi),并提高了多播效率。
同時(shí),本發(fā)明實(shí)施例在確定所有入向鏈路都收到新當(dāng)前代的多播分組、 或者, 一條入向鏈路已收到新當(dāng)前代的下一代的多播分組時(shí),確定已完成原 當(dāng)前代向新當(dāng)前代的轉(zhuǎn)換,不需增加節(jié)點(diǎn)開銷。
另外,本發(fā)明實(shí)施例中,當(dāng)宿節(jié)點(diǎn)不能正確解碼時(shí),將成功解碼缺失信 息返回給源節(jié)點(diǎn),源節(jié)點(diǎn)根據(jù)該信息構(gòu)造成功解碼還需的數(shù)據(jù)塊,然后將該 數(shù)據(jù)塊攜帶在多播分組中通過(guò)單播路由發(fā)送給宿節(jié)點(diǎn),避免了冗余數(shù)據(jù)塊的 發(fā)送,且提高了解碼成功率。
以上所述僅為本發(fā)明的過(guò)程及方法實(shí)施例,并不用以限制本發(fā)明,凡在 本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在 本發(fā)明的保護(hù)范圍之內(nèi)。
2權(quán)利要求
1、一種提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳輸效率的方法,其特征在于,包括多播邏輯子拓?fù)渲械南掠喂?jié)點(diǎn)向自身的上游節(jié)點(diǎn)發(fā)送自身已收到的數(shù)據(jù)塊信息,上游節(jié)點(diǎn)接收并保存該數(shù)據(jù)塊信息;所述上游節(jié)點(diǎn)獲得發(fā)送機(jī)會(huì),根據(jù)已保存的下游節(jié)點(diǎn)的數(shù)據(jù)塊信息和自身已收到的數(shù)據(jù)塊信息,通過(guò)網(wǎng)絡(luò)編碼構(gòu)造攜帶新信息的多播分組,將該多播分組發(fā)送給下游節(jié)點(diǎn)。
2、 如權(quán)利要求l所述的方法,其特征在于,所述下游節(jié)點(diǎn)向自身的上游節(jié) 點(diǎn)發(fā)送自身已收到的數(shù)據(jù)塊信息為下游節(jié)點(diǎn)向自身的所有上游節(jié)點(diǎn)發(fā)送自身 已收到的數(shù)據(jù)塊信息。
3、 如權(quán)利要求1或2所述的方法,其特征在于,所述下游節(jié)點(diǎn)向自身的上 游節(jié)點(diǎn)發(fā)送自身已收到的數(shù)據(jù)塊信息之前進(jìn)一步包括下游節(jié)點(diǎn)接收上游節(jié)點(diǎn) 發(fā)來(lái)的多播分組,檢測(cè)到該多播分組攜帶了新信息;所述下游節(jié)點(diǎn)向自身的上游節(jié)點(diǎn)發(fā)送自身已收到的數(shù)據(jù)塊信息為下游節(jié) 點(diǎn)向上游節(jié)點(diǎn)發(fā)送該攜帶新信息的多播分組所指示的數(shù)據(jù)塊信息。
4、 如權(quán)利要求l所述的方法,其特征在于,所述下游節(jié)點(diǎn)向上游節(jié)點(diǎn)發(fā)送 的數(shù)據(jù)塊信息為下游節(jié)點(diǎn)已收到的所有多播分組中的線性無(wú)關(guān)的編碼向量;或者,下游節(jié)點(diǎn)已收到的多播分組所指示的原始數(shù)據(jù)塊信息; 或者,下游節(jié)點(diǎn)根據(jù)已收到的所有多播分組中的編碼向量,所確定的成功 解碼還需的編碼向量或原始數(shù)據(jù)塊信息。
5、 如權(quán)利要求1或4所述的方法,其特征在于,所述上游節(jié)點(diǎn)構(gòu)造攜帶新 信息的多播分組包括A、上游節(jié)點(diǎn)將自身保存的所有屬于當(dāng)前代的多播分組頭部中的編碼向量 進(jìn)行線性組合,生成一個(gè)待判向量,根據(jù)自身保存的下游節(jié)點(diǎn)已收到的數(shù)據(jù)塊 信息,判斷該待判向量對(duì)應(yīng)的待發(fā)送多播分組是否將為下游節(jié)點(diǎn)提供新信息, 若是,執(zhí)行步驟B;否則,返回執(zhí)行生成待判向量的動(dòng)作;B、根據(jù)與生成待判向量相同的線性組合方法,對(duì)自身保存的所有屬于當(dāng) 前代的多播分組中的數(shù)據(jù)塊進(jìn)行線性組合,生成一個(gè)數(shù)據(jù)塊,將該數(shù)據(jù)塊、所 述待判向量以及當(dāng)前代標(biāo)識(shí)封裝入多播分組。
6、 如權(quán)利要求l所述的方法,其特征在于,所述中間節(jié)點(diǎn)構(gòu)造攜帶新信息 的多播分組包括中間節(jié)點(diǎn)根據(jù)自身多于一個(gè)下游節(jié)點(diǎn)的已收到的數(shù)據(jù)塊信息、 以及自身已收到的數(shù)據(jù)塊信息,構(gòu)造一個(gè)能夠?yàn)槎嘤谝粋€(gè)下游節(jié)點(diǎn)提供新信息 的多播分組。
7、 如權(quán)利要求l所述的方法,其特征在于,所述下游節(jié)點(diǎn)向自身的上游節(jié)點(diǎn)發(fā)送自身已收到的數(shù)據(jù)塊信息之前進(jìn)一步包括多播邏輯子拓樸中的中間節(jié)點(diǎn)預(yù)先為自身的每個(gè)上游節(jié)點(diǎn)和下游節(jié)點(diǎn)設(shè)置一個(gè)狀態(tài)標(biāo)志,將該狀態(tài)標(biāo)志初始化為無(wú)冗余標(biāo)志;多播邏輯子拓樸中的宿節(jié) 點(diǎn)為自身的每個(gè)上游節(jié)點(diǎn)設(shè)置一個(gè)狀態(tài)標(biāo)志,將該狀態(tài)標(biāo)志初始化為無(wú)冗余標(biāo)志;所述上游節(jié)點(diǎn)獲得發(fā)送機(jī)會(huì)之前進(jìn)一步包括所述下游節(jié)點(diǎn)收到上游節(jié)點(diǎn) 發(fā)來(lái)的不攜帶新信息的多播分組,判斷自身為該上游節(jié)點(diǎn)設(shè)置的狀態(tài)標(biāo)志是否 指示無(wú)冗余,若否,直接丟棄該多播分組;若是,將該狀態(tài)標(biāo)志置為有冗余標(biāo) 志,并丟棄該多播分組,同時(shí)將自身已保存的與該多播分組中的代標(biāo)識(shí)對(duì)應(yīng)的 所有數(shù)據(jù)塊信息發(fā)送給所述上游節(jié)點(diǎn),所述上游節(jié)點(diǎn)收到該數(shù)據(jù)塊信息,將所 述下游節(jié)點(diǎn)的狀態(tài)標(biāo)志置為有冗余標(biāo)志。
8、 如權(quán)利要求7所述的方法,其特征在于,所述下游節(jié)點(diǎn)向自身的上游節(jié) 點(diǎn)發(fā)送自身已收到的數(shù)據(jù)塊信息之前進(jìn)一步包括所述下游節(jié)點(diǎn)接收上游節(jié)點(diǎn)發(fā)來(lái)的多播分組,且檢測(cè)到該多播分組攜帶了 新信息,判斷自身為所述上游節(jié)點(diǎn)設(shè)置的狀態(tài)標(biāo)志是否指示無(wú)冗余,若否,將 該多播分組指示的數(shù)據(jù)塊信息發(fā)送給所述上游節(jié)點(diǎn);若是,不將該多播分組指 示的數(shù)據(jù)塊信息發(fā)送給所述上游節(jié)點(diǎn)。
9、 如權(quán)利要求7所述的方法,其特征在于,所述上游節(jié)點(diǎn)獲得發(fā)送機(jī)會(huì)之 后、構(gòu)造攜帶新信息的多播分組之前進(jìn)一歩包括上游節(jié)點(diǎn)判斷自身保存的、所述獲得發(fā)送機(jī)會(huì)的出向鏈路指向的下游節(jié)點(diǎn)的狀態(tài)標(biāo)志是否指示無(wú)冗余,若是,任意構(gòu)造一個(gè)多播分組,將該多播分組發(fā)送給所述下游節(jié)點(diǎn);否則,構(gòu)造 攜帶新信息的多播分組。
10、 如權(quán)利要求7或8或9所述的方法,其特征在于,所述多播邏輯子拓 樸中的中間節(jié)點(diǎn)預(yù)先為自身的每個(gè)上游節(jié)點(diǎn)和下游節(jié)點(diǎn)設(shè)置一個(gè)狀態(tài)標(biāo)志之后 進(jìn)一步包括中間節(jié)點(diǎn)確定自身已完成原當(dāng)前代向新當(dāng)前代的轉(zhuǎn)換,將為每個(gè)上游節(jié)點(diǎn) 和下游節(jié)點(diǎn)設(shè)置的狀態(tài)標(biāo)志都重置為無(wú)冗余標(biāo)志;所述多播邏輯子拓樸中的宿節(jié)點(diǎn)為自身的每個(gè)上游節(jié)點(diǎn)設(shè)置一個(gè)狀態(tài)標(biāo)志 之后進(jìn)一步包括宿節(jié)點(diǎn)確定自身已完成原當(dāng)前代向新當(dāng)前代的轉(zhuǎn)換,將為每個(gè)上游節(jié)點(diǎn)設(shè) 置的狀態(tài)標(biāo)志都重置為無(wú)冗余標(biāo)志。
11、 如權(quán)利要求1所述的方法,其特征在于,所述方法進(jìn)一步包括多播 邏輯子拓樸中的宿節(jié)點(diǎn)接收到多播分組,確定該多播分組中的代標(biāo)識(shí)對(duì)應(yīng)代的多播分組發(fā)送過(guò)程已經(jīng)結(jié)束,且對(duì)該代的數(shù)據(jù)塊解碼不成功,則將成功解碼缺 失信息和代標(biāo)識(shí)通過(guò)控制信令發(fā)送給源節(jié)點(diǎn);源節(jié)點(diǎn)收到所述控制信令,根據(jù)所述成功解碼缺失信息對(duì)所述代標(biāo)識(shí)對(duì)應(yīng) 代的原始數(shù)據(jù)塊進(jìn)行線性組合,將得到的數(shù)據(jù)塊封裝入多播分組后通過(guò)單播路 由發(fā)送給宿節(jié)點(diǎn),宿節(jié)點(diǎn)根據(jù)該多播分組以及自身已保存的多播分組進(jìn)行解碼。
12、 如權(quán)利要求l所述的方法,其特征在于,所述方法進(jìn)一步包括中間 節(jié)點(diǎn)確定當(dāng)前代的多播分組發(fā)送過(guò)程已經(jīng)結(jié)束,暫存該當(dāng)前代的多播分組;所述方法進(jìn)一步包括多播邏輯子拓樸中的宿節(jié)點(diǎn)接收到多播分組,確定 該多播分組中的代標(biāo)識(shí)對(duì)應(yīng)代的多播分組發(fā)送過(guò)程已經(jīng)結(jié)束,且對(duì)該代的數(shù)據(jù) 塊解碼不成功,則將成功解碼缺失信息和代標(biāo)識(shí)通過(guò)控制信令由下而上逐級(jí)反 饋給各中間節(jié)點(diǎn);中間節(jié)點(diǎn)收到所述控制信令,根據(jù)所述成功解碼缺失信息對(duì)自身暫存的所 述代標(biāo)識(shí)對(duì)應(yīng)代的原始數(shù)據(jù)塊進(jìn)行線性組合,將得到的數(shù)據(jù)塊封裝入多播分組后通過(guò)單播路由發(fā)送給宿節(jié)點(diǎn),宿節(jié)點(diǎn)根據(jù)該多播分組以及自身已保存的多播 分組進(jìn)行解碼。
13、 如權(quán)利要求l所述的方法,其特征在于,所述上游節(jié)點(diǎn)保存該編碼向 量和代標(biāo)識(shí)之后進(jìn)一步包括上游節(jié)點(diǎn)確定自身已完成原當(dāng)前代向新當(dāng)前代的轉(zhuǎn)換,將當(dāng)前代標(biāo)識(shí)對(duì)應(yīng) 的編碼向量刪除。
14、 如權(quán)利要求13所述的方法,其特征在于,所述上游節(jié)點(diǎn)通過(guò)以下步驟 確定自身已完成原當(dāng)前代向新當(dāng)前代的轉(zhuǎn)換上游節(jié)點(diǎn)確定自身的所有入向鏈路都已收到新當(dāng)前代的多播分組,或者確 定自身的一條入向鏈路已收到新當(dāng)前代的下一代的多播分組。
15、 一種提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳輸效率的裝置,其特征在于, 包括分組接收模塊,接收上游節(jié)點(diǎn)發(fā)來(lái)的多播分組,將已收到的分組所指示 的數(shù)據(jù)塊信息發(fā)送給上游節(jié)點(diǎn),將該分組存儲(chǔ)在分組緩存模塊中; 下游節(jié)點(diǎn)數(shù)據(jù)緩存模塊,存儲(chǔ)下游節(jié)點(diǎn)發(fā)來(lái)的數(shù)據(jù)塊信息; 分組緩存模塊,存儲(chǔ)自身節(jié)點(diǎn)收到的多播分組;分組發(fā)送模塊,在獲得一個(gè)發(fā)送機(jī)會(huì)時(shí),向線性組合模塊發(fā)送組合指示, 將線性組合模塊發(fā)來(lái)的向量和數(shù)據(jù)塊封裝入多播分組,將該多播分組從有發(fā) 送機(jī)會(huì)的出向鏈路發(fā)送給下游節(jié)點(diǎn);線性組合模塊,接收組合指示,從分組緩存模塊獲取當(dāng)前代的所有多播 分組,從下游節(jié)點(diǎn)數(shù)據(jù)緩存模塊獲取下游節(jié)點(diǎn)已收到的數(shù)據(jù)塊信息,根據(jù)獲 取的所有多播分組和數(shù)據(jù)塊信息,生成將為下游節(jié)點(diǎn)提供新信息的數(shù)據(jù)塊, 生成與該數(shù)據(jù)塊對(duì)應(yīng)的向量,將生成的數(shù)據(jù)塊和向量發(fā)送給分組發(fā)送模塊。
16、 如權(quán)利要求15所述的裝置,其特征在于,進(jìn)一步包括狀態(tài)標(biāo)志 設(shè)置模塊,為自身的每個(gè)上游節(jié)點(diǎn)和每個(gè)下游節(jié)點(diǎn)分別設(shè)置一個(gè)狀態(tài)標(biāo)志, 并在多播開始時(shí)、以及自身節(jié)點(diǎn)完成從原當(dāng)前代到新當(dāng)前代的轉(zhuǎn)換時(shí),將所 有狀態(tài)標(biāo)志置為無(wú)冗余標(biāo)志;所述分組接收模塊進(jìn)一步,接收上游節(jié)點(diǎn)發(fā)來(lái)的不攜帶新信息的多播分 組,向狀態(tài)標(biāo)志設(shè)置模塊查詢?cè)撋嫌喂?jié)點(diǎn)的狀態(tài)標(biāo)志,若指示無(wú)冗余,則將 狀態(tài)標(biāo)志設(shè)置模塊中該上游節(jié)點(diǎn)的狀態(tài)標(biāo)志置為有冗余標(biāo)志,并丟棄該多播 分組,同時(shí)從分組緩存模塊中獲取與該多播分組頭部中的代編號(hào)對(duì)應(yīng)的所有 多播分組,將該多播分組所指示的數(shù)據(jù)塊信息通過(guò)控制信令發(fā)送給所述上游節(jié)點(diǎn);若指示有冗余,直接丟棄該多播分組。
17、 如權(quán)利要求16所述的裝置,其特征在于,所迷分組接收模塊接收 到上游節(jié)點(diǎn)發(fā)來(lái)的攜帶新信息的多播分組時(shí),進(jìn)一步向狀態(tài)標(biāo)志設(shè)置模塊查 詢?cè)撋嫌喂?jié)點(diǎn)的狀態(tài)標(biāo)志,若該狀態(tài)標(biāo)志指示有冗余,則將該多播分組所指 示的數(shù)據(jù)塊信息通過(guò)控制信令發(fā)送給該上游節(jié)點(diǎn)。
18、 如權(quán)利要求16所述的裝置,其特征在于,所述分組發(fā)送模塊在獲 得一個(gè)發(fā)送機(jī)會(huì)時(shí),進(jìn)一步向狀態(tài)標(biāo)志設(shè)置模塊查詢獲得該發(fā)送機(jī)會(huì)的出向 鏈路指向的下游節(jié)點(diǎn)的狀態(tài)標(biāo)志,并將查詢得到的無(wú)冗余或有冗余標(biāo)志指示 與線性組合指示一起發(fā)送給線性組合模塊,所述線性組合模塊在從分組緩存模塊獲取當(dāng)前代的所有多播分組,從下 游節(jié)點(diǎn)數(shù)據(jù)緩存模塊中獲取下游節(jié)點(diǎn)已收到的當(dāng)前代的所有數(shù)據(jù)塊信息,若 確定分組發(fā)送模塊發(fā)來(lái)無(wú)冗余指示,則根據(jù)獲取的所有多播分組和數(shù)據(jù)塊信 息,任意生成一個(gè)數(shù)據(jù)塊,并生成與該數(shù)據(jù)塊對(duì)應(yīng)的向量,將生成的數(shù)據(jù)塊 和向量發(fā)送給分組發(fā)送模塊;若確定分組發(fā)送模塊發(fā)來(lái)有冗余指示,則生成 攜帶新信息的數(shù)據(jù)塊。
19、 如權(quán)利要求15所述的裝置,其特征在于,進(jìn)一步包括結(jié)束處理 模塊,在自身的所有入向鏈路都已收到上游節(jié)點(diǎn)發(fā)來(lái)的結(jié)束信令后,或者自 身收到第一個(gè)結(jié)束信令預(yù)定時(shí)長(zhǎng)后,向分組緩存模塊和下游節(jié)點(diǎn)數(shù)據(jù)緩存模 塊發(fā)送清除指令,同時(shí)將該結(jié)束信令多播到自身的所有出向鏈路,并在確認(rèn) 收到自身所有下游節(jié)點(diǎn)發(fā)來(lái)的結(jié)束確認(rèn)信令后退出該多播過(guò)程;所述分組緩存模塊在收到所述清除指令后,清除自身緩存的所有多播分組;所述下游節(jié)點(diǎn)數(shù)據(jù)緩存模塊在收到所述清除指令后,清除自身緩存的所 有數(shù)據(jù)塊信息。
20、如權(quán)利要求15所述的裝置,其特征在于,進(jìn)一步包括解碼模塊,在 接收到多播分組后,從分組緩存模塊中取出與該多播分組所在代的所有編碼向 量,根據(jù)該取出的編碼向量以及該多播分組中的編碼向量,在檢測(cè)到不能成功 解碼且已完成該多播分組所在代向下一代的轉(zhuǎn)換時(shí),將成功解碼缺失信息和該 多播分組的代標(biāo)識(shí)攜帶在信息量不足信令中發(fā)送給源節(jié)點(diǎn),根據(jù)源節(jié)點(diǎn)發(fā)來(lái)的 多播分組,對(duì)該代數(shù)據(jù)塊解碼。
全文摘要
本發(fā)明公開了一種提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳輸效率的方法,包括多播邏輯子拓?fù)渲械南掠喂?jié)點(diǎn)向自身的上游節(jié)點(diǎn)發(fā)送自身已收到的數(shù)據(jù)塊信息,上游節(jié)點(diǎn)接收并保存該數(shù)據(jù)塊信息;所述上游節(jié)點(diǎn)獲得發(fā)送機(jī)會(huì),根據(jù)已保存的下游節(jié)點(diǎn)的數(shù)據(jù)塊信息和自身已收到的數(shù)據(jù)塊信息,通過(guò)網(wǎng)絡(luò)編碼構(gòu)造攜帶新信息的多播分組,將該多播分組發(fā)送給下游節(jié)點(diǎn)。本發(fā)明還公開了一種提高基于隨機(jī)網(wǎng)絡(luò)編碼的多播傳輸效率的裝置,包括分組接收模塊、下游節(jié)點(diǎn)數(shù)據(jù)緩存模塊、分組緩存模塊、分組發(fā)送模塊和線性組合模塊。本發(fā)明避免了帶寬的浪費(fèi),提高了多播效率。
文檔編號(hào)H04L12/56GK101325540SQ20071011110
公開日2008年12月17日 申請(qǐng)日期2007年6月11日 優(yōu)先權(quán)日2007年6月11日
發(fā)明者馮萊利, 晗 劉, 庚 張, 涂曉東, 牛長(zhǎng)喜, 王少勇 申請(qǐng)人:華為技術(shù)有限公司;電子科技大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
利川市| 古交市| 隆安县| 淮滨县| 桐梓县| 江达县| 从江县| 仙游县| 泽库县| 汾西县| 武宣县| 平昌县| 昂仁县| 大理市| 喀什市| 长沙市| 杭州市| 锦屏县| 潮安县| 弋阳县| 盐城市| 阜平县| 冷水江市| 沭阳县| 名山县| 洪洞县| 扎赉特旗| 敦煌市| 潞城市| 微山县| 吐鲁番市| 保康县| 新竹县| 延吉市| 南部县| 钟山县| 山阳县| 武夷山市| 黄陵县| 十堰市| 乌什县|