本發(fā)明屬于通信技術(shù)領(lǐng)域,更進(jìn)一步涉及無(wú)線通信技術(shù)領(lǐng)域中的一種無(wú)線多播中基于混合網(wǎng)絡(luò)編碼的用戶協(xié)作方法。本發(fā)明應(yīng)用混合網(wǎng)絡(luò)編碼對(duì)數(shù)據(jù)進(jìn)行編碼,使用用戶協(xié)作技術(shù)進(jìn)行數(shù)據(jù)傳輸,用戶對(duì)收到的數(shù)據(jù)進(jìn)行解碼后,恢復(fù)原始的多播信息,可應(yīng)用于無(wú)線多播中恢復(fù)用戶丟失的多播數(shù)據(jù)。
背景技術(shù):
無(wú)線多播通過(guò)源節(jié)點(diǎn)廣播多個(gè)數(shù)據(jù)包給一組特定的用戶,是一種高效的傳輸方式。針對(duì)無(wú)線多播中的丟包問(wèn)題,傳統(tǒng)的方案采用源節(jié)點(diǎn)重傳的方式恢復(fù)用戶的丟包。用戶協(xié)作作為一種解決丟包問(wèn)題的有效方案,近些年得到了大量的關(guān)注。相比源節(jié)點(diǎn)重傳方式,該方案不但消除了源節(jié)點(diǎn)的重傳壓力,而且得益于用戶鏈路的高可靠性,具有很高的傳輸效率。網(wǎng)絡(luò)編碼通過(guò)發(fā)送節(jié)點(diǎn)對(duì)多個(gè)數(shù)據(jù)包進(jìn)行線性或非線性的編碼,增加了單次傳輸?shù)男畔⒘?,提高了傳輸效率。將網(wǎng)絡(luò)編碼應(yīng)用于多播系統(tǒng)的重傳過(guò)程,可以進(jìn)一步減少重傳次數(shù)。
西安電子科技大學(xué)在其提出的專利申請(qǐng)文獻(xiàn)“基于網(wǎng)絡(luò)編碼的多播重傳方法”(申請(qǐng)日:2013年1月16日,申請(qǐng)?zhí)枺?01310015456.0,公開(kāi)號(hào):cn103067137a)中公開(kāi)了一種基于異或網(wǎng)絡(luò)編碼的源節(jié)點(diǎn)重傳方法。該方法的實(shí)施步驟是:第一,源節(jié)點(diǎn)多播數(shù)據(jù)包;第二,用戶節(jié)點(diǎn)接收數(shù)據(jù)包,并向源節(jié)點(diǎn)反饋數(shù)據(jù)包的接收狀態(tài)信息;第三,源節(jié)點(diǎn)根據(jù)反饋信息生成數(shù)據(jù)包接收狀態(tài)矩陣,然后通過(guò)處理該矩陣進(jìn)行數(shù)據(jù)包的分組;第四,源節(jié)點(diǎn)對(duì)已分組的數(shù)據(jù)包進(jìn)行異或網(wǎng)絡(luò)編碼,生成網(wǎng)絡(luò)編碼包,并重傳這些編碼包;第五,各用戶節(jié)點(diǎn)對(duì)接收到的編碼包進(jìn)行譯碼,從中恢復(fù)出各自的丟失數(shù)據(jù)包。該方法與傳統(tǒng)的arq(automaticrepeatrequest)方法相比,由于異或運(yùn)算操作簡(jiǎn)單,因此需要的計(jì)算開(kāi)銷很小。該方法存在的不足之處是:首先,由于源節(jié)點(diǎn)與用戶節(jié)點(diǎn)間的鏈路質(zhì)量往往比用戶節(jié)點(diǎn)間的鏈路質(zhì)量差,因此源節(jié)點(diǎn)重傳方法傳輸效率低。其次,異或網(wǎng)絡(luò)編碼尋找一個(gè)最優(yōu)的調(diào)度算法以獲得最少的傳輸次數(shù)是np難的,已有的算法都是次優(yōu)的,隨著數(shù)據(jù)包數(shù)和用戶數(shù)的增長(zhǎng),尋優(yōu)復(fù)雜度會(huì)變得更高,因而導(dǎo)致算法的執(zhí)行時(shí)間過(guò)長(zhǎng),帶來(lái)嚴(yán)重的處理時(shí)延。
yanfeifan等人在其發(fā)表的論文“pie:cooperativepeer-to-peerinformationexchangeinnetworkcodingenabledwirelessnetworks”(ieeetransactionsonwirelesscommunications,2010,9:945-950)中提出了一種基于隨機(jī)線性網(wǎng)絡(luò)編碼的用戶協(xié)作方法pie(peer-to-peerinformationexchange)。該方法的實(shí)施步驟是:第一,每個(gè)用戶通過(guò)共享自己的數(shù)據(jù)包狀態(tài)向量的方式建立數(shù)據(jù)包分布矩陣;第二,用戶根據(jù)數(shù)據(jù)包分布矩陣計(jì)算每個(gè)數(shù)據(jù)包的稀有度;第三,根據(jù)數(shù)據(jù)包的稀有度,選擇擁有稀有度最高數(shù)據(jù)包的用戶作為發(fā)送者;第四,發(fā)送者使用隨機(jī)線性網(wǎng)絡(luò)編碼的方法編碼自己擁有的所有數(shù)據(jù)包并發(fā)送出去;第五,用戶接收發(fā)送者發(fā)送的編碼包,并使用矩陣求逆的方式解碼。該方法使用隨機(jī)線性網(wǎng)絡(luò)編碼,具有很高的傳輸效率,該方法存在的不足之處是:線性網(wǎng)絡(luò)編碼的編解碼運(yùn)算會(huì)帶來(lái)巨大的計(jì)算開(kāi)銷,隨機(jī)線性網(wǎng)絡(luò)編碼帶來(lái)的計(jì)算開(kāi)銷,不但會(huì)導(dǎo)致信息傳輸?shù)难舆t,還會(huì)帶來(lái)較大的能量消耗。
xiaolixu等人在其發(fā)表的論文“two-phasecooperativebroadcastingbasedonbatchednetworkcode”(ieeetransactionsoncommunications,2016,64(2):285-299)提出了一種基于分組網(wǎng)絡(luò)編碼的用戶協(xié)作方法。該方法的實(shí)施步驟是:第一,源節(jié)點(diǎn)使用bats對(duì)多播數(shù)據(jù)進(jìn)行編碼后,廣播編碼后的數(shù)據(jù)包;第二,用戶對(duì)接收到的編碼包進(jìn)行解碼;第三,解碼成功的用戶對(duì)數(shù)據(jù)包進(jìn)行隨機(jī)線性網(wǎng)絡(luò)編碼后,廣播編碼后的數(shù)據(jù)包;第四,解碼失敗的用戶接收解碼成功的用戶廣播的編碼包后,進(jìn)行解碼;該方法存在的不足之處是:分組網(wǎng)絡(luò)編碼和隨機(jī)線性網(wǎng)絡(luò)編碼都會(huì)帶來(lái)巨大的計(jì)算開(kāi)銷,增加多播系統(tǒng)的計(jì)算復(fù)雜度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對(duì)上述現(xiàn)有技術(shù)存在的問(wèn)題,在無(wú)限多播系統(tǒng)中提出一種基于混合網(wǎng)絡(luò)編碼的用戶協(xié)作方法,不僅可以保證多播過(guò)程的傳輸效率,而且可以減小用戶協(xié)作過(guò)程中的計(jì)算開(kāi)銷。
實(shí)現(xiàn)本發(fā)明目的的具體思路是:先在協(xié)作簇中選擇一個(gè)接收數(shù)據(jù)包總數(shù)最多的用戶作為重傳者,再通過(guò)用戶協(xié)作的方式恢復(fù)重傳者的丟包,然后再將數(shù)據(jù)包分布矩陣拆分為兩個(gè)子矩陣,最后重傳者分別使用隨機(jī)線性網(wǎng)絡(luò)編碼和異或網(wǎng)絡(luò)編碼,編碼并發(fā)送兩個(gè)子矩陣中的數(shù)據(jù)包。
本發(fā)明實(shí)現(xiàn)上述目的的具體步驟如下:
(1)多播數(shù)據(jù)包:
無(wú)線多播系統(tǒng)中的源節(jié)點(diǎn)將待發(fā)送的數(shù)據(jù)包,按照從1開(kāi)始遞增的順序編號(hào)后,依次多播給協(xié)作簇內(nèi)的用戶;
(2)建立數(shù)據(jù)包分布矩陣:
(2a)協(xié)作簇內(nèi)的每個(gè)用戶接收源節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包,同時(shí)記錄接收過(guò)程中數(shù)據(jù)包的丟失情況,將所有數(shù)據(jù)包的丟失情況用數(shù)據(jù)包分布向量表示;
(2b)協(xié)作簇內(nèi)的所有用戶依次廣播自己的數(shù)據(jù)包分布向量,每個(gè)用戶接收其他用戶的數(shù)據(jù)包分布向量;
(2c)每個(gè)用戶將收到的其他用戶的數(shù)據(jù)包分布向量與自己的數(shù)據(jù)包分布向量,合并成一個(gè)數(shù)據(jù)包分布矩陣;
(3)選出重傳者:
將數(shù)據(jù)包分布矩陣中成功接收數(shù)據(jù)包數(shù)量最多的用戶作為重傳者;
(4)獲得數(shù)據(jù)包稀有度向量:
(4a)按照下式,計(jì)算接收的每個(gè)數(shù)據(jù)包的稀有度:
其中,pfv(j)表示第j個(gè)數(shù)據(jù)包的稀有度,j的取值為[1,n]范圍內(nèi)任意一個(gè)正整數(shù),n表示數(shù)據(jù)包的總數(shù),m表示協(xié)作簇內(nèi)的用戶總數(shù),∑表示求和操作,pdm(i,l)表示數(shù)據(jù)包分布矩陣pdm中第i行第l列對(duì)應(yīng)的值,l和j的取值對(duì)應(yīng)相等;
(4b)將所有數(shù)據(jù)包的稀有度作降序排列后,組成數(shù)據(jù)包稀有度向量;
(5)判斷數(shù)據(jù)包稀有度向量中是否存在與協(xié)作簇內(nèi)用戶總數(shù)相等的數(shù)值,若是,則執(zhí)行步驟(6),否則,執(zhí)行步驟(7);
(6)重傳者將所有用戶都丟失的數(shù)據(jù)包報(bào)告給源節(jié)點(diǎn),源節(jié)點(diǎn)重傳這些數(shù)據(jù)包后,執(zhí)行步驟(2);
(7)判斷重傳者丟失的數(shù)據(jù)包數(shù)是否為0,若是,則執(zhí)行步驟(10),否則,執(zhí)行步驟(8);
(8)恢復(fù)重傳者丟失的數(shù)據(jù)包:
(8a)設(shè)置一個(gè)空集合,并命名為原編碼集合;
(8b)將重傳者丟失的數(shù)據(jù)包中編號(hào)最小的數(shù)據(jù)包放入原編碼集合中,在數(shù)據(jù)包分布矩陣中,尋找與原編碼集合中數(shù)據(jù)包編號(hào)相同的數(shù)據(jù)包,將擁有該數(shù)據(jù)包的任意一個(gè)用戶作為發(fā)射者;
(8c)使用編碼集合效益值公式,計(jì)算原編碼集合的效益值;
(8d)將原編碼集合包含的數(shù)據(jù)包與發(fā)射者擁有的且不屬于原編碼集合的任意一個(gè)數(shù)據(jù)包,組成一個(gè)新編碼集合;
(8e)使用編碼集合效益值公式,計(jì)算新編碼集合的效益值;
(8f)判斷新編碼集合的效益值是否大于原編碼集合的效益值,若是,則執(zhí)行步驟(8g),否則,執(zhí)行步驟(8h);
(8g)用新編碼集合的效益值更新原編碼集合的效益值,并用新編碼集合替換原編碼集合;
(8h)判斷替換后的原編碼集合中數(shù)據(jù)包總數(shù)是否大于等于3,若是,則執(zhí)行步驟(8i),否則,執(zhí)行步驟(8d);
(8i)將發(fā)射者和和替換后的原編碼集合通過(guò)廣播的方式告知協(xié)作簇內(nèi)的用戶;
(8j)發(fā)射者使用異或操作,將替換后的原編碼集合包含的數(shù)據(jù)包編碼成一個(gè)異或網(wǎng)絡(luò)編碼包,采用廣播的方式,將異或網(wǎng)絡(luò)編碼包發(fā)送出去;
(8k)協(xié)作簇內(nèi)的用戶,用接收到的異或網(wǎng)絡(luò)編碼包更新數(shù)據(jù)包分布矩陣;
(9)判斷重傳者丟失的數(shù)據(jù)包數(shù)是否為0,若是,則執(zhí)行步驟(10),否則,執(zhí)行步驟(8);
(10)重傳者使用混合網(wǎng)絡(luò)編碼方案重傳:
(10a)將更新后的數(shù)據(jù)包分布矩陣中的所有列,按照數(shù)據(jù)包稀有度從高到低的順序進(jìn)行排列;
(10b)將排序后數(shù)據(jù)包分布矩陣拆分為高稀有度矩陣和低稀有度矩陣,高稀有度矩陣由排序后數(shù)據(jù)包分布矩陣的1到αn列組成,α表示拆分因子,α的取值為(0,1)范圍內(nèi)任意一個(gè)數(shù),低稀有度矩陣由排序后數(shù)據(jù)包分布矩陣的αn到n列組成;
(10c)使用隨機(jī)性網(wǎng)絡(luò)編碼公式,重傳者對(duì)高稀有度矩陣中的所有數(shù)據(jù)包進(jìn)行編碼后,得到隨機(jī)線性網(wǎng)絡(luò)編碼包,廣播隨機(jī)線性網(wǎng)絡(luò)編碼包;
(10d)協(xié)作簇內(nèi)的用戶對(duì)接收到的編碼矩陣進(jìn)行矩陣求逆操作,得到解碼結(jié)果;
(10e)判斷低稀有度矩陣是否為全0矩陣,若是,則執(zhí)行步驟(11),否則,執(zhí)行步驟(10f);
(10f)設(shè)置一個(gè)空集合,并命名為原編碼集合;
(10g)將低稀有度矩陣包含的數(shù)據(jù)包中稀有度最高的數(shù)據(jù)包,放入原編碼集合中;
(10h)利用編碼集合效益值公式,計(jì)算原編碼集合的效益值;
(10i)將原編碼集合與重傳者擁有的且不屬于原編碼集合的任意一個(gè)數(shù)據(jù)包,組成一個(gè)新編碼集合;
(10j)利用編碼集合效益值公式,計(jì)算新編碼集合的效益值;
(10k)判斷新編碼集合的效益值是否大于原編碼集合的效益值,若是,則執(zhí)行步驟(10l),否則,執(zhí)行步驟(10m);
(10l)將原編碼集合的效益值更新為新編碼集合的效益值,并將原編碼集合用新編碼集合替換;
(10m)判斷原編碼集合中數(shù)據(jù)包總數(shù)是否大于等于3,若是,則執(zhí)行步驟(10n),否則,執(zhí)行步驟(10i);
(10n)將替換后的原編碼集合通過(guò)廣播的方式告知協(xié)作簇內(nèi)的用戶;
(10o)重傳者使用異或操作,將替換后的原編碼集合包含的數(shù)據(jù)包編碼成一個(gè)異或網(wǎng)絡(luò)編碼包,采用廣播的方式,將異或網(wǎng)絡(luò)編碼包發(fā)送出去;
(10p)協(xié)作簇內(nèi)的用戶接收重傳者廣播的異或網(wǎng)絡(luò)編碼包,用接收到的異或網(wǎng)絡(luò)編碼包更新低稀有度矩陣;
(10q)判斷低稀有度矩陣是否為全0矩陣,若是,則執(zhí)行步驟(11),否則,執(zhí)行步驟(10f);
(11)結(jié)束多播過(guò)程。
本發(fā)明與現(xiàn)有的技術(shù)相比具有以下優(yōu)點(diǎn):
第一,本發(fā)明通過(guò)拆分?jǐn)?shù)據(jù)包分布矩陣,得到高稀有度矩陣,對(duì)高稀有度矩陣進(jìn)行隨機(jī)線性網(wǎng)絡(luò)編碼處理,在保證高傳輸效率的條件下,克服了現(xiàn)有技術(shù)存在的隨機(jī)線性網(wǎng)絡(luò)編碼計(jì)算開(kāi)銷大的問(wèn)題,使得本發(fā)明具有計(jì)算開(kāi)銷低的優(yōu)點(diǎn)。
第二,本發(fā)明通過(guò)拆分?jǐn)?shù)據(jù)包分布矩陣,得到低稀有度矩陣,對(duì)低稀有度矩陣進(jìn)行異或網(wǎng)絡(luò)編碼,在保證高傳輸效率的條件下,克服了現(xiàn)有技術(shù)存在的異或網(wǎng)絡(luò)編碼尋優(yōu)困難的問(wèn)題,使得本發(fā)明具有尋優(yōu)簡(jiǎn)單的優(yōu)點(diǎn)。
附圖說(shuō)明
圖1為本發(fā)明的流程圖;
圖2為本發(fā)明中恢復(fù)重傳者丟失數(shù)據(jù)包操作步驟的流程圖;
圖3為本發(fā)明中重傳低稀有度矩陣中數(shù)據(jù)包操作步驟的流程圖;
圖4為本發(fā)明與現(xiàn)有方法的傳輸效率仿真圖;
圖5為本發(fā)明與現(xiàn)有方法的計(jì)算開(kāi)銷仿真圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的描述。
參照?qǐng)D1,本發(fā)明的實(shí)現(xiàn)方法如下。
步驟1,多播數(shù)據(jù)包。
無(wú)線多播系統(tǒng)中的源節(jié)點(diǎn)將待發(fā)送的數(shù)據(jù)包,按照從1開(kāi)始遞增的順序編號(hào)后,依次多播給協(xié)作簇內(nèi)的用戶。
所述的協(xié)作簇是指,該協(xié)作簇由多個(gè)有相同多播業(yè)務(wù)需求的用戶組成。
步驟2,建立數(shù)據(jù)包分布矩陣。
協(xié)作簇內(nèi)的每個(gè)用戶接收源節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包,同時(shí)記錄接收過(guò)程中數(shù)據(jù)包的丟失情況,將所有數(shù)據(jù)包的丟失情況用數(shù)據(jù)包分布向量表示。
所述的數(shù)據(jù)包分布向量是一個(gè)由0和1構(gòu)成的、長(zhǎng)度為n的行向量,其中,0是用于表示數(shù)據(jù)包接收成功,1是用于表示數(shù)據(jù)包丟失,n表示數(shù)據(jù)包的總數(shù)。
協(xié)作簇內(nèi)的所有用戶依次廣播自己的數(shù)據(jù)包分布向量,每個(gè)用戶接收其他用戶的數(shù)據(jù)包分布向量。
每個(gè)用戶將收到的其他用戶的數(shù)據(jù)包分布向量與自己的數(shù)據(jù)包分布向量,合并成一個(gè)數(shù)據(jù)包分布矩陣。
步驟3,選出重傳者。
將數(shù)據(jù)包分布矩陣中成功接收數(shù)據(jù)包數(shù)量最多的用戶作為重傳者。
步驟4,獲得數(shù)據(jù)包稀有度向量。
按照下式,計(jì)算每個(gè)數(shù)據(jù)包的稀有度:
其中,pfv(j)表示第j個(gè)數(shù)據(jù)包的稀有度,j為[1,n]上的正整數(shù),n表示數(shù)據(jù)包的總數(shù),m表示協(xié)作簇內(nèi)的用戶總數(shù),σ表示求和操作,pdm(i,l)表示數(shù)據(jù)包分布矩陣pdm中第i行第l列對(duì)應(yīng)的值,l和j的取值對(duì)應(yīng)相等。
將所有數(shù)據(jù)包的稀有度作降序排列后,組成數(shù)據(jù)包稀有度向量。
步驟5,判斷數(shù)據(jù)包稀有度向量中是否存在與協(xié)作簇內(nèi)用戶總數(shù)相等的數(shù)值,若是,則執(zhí)行步驟6,否則,執(zhí)行步驟7。
步驟6,重傳者將所有用戶都丟失的數(shù)據(jù)包報(bào)告給源節(jié)點(diǎn),源節(jié)點(diǎn)重傳這些數(shù)據(jù)包后,執(zhí)行步驟2。
步驟7,判斷重傳者丟失的數(shù)據(jù)包數(shù)是否為0,若是,則執(zhí)行步驟10,否則,執(zhí)行步驟8。
步驟8,恢復(fù)重傳者丟失的數(shù)據(jù)包。
下面結(jié)合圖2對(duì)本發(fā)明中恢復(fù)重傳者丟失數(shù)據(jù)包的具體步驟進(jìn)行如下描述。
第1步,設(shè)置一個(gè)空集合,并命名為原編碼集合。
第2步,將重傳者丟失的數(shù)據(jù)包中編號(hào)最小的數(shù)據(jù)包放入原編碼集合中,在數(shù)據(jù)包分布矩陣中,尋找與原編碼集合中數(shù)據(jù)包編號(hào)相同的數(shù)據(jù)包,將擁有該數(shù)據(jù)包的任意一個(gè)用戶作為發(fā)射者。
第3步,利用編碼集合效益值公式,計(jì)算原編碼集合的效益值。
所述編碼集合效益值公式如下:
其中,benefit(ps)表示編碼集合的效益值,ps表示編碼集合,m表示協(xié)作簇內(nèi)的用戶數(shù),σ表示求和操作,needi表示用戶i對(duì)編碼集合的需求度,needi的計(jì)算公式如下:
其中,l表示編碼集合中數(shù)據(jù)包的編號(hào),pdm(k,l)表示數(shù)據(jù)包分布矩陣pdm中第k行第l列對(duì)應(yīng)的值,k和i的取值對(duì)應(yīng)相等。
第4步,將原編碼集合包含的數(shù)據(jù)包與發(fā)射者擁有的且不屬于編碼集合的任意一個(gè)數(shù)據(jù)包,組成一個(gè)新編碼集合。
第5步,利用編碼集合效益值公式,計(jì)算新編碼集合的效益值。
所述編碼集合效益值公式如下:
其中,benefit(ps)表示編碼集合的效益值,ps表示編碼集合,m表示協(xié)作簇內(nèi)的用戶數(shù),σ表示求和操作,needi表示用戶i對(duì)編碼集合的需求度,needi的計(jì)算公式如下:
其中,l表示編碼集合中數(shù)據(jù)包的編號(hào),pdm(k,l)表示數(shù)據(jù)包分布矩陣pdm中第k行第l列對(duì)應(yīng)的值,k和i的取值對(duì)應(yīng)相等。
第6步,判斷新編碼集合的效益值是否大于原編碼集合的效益值,若是,則執(zhí)行本步驟的第7步,否則,執(zhí)行本步驟的第8步。
第7步,用新編碼集合的效益值更新原編碼集合的效益值,并用新編碼集合替換原編碼集合。
第8步,判斷替換后的原編碼集合中數(shù)據(jù)包總數(shù)是否大于等于3,若是,則執(zhí)行本步驟的第9步,否則,執(zhí)行本步驟的第4步。
第9步,將發(fā)射者和和替換后的原編碼集合通過(guò)廣播的方式告知協(xié)作簇內(nèi)的用戶。
第10步,發(fā)射者使用異或操作,將替換后的原編碼集合包含的數(shù)據(jù)包編碼成一個(gè)異或網(wǎng)絡(luò)編碼包,采用廣播的方式,將異或網(wǎng)絡(luò)編碼包發(fā)送出去。
第11步,協(xié)作簇內(nèi)的用戶,用接收到的異或網(wǎng)絡(luò)編碼包更新數(shù)據(jù)包分布矩陣。
第12步,判斷重傳者丟失的數(shù)據(jù)包數(shù)是否為0,若是,則執(zhí)行步驟8,否則,執(zhí)行本步驟的第2步。
步驟9,判斷重傳者丟失的數(shù)據(jù)包數(shù)是否為0,若是,則執(zhí)行步驟10,否則,執(zhí)行步驟8。
步驟10,重傳者使用混合網(wǎng)絡(luò)編碼方案重傳。
下面結(jié)合圖3對(duì)本發(fā)明中重傳者使用混合網(wǎng)絡(luò)編碼方案重傳的具體步驟進(jìn)行如下描述。
第1步,將更新后的數(shù)據(jù)包分布矩陣中的所有列,按照數(shù)據(jù)包稀有度從高到低的順序進(jìn)行排列。
第2步,將排序后數(shù)據(jù)包分布矩陣拆分為高稀有度矩陣和低稀有度矩陣,高稀有度矩陣由排序后數(shù)據(jù)包分布矩陣的1到αn列組成,α表示拆分因子,α的取值為(0,1)范圍內(nèi)任意一個(gè)數(shù),低稀有度矩陣由排序后數(shù)據(jù)包分布矩陣的αn到n列組成。
第3步,使用隨機(jī)性網(wǎng)絡(luò)編碼公式,重傳者對(duì)高稀有度矩陣中的所有數(shù)據(jù)包進(jìn)行編碼后,得到隨機(jī)線性網(wǎng)絡(luò)編碼包,廣播隨機(jī)線性網(wǎng)絡(luò)編碼包。
所述隨機(jī)性網(wǎng)絡(luò)編碼公式如下:
其中,p′表示編碼后的隨機(jī)線性網(wǎng)絡(luò)編碼包,ωn表示從伽羅華域gf(28)中隨機(jī)選取的編碼系數(shù),pn表示重傳者擁有的第n個(gè)數(shù)據(jù)包。
第4步,協(xié)作簇內(nèi)的用戶對(duì)接收到的編碼矩陣進(jìn)行矩陣求逆操作,得到解碼結(jié)果。
第5步,判斷低稀有度矩陣是否為全0矩陣,若是,則執(zhí)行步驟11,否則,執(zhí)行本步驟的第6步。
第6步,設(shè)置一個(gè)空集合,并命名為原編碼集合。
第7步,將低稀有度矩陣包含的丟失數(shù)據(jù)包中稀有度最高的數(shù)據(jù)包,放入原編碼集合中。
第8步,利用編碼集合效益值公式,計(jì)算原編碼集合的效益值。
所述編碼集合效益值公式如下:
其中,benefit(ps)表示編碼集合的效益值,ps表示編碼集合,m表示協(xié)作簇內(nèi)的用戶數(shù),σ表示求和操作,needi表示用戶i對(duì)編碼集合的需求度,needi的計(jì)算公式如下:
其中,l表示編碼集合中數(shù)據(jù)包的編號(hào),pdm(k,l)表示數(shù)據(jù)包分布矩陣pdm中第k行第l列對(duì)應(yīng)的值,k和i的取值對(duì)應(yīng)相等。
第9步,將原編碼集合與重傳者擁有的且不屬于原編碼集合的任意一個(gè)數(shù)據(jù)包,組成一個(gè)新編碼集合。
第10步,利用編碼集合效益值公式,計(jì)算新編碼集合的效益值。
所述編碼集合效益值公式如下:
其中,benefit(ps)表示編碼集合的效益值,ps表示編碼集合,m表示協(xié)作簇內(nèi)的用戶數(shù),σ表示求和操作,needi表示用戶i對(duì)編碼集合的需求度,needi的計(jì)算公式如下:
其中,l表示編碼集合中數(shù)據(jù)包的編號(hào),pdm(k,l)表示數(shù)據(jù)包分布矩陣pdm中第k行第l列對(duì)應(yīng)的值,k和i的取值對(duì)應(yīng)相等。
第11步,判斷新編碼集合的效益值是否大于原編碼集合的效益值,若是,則執(zhí)行本步驟的第12步,否則,執(zhí)行本步驟的第13步。
第12步,將原編碼集合的效益值更新為新編碼集合的效益值,并將原編碼集合用新編碼集合替換。
第13步,判斷原編碼集合中數(shù)據(jù)包總數(shù)是否大于等于3,若是,則執(zhí)行本步驟的第14步,否則,執(zhí)行本步驟的第9步。
第14步,將替換后的原編碼集合通過(guò)廣播的方式告知協(xié)作簇內(nèi)的用戶。
第15步,重傳者使用異或操作,將替換后的原編碼集合包含的數(shù)據(jù)包編碼成一個(gè)異或網(wǎng)絡(luò)編碼包,采用廣播的方式,將異或網(wǎng)絡(luò)編碼包發(fā)送出去。
第16步,協(xié)作簇內(nèi)的用戶接收重傳者廣播的異或網(wǎng)絡(luò)編碼包,用接收到的異或網(wǎng)絡(luò)編碼包更新低稀有度矩陣。
第17步,判斷低稀有度矩陣是否為全0矩陣,若是,則執(zhí)行步驟11,否則,執(zhí)行本步驟的第6步。
步驟11,結(jié)束多播過(guò)程。
本發(fā)明提出的方法中,尋優(yōu)復(fù)雜度體現(xiàn)在步驟10中所述的使用異或網(wǎng)絡(luò)編碼處理低稀有度矩陣的過(guò)程。低稀有度矩陣包含的數(shù)據(jù)包是被少數(shù)用戶丟失的,對(duì)于這樣的數(shù)據(jù)包分布矩陣,采用現(xiàn)有的源節(jié)點(diǎn)重傳方法時(shí),尋優(yōu)過(guò)程的時(shí)間復(fù)雜度由o(n2×m)降為o((1-α)2n2×m),其中o表示時(shí)間復(fù)雜度,n表示數(shù)據(jù)包總數(shù),m表示協(xié)作簇內(nèi)的用戶總數(shù)。因此,本發(fā)明提出的方法可以降低采用異或網(wǎng)絡(luò)編碼時(shí)所需的尋優(yōu)復(fù)雜度。
下面通過(guò)本發(fā)明的仿真實(shí)驗(yàn)對(duì)本發(fā)明的效果做進(jìn)一步說(shuō)明。
1.仿真條件:
本發(fā)明的仿真實(shí)驗(yàn)設(shè)置一個(gè)源節(jié)點(diǎn)和一個(gè)用戶總數(shù)為m的協(xié)作簇。源節(jié)點(diǎn)向協(xié)作簇內(nèi)的用戶發(fā)送多播數(shù)據(jù),源節(jié)點(diǎn)和用戶節(jié)點(diǎn)間的數(shù)據(jù)包丟失情況彼此獨(dú)立,數(shù)據(jù)包的丟失概率為0.2,拆分因子α設(shè)為0.5。
2.仿真內(nèi)容:
本發(fā)明的仿真實(shí)驗(yàn)使用本發(fā)明提出的方法、現(xiàn)有技術(shù)的源節(jié)點(diǎn)重傳方法和現(xiàn)有技術(shù)的用戶協(xié)作pie方法,分別對(duì)多播過(guò)程中協(xié)作簇內(nèi)用戶丟失的數(shù)據(jù)包進(jìn)行恢復(fù),得到平均傳輸次數(shù)和基本乘法運(yùn)算次數(shù)的仿真結(jié)果。平均傳輸次數(shù)由多播過(guò)程中所有數(shù)據(jù)包的傳輸總次數(shù)與數(shù)據(jù)包總數(shù)的比值確定,平均傳輸次數(shù)越少,傳輸效率越高?;境朔ㄟ\(yùn)算表示隨機(jī)線性網(wǎng)絡(luò)編碼過(guò)程中一個(gè)由伽羅華域gf(28)隨機(jī)選取的系數(shù)和一個(gè)數(shù)據(jù)包相乘的運(yùn)算,基本乘法運(yùn)算次數(shù)表示多播過(guò)程中發(fā)生基本乘法運(yùn)算的總次數(shù)。
傳輸效率如圖4所示,圖4中的橫軸表示數(shù)據(jù)包的總數(shù),單位是個(gè),縱軸表示平均傳輸次數(shù),單位是次。圖4中分別以圓形、三角形和正方形標(biāo)示的實(shí)線表示在用戶總數(shù)m等于10時(shí),分別使用現(xiàn)有技術(shù)的源節(jié)點(diǎn)重傳方法、現(xiàn)有技術(shù)的用戶協(xié)作pie方法和本發(fā)明提出的方法,恢復(fù)丟失的數(shù)據(jù)包后得到的平均傳輸次數(shù)曲線。圖4中分別以圓形、三角形和正方形標(biāo)示的虛線表示在用戶總數(shù)m等于15時(shí),分別使用現(xiàn)有技術(shù)的源節(jié)點(diǎn)重傳方法、現(xiàn)有技術(shù)的用戶協(xié)作pie方法和本發(fā)明提出的方法,恢復(fù)丟失的數(shù)據(jù)包后得到的平均傳輸次數(shù)曲線。
計(jì)算開(kāi)銷如圖5所示,其中的橫軸表示數(shù)據(jù)包總數(shù),單位是個(gè),縱軸表示平均傳輸次數(shù),單位是次。由于現(xiàn)有的源節(jié)點(diǎn)重傳方法需要的的計(jì)算開(kāi)銷很小,因此有關(guān)計(jì)算開(kāi)銷的仿真中,使用了現(xiàn)有技術(shù)的用戶協(xié)作pie方法和本發(fā)明提出的方法。圖5中分別以三角形和正方形標(biāo)示的實(shí)線表示在用戶數(shù)m等于10時(shí),分別使用現(xiàn)有技術(shù)的用戶協(xié)作pie方法和本發(fā)明提出的方法,恢復(fù)丟失的數(shù)據(jù)包后得到的基本乘法運(yùn)算次數(shù)曲線。圖5中分別以三角形和正方形標(biāo)示的虛線表示在用戶數(shù)m等于15時(shí),分別使用現(xiàn)有技術(shù)的用戶協(xié)作pie方法和本發(fā)明提出的方法,恢復(fù)丟失的數(shù)據(jù)包后得到的基本乘法運(yùn)算次數(shù)曲線。
3.仿真結(jié)果分析:
由圖4的仿真圖可見(jiàn),當(dāng)用戶數(shù)m等于15且數(shù)據(jù)包總數(shù)等于100時(shí),與現(xiàn)有技術(shù)的源節(jié)點(diǎn)重傳方法相比,本發(fā)明得到的平均傳輸次數(shù)減少了10%左右,即100個(gè)數(shù)據(jù)包時(shí),本發(fā)明所需的傳輸次數(shù)比現(xiàn)有技術(shù)的源節(jié)點(diǎn)重傳方法少10次。此外,無(wú)論用戶數(shù)m等于10或者15,當(dāng)數(shù)據(jù)包總數(shù)小于80時(shí),本發(fā)明得到的平均傳輸次數(shù)略大于現(xiàn)有技術(shù)的用戶協(xié)作pie方法得到的平均傳輸次數(shù),而當(dāng)數(shù)據(jù)包總數(shù)大于80時(shí),本發(fā)明得到的平均傳輸次數(shù)略小于現(xiàn)有技術(shù)的用戶協(xié)作pie方法得到的平均傳輸次數(shù)。由此可見(jiàn),本發(fā)明提出的方法與現(xiàn)有技術(shù)的源節(jié)點(diǎn)重傳方法相比,具有更高的傳輸效率,與現(xiàn)有技術(shù)的用戶協(xié)作pie方法相比,具有大致相同的傳輸效率。
由圖5的仿真圖可見(jiàn),當(dāng)用戶數(shù)m等于10且數(shù)據(jù)包總數(shù)等于100時(shí),本發(fā)明得到的基本乘法運(yùn)算次數(shù)約為現(xiàn)有技術(shù)的用戶協(xié)作pie方法的20%,而當(dāng)用戶數(shù)m等于15且數(shù)據(jù)包總數(shù)等于200時(shí),本發(fā)明得到的基本乘法運(yùn)算次數(shù)約為現(xiàn)有技術(shù)的用戶協(xié)作pie方法的15%。由此可見(jiàn),本發(fā)明與現(xiàn)有技術(shù)的用戶協(xié)作pie方法相比,顯著地降低了采用隨機(jī)線性網(wǎng)絡(luò)編碼時(shí)的計(jì)算開(kāi)銷。
綜上所述,本發(fā)明提出的方法,在保證高多播系統(tǒng)傳輸效率的條件下,一方面減小了采用異或網(wǎng)絡(luò)編碼方法時(shí)的尋優(yōu)復(fù)雜度,另一方面減小了采用隨機(jī)線性網(wǎng)絡(luò)編碼方法時(shí)的計(jì)算開(kāi)銷。