本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是指一種基于區(qū)域協(xié)作緩存的D2D內(nèi)容分發(fā)方法
背景技術(shù):
近年來,隨著多媒體技術(shù)與移動網(wǎng)絡(luò)的不斷發(fā)展,傳統(tǒng)的無線蜂窩網(wǎng)絡(luò)已無法滿足用戶對于帶寬的需求。業(yè)界提出了Device-to-Device(設(shè)備到設(shè)備,D2D)連接使得移動終端可以互相交換數(shù)據(jù),輔助蜂窩網(wǎng)絡(luò)進(jìn)行內(nèi)容分發(fā)。然而無線移動D2D網(wǎng)絡(luò)雖然有傳輸速度快、通信資費(fèi)低的優(yōu)點(diǎn),但同時(shí)也存在通信范圍受限,網(wǎng)絡(luò)拓?fù)涠嘧兊娜秉c(diǎn)。當(dāng)網(wǎng)絡(luò)中的節(jié)點(diǎn)移動較為頻繁時(shí),D2D連接可能會因節(jié)點(diǎn)移動出通信范圍而中斷,進(jìn)而導(dǎo)致傳輸失敗。
目前針對該問題主要有兩種解決思路:(1)請求發(fā)生前預(yù)先部署緩存資源;(2)請求發(fā)生后篩選最佳中繼節(jié)點(diǎn)。
第一種思路綜合考量全網(wǎng)中的節(jié)點(diǎn)與數(shù)據(jù)資源,使用特定機(jī)制優(yōu)化緩存資源部署位置,此種方式特點(diǎn)是未雨綢繆,主動優(yōu)化資源部署而不依賴請求信息,協(xié)作緩存方法是其中的代表,Zhuo等人提出根據(jù)“中心度”來優(yōu)化緩存部署的協(xié)作緩存機(jī)制?!爸行亩取笔怯晒?jié)點(diǎn)的地理位置、連接度等參數(shù)綜合計(jì)算而來,用來判斷該節(jié)點(diǎn)可能參與傳輸?shù)母怕??!爸行亩取睌?shù)值會隨節(jié)點(diǎn)移動而變化,網(wǎng)絡(luò)中的資源部署因此保持著動態(tài)優(yōu)化,由此可緩解D2D網(wǎng)絡(luò)中節(jié)點(diǎn)頻繁移動的問題。但該方法的缺點(diǎn)是小區(qū)內(nèi)的資源分布不平均,在靠近小區(qū)邊緣的區(qū)域緩存資源較為匱乏,若請求節(jié)點(diǎn)在此發(fā)起請求,則很難在短時(shí)間內(nèi)獲得足夠的資源。
第二種思路主要研究在請求開始后如何篩選最佳的中繼節(jié)點(diǎn),代表方法是機(jī)會路由,機(jī)會路由充分利用無線信道的廣播特性,基于特定測度自動選擇每跳中的最佳中繼節(jié)點(diǎn),該方法根據(jù)每一跳傳輸完成后的結(jié)果來選擇最佳中繼節(jié)點(diǎn),以此可解決節(jié)點(diǎn)移動的隨機(jī)性問題,但該方法每一跳傳輸時(shí)均需將資源廣播至通信范圍內(nèi)的全部節(jié)點(diǎn),對信道與節(jié)點(diǎn)資源有著極大的浪費(fèi)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是提供一種基于區(qū)域協(xié)作緩存的D2D內(nèi)容分發(fā)方法,以解決現(xiàn)有技術(shù)所存在的當(dāng)請求節(jié)點(diǎn)在緩存資源匱乏的位置發(fā)起請求時(shí)難以在短時(shí)間內(nèi)獲得足夠的請求數(shù)據(jù),以及將請求的數(shù)據(jù)廣播至通信范圍內(nèi)的全部節(jié)點(diǎn)會造成信道與節(jié)點(diǎn)資源浪費(fèi)的問題。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供一種基于區(qū)域協(xié)作緩存的D2D內(nèi)容分發(fā)方法,包括:
步驟1,根據(jù)請求節(jié)點(diǎn)的移動趨勢信息和請求數(shù)據(jù)信息,獲取所需的緩存預(yù)置區(qū)域的數(shù)目與位置;
步驟2,根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息,獲取中繼節(jié)點(diǎn),所述中繼節(jié)點(diǎn)用于在所述請求節(jié)點(diǎn)到達(dá)所述緩存預(yù)置區(qū)域之前,將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)攜帶至所述緩存預(yù)置區(qū)域;
步驟3,當(dāng)所述請求節(jié)點(diǎn)到達(dá)所述緩存預(yù)置區(qū)域后,在每個(gè)緩存預(yù)置區(qū)域獲取部分的請求數(shù)據(jù),并通過所有的緩存預(yù)置區(qū)域協(xié)作來獲得全部的請求數(shù)據(jù)。
進(jìn)一步地,所述步驟1之前還包括:
獲取所述請求節(jié)點(diǎn)的移動終點(diǎn)位置及當(dāng)前位置;
根據(jù)獲取的所述請求節(jié)點(diǎn)的移動終點(diǎn)位置及當(dāng)前位置,對所述請求節(jié)點(diǎn)的行進(jìn)路線進(jìn)行預(yù)測,得到所述請求節(jié)點(diǎn)的移動趨勢信息。
進(jìn)一步地,所述步驟1包括:
步驟11,根據(jù)所述請求數(shù)據(jù)信息中的請求數(shù)據(jù)包大小與D2D通信帶寬,得出所述請求節(jié)點(diǎn)請求的數(shù)據(jù)所需的傳輸時(shí)間;
步驟12,根據(jù)網(wǎng)絡(luò)中的節(jié)點(diǎn)密度得出所述緩存預(yù)置區(qū)域的半徑;
步驟13,根據(jù)所述緩存預(yù)置區(qū)域的半徑與所述請求節(jié)點(diǎn)的移動速度,得出所述請求節(jié)點(diǎn)在所述緩存預(yù)置區(qū)域內(nèi)的期望停留時(shí)間;
步驟14,根據(jù)所述傳輸時(shí)間與所述期望停留時(shí)間,獲取所需的緩存預(yù)置區(qū)域的數(shù)目na,根據(jù)所述請求數(shù)據(jù)信息中的請求數(shù)據(jù)包大小及所需的緩存預(yù)置區(qū)域的數(shù)目na得出每個(gè)緩存預(yù)置區(qū)域所需部署的緩存數(shù)據(jù)量,并將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)按每個(gè)緩存預(yù)置區(qū)域所需部署的緩存數(shù)據(jù)量進(jìn)行分塊;
步驟15,按照預(yù)設(shè)的時(shí)間條件,根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息和平均移動速度得出所述請求節(jié)點(diǎn)最快取到請求數(shù)據(jù)的位置Dt,并以所述Dt為圓心的區(qū)域作為所述請求節(jié)點(diǎn)最快到達(dá)區(qū)域;
步驟16,判斷所述最快到達(dá)區(qū)域是否是第一個(gè)緩存預(yù)置區(qū)域;
步驟17,若是,在確定第一個(gè)緩存預(yù)置區(qū)域之后,以所述請求節(jié)點(diǎn)的移動終點(diǎn)位置為起點(diǎn),以緩存預(yù)置區(qū)域的直徑為步長,以所述第一個(gè)緩存預(yù)置區(qū)域的圓心為終點(diǎn),根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息(所述請求節(jié)點(diǎn)的行進(jìn)路線),確定下一個(gè)緩存預(yù)置區(qū)域的圓心位置,直至確定所有緩存預(yù)置區(qū)域的圓心位置,其中,各緩存預(yù)置區(qū)域的半徑相同。
進(jìn)一步地,所述步驟15包括:
步驟151,獲取數(shù)據(jù)源節(jié)點(diǎn)的位置Ds;
步驟152,獲取所述請求節(jié)點(diǎn)行進(jìn)一半路程時(shí)的位置
步驟153,根據(jù)所述請求節(jié)點(diǎn)的平均移動速度,獲取從所述請求節(jié)點(diǎn)的當(dāng)前位置到達(dá)時(shí)的用時(shí)與從所述數(shù)據(jù)源節(jié)點(diǎn)的位置Ds到達(dá)時(shí)的用時(shí)
步驟154,若則取到所述請求節(jié)點(diǎn)的當(dāng)前位置的中點(diǎn)為否則,則取到所述請求節(jié)點(diǎn)的移動終點(diǎn)位置的中點(diǎn)為
步驟155,迭代執(zhí)行步驟151-步驟154,直至所述請求節(jié)點(diǎn)比所述數(shù)據(jù)源節(jié)點(diǎn)到某地時(shí)的用時(shí)更長,且不多于30秒,則此時(shí)的為所述請求節(jié)點(diǎn)最快取到請求數(shù)據(jù)的位置Dt,其中,所述為第n次迭代時(shí)所述請求節(jié)點(diǎn)行進(jìn)一半路程時(shí)的位置。
進(jìn)一步地,所述步驟16包括:
步驟161,將所述Dt展示給用戶,由用戶確認(rèn)是否會經(jīng)過此地;
步驟162,若用戶確定會經(jīng)過此地,則將所述最快到達(dá)區(qū)域作為第一個(gè)緩存預(yù)置區(qū)域;
步驟163,若用戶不確定會經(jīng)過此地,則根據(jù)預(yù)測的所述請求節(jié)點(diǎn)的行進(jìn)路線,在所述Dt到所述請求節(jié)點(diǎn)的移動終點(diǎn)位置之間的范圍內(nèi)選取一個(gè)距離所述Dt最近且會經(jīng)過的位置作為第一個(gè)緩存預(yù)置區(qū)域的圓心。
進(jìn)一步地,所述步驟2包括:
步驟21,將所述請求節(jié)點(diǎn)的請求數(shù)據(jù)信息、得到的每個(gè)緩存預(yù)置區(qū)域的圓心坐標(biāo)、半徑及所需部署的緩存數(shù)據(jù)量發(fā)送給所述數(shù)據(jù)源節(jié)點(diǎn);
步驟22,查找所述數(shù)據(jù)源節(jié)點(diǎn)通信范圍內(nèi)的移動節(jié)點(diǎn),根據(jù)每個(gè)移動節(jié)點(diǎn)的移動信息,從查找到的所述數(shù)據(jù)源節(jié)點(diǎn)通信范圍內(nèi)的移動節(jié)點(diǎn)中選取k個(gè)移動節(jié)點(diǎn)作為本次傳輸?shù)闹欣^節(jié)點(diǎn),將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)分成na塊并進(jìn)行隨機(jī)線性網(wǎng)絡(luò)編碼處理后向選取的k個(gè)中繼節(jié)點(diǎn)發(fā)送數(shù)據(jù);
步驟23,通過選取的k個(gè)中繼節(jié)點(diǎn)將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)攜帶至相應(yīng)的緩存預(yù)置區(qū)域。
進(jìn)一步地,所述步驟22包括:
步驟221,以第一個(gè)緩存預(yù)置區(qū)域?yàn)槟繕?biāo)區(qū)域;
步驟222,判斷每個(gè)移動節(jié)點(diǎn)的移動方向,若移動方向?qū)┻^所述目標(biāo)區(qū)域的移動節(jié)點(diǎn)的數(shù)目大于k,則比較相應(yīng)移動節(jié)點(diǎn)的當(dāng)前位置,選取距離所述目標(biāo)區(qū)域最近的k個(gè)移動節(jié)點(diǎn)作為中繼節(jié)點(diǎn);否則,則選取移動方向離所述目標(biāo)區(qū)域中心偏移最少的k個(gè)移動節(jié)點(diǎn)作為中繼節(jié)點(diǎn);
步驟223,以下一個(gè)緩存預(yù)置區(qū)域?yàn)槟繕?biāo)區(qū)域,重復(fù)步驟222,選取k個(gè)中繼節(jié)點(diǎn),直至所有緩存預(yù)置區(qū)域所對應(yīng)的中繼節(jié)點(diǎn)選擇完成;
步驟224,將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)包平均分為na塊,將平均分成的na塊數(shù)據(jù)塊繼續(xù)分塊,對繼續(xù)分塊后的數(shù)據(jù)使用隨機(jī)線性網(wǎng)絡(luò)編碼進(jìn)行編碼;
步驟225,將編碼后的數(shù)據(jù)塊發(fā)送至每個(gè)緩存預(yù)置區(qū)域?qū)?yīng)的中繼節(jié)點(diǎn)。
進(jìn)一步地,所述步驟22之后還包括:
步驟24,在所述數(shù)據(jù)源節(jié)點(diǎn)向所述中繼節(jié)點(diǎn)發(fā)送數(shù)據(jù)的過程中,所述中繼節(jié)點(diǎn)還用于判斷所述中繼節(jié)點(diǎn)當(dāng)前位置到所述中繼節(jié)點(diǎn)終點(diǎn)位置的連線與所述中繼節(jié)點(diǎn)自身的移動方向夾角是否小于45度,若是,則重復(fù)步驟22;
否則,則刪除所述中繼節(jié)點(diǎn)自身的緩存數(shù)據(jù),不再繼續(xù)作為中繼節(jié)點(diǎn)。
進(jìn)一步地,所述步驟3包括:
步驟31,當(dāng)中繼節(jié)點(diǎn)攜帶相應(yīng)的數(shù)據(jù)到達(dá)相應(yīng)的緩存預(yù)置區(qū)域后,獲取處于所述中繼節(jié)點(diǎn)自身通信范圍和相應(yīng)的緩沖預(yù)置區(qū)域交集內(nèi)的緩存節(jié)點(diǎn);
步驟32,將所述中繼節(jié)點(diǎn)攜帶的相應(yīng)數(shù)據(jù)傳輸至獲取到的所述緩存節(jié)點(diǎn),若所述中繼節(jié)點(diǎn)還攜帶有前一緩存預(yù)置區(qū)域的數(shù)據(jù),且本區(qū)域數(shù)據(jù)傳輸完成后仍與所述緩存節(jié)點(diǎn)保持連接,則繼續(xù)向所述緩存節(jié)點(diǎn)傳輸前一緩存預(yù)置區(qū)域的數(shù)據(jù)直至連接中斷;
步驟33,通過所述緩存節(jié)點(diǎn)在相應(yīng)的緩存預(yù)置區(qū)域內(nèi)尋找新的緩存節(jié)點(diǎn)并分發(fā)數(shù)據(jù),在數(shù)據(jù)分發(fā)結(jié)束后判斷所述緩存節(jié)點(diǎn)自身是否仍處于相應(yīng)的緩存預(yù)置區(qū)域內(nèi),若仍處于相應(yīng)的緩存預(yù)置區(qū)域內(nèi),則保留自身攜帶的緩存數(shù)據(jù);否則,則刪除自身攜帶的緩存數(shù)據(jù),不再作為相應(yīng)的緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)。
進(jìn)一步地,所述步驟3還包括:
步驟34,當(dāng)所述請求節(jié)點(diǎn)到達(dá)某緩存預(yù)置區(qū)域時(shí),判斷當(dāng)前緩存預(yù)置區(qū)域是否緩存有前一緩存預(yù)置區(qū)域的數(shù)據(jù),且緩存的數(shù)據(jù)量是否滿足所述請求節(jié)點(diǎn)的需求;若緩存的數(shù)據(jù)量滿足所述請求節(jié)點(diǎn)的需求,則當(dāng)前緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)直接向所述請求節(jié)點(diǎn)發(fā)送本區(qū)域數(shù)據(jù);若緩存的數(shù)據(jù)量不滿足所述請求節(jié)點(diǎn)的需求,且當(dāng)前緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)攜帶有前一緩存預(yù)置區(qū)域的數(shù)據(jù),則當(dāng)前緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)先向所述請求節(jié)點(diǎn)發(fā)送前一緩存預(yù)置區(qū)域缺少的數(shù)據(jù)再發(fā)送本區(qū)域數(shù)據(jù);當(dāng)所述請求節(jié)點(diǎn)收到足夠的本區(qū)域數(shù)據(jù)時(shí),立即使用隨機(jī)線性網(wǎng)絡(luò)編碼進(jìn)行解碼,則此部分?jǐn)?shù)據(jù)傳輸完成;
步驟35,當(dāng)所述請求節(jié)點(diǎn)到達(dá)新的緩存預(yù)置區(qū)域時(shí),重復(fù)步驟34,直至所述請求節(jié)點(diǎn)離開最后一個(gè)緩存預(yù)置區(qū)域。
本發(fā)明的上述技術(shù)方案的有益效果如下:
上述方案中,根據(jù)請求節(jié)點(diǎn)的移動趨勢信息和請求數(shù)據(jù)信息,獲取所需的緩存預(yù)置區(qū)域的數(shù)目與位置;根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息,獲取中繼節(jié)點(diǎn),在所述請求節(jié)點(diǎn)到達(dá)相應(yīng)的緩存預(yù)置區(qū)域之前,由所述中繼節(jié)點(diǎn)攜帶所述請求節(jié)點(diǎn)請求的數(shù)據(jù)到達(dá)相應(yīng)的緩存預(yù)置區(qū)域進(jìn)行緩存;當(dāng)所述請求節(jié)點(diǎn)到達(dá)所述緩存預(yù)置區(qū)域后,在每個(gè)緩存預(yù)置區(qū)域獲取部分的請求數(shù)據(jù),并通過所有的緩存預(yù)置區(qū)域協(xié)作來獲得所述請求節(jié)點(diǎn)全部的請求數(shù)據(jù),這樣,根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息和請求數(shù)據(jù)信息部署緩存,請求節(jié)點(diǎn)的具體位置對數(shù)據(jù)分發(fā)無影響,并根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息,獲取中繼節(jié)點(diǎn),不存在機(jī)會路由的資源浪費(fèi)問題,從而可以提高網(wǎng)絡(luò)傳輸?shù)馁|(zhì)量和可靠性。
附圖說明
圖1為本發(fā)明實(shí)施例提供的基于區(qū)域協(xié)作緩存的D2D內(nèi)容分發(fā)方法的流程示意圖;
圖2為本發(fā)明實(shí)施例提供的獲取最快到達(dá)區(qū)域的中心位置的示意圖;
圖3為本發(fā)明實(shí)施例提供的判斷最快到達(dá)區(qū)域是否是第一個(gè)緩存預(yù)置區(qū)域的示意圖;
圖4為本發(fā)明實(shí)施例提供的當(dāng)中繼節(jié)點(diǎn)到達(dá)對應(yīng)的緩存預(yù)置區(qū)域后,獲取當(dāng)前緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)的示意圖。
具體實(shí)施方式
為使本發(fā)明要解決的技術(shù)問題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例進(jìn)行詳細(xì)描述。
本發(fā)明針對現(xiàn)有的D2D網(wǎng)絡(luò)節(jié)點(diǎn)移動導(dǎo)致的通信中斷,以及將請求的數(shù)據(jù)廣播至通信范圍內(nèi)的全部節(jié)點(diǎn)會造成信道與節(jié)點(diǎn)資源浪費(fèi)的問題,提供一種基于區(qū)域協(xié)作緩存的D2D內(nèi)容分發(fā)方法。
實(shí)施例一
參看圖1所示,本發(fā)明實(shí)施例提供的基于區(qū)域協(xié)作緩存的D2D內(nèi)容分發(fā)方法,包括:
步驟1,根據(jù)請求節(jié)點(diǎn)的移動趨勢信息和請求數(shù)據(jù)信息,獲取所需的緩存預(yù)置區(qū)域的數(shù)目與位置;
步驟2,根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息,獲取中繼節(jié)點(diǎn),所述中繼節(jié)點(diǎn)用于在所述請求節(jié)點(diǎn)到達(dá)所述緩存預(yù)置區(qū)域之前,將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)攜帶至所述緩存預(yù)置區(qū)域;
步驟3,當(dāng)所述請求節(jié)點(diǎn)到達(dá)所述緩存預(yù)置區(qū)域后,在每個(gè)緩存預(yù)置區(qū)域獲取部分的請求數(shù)據(jù),并通過所有的緩存預(yù)置區(qū)域協(xié)作來獲得全部的請求數(shù)據(jù)。
本發(fā)明實(shí)施例所述的基于區(qū)域協(xié)作緩存的D2D內(nèi)容分發(fā)方法,根據(jù)請求節(jié)點(diǎn)的移動趨勢信息和請求數(shù)據(jù)信息,獲取所需的緩存預(yù)置區(qū)域的數(shù)目與位置;根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息,獲取中繼節(jié)點(diǎn),在所述請求節(jié)點(diǎn)到達(dá)相應(yīng)的緩存預(yù)置區(qū)域之前,由所述中繼節(jié)點(diǎn)攜帶所述請求節(jié)點(diǎn)請求的數(shù)據(jù)到達(dá)相應(yīng)的緩存預(yù)置區(qū)域進(jìn)行緩存;當(dāng)所述請求節(jié)點(diǎn)到達(dá)所述緩存預(yù)置區(qū)域后,在每個(gè)緩存預(yù)置區(qū)域獲取部分的請求數(shù)據(jù),并通過所有的緩存預(yù)置區(qū)域協(xié)作來獲得所述請求節(jié)點(diǎn)全部的請求數(shù)據(jù),這樣,根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息和請求數(shù)據(jù)信息部署緩存,請求節(jié)點(diǎn)的具體位置對數(shù)據(jù)分發(fā)無影響,并根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息,獲取中繼節(jié)點(diǎn),不存在機(jī)會路由的資源浪費(fèi)問題,從而可以提高網(wǎng)絡(luò)傳輸?shù)馁|(zhì)量和可靠性。
本實(shí)施例中,為了解決現(xiàn)有的D2D網(wǎng)絡(luò)節(jié)點(diǎn)移動導(dǎo)致的通信中斷,以及將請求的數(shù)據(jù)廣播至通信范圍內(nèi)的全部節(jié)點(diǎn)會造成信道與節(jié)點(diǎn)緩存空間浪費(fèi)的問題,本實(shí)施例提出了一種基于區(qū)域協(xié)作緩存的D2D數(shù)據(jù)分發(fā)方法,通過分析請求節(jié)點(diǎn)的移動趨勢信息和請求數(shù)據(jù)信息來規(guī)劃緩存預(yù)置區(qū)域,并利用中繼節(jié)點(diǎn)的移動將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)攜帶至已規(guī)劃的緩存預(yù)置區(qū)域,再由各緩存預(yù)置區(qū)域協(xié)作完成內(nèi)容分發(fā)。在本實(shí)施例中,主要要解決以下三個(gè)基本問題:
(1)當(dāng)某請求節(jié)點(diǎn)請求數(shù)據(jù)時(shí),需解決的問題是如何根據(jù)請求節(jié)點(diǎn)的移動趨勢信息來規(guī)劃緩存預(yù)置區(qū)域;
(2)在規(guī)劃緩存預(yù)置區(qū)域后,需解決的問題是如何選擇中繼節(jié)點(diǎn)來攜帶所述請求節(jié)點(diǎn)請求的數(shù)據(jù)(緩存數(shù)據(jù))至已規(guī)劃的緩存預(yù)置區(qū)域中;
(3)當(dāng)中繼節(jié)點(diǎn)攜帶緩存數(shù)據(jù)到達(dá)緩存預(yù)置區(qū)域后,需解決的問題是如何在緩存預(yù)置區(qū)域內(nèi)部署緩存數(shù)據(jù),并在請求節(jié)點(diǎn)到達(dá)緩存預(yù)置區(qū)域后如何由各緩存預(yù)置區(qū)域協(xié)作完成數(shù)據(jù)分發(fā)。
本實(shí)施例中,所述請求節(jié)點(diǎn)可以為移動終端,該移動終端可以通過基站接入網(wǎng)絡(luò),或,通過D2D與其他移動終端進(jìn)行通信,該移動終端需要能接入地圖和導(dǎo)航數(shù)據(jù)的應(yīng)用(Application,APP),并具備全球定位系統(tǒng)(Global Positioning System,GPS)功能。
本實(shí)施例中,為了解決問題(1),當(dāng)有新的請求節(jié)點(diǎn)準(zhǔn)備加入網(wǎng)絡(luò)時(shí),可以由用戶在移動終端中輸入移動終點(diǎn),得到移動終點(diǎn)坐標(biāo)(xdn,ydn),并使用GPS可獲取所述新的請求節(jié)點(diǎn)的當(dāng)前位置坐標(biāo)(xln,yln),進(jìn)而由導(dǎo)航APP預(yù)測所述新的請求節(jié)點(diǎn)的行進(jìn)路線,從而得到所述新的請求節(jié)點(diǎn)的移動趨勢信息。
本實(shí)施例中,作為一可選實(shí)施例,所述步驟1之前還包括:
獲取所述請求節(jié)點(diǎn)的移動終點(diǎn)位置及當(dāng)前位置;
根據(jù)獲取的所述請求節(jié)點(diǎn)的移動終點(diǎn)位置及當(dāng)前位置,對所述請求節(jié)點(diǎn)的行進(jìn)路線進(jìn)行預(yù)測,得到所述請求節(jié)點(diǎn)的移動趨勢信息。
本實(shí)施例中,當(dāng)網(wǎng)絡(luò)中有請求節(jié)點(diǎn)請求數(shù)據(jù)時(shí),為了解決問題(1),還需執(zhí)行以下操作:
A11,根據(jù)網(wǎng)絡(luò)中的節(jié)點(diǎn)密度p(所述節(jié)點(diǎn)密度指每平方米中的節(jié)點(diǎn)數(shù)量)得出每個(gè)緩存預(yù)置區(qū)域的半徑其中,所述緩存預(yù)置區(qū)域?yàn)閳A形;
A12,由所述節(jié)點(diǎn)密度及所述請求節(jié)點(diǎn)的移動速度vd(可以指平均移動速度)得出所述請求節(jié)點(diǎn)在所述緩存預(yù)置區(qū)域內(nèi)的最大停留時(shí)間tsm=2r/vd,由于請求節(jié)點(diǎn)可能不是沿緩存預(yù)置區(qū)域的直徑穿過,但大多數(shù)情況下停留時(shí)間不小于因此取作為在所述請求節(jié)點(diǎn)在每個(gè)緩存預(yù)置區(qū)域內(nèi)的期望停留時(shí)間;
A13,根據(jù)所述請求數(shù)據(jù)信息中的請求數(shù)據(jù)包大小m與D2D通信帶寬B可得出所述請求節(jié)點(diǎn)請求的數(shù)據(jù)所需的傳輸時(shí)間t=m/B;
A14,根據(jù)所述傳輸時(shí)間t與所述期望停留時(shí)間tse,得到所需的緩存預(yù)置區(qū)域的數(shù)目以及每個(gè)緩存預(yù)置區(qū)域所需部署的緩存數(shù)據(jù)量mn=m/na,并將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)按每個(gè)緩存預(yù)置區(qū)域所需部署的緩存數(shù)據(jù)量mn進(jìn)行分塊;
A 15,按照預(yù)設(shè)的時(shí)間條件,根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息和平均移動速度得出所述請求節(jié)點(diǎn)最快取到請求數(shù)據(jù)的位置Dt,并以所述Dt為圓心的區(qū)域作為所述請求節(jié)點(diǎn)最快到達(dá)區(qū)域;
A 16,判斷所述最快到達(dá)區(qū)域是否是第一個(gè)緩存預(yù)置區(qū)域;
A 17,若是第一個(gè)緩存預(yù)置區(qū)域,則在確定所述第一個(gè)緩存預(yù)置區(qū)域之后,按以下方式確定其余的緩存預(yù)置區(qū)域的位置:以所述請求節(jié)點(diǎn)的移動終點(diǎn)位置為起點(diǎn),以緩存預(yù)置區(qū)域的直徑為步長,以所述第一個(gè)緩存預(yù)置區(qū)域的圓心為終點(diǎn),根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息,確定下一個(gè)緩存預(yù)置區(qū)域的圓心位置,直至確定所有緩存預(yù)置區(qū)域的圓心位置,其中,各緩存預(yù)置區(qū)域的半徑相同。這樣,其余的緩存預(yù)置區(qū)域依次排列于所述第一個(gè)緩存預(yù)置區(qū)域之后,在所述請求節(jié)點(diǎn)的行進(jìn)路線上首尾相接。
依次排列于所述第一個(gè)緩存預(yù)置區(qū)域之后,在所述請求節(jié)點(diǎn)的行進(jìn)路線上首尾相接。
本實(shí)施例中,作為一可選實(shí)施例,所述步驟1包括:
步驟11,根據(jù)所述請求數(shù)據(jù)信息中的請求數(shù)據(jù)包大小與D2D通信帶寬,得出所述請求節(jié)點(diǎn)請求的數(shù)據(jù)所需的傳輸時(shí)間;
步驟12,根據(jù)網(wǎng)絡(luò)中的節(jié)點(diǎn)密度得出所述緩存預(yù)置區(qū)域的半徑;
步驟13,根據(jù)所述緩存預(yù)置區(qū)域的半徑與所述請求節(jié)點(diǎn)的移動速度,得出所述請求節(jié)點(diǎn)在所述緩存預(yù)置區(qū)域內(nèi)的期望停留時(shí)間;
步驟14,根據(jù)所述傳輸時(shí)間與所述期望停留時(shí)間,獲取所需的緩存預(yù)置區(qū)域的數(shù)目na,根據(jù)所述請求數(shù)據(jù)信息中的請求數(shù)據(jù)包大小及所需的緩存預(yù)置區(qū)域的數(shù)目na得出每個(gè)緩存預(yù)置區(qū)域所需部署的緩存數(shù)據(jù)量,并將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)按每個(gè)緩存預(yù)置區(qū)域所需部署的緩存數(shù)據(jù)量進(jìn)行分塊;
步驟15,按照預(yù)設(shè)的時(shí)間條件,根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息和平均移動速度得出所述請求節(jié)點(diǎn)最快取到請求數(shù)據(jù)的位置Dt,并以所述Dt為圓心的區(qū)域作為所述請求節(jié)點(diǎn)最快到達(dá)區(qū)域;
步驟16,判斷所述最快到達(dá)區(qū)域是否是第一個(gè)緩存預(yù)置區(qū)域;
步驟17,若是,在確定第一個(gè)緩存預(yù)置區(qū)域之后,以所述請求節(jié)點(diǎn)的移動終點(diǎn)位置為起點(diǎn),以緩存預(yù)置區(qū)域的直徑為步長,以所述第一個(gè)緩存預(yù)置區(qū)域的圓心為終點(diǎn),根據(jù)所述請求節(jié)點(diǎn)的移動趨勢信息,確定下一個(gè)緩存預(yù)置區(qū)域的圓心位置,直至確定所有緩存預(yù)置區(qū)域的圓心位置,其中,各緩存預(yù)置區(qū)域的半徑相同。
本實(shí)施例中,在A15中,根據(jù)請求節(jié)點(diǎn)的移動趨勢信息(預(yù)測的行進(jìn)路線)和平均移動速度ν可以利用二分法得出所述請求節(jié)點(diǎn)最快可以得到數(shù)據(jù)的位置Dt,并將其作為“最快到達(dá)區(qū)域”的圓心,其中,所述最快到達(dá)區(qū)域的半徑記所述請求節(jié)點(diǎn)的當(dāng)前位置為Dstart,移動終點(diǎn)位置為Dstop;通過基站查找數(shù)據(jù)源節(jié)點(diǎn)位置記為Ds;首先計(jì)算所述請求節(jié)點(diǎn)行進(jìn)一半路程時(shí)的位置記為根據(jù)所述請求節(jié)點(diǎn)的平均移動速度,可以獲得所述請求節(jié)點(diǎn)由Dstart到達(dá)此地的用時(shí)與所述數(shù)據(jù)源節(jié)點(diǎn)由Ds到達(dá)此地的用時(shí)若則取到Dstart的中點(diǎn)為否則,取到Dstop的中點(diǎn)為迭代上述步驟直至則此時(shí)的即為Dt,其中,所述為第n次迭代時(shí)所述請求節(jié)點(diǎn)行進(jìn)一半路程時(shí)的位置,如圖2所示。
本實(shí)施例中,作為一可選實(shí)施例,所述步驟15包括:
步驟151,獲取數(shù)據(jù)源節(jié)點(diǎn)的位置Ds;
步驟152,獲取所述請求節(jié)點(diǎn)行進(jìn)一半路程時(shí)的位置
步驟153,根據(jù)所述請求節(jié)點(diǎn)的平均移動速度,獲取從所述請求節(jié)點(diǎn)的當(dāng)前位置到達(dá)時(shí)的用時(shí)與從所述數(shù)據(jù)源節(jié)點(diǎn)的位置Ds到達(dá)時(shí)的用時(shí)
步驟154,若則取到所述請求節(jié)點(diǎn)的當(dāng)前位置的中點(diǎn)為否則,則取到所述請求節(jié)點(diǎn)的移動終點(diǎn)位置的中點(diǎn)為
步驟155,迭代執(zhí)行步驟151-步驟154,直至所述請求節(jié)點(diǎn)比所述數(shù)據(jù)源節(jié)點(diǎn)到某地時(shí)的用時(shí)更長,且不多于30秒,則此時(shí)的為所述請求節(jié)點(diǎn)最快取到請求數(shù)據(jù)的位置,其中,所述為第n次迭代時(shí)所述請求節(jié)點(diǎn)行進(jìn)一半路程時(shí)的位置。
本實(shí)施例中,在A 16中,將Dt顯示在預(yù)定的APP中展示給用戶,并由用戶確認(rèn)是否會經(jīng)過此地,如圖3所示;若用戶確認(rèn)會經(jīng)過此地,則將Dt為圓心的區(qū)域作為離用戶最近的緩存預(yù)置區(qū)域(最快到達(dá)區(qū)域),記作“第一個(gè)緩存預(yù)置區(qū)域”;若用戶不確定會經(jīng)過此地,則按如下方式重新選擇第一個(gè)緩存預(yù)置區(qū)域:
根據(jù)預(yù)測的請求節(jié)點(diǎn)的行進(jìn)路線,在Dt到請求節(jié)點(diǎn)的移動終點(diǎn)位置Dstop之間的范圍內(nèi)選擇出一個(gè)距Dt最近且會經(jīng)過的位置,作為第一個(gè)緩存預(yù)置區(qū)域的圓心。
本實(shí)施例中,作為一可選實(shí)施例,所述步驟16包括:
步驟161,將所述Dt展示給用戶,由用戶確認(rèn)是否會經(jīng)過此地;
步驟162,若用戶確定會經(jīng)過此地,則將所述最快到達(dá)區(qū)域作為第一個(gè)緩存預(yù)置區(qū)域;
步驟163,若用戶不確定會經(jīng)過此地,則根據(jù)預(yù)測的所述請求節(jié)點(diǎn)的行進(jìn)路線,在所述Dt到所述請求節(jié)點(diǎn)的移動終點(diǎn)位置之間的范圍內(nèi)選取一個(gè)距離所述Dt最近且會經(jīng)過的位置作為第一個(gè)緩存預(yù)置區(qū)域的圓心。
本實(shí)施例中,為了解決問題(2),可以執(zhí)行以下步驟:
A21,當(dāng)規(guī)劃好每個(gè)緩存預(yù)置區(qū)域的圓心坐標(biāo)、半徑及所需部署的緩存數(shù)據(jù)量后,可以通過基站將所述請求節(jié)點(diǎn)的請求數(shù)據(jù)信息、每個(gè)緩存預(yù)置區(qū)域的圓心坐標(biāo)、半徑及所需部署的緩存數(shù)據(jù)量發(fā)送給數(shù)據(jù)源節(jié)點(diǎn);
A22,所述數(shù)據(jù)源節(jié)點(diǎn)查找其通信范圍內(nèi)的移動節(jié)點(diǎn),根據(jù)每個(gè)移動節(jié)點(diǎn)移動信息挑選出最佳的k個(gè)作為本次傳輸?shù)闹欣^節(jié)點(diǎn),將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)分成na塊并使用隨機(jī)線性網(wǎng)絡(luò)編碼處理后向選取的k個(gè)中繼節(jié)點(diǎn)發(fā)送數(shù)據(jù);
A 23,通過選取的k個(gè)中繼節(jié)點(diǎn)將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)攜帶至相應(yīng)的緩存預(yù)置區(qū)域。
在前述基于區(qū)域協(xié)作緩存的D2D內(nèi)容分發(fā)方法的具體實(shí)施方式中,進(jìn)一步地,所述步驟2包括:
步驟21,將所述請求節(jié)點(diǎn)的請求數(shù)據(jù)信息、得到的每個(gè)緩存預(yù)置區(qū)域的圓心坐標(biāo)、半徑及所需部署的緩存數(shù)據(jù)量發(fā)送給所述數(shù)據(jù)源節(jié)點(diǎn);
步驟22,查找所述數(shù)據(jù)源節(jié)點(diǎn)通信范圍內(nèi)的移動節(jié)點(diǎn),根據(jù)每個(gè)移動節(jié)點(diǎn)的移動信息,從查找到的所述數(shù)據(jù)源節(jié)點(diǎn)通信范圍內(nèi)的移動節(jié)點(diǎn)中選取k個(gè)移動節(jié)點(diǎn)作為本次傳輸?shù)闹欣^節(jié)點(diǎn),將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)分成na塊并進(jìn)行隨機(jī)線性網(wǎng)絡(luò)編碼處理后向選取的k個(gè)中繼節(jié)點(diǎn)發(fā)送數(shù)據(jù);
步驟23,通過選取的k個(gè)中繼節(jié)點(diǎn)將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)攜帶至相應(yīng)的緩存預(yù)置區(qū)域。
本實(shí)施例中,在A22中,具體包括:數(shù)據(jù)源節(jié)點(diǎn)收到所述請求節(jié)點(diǎn)的請求數(shù)據(jù)信息、每個(gè)緩存預(yù)置區(qū)域的圓心坐標(biāo)、半徑及所需部署的緩存數(shù)據(jù)量后,立即查找處于其通信范圍內(nèi)的移動節(jié)點(diǎn),將其列為潛在的中繼節(jié)點(diǎn),詢問所述處于其通信范圍內(nèi)的移動節(jié)點(diǎn)的當(dāng)前位置與移動終點(diǎn)位置并得出每個(gè)移動節(jié)點(diǎn)的移動方向;接著,以第一個(gè)緩存預(yù)置區(qū)域?yàn)槟繕?biāo)區(qū)域,判斷每個(gè)移動節(jié)點(diǎn)的移動方向,若將會經(jīng)過目標(biāo)區(qū)域的移動節(jié)點(diǎn)的數(shù)目大于k個(gè)(其中,k為預(yù)設(shè)值),則進(jìn)一步比較移動節(jié)點(diǎn)的當(dāng)前位置,挑選距離目標(biāo)區(qū)域最近的k個(gè)移動節(jié)點(diǎn)作為中繼節(jié)點(diǎn);若移動方向穿過所述目標(biāo)區(qū)域的移動節(jié)點(diǎn)的數(shù)目不足k個(gè),則挑選移動方向距目標(biāo)區(qū)域圓心偏移最少的k個(gè)移動節(jié)點(diǎn)作為中繼節(jié)點(diǎn);以上述方法更換目標(biāo)區(qū)域進(jìn)行迭代,直至所有緩存預(yù)置區(qū)域所對應(yīng)中繼節(jié)點(diǎn)選擇完成;接著,所述數(shù)據(jù)源節(jié)點(diǎn)將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)按緩存預(yù)置區(qū)域的數(shù)目進(jìn)行分塊,每一個(gè)緩存預(yù)置區(qū)域負(fù)責(zé)一塊數(shù)據(jù)且每塊數(shù)據(jù)中的數(shù)據(jù)量相同;數(shù)據(jù)源節(jié)點(diǎn)依次將數(shù)據(jù)塊發(fā)送給各緩存預(yù)置區(qū)域?qū)?yīng)的中繼節(jié)點(diǎn),發(fā)送前將數(shù)據(jù)塊進(jìn)一步分為pn塊(pn的值由每個(gè)數(shù)據(jù)塊大小確定),并使用隨機(jī)線性網(wǎng)絡(luò)編碼進(jìn)行編碼處理;若某中繼節(jié)點(diǎn)同時(shí)負(fù)責(zé)多個(gè)緩存預(yù)置區(qū)域的傳輸任務(wù),則向所述中繼節(jié)點(diǎn)平均發(fā)送多個(gè)緩存預(yù)置區(qū)域的數(shù)據(jù);若某中繼節(jié)點(diǎn)自身傳輸任務(wù)完成后仍與數(shù)據(jù)源節(jié)點(diǎn)保持連接,則繼續(xù)向所述中繼節(jié)點(diǎn)傳輸前一緩存預(yù)置區(qū)域的數(shù)據(jù)直至連接中斷。
本實(shí)施例中,作為一可選實(shí)施例,所述步驟22包括:
步驟221,以第一個(gè)緩存預(yù)置區(qū)域?yàn)槟繕?biāo)區(qū)域;
步驟222,判斷每個(gè)移動節(jié)點(diǎn)的移動方向,若移動方向?qū)┻^所述目標(biāo)區(qū)域的移動節(jié)點(diǎn)的數(shù)目大于k,則比較相應(yīng)移動節(jié)點(diǎn)的當(dāng)前位置,選取距離所述目標(biāo)區(qū)域最近的k個(gè)移動節(jié)點(diǎn)作為中繼節(jié)點(diǎn);否則,則選取移動方向離所述目標(biāo)區(qū)域中心偏移最少的k個(gè)移動節(jié)點(diǎn)作為中繼節(jié)點(diǎn);
步驟223,以下一個(gè)緩存預(yù)置區(qū)域?yàn)槟繕?biāo)區(qū)域,重復(fù)步驟222,選取k個(gè)中繼節(jié)點(diǎn),直至所有緩存預(yù)置區(qū)域所對應(yīng)的中繼節(jié)點(diǎn)選擇完成;
步驟224,將所述請求節(jié)點(diǎn)請求的數(shù)據(jù)包平均分為na塊,將平均分成的na塊數(shù)據(jù)塊繼續(xù)分塊,對繼續(xù)分塊后的數(shù)據(jù)使用隨機(jī)線性網(wǎng)絡(luò)編碼進(jìn)行編碼;
步驟225,將編碼后的數(shù)據(jù)塊發(fā)送至每個(gè)緩存預(yù)置區(qū)域?qū)?yīng)的中繼節(jié)點(diǎn)。
在前述基于區(qū)域協(xié)作緩存的D2D內(nèi)容分發(fā)方法的具體實(shí)施方式中,進(jìn)一步地,所述步驟22之后還包括:
步驟24,在所述數(shù)據(jù)源節(jié)點(diǎn)向所述中繼節(jié)點(diǎn)發(fā)送數(shù)據(jù)的過程中,所述中繼節(jié)點(diǎn)還用于判斷所述中繼節(jié)點(diǎn)當(dāng)前位置到所述中繼節(jié)點(diǎn)終點(diǎn)位置的連線與所述中繼節(jié)點(diǎn)自身的移動方向夾角是否小于45度,若是,則重復(fù)步驟22;
否則,則刪除所述中繼節(jié)點(diǎn)自身的緩存數(shù)據(jù),不再繼續(xù)作為中繼節(jié)點(diǎn)。
本實(shí)施中,從數(shù)據(jù)源節(jié)點(diǎn)收到請求數(shù)據(jù)的請求時(shí)刻開始,網(wǎng)絡(luò)中每τ秒為一次傳輸時(shí)刻,數(shù)據(jù)源節(jié)點(diǎn)在向中繼節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí)告知其請求時(shí)刻具體信息。在所述數(shù)據(jù)源節(jié)點(diǎn)向所述中繼節(jié)點(diǎn)傳輸數(shù)據(jù)時(shí),此時(shí)攜帶緩存數(shù)據(jù)的中繼節(jié)點(diǎn)會判斷自身是否有機(jī)會與請求節(jié)點(diǎn)相遇;判斷依據(jù)為本中繼節(jié)點(diǎn)的當(dāng)前位置到本中繼節(jié)點(diǎn)的終點(diǎn)位置的連線與自身移動方向夾角是否小于45度,若是則重復(fù)步驟22,所述數(shù)據(jù)源節(jié)點(diǎn)繼續(xù)尋找新的中繼節(jié)點(diǎn)并向本中繼節(jié)點(diǎn)發(fā)送數(shù)據(jù);否則,則刪除本中繼節(jié)點(diǎn)自身的緩存數(shù)據(jù),不再繼續(xù)作為中繼節(jié)點(diǎn)。
本實(shí)施例中,為了解決問題(3),可以執(zhí)行以下步驟:
A31,當(dāng)某中繼節(jié)點(diǎn)發(fā)現(xiàn)自身已攜帶相應(yīng)的數(shù)據(jù)到達(dá)對應(yīng)的緩存預(yù)置區(qū)域后,其不再執(zhí)行步驟24,而是立即獲取處于所述中繼節(jié)點(diǎn)通信范圍和對應(yīng)的緩沖預(yù)置區(qū)域交集內(nèi)的節(jié)點(diǎn),將獲取到的所述節(jié)點(diǎn)記為緩存節(jié)點(diǎn),如圖4所示;
A32,將將所述中繼節(jié)點(diǎn)攜帶的相應(yīng)數(shù)據(jù)卸載下來交給所述緩存節(jié)點(diǎn);若該中繼節(jié)點(diǎn)除攜帶本區(qū)域數(shù)據(jù)外,還攜帶有前一緩存預(yù)置區(qū)域的數(shù)據(jù),且本區(qū)域數(shù)據(jù)發(fā)送完成后仍與當(dāng)前緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)保持連接,則繼續(xù)向其發(fā)送前一緩存預(yù)置區(qū)域的數(shù)據(jù)直至連接中斷;
A33,所述當(dāng)前緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)在接收到數(shù)據(jù)后,進(jìn)一步尋找新的緩存節(jié)點(diǎn),并分發(fā)數(shù)據(jù),直到無法找到新的緩存節(jié)點(diǎn),以保持緩存預(yù)置區(qū)域內(nèi)的緩存數(shù)據(jù)量;在數(shù)據(jù)分發(fā)結(jié)束后判斷所述緩存節(jié)點(diǎn)自身是否仍處于對應(yīng)的緩存預(yù)置區(qū)域內(nèi),若仍處于相應(yīng)的緩存預(yù)置區(qū)域內(nèi)則保留自身攜帶的緩存數(shù)據(jù);若已離開相應(yīng)的緩存預(yù)置區(qū)域內(nèi)則刪除攜帶的緩存數(shù)據(jù),不再作為區(qū)域緩存節(jié)點(diǎn)。
本實(shí)施例中,作為一可選實(shí)施例,所述步驟3包括:
步驟31,當(dāng)中繼節(jié)點(diǎn)攜帶相應(yīng)的數(shù)據(jù)到達(dá)相應(yīng)的緩存預(yù)置區(qū)域后,獲取處于所述中繼節(jié)點(diǎn)自身通信范圍和相應(yīng)的緩沖預(yù)置區(qū)域交集內(nèi)的緩存節(jié)點(diǎn);
步驟32,將所述中繼節(jié)點(diǎn)攜帶的相應(yīng)數(shù)據(jù)傳輸至獲取到的所述緩存節(jié)點(diǎn),若所述中繼節(jié)點(diǎn)還攜帶有前一緩存預(yù)置區(qū)域的數(shù)據(jù),且本區(qū)域數(shù)據(jù)傳輸完成后仍與所述緩存節(jié)點(diǎn)保持連接,則繼續(xù)向所述緩存節(jié)點(diǎn)傳輸前一緩存預(yù)置區(qū)域的數(shù)據(jù)直至連接中斷;
步驟33,通過所述緩存節(jié)點(diǎn)在相應(yīng)的緩存預(yù)置區(qū)域內(nèi)尋找新的緩存節(jié)點(diǎn)并分發(fā)數(shù)據(jù),在數(shù)據(jù)分發(fā)結(jié)束后判斷所述緩存節(jié)點(diǎn)自身是否仍處于相應(yīng)的緩存預(yù)置區(qū)域內(nèi),若仍處于相應(yīng)的緩存預(yù)置區(qū)域內(nèi),則保留自身攜帶的緩存數(shù)據(jù);否則,則刪除自身攜帶的緩存數(shù)據(jù),不再作為相應(yīng)的緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)。
本實(shí)施例中,為了解決問題(3),還需以繼續(xù)執(zhí)行以下步驟:
A34,若請求節(jié)點(diǎn)到達(dá)某緩存預(yù)置區(qū)域,首先判斷其是否緩存有前一緩存預(yù)置區(qū)域的數(shù)據(jù),且緩存的數(shù)據(jù)量滿足請求節(jié)點(diǎn)需求;若緩存數(shù)據(jù)量滿足需求,則當(dāng)前緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)直接向所述請求節(jié)點(diǎn)發(fā)送本區(qū)域數(shù)據(jù);若緩存數(shù)據(jù)量不足,且當(dāng)前緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)攜帶有前一緩存預(yù)置區(qū)域的數(shù)據(jù),則優(yōu)先向所述請求節(jié)點(diǎn)發(fā)送前一緩存預(yù)置區(qū)域缺少的數(shù)據(jù)再發(fā)送本區(qū)域數(shù)據(jù),否則直接發(fā)送本區(qū)域數(shù)據(jù);當(dāng)所述請求節(jié)點(diǎn)收到足夠的本區(qū)域數(shù)據(jù)時(shí),立即使用隨機(jī)線性網(wǎng)絡(luò)編碼進(jìn)行解碼,則此部分?jǐn)?shù)據(jù)傳輸完成;
A35,當(dāng)所述請求節(jié)點(diǎn)到達(dá)新的緩存預(yù)置區(qū)域時(shí),重復(fù)A34,直至請求節(jié)點(diǎn)離開最后一個(gè)緩存預(yù)置區(qū)域。
本實(shí)施例中,作為一可選實(shí)施例,所述步驟3還包括:
步驟34,當(dāng)所述請求節(jié)點(diǎn)到達(dá)某緩存預(yù)置區(qū)域時(shí),判斷當(dāng)前緩存預(yù)置區(qū)域是否緩存有前一緩存預(yù)置區(qū)域的數(shù)據(jù),且緩存的數(shù)據(jù)量是否滿足所述請求節(jié)點(diǎn)的需求;若緩存的數(shù)據(jù)量滿足所述請求節(jié)點(diǎn)的需求,則當(dāng)前緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)直接向所述請求節(jié)點(diǎn)發(fā)送本區(qū)域數(shù)據(jù);若緩存的數(shù)據(jù)量不滿足所述請求節(jié)點(diǎn)的需求,且當(dāng)前緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)攜帶有前一緩存預(yù)置區(qū)域的數(shù)據(jù),則當(dāng)前緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)先向所述請求節(jié)點(diǎn)發(fā)送前一緩存預(yù)置區(qū)域缺少的數(shù)據(jù)再發(fā)送本區(qū)域數(shù)據(jù);當(dāng)所述請求節(jié)點(diǎn)收到足夠的本區(qū)域數(shù)據(jù)時(shí),立即使用隨機(jī)線性網(wǎng)絡(luò)編碼進(jìn)行解碼,則此部分?jǐn)?shù)據(jù)傳輸完成;
步驟35,當(dāng)所述請求節(jié)點(diǎn)到達(dá)新的緩存預(yù)置區(qū)域時(shí),重復(fù)步驟34,直至所述請求節(jié)點(diǎn)離開最后一個(gè)緩存預(yù)置區(qū)域。
本實(shí)施例中,在所述請求節(jié)點(diǎn)到達(dá)相應(yīng)的緩存預(yù)置區(qū)域之前,由所述中繼節(jié)點(diǎn)攜帶所述請求節(jié)點(diǎn)請求的數(shù)據(jù)到達(dá)相應(yīng)的緩存預(yù)置區(qū)域,并由相應(yīng)的緩存預(yù)置區(qū)域內(nèi)的緩存節(jié)點(diǎn)協(xié)作部署好相應(yīng)的請求數(shù)據(jù)。當(dāng)所述請求節(jié)點(diǎn)每到達(dá)一個(gè)緩存預(yù)置區(qū)域后可獲得一部分的請求數(shù)據(jù),若所述請求節(jié)點(diǎn)請求的是視頻資源,則在完成第一個(gè)緩存預(yù)置區(qū)域的傳輸后可實(shí)現(xiàn)邊看邊傳輸。
本實(shí)施例中,執(zhí)行步驟35后,此時(shí)若所述請求節(jié)點(diǎn)仍未收到所述請求數(shù)據(jù)信息請求的全部數(shù)據(jù),則在所述請求節(jié)點(diǎn)的終點(diǎn)位置重新規(guī)劃一個(gè)緩存預(yù)置區(qū)域,再次執(zhí)行步驟2和步驟3,將所述請求節(jié)點(diǎn)缺少的數(shù)據(jù)部署到所述重新規(guī)劃的緩存預(yù)置區(qū)域中,并在所述請求節(jié)點(diǎn)到達(dá)移動終點(diǎn)時(shí)完成數(shù)據(jù)分發(fā);若所述請求節(jié)點(diǎn)收到所述請求數(shù)據(jù)信息請求的全部數(shù)據(jù),則此次數(shù)據(jù)請求完成。以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。