專利名稱:分代分組交叉隨機線性網絡編碼方法
技術領域:
本發(fā)明屬于通信技術領域,涉及網絡編碼,具體地說是一種隨機線性網絡編碼方法,用于信息共享過程中的信息傳輸。
背景技術:
2000年,Ashlswede等人首次提出的網絡編碼理論顛覆了傳統(tǒng)通信網絡中存儲轉 發(fā)的路由模式,它允許網絡通信中間節(jié)點對其接收到的信息進行數(shù)據處理。網絡編碼的應 用,為現(xiàn)有的網絡帶來了諸多優(yōu)點,包括提高網絡的吞吐量,改善網絡的可靠性,減少通信 的能量消耗、提高帶寬利用率、保證信息安全、提高魯棒性和容錯性等?,F(xiàn)有的文件共享過 程大多采用HTTP協(xié)議或者類似協(xié)議來實現(xiàn)數(shù)據傳輸,而這些協(xié)議都是根據網絡情況把文 件先分塊然后按塊傳輸,資源節(jié)點的離開常常會導致文件傳輸中止。于是,人們開始紛紛把 網絡編碼應用到文件共享過程,以提高通信網絡的吞吐量、帶寬利用率和容錯性、保證信息 安全和提供系統(tǒng)魯棒性。針對信息共享中網絡編碼的應用問題,近年來很多專家學者提出了許多解決方 案。Philip A. Chou,Yunnan Wu 和 Kamal Jain 等人于 2003 年發(fā)表的論文 “Practical Network Coding”中首先提出分代網絡編碼方法。分代網絡編碼方法雖然可以解決無分 代計算量過大的問題,但是它仍然存在節(jié)點的退出使得網絡中已經不存在足夠多線性無關 的編碼塊組合從而導致無法解出完整文件的問題,另外信息傳輸?shù)拇g切換也是個很難 把握的問題。微軟研究院的Christos Gkantsidis和Pablo Rodriguez于2005年發(fā)表 在"IEEE Conference on Information,,上的"Network Codingfor Large Scale Content Distribution”一文中,首先提出無分代網絡編碼方法。無分代網絡編碼方法用于文件共享 時,雖然可以提高網絡的傳輸效率,但因為編碼過程是在一個文件的所有分塊之間進行的, 所以計算量和系統(tǒng)開銷都很大尤其是在大文件分發(fā)時,它正確譯碼的必要條件很苛刻,要 求收到的線性無關編碼塊個數(shù)等于或大于原始文件分塊數(shù)。黃佳慶、王帥和陳清文于2009 年發(fā)表在維普資訊上的“網絡編碼在P2P網絡中的應用”一文中首先提出代間網絡編碼方 法。代間網絡編碼方法的優(yōu)點在于當本代集中的某一代沒有足夠多線性無關的編碼塊時, 可以由本代集中其他代的線性無關編碼塊來填補。但是它的缺點在于無法單獨成功解出某 一代的原始數(shù)據,且其計算復雜度和空間復雜度都太大。
發(fā)明內容
本發(fā)明的目的在于克服上述已有技術的不足,提出一種分代分組交叉隨機線性網 絡編碼方法,以提高編碼速度和譯碼速度,降低編碼過程的空間復雜度,減弱譯出文件的必 要條件,降低節(jié)點尤其是資源節(jié)點的離開對信息傳輸?shù)挠绊?。為實現(xiàn)上述目的,本發(fā)明的編碼步驟包括如下(1)由信源節(jié)點把要發(fā)送的信息用有限域GF(q)內的元素表示,得到原始數(shù)據,其 中q > 256 ;將該原始數(shù)據順序分為g個代,g > 2,用& < i < g)表示第i代;再把每一代按順序分為m個組,m≥2,用P/ (1≤i≤g,1≤j≤m)表示第i代的第j分組,每代 和它的后一代構成代集,用GEi表示第i代集,其中g,最后一個代集只包括最后一 代;(2)令 i = 1 ;(3)根據當前節(jié)點的屬性確定其操作,如果當前節(jié)點是信源節(jié)點,轉步驟(4),否 則,轉步驟(5);(4)如果1≤i≤g,則由信源節(jié)點確定第i代集的信息包結構,用GEi表示,轉步 驟(5),否則,結束;(5)將當前節(jié)點中第i代集信息包的個數(shù)用k表示,如果k > 2,則當前節(jié)點根據 k確定第i代集的局部編碼系數(shù)向量后,轉步驟(6),否則,當前節(jié)點把僅有的一個編碼包作 為新編碼包發(fā)送給下游節(jié)點后,轉步驟(7);(6)當前節(jié)點根據步驟(5)的局部編碼系數(shù)向量和其內存中的k個第i代集的信 息包生成新編碼包,并發(fā)送給下游節(jié)點,轉步驟(7);(7)下游節(jié)點在收到新編碼包之后,對其進行線性相關性檢測,如果檢測通過,則 把該新編碼包用于編碼或譯碼,否則,認為該新編碼包不能提供有用信息,拋棄或者請上游 節(jié)點重發(fā),如果當前節(jié)點是信宿節(jié)點,轉步驟(8),否則,轉步驟(5);(8)信宿節(jié)點在收到k個第i代集通過步驟(7)線性相關性檢測的編碼包之后,通 過譯碼得出信源發(fā)送的第i代集的原始數(shù)據后,轉步驟(9),其中,當1 < i < g-Ι時,k = 2m,當 i = g B^t, k = m ;(9)將i加1,并轉步驟(3)。本發(fā)明具有如下優(yōu)點(1)本發(fā)明由于采用稀疏矩陣作為局部編碼系數(shù)矩陣,極大地提高了編碼速度;(2)本發(fā)明由于采用高斯列主元消元法進行譯碼,提高了譯碼速度;(3)本發(fā)明編碼過程由于是在由本代及其下一代構成的代集內進行的,降低了編 碼過程的時間復雜度和空間復雜度;(4)本發(fā)明的譯碼過程由于是在由本代及其下一代構成的代集內進行的,減弱了 正確譯出文件的必要條件,節(jié)點只要收到k個第i代集線性無關的編碼包就可以正確譯出 第i代集原始數(shù)據,其中,當1彡i彡g_l時,k = 2m,當i = g時,k = η ;(5)本發(fā)明由于每個編碼包都包含本代集內所有分組的信息,降低了節(jié)點尤其是 資源節(jié)點的離開對信息傳輸?shù)挠绊憽?br>
圖1是本發(fā)明的網絡編碼過程示意圖;圖2是本發(fā)明使用的通信網絡示意圖;圖3是本發(fā)明的網絡編碼原理示意圖。
具體實施例方式以下參照附圖對本發(fā)明作進一步詳細說明。一、本發(fā)明所應用的數(shù)學理論及技術術語說明
1、有限域稀疏矩陣滿秩定理設M= (Hiin)nxn是有限域GF (q)上的一個nXn維隨機矩陣,矩陣中的元素Hiij月艮 從滿足下列概率的獨立均勻分布<formula>formula see original document page 7</formula>如果ρ 彡(logn+d) /n,則有
Iim Pr(M 滿秩)=e~2e'' Π1 - q~J
η—oo其中,d是一個非負常量。2、高斯列主元消元法高斯列主元消去法是一種解線性方程組的方法,它首先對線性方程組的系數(shù)矩陣 依次消元,在每次消元之前,先把絕對值大的元素交換到主對角線的位置上,再進行消元, 直到系數(shù)矩陣轉化成上三角矩陣,接著回代求出方程組的解。3、相關術語圖2為一個有向無環(huán)圖,表示一個通信網絡,用G = (V, E)表示,V為該通信網絡 中的節(jié)點集合,V = {S,Rl, R2,R3,R4,R5,T},其中,S為信源節(jié)點,R1、R2、R3、R4和R5為 中間節(jié)點,T為信宿節(jié)點,E為該通信網絡中的鏈路集合,E = {S-Rl, S —R3,S — R4, Rl — R2,…,R5 — T},下面根據圖2對相關術語進行說明(1)信源節(jié)點S,是指信息的提供者。(2)信宿節(jié)點T,是指信息的請求者。(3)中間節(jié)點Rl、R2、R3、R4、R5,是信息從信源節(jié)點到信宿節(jié)點所經過的節(jié)點,它 們只對信息進行編碼和轉發(fā),而不進行譯碼。(4)所有的通信鏈路都是一條有向信道,有向信道的始端是其末端的上游節(jié)點,有 向信道的末端是其始端的下游節(jié)點,如在通信鏈路Rl — R2中,Rl是R2的上游節(jié)點,R2是 Rl的下游節(jié)點。二、本發(fā)明的編碼過程參照圖1,本發(fā)明的具體步驟為步驟1、由信源節(jié)點對要發(fā)送的信息進行分代分組。參照圖3,信源節(jié)點對信息的分代分組過程為la)把要發(fā)送的信息轉換為有限域GF (q)內的元素,得到原始數(shù)據,其中q > 256 ;lb)將該原始數(shù)據順序分為g個同等大小的代,g彡2,用& 彡i彡g)表示第i 代,當最后一代的大小小于其他代時,用0補齊使得所有代的大小都相等;Ic)把每一代按順序分為m個組,m彡2,用P/ (1彡i彡g,1彡j彡m)表示第i 代的第j個分組,所有組的大小都相等;Id)每代和它的后一代構成代集,用GEi表示第i代集,其中1彡i彡g,當 1 < i < g-Ι時,第i代集包括第i代和第i+Ι代,當i = g時,第i代集就是第g代。步驟2、給參數(shù)i賦初值,令i = 1。步驟3、根據當前節(jié)點的屬性確定其操作,如果當前節(jié)點是信源節(jié)點,轉步驟4,否貝U,轉步驟5。步驟4、如果1彡i彡g,則由信源節(jié)點確定第i代集的信息包結構,用GEi表示, 轉步驟5,否則,結束。所述第i代集的信息包結構GEi分為兩種情況第一種情況為當1彡i彡g_l時,第i代集的信息包結構為
<formula>formula see original document page 8</formula>
<formula>formula see original document page 8</formula>其中,Di為當前節(jié)點中第i代集信息包的數(shù)據構成的矩陣,GCi為當前節(jié)點中第i代集信息包的全局編碼系數(shù)構成的矩陣,SDi為原始數(shù)據第i代集分組構成的矩陣,E2mx2m為一個2m行2m列的單位矩陣,SD/為原始數(shù)據第i代集內第j分組構成的向量,且1 ( j ( 2m,GC/為第i代集內第j分組的全局編碼系數(shù)向量,且1彡j彡2m,Xjl1為原始數(shù)據第i代集內第j分組的第1個數(shù)據,且1彡j彡2m,1彡1彡n,GE/為第i代集內第j個信息包,且1彡j彡2m ;第二種情況為當i = g時,第i代集的信息包結構為
GE' = GEg = [SDg GCg ] = [SDg Emxm ]
<formula>formula see original document page 8</formula>其中,Emxm為一個m行m列的單位矩陣,SD/為原始數(shù)據第i代集內第j分組構成的向量,且1≤j≤m,
GC/為第i代集內第j分組的全局編碼系數(shù)向量,且1彡j彡m,χ/為原始數(shù)據第g代集內第j分組的第1個元素,且1彡j彡m,1彡1彡n,GE/為第g代集內第j個信息包,且1彡j彡m。步驟5、將當前節(jié)點中第i代集信息包的個數(shù)用k表示,如果2,則當前節(jié)點根 據k確定第i代集的局部編碼系數(shù)向量后,轉步驟6,否則,當前節(jié)點把僅有的一個編碼包作 為新編碼包發(fā)送給下游節(jié)點后,轉步驟7。當前節(jié)點根據下式確定第i代集的局部編碼系數(shù)向量LCi=JVc; Ici2 ··· /C;]其中,LCi為第i代集的局部編碼系數(shù)向量,Ic/是按照一定規(guī)則生成的有限域
GF (q)內的隨機數(shù),1彡j彡k,它服從獨立同分布,且其概率分布函數(shù)為
l-pχ=0
?T(Ic1=X) = I , yJ[p/iq-l)λτ€[1,2,···,^-1]
p = (logiV + 10)/A:其中,N為原始數(shù)據第i代集內分組的個數(shù),當1彡i彡g_l時,N = 2m,當i = g 時,N = m ;k為當前節(jié)點擁有的第i代集信息包的個數(shù),如果當前節(jié)點是信源節(jié)點,則k =
N0步驟6、當前節(jié)點生成新編碼包,并發(fā)送給下游節(jié)點。新編碼包是當前節(jié)點根據步驟5的局部編碼系數(shù)向量和其內存中的k個第i代 集的信息包生成的編碼包,該編碼包包括新信息數(shù)據和新全局編碼系數(shù),它們的生成過程 為6a)通過下式產生新信息數(shù)據D0 =LC(E)D1其中, 為有限域內的乘法運算,Dc/為新信息數(shù)據,它是一個η維的行向量,如果 當前節(jié)點為信源節(jié)點,則Di = SDi ;6b)通過下式產生新全局編碼系數(shù)GC; 二 LC' GC'其中,GCc/為新全局編碼系數(shù),如果當前節(jié)點為信源節(jié)點,則GCi = E,GC01 = LCi0步驟7、下游節(jié)點在收到新編碼包之后,對其進行線性相關性檢測。7a)通過下式構造當前節(jié)點第i代集的全局編碼系數(shù)矩陣GCi GC'=[GC; GC^ ··· GCk GC;]1其中,GC^GC/、-GCk1為當前節(jié)點已有的k個第i代集信息包的全局編碼系數(shù);7b)通過行列式變化求出矩陣GCi的秩,用rank(GCi)表示;7c)如果I^ank(GCi) = k+Ι,則該新編碼包通過檢測,把該新編碼包用于編碼或譯 碼,否則,認為該新編碼包不能提供有用信息,拋棄或者請上游節(jié)點重發(fā);7d)如果當前節(jié)點是信宿節(jié)點,轉步驟8,否則,轉步驟5。步驟8、信宿節(jié)點在收到k個第i代集通過步驟七線性相關性檢測的編碼包之后, 進行譯碼,其中,當1彡i彡g-Ι時,k = 2m,當i = g時,k = m。譯碼過程為采用高斯列主元消元法求解線性方程組的解,具體步驟為
8a)將信宿節(jié)點收到的k個第i代集編碼包中數(shù)據部分構成數(shù)據矩陣Di,它是一個kXn維的矩陣;8b)將信宿節(jié)點收到的k個第i代集編碼包中全局編碼系數(shù)部分構成全局編碼系數(shù)矩陣GCi,它是一個kXN維的矩陣;8c)根據編碼原理可得Di=GOSD'對系數(shù)矩陣GCi依次消元,每次消元之前,先把絕對值大的元素交換到主對角線的位置上,再進行消元,直到把GCi轉化成上三角矩陣,接著回代求出原始數(shù)據矩陣SDi,把原始數(shù)據轉換為二進制格式后就是信源發(fā)送的信息。步驟9、將i加1,并轉步驟3,進行下一代集的信息傳輸。
權利要求
一種分代分組交叉隨機線性網絡編碼方法,包括如下步驟(1)由信源節(jié)點把要發(fā)送的信息用有限域GF(q)內的元素表示,得到原始數(shù)據,其中q≥256;將該原始數(shù)據順序分為g個代,g≥2,用Gi(1≤i≤g)表示第i代;再把每一代按順序分為m個組,m≥2,用Pij(1≤i≤g,1≤j≤m)表示第i代的第j分組,每代和它的后一代構成代集,用GEi表示第i代集,其中1≤i≤g,最后一個代集只包括最后一代;(2)令i=1;(3)根據當前節(jié)點的屬性確定其操作,如果當前節(jié)點是信源節(jié)點,轉步驟(4),否則,轉步驟(5);(4)如果1≤i≤g,則由信源節(jié)點確定第i代集的信息包結構,用GEi表示,轉步驟(5),否則,結束;(5)將當前節(jié)點中第i代集信息包的個數(shù)用k表示,如果k≥2,則當前節(jié)點根據k確定第i代集的局部編碼系數(shù)向量后,轉步驟(6),否則,當前節(jié)點把僅有的一個編碼包作為新編碼包發(fā)送給下游節(jié)點后,轉步驟(7);(6)當前節(jié)點根據步驟(5)的局部編碼系數(shù)向量和其內存中的k個第i代集的信息包生成新編碼包,并發(fā)送給下游節(jié)點,轉步驟(7);(7)下游節(jié)點在收到新編碼包之后,對其進行線性相關性檢測,如果檢測通過,則把該新編碼包用于編碼或譯碼,否則,認為該新編碼包不能提供有用信息,拋棄或者請上游節(jié)點重發(fā),如果當前節(jié)點是信宿節(jié)點,轉步驟(8),否則,轉步驟(5);(8)信宿節(jié)點在收到k個第i代集通過步驟(7)線性相關性檢測的編碼包之后,通過譯碼得出信源發(fā)送的第i代集的原始數(shù)據后,轉步驟(9),其中,當1≤i≤g-1時,k=2m,當i=g時,k=m;(9)將i加1,并轉步驟(3)。
2.根據權利要求1所述的分代分組交叉隨機線性網絡編碼方法,其中步驟(4)所述的 第i代集的信息包結構分為兩種情況第一種情況為當1 < i彡g_l時,第i代集的信息包結構為<formula>formula see original document page 2</formula><formula>formula see original document page 3</formula>其中,Di為當前節(jié)點中第i代集信息包的數(shù)據構成的矩陣, GCi為當前節(jié)點中第i代集信息包的全局編碼系數(shù)構成的矩陣, SDi為原始數(shù)據第i代集分組構成的矩陣, E2mx2ffl為一個2m行2m列的單位矩陣,SD/為原始數(shù)據第i代集內第j分組構成的向量,且1 ( j ( 2m,GC/為第i代集內第j分組的全局編碼系數(shù)向量,且1彡j彡2m,Xjxi為原始數(shù)據第i代集內第j分組的第1個數(shù)據,且1彡j彡2m,1彡1彡n,GE/為第i代集內第j個信息包,且1彡j彡2m ;第二種情況為當i = g時,第i代集的信息包結構為<formula>formula see original document page 3</formula>其中,Emxm為一個m行m列的單位矩陣,SD/為原始數(shù)據第i代集內第j分組構成的向量,且1彡j彡m,GC/為第i代集內第j分組的全局編碼系數(shù)向量,且1彡j彡m,Xjl8為原始數(shù)據第g代集內第j分組的第1個元素,且1彡j彡m,1彡1彡n,GE/為第g代集內第j個信息包,且1彡j彡m。
3.根據權利要求1所述的分代分組交叉隨機線性網絡編碼方法,其中步驟(5)所述的 第i代集的局部編碼系數(shù)向量,通過用下式產生LC'= [/c; Ici2 …/c;]其中,LCi為第i代集的局部編碼系數(shù)向量,Ic/為第i代集的局部編碼系數(shù)向量內的 第j個數(shù),是有限域GF(q)內的隨機數(shù),其中1彡j彡k,如果當前節(jié)點是信源節(jié)點,則當 1 彡 i 彡 g-Ι 時,k = 2m,當 i = g 時,k = m。
4.根據權利要求3所述的分代分組交叉隨機線性網絡編碼方法,其中第i代集局部編 碼系數(shù)向量的第j個數(shù)Ic/是按照一定規(guī)則生成的有限域GF(q)內的隨機數(shù),它服從獨立 同分布,且其概率分布函數(shù)為<formula>formula see original document page 4</formula>其中,N為原始數(shù)據第i代集內分組的個數(shù),當1彡i彡g_l時,N = 2m,當i = g時, N = m。
5.根據權利要求1所述的分代分組交叉隨機線性網絡編碼方法,其中步驟(6)所述的 新編碼包,包括根據局部編碼系數(shù)向量和當前節(jié)點中k個第i代集信息包生成的新信息數(shù) 據和新全局編碼系數(shù),它們分別通過以下兩個式子產生<formula>formula see original document page 4</formula>其中, 為有限域內的乘法運算,Doi為新信息數(shù)據,GQi為新全局編碼系數(shù),如果當前 節(jié)點為信源節(jié)點,則Di = SDijGC^=LC。
6.根據權利要求1所述的分代分組交叉隨機線性網絡編碼方法,其中步驟(7)所述的 下游節(jié)點在收到新編碼包之后,對其進行線性相關性檢測,按如下步驟進行(6a)將新編碼包的全局編碼系數(shù)加入當前節(jié)點中第i代集的全局編碼系數(shù)矩陣后,用 下式表示<formula>formula see original document page 4</formula>其中,GC/jC/、-GCk1為當前節(jié)點中k個第i代集信息包的全局編碼系數(shù);(6b)通過行列式變換求出全局編碼系數(shù)矩陣GCi的秩,用I^ank(GCi)表示,如果 rank(GCi) = k+1,則該新編碼包通過檢測,否則,認為該新編碼包不能提供有用信息,不能 通過檢測。
7.根據權利要求1所述的分代分組交叉隨機線性網絡編碼方法,其中步驟(8)所述的 譯碼,采用高斯列主元消元法求出線性方程組的解Di=GC (8)SD'它是原始數(shù)據的第i代集SDi1全文摘要
本發(fā)明公開了一種分代分組交叉隨機線性網絡編碼方法。其過程為信源先將原始數(shù)據順序分代,在代內再順序分組,每代和它的后一代構成代集;在代集內進行編碼,代集之間編碼過程是獨立的,由信源確定代集的信息包結構;節(jié)點根據參與編碼的信息包個數(shù)確定局部稀疏編碼系數(shù)向量,再根據它和參與編碼的信息包生成新編碼包并發(fā)送給下游節(jié)點;節(jié)點收到新編碼包后對其進行線性相關性檢測,若通過檢測,把它用于編碼或譯碼,否則,丟棄或重傳;信宿節(jié)點在收到足夠多通過線性相關性檢測的編碼包后,采用高斯列主元消元法譯出原始數(shù)據。本發(fā)明具有降低網絡編碼的時間和空間復雜度、減弱正確譯碼的必要條件的優(yōu)點,適用于信息共享中的信息傳輸。
文檔編號H04L1/00GK101800624SQ20101010717
公開日2010年8月11日 申請日期2010年2月5日 優(yōu)先權日2010年2月5日
發(fā)明者李學俊, 李暉, 王博洋, 申肖肖 申請人:西安電子科技大學