專(zhuān)利名稱:一種數(shù)據(jù)包可靠傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)傳輸領(lǐng)域,是一種對(duì)數(shù)據(jù)包丟失進(jìn)行恢復(fù)的有效方法。尤其 適用于實(shí)時(shí)通信和單向通信中的數(shù)據(jù)包丟失恢復(fù)。
背景技術(shù):
隨著計(jì)算機(jī)網(wǎng)絡(luò)及其技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)環(huán)境在不斷改善,然而數(shù)據(jù)包丟失問(wèn) 題仍然是影響網(wǎng)絡(luò)通信質(zhì)量的最大因素之一。對(duì)于數(shù)據(jù)包丟失,主要有兩種解決方法一種 是ARQ技術(shù)通過(guò)反饋信道,將丟失的數(shù)據(jù)段信息反饋給發(fā)送方,發(fā)送方重新發(fā)送丟失的數(shù) 據(jù)段;另一種是FEC技術(shù)通過(guò)對(duì)數(shù)據(jù)包分組添加冗余包,使得發(fā)送的數(shù)據(jù)包組具有一定的 丟包恢復(fù)能力。對(duì)傳輸時(shí)延敏感的業(yè)務(wù)或只有單向信道的應(yīng)用場(chǎng)景中,采用FEC技術(shù)則是 一種有效且實(shí)用的選擇。常見(jiàn)的FEC技術(shù)通常是基于奇偶校驗(yàn)碼、RS碼(里德-所羅門(mén)碼)等線性分組碼 的包編碼方法?;谄媾夹r?yàn)碼的包編碼,利用奇偶校驗(yàn)碼的編碼方法,產(chǎn)生一個(gè)冗余的監(jiān) 督包,并添加在數(shù)據(jù)包后,構(gòu)成一組編碼包組,這種方法可以恢復(fù)包組內(nèi)任意丟失的一個(gè)編 碼包;類(lèi)似的,基于RS碼的包編碼,利用RS碼的編碼方法,產(chǎn)生m個(gè)冗余的監(jiān)督包,并添加 在數(shù)據(jù)包后,構(gòu)成一組編碼包組,這種方法可以恢復(fù)包組內(nèi)任意丟失的m個(gè)編碼包。經(jīng)過(guò)研究和統(tǒng)計(jì),Internet的丟包模式大部分丟包是一種隨機(jī)丟包,少數(shù)丟包 表現(xiàn)為突發(fā)性的較長(zhǎng)連續(xù)丟包,即少數(shù)丟包表現(xiàn)出較強(qiáng)相關(guān)性[6]。傳統(tǒng)的基于線性分組碼 的丟包恢復(fù)方案,雖然在處理分布均勻的隨機(jī)丟包時(shí)可獲得較好的效果,但是如果網(wǎng)絡(luò)中 出現(xiàn)了突發(fā)的較多個(gè)密集丟包,無(wú)差別的對(duì)每個(gè)包組添加更多的冗余包,將極大增加網(wǎng)絡(luò) 的負(fù)擔(dān)。且每個(gè)包組內(nèi)孤立的進(jìn)行丟包恢復(fù),使得部分包組的恢復(fù)能力過(guò)剩,部分包組的恢 復(fù)能力不足,無(wú)法動(dòng)態(tài)的合理調(diào)度恢復(fù)資源。
發(fā)明內(nèi)容
本發(fā)明提出了一種數(shù)據(jù)包可靠傳輸?shù)姆椒?,打破了線性分組碼的包組間孤立地恢 復(fù)丟包的弊端,通過(guò)對(duì)RS碼生成矩陣的重新設(shè)計(jì),在包組間引入動(dòng)態(tài)關(guān)聯(lián),通過(guò)后續(xù)包組 的到來(lái)選擇性的擴(kuò)展當(dāng)前包組的丟包恢復(fù)能力。一種數(shù)據(jù)包可靠傳輸恢復(fù)方法,其特征在于,包含以下步驟(1)從RS碼生成矩陣中,構(gòu)造其一個(gè)缺失子矩陣作為包編碼的生成矩陣,并以此 新生成矩陣產(chǎn)生當(dāng)前數(shù)據(jù)包組的所有監(jiān)督包;(2)將當(dāng)前數(shù)據(jù)包組生成的所有監(jiān)督包進(jìn)行跨包組重新分配;(3)將分配后的編碼包組進(jìn)行包組內(nèi)二次編碼;(4)在接收端采用自適應(yīng)丟包恢復(fù),根據(jù)當(dāng)前編碼包組丟包多少的不同,自適應(yīng)的 等待相應(yīng)數(shù)量的后續(xù)關(guān)聯(lián)包組,進(jìn)行恢復(fù)?;谏鲜黾夹g(shù)方案,采用的包編碼的生成矩陣G,其特征在于設(shè)Ggxh為一個(gè)g行h列的RS碼的系統(tǒng)生成矩陣,并將其表示成子矩陣形式
I表示單位陣,0表示零矩陣,Nin為一個(gè)包組的包組內(nèi)監(jiān)督包數(shù)目,N。ut為一個(gè)包 組的跨包組監(jiān)督包數(shù)目,WkxNi/!為k行Nin列的包組內(nèi)包組內(nèi)子監(jiān)督矩陣,Υ、Λ為N。ut行Nin 列的包組內(nèi)子監(jiān)督矩陣為k行r-Nin列的跨包組子監(jiān)督矩陣,為Nout 行r-Nin列的跨包組子監(jiān)督矩陣。g = k+N。ut,h = k+N0Ut+r, k為包組中數(shù)據(jù)包的個(gè)數(shù),r為 這些數(shù)據(jù)包通過(guò)包編碼生成監(jiān)督包的個(gè)數(shù)。構(gòu)造一個(gè)k行k+r列的Ggxh的缺失子矩陣,并 將其作為監(jiān)督包生成的生成矩陣 基于上述技術(shù)方案,將當(dāng)前包組的數(shù)據(jù)包生成的所有監(jiān)督包進(jìn)行跨包組分配,并 形成新的編碼包組,其特征在于設(shè)當(dāng)前包組為第U個(gè)包組,當(dāng)前包組所有監(jiān)督包為Pu = [pua PWPuJ。通過(guò)這 種監(jiān)督包的分配方法,將當(dāng)前編碼包組分成三部分?jǐn)?shù)據(jù)包部分du,包組內(nèi)監(jiān)督部分Vu,^和 跨包組監(jiān)督部*vu,。ut。
其中,du, i為第U個(gè)包組中的第i個(gè)數(shù)據(jù)包,Su, i為第u個(gè)包組中第i個(gè)跨包組監(jiān)
督包,Su,,表達(dá)式如下 /-1 其中1為相關(guān)聯(lián)的包組數(shù)?;谏鲜黾夹g(shù)方案,將編碼包組進(jìn)行包組內(nèi)二次編碼,其特征在于將Sua(i = 1, 2,-Nout)與pu,i(i = 1,2,-NJ建立下面的監(jiān)督關(guān)系 其中,i = 1,2,..UiU Ggxh中的子矩陣。然后用Ii替換包組中的Pu
i,組成新的Vu, in,并形成最終的編碼包組,且滿足下面的方程關(guān)系。Du · Gin = Ru
其中,
基于上述技術(shù)方案,采用自適應(yīng)的包解碼方法,其特征在于設(shè)隊(duì)為當(dāng)前編碼包組的丟包數(shù),假設(shè)與此包組相關(guān)聯(lián)的前1-1個(gè)包組的數(shù)據(jù)包是 完整的,即沒(méi)有丟失或已經(jīng)順利恢復(fù)丟包,且按照上述的包編碼方法,每獲得一個(gè)監(jiān)督包, 就可以多恢復(fù)出一個(gè)丟包。(1)若N1 < Nin,則利用解線性方程組方法,不需要任何其他編碼包組的協(xié)助,就能 夠進(jìn)行恢復(fù)丟包。(2)若Nin < N1 < Nin+N。ut,假設(shè)之前的1_1包組是完整的,即包組內(nèi)沒(méi)有丟包或者 已經(jīng)恢復(fù)所有數(shù)據(jù)包,首先計(jì)算出Pa,b(a e {u-l-l,u-l, -,u-l},b e {1,2,…,m}),再 還原出隱藏在SiuiG = 1,2,-,Nout)中的N。ut個(gè)第u個(gè)包組的監(jiān)督包
其中,i e {Nin+l,Nin+2,…,Nin+N。ut},I = i-Nin,為第u個(gè)包組的第i個(gè)監(jiān)督包累 加在跨包組監(jiān)督部分的位置下標(biāo)。將還原出的監(jiān)督包和包組內(nèi)監(jiān)督部分Vu,。ut聯(lián)合起來(lái),便 得到了 Nin+N。ut個(gè)第u個(gè)包組的監(jiān)督包,相當(dāng)于將當(dāng)前包組生成矩陣Gin擴(kuò)展了 N。ut列 其中爐―,是Ggxh中爐的前N。ut列組成的子矩陣。任取G'
列,
對(duì)這k維的列向量組,截取其前k行得到的方陣一定是Ggxh的一個(gè)缺失子方陣。此方陣的 列向量是線性無(wú)關(guān)的,于是這任取G' in的k列也是線性無(wú)關(guān)的,可以恢復(fù)當(dāng)前包組中所有 的數(shù)據(jù)包。 (3)如果N1 > Nin+Nout,現(xiàn)有的恢復(fù)能力不能滿足需求,則等待第u+1個(gè)包組的到 來(lái)。如果第u-1+2個(gè)包組到第u+1個(gè)包組這1個(gè)包組中,除第u個(gè)包組,都沒(méi)有丟包,或者 通過(guò)包組內(nèi)監(jiān)督部分恢復(fù)出包組內(nèi)全部數(shù)據(jù)包,進(jìn)而還原出壓縮在Su+1,i(i = 1,2, - ,Nout) 中的N。ut個(gè)第u個(gè)包組的監(jiān)督包
其中,ie {Nin+N。ut+1,Nin+N。ut+2,…,Nin+2 · NouJ,I = i_Nin_N。ut。這樣便總共得 到了第u個(gè)包組的Nin+2 個(gè)監(jiān)督包,與步驟二中,可以得到新的增加了 N。ut列的當(dāng)前包 組生成矩陣。于是,如果N1SNin+ ^-,則可以恢復(fù)第u個(gè)包組中的所有數(shù)據(jù)包。通過(guò)第 u個(gè)包組后面的1-1個(gè)包組的到來(lái),至多可還原出第u個(gè)包組的(1-1) · Nout個(gè)額外的監(jiān)督 包,這樣至多可以恢復(fù)出第u個(gè)包組中的Nin+1 · Nout個(gè)丟包。(4)、若隊(duì)> Nin+1 ,則當(dāng)前包組丟失情況超出恢復(fù)上限,放棄恢復(fù)當(dāng)前包組的 丟包。
基于上述方案,在自適應(yīng)包解碼過(guò)程中,當(dāng)N1 > Nin+Nout時(shí),可以設(shè)置包解碼的最 大等待包組數(shù)M,即為了恢復(fù)第u個(gè)包組的丟包,已經(jīng)等待了 M個(gè)包組,如果仍然沒(méi)有得到足 夠的第u個(gè)包組的監(jiān)督包,則不再繼續(xù)等待后續(xù)的包組,放棄對(duì)第u個(gè)包組的恢復(fù)。本發(fā)明一種數(shù)據(jù)包可靠傳輸方法,具有以下的優(yōu)點(diǎn)1、打破了線性分組碼的包組間孤立地恢復(fù)丟包的弊端,通過(guò)對(duì)生成矩陣的重新設(shè) 計(jì),在包組間引入了丟包恢復(fù)的動(dòng)態(tài)關(guān)聯(lián),通過(guò)后續(xù)包組的到來(lái)選擇性的擴(kuò)展當(dāng)前包組的 丟包恢復(fù)能力。2、相對(duì)于傳統(tǒng)的基于RS碼的方案,在相同冗余度下,明顯提升恢復(fù)性能;在相當(dāng) 的恢復(fù)能力下,提高了傳輸效率。3、能夠自適應(yīng)的針對(duì)當(dāng)前包組丟包情況調(diào)整恢復(fù)能力和解碼時(shí)延,從而提升系統(tǒng) 的整體性能。
圖1為本發(fā)明的系統(tǒng)框圖;圖2為本發(fā)明的第u個(gè)編碼包組的結(jié)構(gòu)圖;圖3為本發(fā)明的第u個(gè)包組的監(jiān)督包分配方式圖;圖4為本發(fā)明的第u個(gè)包組的監(jiān)督包部分(包組內(nèi)監(jiān)督部分和跨包組監(jiān)督部分) 的構(gòu)成圖;圖5為本發(fā)明的接收端自適應(yīng)包解碼的流程圖;圖6為本發(fā)明的相同編碼效率下,本發(fā)明和其他方法的丟包恢復(fù)性能比較圖;圖7為本發(fā)明的相當(dāng)?shù)膩G包恢復(fù)性能下,本發(fā)明和其他方法的編碼效率比較圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明做詳細(xì)說(shuō)明。圖1示例了本發(fā)明的系統(tǒng)框架,該系統(tǒng)包含了發(fā)送端和接收端兩部分。發(fā)送端進(jìn) 一步包括監(jiān)督包生成模塊,跨包組監(jiān)督包分配模塊和包組內(nèi)二次編碼模塊。接收端進(jìn)一步 包括自適應(yīng)包解碼模塊。在詳細(xì)說(shuō)明本發(fā)明前,首先做一些聲明和定義。設(shè)將k個(gè)數(shù)據(jù)包劃為一組,并生成n-k = r個(gè)監(jiān)督包。將數(shù)據(jù)包和監(jiān)督包都稱為 編碼包,從而形成η個(gè)包組成的編碼包組。每個(gè)編碼包都有s個(gè)比特,且有一個(gè)包序列號(hào)與 之對(duì)應(yīng),用來(lái)發(fā)現(xiàn)哪些編碼包在傳輸中丟失了。由于本發(fā)明采用RS碼作為編碼方案,所以 文中所述的運(yùn)算都是指GF域(有限域)的運(yùn)算。設(shè)當(dāng)前編碼包組為第u包組。Cliui為第u 個(gè)包組的第i個(gè)數(shù)據(jù)包,i = 1,2,· . . k,Cliui又可以表示為s維的列向量Wuaa CLi^du, i, J,其中du, ia為第u個(gè)包組的第i個(gè)數(shù)據(jù)包的第1個(gè)比特,其余依次類(lèi)推。pu, i表示第u 個(gè)包組的第i個(gè)監(jiān)督包,i = l,2,...r, pu, i又可以表示為s維的列向量[P1^1 PnfPu, “],其中P1^1為第u個(gè)包組的第i個(gè)數(shù)據(jù)包的第1個(gè)比特,其余依次類(lèi)推。發(fā)送模塊步驟101 監(jiān)督包生成。設(shè)Ggxh為一個(gè)g行h列的RS碼的系統(tǒng)生成矩陣,并將其表示成子矩陣形式Ggxfl=[ig wg<g+r)y
8
I表示單位陣,0表示零矩陣。構(gòu)造一個(gè)k行k+r列的Ggxh的缺失子矩陣,并將其 作為監(jiān)督包生成的生成矩陣 通過(guò)每個(gè)包組的k個(gè)數(shù)據(jù)包的RS碼編碼運(yùn)算,得到這個(gè)包組的r 4監(jiān)督包 Pu = du · Wkxi
(1)
其中,pu為監(jiān)督包行向量[pua puypu,J,du*數(shù)據(jù)包行向量[(Iua du,2發(fā)送模塊步驟102 跨包組監(jiān)督包分配。將發(fā)送步驟1中生成的監(jiān)督包分成兩部分其中一部分保存當(dāng)前編碼包組內(nèi)的包 組內(nèi)監(jiān)督區(qū)(vu, in)中,使當(dāng)前編碼包組在不需要任何其他包組的協(xié)助下,具有一定的丟包 恢復(fù)能力;另一部分累加到當(dāng)前包組和后續(xù)關(guān)聯(lián)的1-1個(gè)包組的跨包組監(jiān)督區(qū)(vu,。ut)中, 使當(dāng)前包組在必要的時(shí)候可以等待后續(xù)關(guān)聯(lián)包組的到來(lái),從而提升當(dāng)前包組的丟包恢復(fù)能 力。圖2示例了本發(fā)明的第u個(gè)編碼包組的結(jié)構(gòu)圖,通過(guò)這種監(jiān)督包的分配方法,實(shí)際 上將編碼包組分成三部分?jǐn)?shù)據(jù)包部分du,包組內(nèi)監(jiān)督部分Vu, in和跨包組監(jiān)督部分V, 其中,Nin為一個(gè)包組的包組內(nèi)監(jiān)督包數(shù)目,Su,i為第u個(gè)包組中第i個(gè)跨包組監(jiān)督 包,N。ut為一個(gè)包組的跨包組監(jiān)督包數(shù)目,Su, i表達(dá)式如下(2) 其中1為相關(guān)聯(lián)的包組數(shù)。圖3示例了第U個(gè)包組的監(jiān)督包分配,圖4示例了第u個(gè)包組監(jiān)督包部分(包組 內(nèi)監(jiān)督部分和跨包組監(jiān)督部分)的構(gòu)成。為簡(jiǎn)單起見(jiàn),兩圖中的編碼選取較小的參數(shù)r = 3, Nint = LNnllt = 1,1 = 2。發(fā)送模塊步驟103 包組內(nèi)二次編碼。為了使Su, i在丟失的情況下也能夠在當(dāng)前包組恢復(fù),將Su, i(i = 1,2, Pu,i(i = l,2,…Nin)建立下面的監(jiān)督關(guān)系 其中,i = 1,2,"UiU Ggxh中的子矩陣。然后用Ru,i替換包組中的Pu, i,組成新的Vu, in。圖5示例了本發(fā)明的接收端自適應(yīng)包解碼的流程圖,其中N1表示當(dāng)前包組的丟包 數(shù),k的初值為1,為了圖示簡(jiǎn)潔起見(jiàn),省略的部分操作會(huì)在下文闡述。每接收一個(gè)編碼包組后,通過(guò)包序號(hào)來(lái)判斷哪些編碼包發(fā)生丟失,并計(jì)算此包組 丟包數(shù)N1,并假設(shè)與此包組相關(guān)聯(lián)的前1-1個(gè)包組的數(shù)據(jù)包是完整的,即沒(méi)有丟失或者已經(jīng) 順利恢復(fù)丟包。如果N1 = 0或者僅僅是非數(shù)據(jù)包發(fā)生了丟失,則直接提取出當(dāng)前包組的數(shù) 據(jù)包部分du ;否則,采用下面的策略進(jìn)行恢復(fù)。在步驟201,判斷N1是否小于Nin+1 · N。ut,如果判斷為假,則進(jìn)入步驟202。在步驟202,由于當(dāng)前包組丟失情況超出恢復(fù)上限,放棄恢復(fù)本包組的丟包。如果步驟201的判斷為真,則進(jìn)入步驟203。在步驟203,判斷N1是否小于Nin,如果判斷為真,則進(jìn)入步驟204。在步驟204,利用下面的矩陣形式線性方程組來(lái)恢復(fù)任意丟失小于Nin個(gè)編碼包 (包括數(shù)據(jù)包和跨包組監(jiān)督包):Du · Gin = Ru其中 及 如果步驟203的判斷為假,則進(jìn)入步驟205。在步驟205,利用式2,還原出隱藏在Su, Ji = 1,2, -,Nout)中的N。ut個(gè)第u個(gè)包 組的監(jiān)督包 其中,i = Nin+1, Nin+2,…,Nin+N。ut,I = i_Nin,為第u個(gè)包組的第i個(gè)監(jiān)督包累 加在跨包組監(jiān)督部分的位置下標(biāo)。又根據(jù)假設(shè),前1-1包組的數(shù)據(jù)包是完整的,所以式中的 凡一,, +州。 ,+/通過(guò)式1是可求出的。然后進(jìn)入步驟206。在步驟206,判斷N1是否小于Nin+N。ut,如果判斷為真,則進(jìn)入步驟207。在步驟207,將在步驟4中還原出的監(jiān)督包和包組內(nèi)監(jiān)督部分Vu,_聯(lián)合起來(lái),便得 到了 Nin+N。ut個(gè)當(dāng)前包組的監(jiān)督包,這相當(dāng)于將步驟3中的Gin擴(kuò)展了 N。ut列 其中,其中爐<^。 ,是Ggxh中的前N。ut列組成的子矩陣。于是和步驟3
中類(lèi)似的,利用下面的方程組可以恢復(fù)出任意丟失的小于Nin+N。ut個(gè)編碼包Du-G' in = Ru如果步驟206的判斷為假,則進(jìn)入步驟208。在步驟208,等待第u+1個(gè)包組的到來(lái)。如果第u-1+2個(gè)包組到第u+Ι個(gè)包組這1個(gè)包組中,除第u個(gè)包組,都沒(méi)有丟失數(shù)據(jù)包,或者通過(guò)步驟3恢復(fù)出全部數(shù)據(jù)包,則與步驟
4相似的,可還原出壓縮在Su+1,i(i = 1,2, -",N0J中的N。ut個(gè)第u個(gè)包組的監(jiān)督包 其中,i= Nin+N。ut+1,Nin+N。ut+2,…,Nin+2 · Nout, I = i_Nin_N。ut。這樣便總共得到 了第u個(gè)包組的Nin+2 · Nout個(gè)監(jiān)督包。并使k值加1 (k的初值為1),然后進(jìn)入步驟8。在步驟209,判斷N1是否小于Nin+kXN。ut,如果判斷為真,則進(jìn)入步驟9。在步驟210,利用在步驟7中新獲得的N。ut個(gè)監(jiān)督包,便得到了 Nin+kXN。ut個(gè)當(dāng)前 包組的監(jiān)督包,這相當(dāng)于將步驟3中的Gin擴(kuò)展了 kXN。ut列,于是和步驟6類(lèi)似的,可以恢 復(fù)出第u個(gè)包組的任意丟失小于Nin+kXN。ut個(gè)編碼包。如果步驟209中的判斷為假,則回到步驟208,繼續(xù)等待后續(xù)編碼包組的到來(lái),和 步驟208進(jìn)行相同的操作,提取出第u個(gè)包組的監(jiān)督包,之后進(jìn)入步驟209判斷是否收集 到足夠的監(jiān)督包,否則繼續(xù)循環(huán),直到收集到足夠的監(jiān)督包,并最終恢復(fù)出第u包組的數(shù)據(jù) 包。件能分新對(duì)本文發(fā)明提出的一種數(shù)據(jù)包可靠傳輸?shù)姆椒ㄟM(jìn)行了仿真。仿真條件選取Gilbert模型作為仿真的網(wǎng)絡(luò)模型,從而更接近丟包具有相關(guān)性 的實(shí)際網(wǎng)絡(luò)狀況,以便更有效的示例本發(fā)明的實(shí)際應(yīng)用性能,其中平均丟包率從0.01步進(jìn) 到0. 1,條件丟包率為0. 3,突發(fā)丟包長(zhǎng)度的期望為1. 427。將本發(fā)明的方案記為cras,傳統(tǒng) 的基于RS編碼和奇偶校驗(yàn)編碼的包編碼方案分別記為Cks和Crc。仿真一使上述的三種方案具有相同編碼效率,比較其丟包恢復(fù)性能。三種方案的 編碼參數(shù)分別為 Ccks (15,2,1,3),Cks (15,12)和 Cpc(5,4),其中 Ccks (15,2,1,3)表示 η = 15, Nin = 2,Nout = 1,1 = 3。顯然三種方案的編碼效率均為4/5。從圖6中可看出本發(fā)明Ccks 方案的丟包恢復(fù)性能要明顯好于其他兩種方案。仿真二 使不同的方案具有相當(dāng)?shù)膩G包恢復(fù)性能,比較其編碼效率。圖7為 Cces(15,2,1,3)與Cks(15,11)的丟包恢復(fù)性能比較,可以看出兩者在丟包率適中的條件下, 恢復(fù)性能比較接近。兩種方法的傳輸效率參數(shù)如表1所示。從表1可以看出,在恢復(fù)性能 不損失的條件下,本文提出的算法可以很大程度提升傳輸效率。
權(quán)利要求
一種數(shù)據(jù)包可靠傳輸?shù)姆椒ǎ摲椒òㄒ韵虏襟E(1)利用RS碼(里德-所羅門(mén)碼)生成矩陣,構(gòu)造其一個(gè)缺失子矩陣作為包編碼的生成矩陣,并以此新生成矩陣產(chǎn)生當(dāng)前數(shù)據(jù)包組的所有監(jiān)督包;(2)將當(dāng)前數(shù)據(jù)包組生成的所有監(jiān)督包進(jìn)行跨包組重新分配;(3)將分配后的編碼包組進(jìn)行包組內(nèi)二次編碼;(4)接收端采用自適應(yīng)丟包恢復(fù),根據(jù)當(dāng)前編碼包組丟包數(shù)目的不同,自適應(yīng)的等待相應(yīng)數(shù)量的后續(xù)關(guān)聯(lián)包組,進(jìn)行恢復(fù)。
2.根據(jù)權(quán)利要求1,采用的包編碼的生成矩陣G,其特征在于設(shè)Ggxh為一個(gè)g行h列的RS碼的系統(tǒng)生成矩陣,并將其表示成子矩陣形式.I O W'" Wout2k ^kxNou, rr kxNin ry kx(r-Nin)Λ)TY'"youtwNoulXk 1Noul 1 NoulXNln 1 Nmlx(r-N, )I表示單位陣,0表示零矩陣,Nin為一個(gè)包組的包組內(nèi)監(jiān)督包數(shù)目,N。ut為一個(gè)包組的 跨包組監(jiān)督包數(shù)目,WkxNin為k行Nin列的包組內(nèi)包組內(nèi)子監(jiān)督矩陣,YiU N。ut行Nin列 的包組內(nèi)子監(jiān)督矩陣,)為k行r-Nin列的跨包組子監(jiān)督矩陣,F(xiàn) N0UlHi--Nln)^) Nout 對(duì)亍 r_Nin列的跨包組子監(jiān)督矩陣。g = k+N。ut,h = k+N0Ut+r, k為包組中數(shù)據(jù)包的個(gè)數(shù),r為這 些數(shù)據(jù)包通過(guò)包編碼生成監(jiān)督包的個(gè)數(shù)。構(gòu)造一個(gè)k行k+r列的Ggxh的缺失子矩陣,并將 其作為監(jiān)督包生成的生成矩陣G =J WinWout丄 k YY ^Nln yy k^r-Nln)[h U
3.根據(jù)權(quán)利要求1,將當(dāng)前包組的數(shù)據(jù)包生成的所有監(jiān)督包進(jìn)行跨包組分配,并形成 新的編碼包組,其特征在于設(shè)當(dāng)前包組為第U個(gè)包組,當(dāng)前包組所有監(jiān)督包為Pu= [pua pu,^pu, J。通過(guò)這種監(jiān) 督包的分配方法,將當(dāng)前編碼包組分成三部分?jǐn)?shù)據(jù)包部分du,包組內(nèi)監(jiān)督部分Vu,in和跨包 組監(jiān)督部分Vu,。ut。du = [dUjl du,,..du,k]Κι,in = Pu,I Pu,2 . · · Pu,Nhl ]—^u,2 ·.. ^u,Nou, _其中,Cliui為第u個(gè)包組中的第i個(gè)數(shù)據(jù)包,Suji為第u個(gè)包組中第i個(gè)跨包組監(jiān)督包, Su, i表達(dá)式如下I-ISuJ = ^Pu-J,N, +jNM+i J=O其中1為相關(guān)聯(lián)的包組數(shù)。
4.根據(jù)權(quán)利要求1,將編碼包組進(jìn)行包組內(nèi)二次編碼,其特征在于將Su,i(i = l,2,…N。ut)與pu,i(i = 1,2,…Nin)建立下面的監(jiān)督關(guān)系ruj =Pu,,+Tyjy su,j7=1 .yNoll,,I yNoul,2 ·'■ yN0 Nia 其中,i = l,2,為GgXh中的子矩陣。然后用Ru, i替換包組中的pu, i,組 成新的Vu, in,并形成最終的編碼包組,且滿足下面的關(guān)系。
其中,戰(zhàn)du
5.根據(jù)權(quán)利要求1,采用自適應(yīng)的包解碼方法,其特征在于設(shè)隊(duì)為當(dāng)前編碼包組的丟包數(shù),假設(shè)與此包組相關(guān)聯(lián)的前1-1個(gè)包組的數(shù)據(jù)包是完整 的,即沒(méi)有丟失或已經(jīng)順利恢復(fù)丟包,且按照上述的包編碼方法,每獲得一個(gè)監(jiān)督包,就可 以多恢復(fù)出一個(gè)丟包。(1)若N1< Nin,則利用解線性方程組方法,不需要任何其他編碼包組的協(xié)助,就能夠進(jìn) 行恢復(fù)丟包。(2)若Nin< N1 < Nin+N。ut,假設(shè)之前的1-1包組是完整的,即包組內(nèi)沒(méi)有丟包或者已經(jīng)恢復(fù)所有數(shù)據(jù)包,首先計(jì)算出Pa,b(a e {u-l-l,u-l,…,u-l},be {1,2,出隱藏在SiuiG = 1,2,-,Nout)中的N。ut個(gè)第u個(gè)包組的監(jiān)督包 1-1 其中,ie {Nin+l,Nin+2,…,Nin+N。ut},I = i-Nin,為第u個(gè)包組的第i個(gè)監(jiān)督包累加在 跨包組監(jiān)督部分的位置下標(biāo)。將還原出的監(jiān)督包和包組內(nèi)監(jiān)督部分Vu,。ut聯(lián)合起來(lái),便得到 了 Nin+N。ut個(gè)第u個(gè)包組的監(jiān)督包,這相當(dāng)于將當(dāng)前包組生成矩陣Gin擴(kuò)展了 N。ut列 其中妒“_。 ,是Ggxh中妒的前N。ut列組成的子矩陣。任取G' in的k列,對(duì)這 k維的列向量組,截取其前k行得到的方陣一定是Ggxh的一個(gè)缺失子方陣。此方陣的列向 量是線性無(wú)關(guān)的,于是這任取G' in的k列也是線性無(wú)關(guān)的,可以恢復(fù)當(dāng)前包組中所有的數(shù) 據(jù)包。(3)如果現(xiàn)有的恢復(fù)能力不能滿足需求,則等待第u+1個(gè)包組的到來(lái)。如 果第u-1+2個(gè)包組到第u+1個(gè)包組這1個(gè)包組中,除第u個(gè)包組,都沒(méi)有丟包,或者通過(guò)包 組內(nèi)監(jiān)督部分恢復(fù)出包組內(nèi)全部數(shù)據(jù)包,進(jìn)而還原出壓縮在Su+1,i(i = 1,2,…,Nout)中的 Nout個(gè)第u個(gè)包組的監(jiān)督包 其中,ie {Nin+N。ut+l,Nin+N。ut+2,…,Nin+2 · N。ut},I = i_Nin_N。ut。這樣便總共得到了 第u個(gè)包組的Nin+2 個(gè)監(jiān)督包,與步驟二中,可以得到新的增加了 N-列的當(dāng)前包組生 成矩陣。于是,如果N1SNin+ ^-,則可以恢復(fù)第u個(gè)包組中的所有數(shù)據(jù)包。通過(guò)第u個(gè) 包組后面的1-1個(gè)包組的到來(lái),至多可還原出第u個(gè)包組的(1-1) · Nout個(gè)額外的監(jiān)督包, 這樣至多可以恢復(fù)出第u個(gè)包組中的Nin+1 · Nout個(gè)丟包。(4)、若隊(duì)> Nin+1 · N。ut,則當(dāng)前包組丟失情況超出恢復(fù)上限,放棄恢復(fù)當(dāng)前包組的丟包。
6.根據(jù)權(quán)利要求5,在自適應(yīng)包解碼過(guò)程中,當(dāng)N1 > Nin+Nout時(shí),可以設(shè)置包解碼的最大 等待包組數(shù)M,即為了恢復(fù)第u個(gè)包組的丟包,已經(jīng)等待了 M個(gè)包組,如果仍然沒(méi)有得到足夠 的第u個(gè)包組的監(jiān)督包,則不再繼續(xù)等待后續(xù)的包組,放棄對(duì)第u個(gè)包組的恢復(fù)。
全文摘要
本發(fā)明提出了一種數(shù)據(jù)包可靠傳輸方法,利用包組聯(lián)合的方式,既保持了傳統(tǒng)的包組內(nèi)獨(dú)立恢復(fù)丟包的特點(diǎn),又在包組間建立丟包恢復(fù)的關(guān)聯(lián)。根據(jù)實(shí)際的丟包數(shù)目,能夠自適應(yīng)的等待后續(xù)包組到來(lái),擴(kuò)展當(dāng)前包組的丟包恢復(fù)能力。因而,本發(fā)明相對(duì)于傳統(tǒng)方案,能夠在幾乎不增加時(shí)延的條件下,明顯提升丟包恢復(fù)性能,在丟包具有較強(qiáng)相關(guān)性的實(shí)際網(wǎng)絡(luò)中具有更好的性能。
文檔編號(hào)H04L1/00GK101882976SQ20101022557
公開(kāi)日2010年11月10日 申請(qǐng)日期2010年7月14日 優(yōu)先權(quán)日2010年7月14日
發(fā)明者于翠屏, 劉元安, 曹震, 林曉峰, 王坤明, 袁東明, 謝剛, 黎淑蘭 申請(qǐng)人:北京郵電大學(xué)