本發(fā)明涉及內(nèi)容緩存與分發(fā)技術(shù),尤其,涉及一種適用于移動(dòng)網(wǎng)絡(luò)的緩存內(nèi)容更新方法及網(wǎng)絡(luò)。
背景技術(shù):
隨著移動(dòng)數(shù)據(jù)業(yè)務(wù)的迅速增長(zhǎng),出現(xiàn)了基于d2d(devicetodevice,設(shè)備到設(shè)備)通信的內(nèi)容緩存與分發(fā)技術(shù)。該技術(shù)的特點(diǎn)是,在集合內(nèi)的各個(gè)節(jié)點(diǎn)中,緩存在該集合內(nèi)普遍關(guān)注的流行內(nèi)容,當(dāng)該集合內(nèi)的某個(gè)節(jié)點(diǎn)需要某一內(nèi)容的時(shí)候,與其周圍已緩存該內(nèi)容的節(jié)點(diǎn)建立d2d鏈路,通過復(fù)用合法蜂窩用戶的信道獲取該內(nèi)容。如此一來,與傳統(tǒng)的內(nèi)容下載方法相比具有如下優(yōu)點(diǎn):第一,不經(jīng)過基站的轉(zhuǎn)發(fā),減少了信息的傳輸時(shí)延;第二,直傳鏈路有更好的信道狀況和更高的下載速率;第三,由于復(fù)用了合法蜂窩用戶的信道,有更高的頻譜利用率。
基于d2d通信的內(nèi)容緩存與分發(fā)技術(shù)也有其應(yīng)用上的局限性。首先,節(jié)點(diǎn)的緩存空間有限,因此,緩存內(nèi)容的選擇極其重要。如果所緩存的內(nèi)容周圍節(jié)點(diǎn)并不關(guān)注,那么該內(nèi)容的緩存反而會(huì)造成網(wǎng)絡(luò)資源的浪費(fèi)。其次,緩存內(nèi)容被關(guān)注的程度是隨時(shí)間和節(jié)點(diǎn)位置不斷變化的,也就是說,新的內(nèi)容會(huì)不斷的出現(xiàn),舊的內(nèi)容會(huì)逐漸變得不再受到關(guān)注;另一方面,在同一時(shí)刻,不同位置的用戶群體所關(guān)注的內(nèi)容也會(huì)有所差別;而且,移動(dòng)節(jié)點(diǎn)具有個(gè)人偏好,使得其具有一定社會(huì)屬性,緩存節(jié)點(diǎn)的移動(dòng)會(huì)導(dǎo)致周圍節(jié)點(diǎn)的網(wǎng)絡(luò)拓?fù)浒l(fā)生變化。因此,緩存內(nèi)容的及時(shí)準(zhǔn)確更新,成為本領(lǐng)域的研究重點(diǎn)。
現(xiàn)有的研究主要集中在緩存內(nèi)容的布設(shè)與選擇上。而相較而言,關(guān)于緩存內(nèi)容篩選方法的研究還很有限。其中,利用lfu(leastfrequencyused)記錄對(duì)緩存內(nèi)容進(jìn)行更新方法較為流行。lfu記錄主要包括接收到的請(qǐng)求的內(nèi)容id(identification)以及接收到各接收到的請(qǐng)求的內(nèi)容id(identification)的次數(shù)。lfu中,這些數(shù)據(jù)的受關(guān)注程度可直接反應(yīng)為內(nèi)容最近一次的接收時(shí)間。1970年,在《ibmsystemsjournal》上發(fā)表的論文evaluationtechniquesforstoragehierarchies中,提出了一種min算法。論文中證明了該算法被證明是最優(yōu)的離線緩存更新算法。但是,由于在當(dāng)今的移動(dòng)網(wǎng)絡(luò)中引入了d2d通信技術(shù),這種情況下移動(dòng)節(jié)點(diǎn)具有了個(gè)人偏好和社會(huì)屬性,節(jié)點(diǎn)的移動(dòng)性對(duì)緩存更新算法的最優(yōu)性產(chǎn)生了很大的影響。由于網(wǎng)絡(luò)中的移動(dòng)節(jié)點(diǎn)時(shí)刻產(chǎn)生的移動(dòng)行為,整個(gè)網(wǎng)絡(luò)的拓?fù)湟苍跁r(shí)刻發(fā)生著變化,用戶之前所收集到的關(guān)于流行內(nèi)容的信息在移動(dòng)之后的新的網(wǎng)絡(luò)環(huán)境下參考價(jià)值有可能大為降低。(本發(fā)明中所考慮的用戶移動(dòng)性主要指用戶位置的變化。)因此,在設(shè)計(jì)內(nèi)容緩存更新方法時(shí),將用戶的移動(dòng)性納入考量顯得尤為必要。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)存在的不足,本發(fā)明的目的在于提供一種基于節(jié)點(diǎn)位移和lfu記錄的緩存更新方法、應(yīng)用所述緩存更新方法的通信裝置及移動(dòng)網(wǎng)絡(luò)。
所述緩存更新方法,包括以下步驟:
第一步,初始化:確定緩存更新頻率為k,確定緩存更新位移閾值x,確定本節(jié)點(diǎn)緩存空間容量為s,并根據(jù)所述緩存空間容量s確定本節(jié)點(diǎn)lfu記錄數(shù)目為m,確定緩存的價(jià)值閾值γ(用來判斷緩存中的對(duì)應(yīng)內(nèi)容是否應(yīng)該更新),γ∈(0,1);
第二步,接收內(nèi)容下載請(qǐng)求,記錄本節(jié)點(diǎn)當(dāng)前位置坐標(biāo),計(jì)算并保存本節(jié)點(diǎn)當(dāng)前位置與上一個(gè)位置之間的位移數(shù)據(jù),合并本節(jié)點(diǎn)接收到的內(nèi)容重復(fù)的所述下載請(qǐng)求,根據(jù)合并后的內(nèi)容下載請(qǐng)求更新所述lfu記錄,同時(shí),比較本節(jié)點(diǎn)當(dāng)前位移距離是否超出緩存更新位移閾值x,若超過則跳轉(zhuǎn)至第四步,否則跳轉(zhuǎn)至第三步;
第三步,在位移次數(shù)未到達(dá)所述緩存更新頻率k時(shí)重復(fù)第二步,位移次數(shù)達(dá)到緩存更新頻率k時(shí)則先將位移次數(shù)清零然后跳轉(zhuǎn)至第四步;
第四步,計(jì)算本節(jié)點(diǎn)接收的所述內(nèi)容下載請(qǐng)求中,每一個(gè)內(nèi)容cm的價(jià)值pm,pm∈(0,1),然后跳轉(zhuǎn)至第五步;
所述內(nèi)容價(jià)值pm=α1α2α3v_lfum;
其中,m表示所述內(nèi)容下載請(qǐng)求中所述內(nèi)容cm的id編號(hào),m≤m;
位移波動(dòng)因子
位移趨勢(shì)因子
位移幅度因子
第五步,更新緩存內(nèi)容:依次判斷所述每一個(gè)內(nèi)容cm的價(jià)值pm,若所述內(nèi)容cm的價(jià)值pm大于所述價(jià)值閾值γ,則不進(jìn)行緩存更新;否則,進(jìn)行緩存更新。其中,所述價(jià)值閾值γ由用戶設(shè)定,γ∈[0,1]。
其中,所述節(jié)點(diǎn)中,每一個(gè)內(nèi)容cm,均對(duì)應(yīng)一個(gè)id編號(hào)m(m≤m),一條lfu記錄,以及一個(gè)價(jià)值pm。
進(jìn)一步,所述緩存更新方法,第二步中,更新所述lfu記錄的步驟如下:
步驟211,每接收到一個(gè)所述內(nèi)容下載請(qǐng)求后,先檢索當(dāng)前l(fā)fu記錄,若當(dāng)前l(fā)fu記錄中已記載有所述內(nèi)容下載請(qǐng)求所對(duì)應(yīng)的內(nèi)容cm,則將所述lfu記錄中所述內(nèi)容cm所對(duì)應(yīng)的下載請(qǐng)求的次數(shù)fm加一;否則,跳轉(zhuǎn)至步驟212;
步驟212,刪除所述lfu記錄中請(qǐng)求次數(shù)最少的內(nèi)容,然后將所述內(nèi)容cm記入所述lfu記錄,所述內(nèi)容cm所對(duì)應(yīng)的請(qǐng)求次數(shù)fm記為1。
進(jìn)一步,所述緩存更新方法,第五步中,進(jìn)行緩存更新的步驟如下:
步驟501,判斷本節(jié)點(diǎn)緩存空間容量是否足夠存放所述內(nèi)容cm,若容量足夠則跳轉(zhuǎn)至步驟502;否則跳轉(zhuǎn)至步驟503;
步驟502,在本節(jié)點(diǎn)緩存空間內(nèi)緩存所述內(nèi)容cm,更新緩存列表;
步驟503,按照請(qǐng)求次數(shù)由多至少的順序依次刪除本節(jié)點(diǎn)緩存空間內(nèi)的內(nèi)容,直至剩余的緩存空間足夠存放所述內(nèi)容cm,然后在本節(jié)點(diǎn)緩存空間內(nèi)緩存所述內(nèi)容cm,更新緩存列表。
其中,所述緩存更新方法,所述緩存列表包括每一個(gè)所述內(nèi)容cm的id編號(hào)、每一個(gè)所述內(nèi)容cm的緩存地址以及每一個(gè)所述內(nèi)容cm的緩存時(shí)間中的一個(gè)或多個(gè)。
其次,為實(shí)現(xiàn)上述目的,還提出一種基于節(jié)點(diǎn)位移和lfu記錄的緩存更新方法的通信裝置,包括移動(dòng)網(wǎng)絡(luò)接口、lfu記錄存儲(chǔ)模塊、緩存單元以及控制模塊,其特征在于,所述控制模塊還包括緩存更新判斷模塊;
所述移動(dòng)網(wǎng)絡(luò)接口構(gòu)成所述通信裝置的輸入端與輸出端,所述移動(dòng)網(wǎng)絡(luò)接口的數(shù)據(jù)端同時(shí)連接所述控制模塊、所述lfu記錄存儲(chǔ)模塊的輸入端以及所述緩存單元的輸入端,所述控制模塊還同時(shí)連接所述lfu記錄存儲(chǔ)模塊以及所述緩存單元,所述緩存單元的輸出端連接所述移動(dòng)網(wǎng)絡(luò)接口的數(shù)據(jù)端;
所述移動(dòng)網(wǎng)絡(luò)接口用于將信號(hào)接收端接收到的信號(hào)轉(zhuǎn)化為所述通信裝置能夠處理的數(shù)據(jù)內(nèi)容cm,同時(shí)將所述緩存單元輸出的所述數(shù)據(jù)內(nèi)容cm轉(zhuǎn)化為移動(dòng)網(wǎng)絡(luò)信號(hào)并發(fā)送;
所述lfu記錄存儲(chǔ)模塊用于記錄所述緩存單元內(nèi)每一個(gè)數(shù)據(jù)內(nèi)容cm的請(qǐng)求次數(shù)fm;
所述緩存單元用于根據(jù)所述控制模塊的控制指令,緩存所述移動(dòng)網(wǎng)絡(luò)接口接收到的所述數(shù)據(jù)內(nèi)容cm;并根據(jù)所述控制模塊的控制指令,向所述移動(dòng)網(wǎng)絡(luò)接口輸出其緩存的相應(yīng)數(shù)據(jù)內(nèi)容;
所述控制模塊用于響應(yīng)所述移動(dòng)網(wǎng)絡(luò)中的數(shù)據(jù)內(nèi)容請(qǐng)求,控制所述緩存單元輸出相應(yīng)的數(shù)據(jù)內(nèi)容;所述控制模塊同時(shí)用于根據(jù)其內(nèi)緩存更新判斷模塊,控制所述緩存單元更新相應(yīng)的數(shù)據(jù)內(nèi)容cm;
所述緩存更新判斷模塊用于讀取所述lfu記錄存儲(chǔ)模塊中的記錄,結(jié)合所述移動(dòng)網(wǎng)絡(luò)中記錄的所述通信裝置的位置信息,控制所述緩存單元更新相應(yīng)的數(shù)據(jù)內(nèi)容cm。
同時(shí),為實(shí)現(xiàn)上述目的,還提出一種基于節(jié)點(diǎn)位移和lfu記錄的緩存更新方法的移動(dòng)網(wǎng)絡(luò),包括至少一個(gè)具有緩存功能的移動(dòng)節(jié)點(diǎn),其特征在于,所述移動(dòng)網(wǎng)絡(luò)中的每個(gè)移動(dòng)節(jié)點(diǎn)進(jìn)行緩存更新的步驟如下:
步驟d-1,計(jì)算本移動(dòng)節(jié)點(diǎn)的位移波動(dòng)因子
步驟d-2,計(jì)算本移動(dòng)節(jié)點(diǎn)接收的所述內(nèi)容下載請(qǐng)求中,每一個(gè)內(nèi)容cm的lfu價(jià)值
步驟d-3,計(jì)算本移動(dòng)節(jié)點(diǎn)的位移趨勢(shì)因子
步驟d-4,計(jì)算本移動(dòng)節(jié)點(diǎn)的位移幅度因子
步驟d-5,計(jì)算本移動(dòng)節(jié)點(diǎn)接收的所述內(nèi)容下載請(qǐng)求中,每一個(gè)內(nèi)容cm的價(jià)值pm=α1α2α3v_lfum,然后跳轉(zhuǎn)至步驟d-6;
步驟d-6,依次判斷本移動(dòng)節(jié)點(diǎn)接收的所述每一個(gè)內(nèi)容cm的價(jià)值pm,若所述內(nèi)容cm的價(jià)值pm大于價(jià)值閾值γ,則不進(jìn)行緩存更新;否則,進(jìn)跳轉(zhuǎn)至步驟d-7;
步驟d-7,判斷本移動(dòng)節(jié)點(diǎn)緩存空間容量是否足夠存放所述內(nèi)容cm,若容量足夠增在本移動(dòng)節(jié)點(diǎn)緩存空間內(nèi)緩存所述內(nèi)容cm,更新緩存列表;否則,先按照請(qǐng)求次數(shù)由多到少的順序依次刪除本移動(dòng)節(jié)點(diǎn)緩存空間內(nèi)的內(nèi)容,直至剩余的緩存空間足夠存放所述內(nèi)容cm,然后在本移動(dòng)節(jié)點(diǎn)緩存空間內(nèi)緩存所述內(nèi)容cm,更新緩存列表。
進(jìn)一步,上述移動(dòng)網(wǎng)絡(luò),所述每個(gè)移動(dòng)節(jié)點(diǎn)在每次接收到內(nèi)容下載請(qǐng)求后,均按照如下步驟進(jìn)行響應(yīng):
步驟a,記錄本移動(dòng)節(jié)點(diǎn)ni當(dāng)前位置坐標(biāo),計(jì)算并保存本節(jié)點(diǎn)當(dāng)前位置與上一個(gè)位置之間的位移數(shù)據(jù),合并本移動(dòng)節(jié)點(diǎn)接收到的內(nèi)容重復(fù)的所述下載請(qǐng)求,然后根據(jù)合并后的內(nèi)容下載請(qǐng)求更新所述lfu記錄,跳轉(zhuǎn)至步驟b;
步驟b,查詢本移動(dòng)節(jié)點(diǎn)內(nèi)緩存的內(nèi)容,根據(jù)所述下載請(qǐng)求,向依次向所述移動(dòng)網(wǎng)絡(luò)中的移動(dòng)節(jié)點(diǎn)發(fā)送該移動(dòng)節(jié)點(diǎn)所請(qǐng)求的內(nèi)容,同時(shí)比較本節(jié)點(diǎn)當(dāng)前位移距離是否超出緩存更新位移閾值x,若超過則跳轉(zhuǎn)至步驟d,否則,跳轉(zhuǎn)至步驟c;
步驟c,判斷本移動(dòng)節(jié)點(diǎn)的位移次數(shù)是否達(dá)所述緩存更新頻率k,若本移動(dòng)節(jié)點(diǎn)的位移次數(shù)達(dá)到k次,則先將位移次數(shù)清零然后跳轉(zhuǎn)至步驟d;否則,回到步驟a;
步驟d,按照所述步驟d-1至所述步驟d-7的順序更新緩存,跳轉(zhuǎn)至步驟e;
步驟e,判斷是否接收到新的內(nèi)容下載請(qǐng)求,若是,則跳轉(zhuǎn)至步驟a;否則,結(jié)束。
進(jìn)一步,上述移動(dòng)網(wǎng)絡(luò),所述緩存更新頻率k由所述移動(dòng)網(wǎng)絡(luò)統(tǒng)一設(shè)定,或由每一個(gè)所述移動(dòng)節(jié)點(diǎn)自行設(shè)定。所述移動(dòng)節(jié)點(diǎn)的位置坐標(biāo)由所述移動(dòng)蜂窩網(wǎng)絡(luò)提供,或由所述移動(dòng)節(jié)點(diǎn)自行計(jì)算確定。所述各移動(dòng)節(jié)點(diǎn)或所述移動(dòng)蜂窩網(wǎng)絡(luò)在各節(jié)點(diǎn)接收到內(nèi)容下載請(qǐng)求的同時(shí),確認(rèn)所述移動(dòng)節(jié)點(diǎn)的坐標(biāo),記錄所述各移動(dòng)節(jié)點(diǎn)的移動(dòng)次數(shù)以及各移動(dòng)節(jié)點(diǎn)每次移動(dòng)的坐標(biāo)。
有益效果
本發(fā)明,針對(duì)移動(dòng)網(wǎng)絡(luò)的社會(huì)屬性,尤其移動(dòng)網(wǎng)絡(luò)中間隔較遠(yuǎn)的節(jié)點(diǎn)關(guān)注的流行內(nèi)容不同的特點(diǎn),綜合考量節(jié)點(diǎn)的位移情況,并結(jié)合lfu緩存記錄,建立價(jià)值模型,通過價(jià)值pm=α1α2α3v_lfum反應(yīng)節(jié)點(diǎn)各緩存內(nèi)容的lfu價(jià)值v_lfum以及節(jié)點(diǎn)位置移動(dòng)而給該節(jié)點(diǎn)緩存內(nèi)容帶來的需求關(guān)系變化。當(dāng)節(jié)點(diǎn)位移超過緩存更新位移閾值x時(shí),自動(dòng)篩選緩存,對(duì)綜合考量后價(jià)值較小的緩存內(nèi)容進(jìn)行有針對(duì)性的更新。同時(shí),由用戶自行設(shè)定緩存更新頻率k,在節(jié)點(diǎn)位移次數(shù)每記滿k次時(shí)均對(duì)緩存內(nèi)容進(jìn)行篩選。這樣的設(shè)計(jì)能夠保證緩存內(nèi)容能夠隨用戶位置變化而得到及時(shí)更新。而且,由于用戶可以自行設(shè)置緩存更新位移閾值x和緩存更新頻率k,在用戶不希望產(chǎn)生額外流量的情況下,能夠自主對(duì)更新頻率進(jìn)行設(shè)置,更為人性化。
尤其,本發(fā)明所提供的價(jià)值模型中,采用三個(gè)位移因子來度量節(jié)點(diǎn)的位移狀況和趨勢(shì),三個(gè)位移因子分別是:移波動(dòng)因子α1,表征本周期內(nèi)各次位移圍繞初始位置移動(dòng)的程度,其值域?yàn)棣?∈(0,1],其值接近1表明節(jié)點(diǎn)在圍繞著初始位置進(jìn)行移動(dòng),其值接近0表明節(jié)點(diǎn)各次移動(dòng)后與初始位置的距離差距較大;位移趨勢(shì)因子α2,表征在周期末要進(jìn)行緩存更新時(shí)節(jié)點(diǎn)位置的移動(dòng)趨勢(shì),其值域是α2∈(0,1],其值接近1表明節(jié)點(diǎn)正從遠(yuǎn)離初始位置的地方往回移動(dòng);其值接近0說明該節(jié)點(diǎn)有較大概率在下個(gè)周期繼續(xù)遠(yuǎn)離本周期的初始位置;位移幅度因子α3,表征各次位移的絕對(duì)幅值,其值域是α3∈(0,1],位移幅度越大,α3的值越小。由于同時(shí)考量了三種位移因子,本發(fā)明在對(duì)緩存內(nèi)容進(jìn)行篩選時(shí),更為精確,且能夠貼合用戶位移特點(diǎn)。計(jì)算出緩存中每一個(gè)內(nèi)容cm的價(jià)值pm后,根據(jù)所述每一個(gè)內(nèi)容cm的價(jià)值pm,能夠根加有針對(duì)性地篩選出當(dāng)前緩存中價(jià)值較低的內(nèi)容,將這些價(jià)值較低的內(nèi)容進(jìn)行更新。
進(jìn)一步的,考慮到節(jié)點(diǎn)夠獲取信息的能力以及計(jì)算能力有限,本方法僅僅利用節(jié)點(diǎn)自身所擁有的節(jié)點(diǎn)位置坐標(biāo)、接收到的內(nèi)容請(qǐng)求、時(shí)間等信息,即可根據(jù)所述內(nèi)容價(jià)值模型(即內(nèi)容價(jià)值pm計(jì)算公式pm=α1α2α3v_lfum),對(duì)本節(jié)點(diǎn)緩存中的每一個(gè)內(nèi)容進(jìn)行價(jià)值評(píng)估。由于計(jì)算參數(shù)簡(jiǎn)單易得,且運(yùn)算量小。因此,本發(fā)明可根據(jù)實(shí)際需求設(shè)定緩存更新頻率,實(shí)現(xiàn)對(duì)緩存內(nèi)容的及時(shí)更新。本發(fā)明在控制額外計(jì)算開銷的同時(shí),能夠有效提高緩存內(nèi)容被請(qǐng)求的概率,使得緩存利用率更高。
而且,由于移動(dòng)網(wǎng)絡(luò)各節(jié)點(diǎn)之間存在一定的社交關(guān)系,距離較遠(yuǎn)的節(jié)點(diǎn)之間社交關(guān)系較弱,共同關(guān)注的信息較少,本方法通過緩存更新位移閾值x以及節(jié)點(diǎn)位移次數(shù)判斷節(jié)點(diǎn)是否進(jìn)入到新環(huán)境,從而及時(shí)對(duì)自身緩存內(nèi)容進(jìn)行篩選和更新,迅速適應(yīng)新的網(wǎng)絡(luò)環(huán)境。由于網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都能夠根據(jù)網(wǎng)絡(luò)環(huán)境及時(shí)更新自身緩存內(nèi)容,采用本方法的移動(dòng)網(wǎng)絡(luò)中,各節(jié)點(diǎn)緩存內(nèi)容均能夠保證一定的價(jià)值與命中率。因而,本發(fā)明所提供的移動(dòng)網(wǎng)絡(luò)能夠準(zhǔn)確并迅速的響應(yīng)其內(nèi)各節(jié)點(diǎn)的數(shù)據(jù)請(qǐng)求。
與傳統(tǒng)的只考慮內(nèi)容緩存方案設(shè)計(jì)的方法不同,本發(fā)明考慮的重點(diǎn)是對(duì)已緩存的內(nèi)容進(jìn)行篩選,從而進(jìn)行有限的更新(而不是像傳統(tǒng)的方法一樣,對(duì)整個(gè)緩存空間進(jìn)行重新緩存)。傳統(tǒng)的清空緩存空間進(jìn)行重新緩存的方法,盡管可能有著較高的緩存命中率,但是其所需要付出的計(jì)算開銷極大:不僅需要收集大量的信息,還需要下載大量流行內(nèi)容填滿整個(gè)緩存空間。而本發(fā)明,每次只篩選一部分內(nèi)容進(jìn)行更新,可以大大減少內(nèi)容緩存更新的工作量。進(jìn)一步,由于僅僅通過節(jié)點(diǎn)的位移次數(shù)就可以進(jìn)入到更新判斷的步驟,本方法對(duì)節(jié)點(diǎn)位移狀態(tài)的變化會(huì)更為敏感。這種設(shè)計(jì)同樣可以有效減小節(jié)點(diǎn)的運(yùn)算負(fù)荷(節(jié)點(diǎn)每次最多處理k個(gè)位移數(shù)據(jù)即可),更適合需要經(jīng)常進(jìn)行更新的小數(shù)據(jù)量信息或零碎的熱點(diǎn)信息。采用本方法更新后緩存內(nèi)容的利用率、準(zhǔn)確率會(huì)更高。
由于本網(wǎng)絡(luò)中各節(jié)點(diǎn)緩存數(shù)據(jù)的利用率更高,在一次更新后,網(wǎng)絡(luò)周圍節(jié)點(diǎn)均能夠通過該節(jié)點(diǎn)獲取相應(yīng)的數(shù)據(jù),網(wǎng)絡(luò)各節(jié)點(diǎn)獲取相同信息所消耗的流量資源會(huì)大大減少。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。
附圖說明
附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,并與本發(fā)明的實(shí)施例一起,用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
圖1為根據(jù)本發(fā)明實(shí)施例的基于節(jié)點(diǎn)位移和lfu記錄的緩存更新步驟流程圖。
圖2為應(yīng)用本發(fā)明的通信場(chǎng)景示意圖。圖示所述典型的引入d2d通信技術(shù)的移動(dòng)網(wǎng)絡(luò)中,隨著用戶的移動(dòng),本節(jié)點(diǎn)周圍網(wǎng)絡(luò)拓?fù)鋾r(shí)刻變化。由于移動(dòng)用戶具備一定的社會(huì)屬性,當(dāng)節(jié)點(diǎn)位置移動(dòng)時(shí),網(wǎng)絡(luò)環(huán)境中“流行”的內(nèi)容也相應(yīng)變化。
圖3為實(shí)施例中l(wèi)fu記錄的結(jié)構(gòu)示意圖。
圖4為實(shí)施例中網(wǎng)絡(luò)中一個(gè)節(jié)點(diǎn)的裝置結(jié)構(gòu)示意圖。
圖5為實(shí)施例中考慮節(jié)點(diǎn)位移的緩存更新方法與不考慮節(jié)點(diǎn)位移的緩存更新方法的命中率統(tǒng)計(jì)圖。方案1是指本方案中α1=α2=α3=1的特殊情況,即不考慮緩存節(jié)點(diǎn)的節(jié)點(diǎn)位移。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
在圖2所示的通信場(chǎng)景中,前一時(shí)刻,用戶1與周圍四個(gè)用戶2、3、4、7距離較近,可以建立d2d鏈路直接共享內(nèi)容;后一時(shí)刻,由于用戶1移動(dòng),其只能與四個(gè)用戶3、5、7、9建立d2d鏈路直接共享內(nèi)容。但此時(shí),用戶1與用戶5和用戶9之間不存在社交關(guān)系或者相互間關(guān)系較差,用戶1與用戶5和用戶9之間不存在d2d通信鏈路共享內(nèi)容,此外,由于用戶2與用戶4不在用戶1可直接通信的范圍內(nèi),用戶1與用戶2和用戶4之間的通信鏈路也不再存在。由圖可知,用戶的移動(dòng)性會(huì)使得其周圍的網(wǎng)絡(luò)拓?fù)洚a(chǎn)生很大的變化,直接影響到其緩存方案的有效性。一般,在節(jié)點(diǎn)位置發(fā)生很大變化的情況下,節(jié)點(diǎn)內(nèi)部現(xiàn)有的緩存內(nèi)容并不一定能夠?yàn)樾颅h(huán)境中的其他節(jié)點(diǎn)所需要。因此,在設(shè)計(jì)緩存內(nèi)容更新策略時(shí)將用戶移動(dòng)情況納入緩存更新的考量因素顯得十分有必要。
本發(fā)明考慮到用戶的位置變化,聯(lián)合用戶自身的lfu請(qǐng)求記錄,在引入d2d通信技術(shù)的移動(dòng)蜂窩網(wǎng)絡(luò)中實(shí)現(xiàn)對(duì)緩存內(nèi)容的有效管理。本方案能夠在較少內(nèi)容更新工作量的前提下,有效提高緩存內(nèi)容命中率。
具體更新流程參見圖1:
第一步,初始化:確定緩存更新頻率k=20,確定緩存更新位移閾值x=10km,確定本節(jié)點(diǎn)緩存空間容量為s,并根據(jù)所述緩存空間容量s確定本節(jié)點(diǎn)lfu記錄數(shù)目為m=30,確定價(jià)值閾值γ=0.02;
第二步,每次接收到內(nèi)容下載請(qǐng)求后,每個(gè)節(jié)點(diǎn)均記錄本節(jié)點(diǎn)當(dāng)前位置坐標(biāo),計(jì)算并保存本節(jié)點(diǎn)當(dāng)前位置與上一個(gè)位置之間的位移數(shù)據(jù),將節(jié)點(diǎn)當(dāng)前位置的坐標(biāo)與上一次記錄的位置坐標(biāo)比較,作為一次位移,位移次數(shù)加1;合并本節(jié)點(diǎn)接收到的內(nèi)容重復(fù)的所述下載請(qǐng)求,根據(jù)合并后的內(nèi)容下載請(qǐng)求更新所述lfu記錄,同時(shí),比較本節(jié)點(diǎn)當(dāng)前位移距離是否超出緩存更新位移閾值x,若超過則跳轉(zhuǎn)至第四步,否則跳轉(zhuǎn)至第三步;
第三步,在位移次數(shù)未到達(dá)所述緩存更新頻率k時(shí)重復(fù)第二步,位移次數(shù)達(dá)到緩存更新頻率k時(shí)則先將位移次數(shù)清零然后跳轉(zhuǎn)至第四步;
第四步,計(jì)算本節(jié)點(diǎn)接收的所述內(nèi)容下載請(qǐng)求中,每一個(gè)內(nèi)容cm的價(jià)值pm,pm∈(0,1),然后跳轉(zhuǎn)至第五步;
所述價(jià)值pm=α1α2α3v_lfum;
其中,m表示所述內(nèi)容下載請(qǐng)求中所述內(nèi)容cm的id編號(hào),m≤m;
位移波動(dòng)因子
位移趨勢(shì)因子
位移幅度因子
第五步,更新緩存內(nèi)容:依次判斷所述每一個(gè)內(nèi)容cm的價(jià)值pm,若所述內(nèi)容cm的價(jià)值pm大于所述價(jià)值閾值γ,則不進(jìn)行緩存更新;否則,進(jìn)行緩存更新,其中,所述價(jià)值閾值γ由用戶設(shè)定,γ∈[0,1],這里取0.02。
具體到一個(gè)引入d2d通信技術(shù)的移動(dòng)蜂窩網(wǎng)絡(luò)中。該網(wǎng)絡(luò)中存在n個(gè)具有緩存功能的移動(dòng)節(jié)點(diǎn),分別表示為n1,…,ni,…nn,例如,n=30,移動(dòng)節(jié)點(diǎn)n1,…,ni,…n30的緩存空間容量為si=15,其中,i表示第i個(gè)移動(dòng)節(jié)點(diǎn),n表示移動(dòng)節(jié)點(diǎn),ni表示第i個(gè)移動(dòng)節(jié)點(diǎn)的名稱,s表示緩存空間,si表示第i個(gè)移動(dòng)節(jié)點(diǎn)的緩存空間容量。此外,每個(gè)移動(dòng)節(jié)點(diǎn)按照?qǐng)D3所示的規(guī)則存儲(chǔ)lfu記錄。這里的lfu記錄主要包括接收到的請(qǐng)求的內(nèi)容id以及請(qǐng)求的次數(shù),記錄可按照請(qǐng)求次數(shù)由多至少排序。記錄中所記載的內(nèi)容的數(shù)量通常需大于節(jié)點(diǎn)所能夠緩存的內(nèi)容數(shù)量,這樣可以在節(jié)點(diǎn)位置變化巨大的情況下有效地對(duì)整個(gè)緩存進(jìn)行及時(shí)更新。任意時(shí)刻t,移動(dòng)節(jié)點(diǎn)ni接收到的請(qǐng)求為request_rcvi。具體步驟如下:其中,所述節(jié)點(diǎn)中,每一個(gè)內(nèi)容cm,均對(duì)應(yīng)一個(gè)id編號(hào),一條lfu記錄,以及一個(gè)價(jià)值數(shù)值pm。
第一步,移動(dòng)節(jié)點(diǎn)ni首先進(jìn)行初始化,確定緩存更新頻率為k=20,確定緩存更新位移閾值x=10km,確定本節(jié)點(diǎn)緩存空間容量s,并根據(jù)所述緩存空間容量s確定本節(jié)點(diǎn)lfu記錄數(shù)目為m=30,確定價(jià)值閾值γ=0.02;
第二步,當(dāng)所述移動(dòng)節(jié)點(diǎn)ni接收到內(nèi)容下載請(qǐng)求的集合request_rcvi后,記錄本節(jié)點(diǎn)當(dāng)前位置坐標(biāo),計(jì)算并保存本節(jié)點(diǎn)當(dāng)前位置與上一個(gè)位置之間的位移數(shù)據(jù),合并本節(jié)點(diǎn)接收到的內(nèi)容重復(fù)的所述下載請(qǐng)求,根據(jù)合并后的內(nèi)容下載請(qǐng)求更新所述lfu記錄,同時(shí),比較本節(jié)點(diǎn)當(dāng)前位移距離是否超出緩存更新位移閾值x,若超過則跳轉(zhuǎn)至第四步,否則跳轉(zhuǎn)至第三步;
具體更新所述lfu記錄的步驟如下:
步驟211,每接收到一個(gè)所述內(nèi)容下載請(qǐng)求后,先檢索當(dāng)前l(fā)fu記錄,若當(dāng)前l(fā)fu記錄中已記載有所述內(nèi)容下載請(qǐng)求所對(duì)應(yīng)的內(nèi)容cm,則將所述lfu記錄中所述內(nèi)容cm所對(duì)應(yīng)的下載請(qǐng)求的次數(shù)fm加一;否則,跳轉(zhuǎn)至步驟212;
步驟212,刪除所述lfu記錄中請(qǐng)求次數(shù)最少的內(nèi)容,然后將所述內(nèi)容cm所對(duì)應(yīng)的請(qǐng)求次數(shù)fm記為1,添加入lfu記錄中。
本步驟中,所述移動(dòng)節(jié)點(diǎn)ni最多保留m=30個(gè)請(qǐng)求記錄,并記錄收到請(qǐng)求內(nèi)容cm的次數(shù)fm。
第三步,在位移次數(shù)未到達(dá)所述緩存更新頻率k時(shí)重復(fù)第二步,每當(dāng)位移次數(shù)達(dá)到緩存更新頻率k時(shí)則先將位移次數(shù)清零然后跳轉(zhuǎn)至第四步;
第四步,計(jì)算本節(jié)點(diǎn)接收的所述內(nèi)容下載請(qǐng)求中,每一個(gè)內(nèi)容cm的價(jià)值pm,pm∈(0,1),然后跳轉(zhuǎn)至第五步;
其中,所述價(jià)值pm=α1α2α3v_lfum;
其中,m表示所述內(nèi)容下載請(qǐng)求中所述內(nèi)容cm的id編號(hào),m≤m;
位移波動(dòng)因子
位移趨勢(shì)因子
位移幅度因子
第五步,更新緩存內(nèi)容:依次判斷所述每一個(gè)內(nèi)容cm的價(jià)值pm,若所述內(nèi)容cm的價(jià)值pm大于所述價(jià)值閾值γ,則不進(jìn)行緩存更新;否則,進(jìn)行緩存更新,其中,所述價(jià)值閾值γ由用戶設(shè)定,本實(shí)施例中,γ=0.02。具體而言,此處進(jìn)行緩存更新的步驟如下:
步驟501,判斷本節(jié)點(diǎn)緩存空間容量是否足夠存放所述內(nèi)容cm,若容量足夠則跳轉(zhuǎn)至步驟502;否則跳轉(zhuǎn)至步驟503;
步驟502,在本節(jié)點(diǎn)緩存空間內(nèi)緩存所述內(nèi)容cm,更新緩存列表;
步驟503,按照請(qǐng)求次數(shù)由少到多的順序依次刪除本節(jié)點(diǎn)緩存空間內(nèi)的內(nèi)容,直至剩余的緩存空間足夠存放所述內(nèi)容cm,然后在本節(jié)點(diǎn)緩存空間內(nèi)緩存所述內(nèi)容cm,更新緩存列表。
如圖5所示,本方法有著較高的緩存命中率,而方案1由于不考慮緩存節(jié)點(diǎn)的位置移動(dòng),過多依賴于偏離自己較遠(yuǎn)的位置處收到的內(nèi)容下載請(qǐng)求,以致對(duì)緩存內(nèi)容更新產(chǎn)生負(fù)面影響,導(dǎo)致其中緩存的有效率極不穩(wěn)定,無法滿足緩存轉(zhuǎn)發(fā)機(jī)制的要求,且浪費(fèi)網(wǎng)絡(luò)資源。
同時(shí),本實(shí)施例還提供一種利用上述基于節(jié)點(diǎn)位移及l(fā)fu更新規(guī)則的緩存更新方法的通信裝置。包括:移動(dòng)網(wǎng)絡(luò)接口、lfu記錄存儲(chǔ)模塊、緩存單元及控制模塊,其特征在于,所述控制模塊包括緩存更新判斷模塊;
所述移動(dòng)網(wǎng)絡(luò)接口構(gòu)成所述通信裝置的輸入與輸出端,所述移動(dòng)網(wǎng)絡(luò)接口的數(shù)據(jù)端同時(shí)連接所述控制模塊、所述lfu記錄存儲(chǔ)模塊的輸入端以及所述緩存單元的輸入端,所述控制模塊還同時(shí)連接所述lfu記錄存儲(chǔ)模塊以及所述緩存單元,所述緩存單元的輸出端連接所述移動(dòng)網(wǎng)絡(luò)接口的數(shù)據(jù)端;
所述移動(dòng)網(wǎng)絡(luò)接口用于將信號(hào)接收端接收到的信號(hào)轉(zhuǎn)化為所述通信裝置能夠處理的數(shù)據(jù)內(nèi)容cm,同時(shí)將所述緩存單元輸出的所述數(shù)據(jù)內(nèi)容cm轉(zhuǎn)化為移動(dòng)網(wǎng)絡(luò)信號(hào)并發(fā)送;
所述lfu記錄存儲(chǔ)模塊用于記錄所述緩存單元內(nèi)每一個(gè)數(shù)據(jù)內(nèi)容cm的請(qǐng)求次數(shù)fm;
所述緩存單元用于根據(jù)所述控制模塊的控制指令,緩存所述移動(dòng)網(wǎng)絡(luò)接口接收到的所述數(shù)據(jù)內(nèi)容cm;并根據(jù)所述控制模塊的控制指令,向所述移動(dòng)網(wǎng)絡(luò)接口輸出其緩存的相應(yīng)數(shù)據(jù)內(nèi)容;
所述控制模塊用于響應(yīng)所述移動(dòng)網(wǎng)絡(luò)中的數(shù)據(jù)內(nèi)容請(qǐng)求,控制所述緩存單元輸出相應(yīng)的數(shù)據(jù)內(nèi)容;所述控制模塊同時(shí)用于根據(jù)其內(nèi)緩存更新判斷模塊,控制所述緩存單元更新相應(yīng)的數(shù)據(jù)內(nèi)容cm;
所述緩存更新判斷模塊用于讀取所述lfu記錄存儲(chǔ)模塊中的記錄,結(jié)合所述移動(dòng)網(wǎng)絡(luò)中記錄的所述通信裝置的位置信息,控制所述緩存單元更新相應(yīng)的數(shù)據(jù)內(nèi)容cm。
同時(shí),還提供一種由上述通信裝置構(gòu)成的移動(dòng)網(wǎng)絡(luò)。所述網(wǎng)絡(luò)包括至少一個(gè)具有緩存功能的移動(dòng)節(jié)點(diǎn),其特征在于,所述移動(dòng)網(wǎng)絡(luò)中的每個(gè)移動(dòng)節(jié)點(diǎn)在每次接收到內(nèi)容下載請(qǐng)求后,均按照如下方式工作:
步驟a,記錄本移動(dòng)節(jié)點(diǎn)ni當(dāng)前位置坐標(biāo),計(jì)算并保存本節(jié)點(diǎn)當(dāng)前位置與上一個(gè)位置之間的位移數(shù)據(jù),合并本移動(dòng)節(jié)點(diǎn)接收到的內(nèi)容重復(fù)的所述下載請(qǐng)求,然后根據(jù)合并后的內(nèi)容下載請(qǐng)求更新所述lfu記錄,跳轉(zhuǎn)至步驟b;所述的上一個(gè)位置為本移動(dòng)節(jié)點(diǎn)上一次接收到內(nèi)容下載請(qǐng)求時(shí)節(jié)點(diǎn)所處的位置;
步驟b,查詢本移動(dòng)節(jié)點(diǎn)內(nèi)緩存的內(nèi)容,根據(jù)所述下載請(qǐng)求,向依次向所述移動(dòng)網(wǎng)絡(luò)中的移動(dòng)節(jié)點(diǎn)發(fā)送該移動(dòng)節(jié)點(diǎn)所請(qǐng)求的內(nèi)容,同時(shí)比較本節(jié)點(diǎn)當(dāng)前位移距離是否超出緩存更新位移閾值x,若超過則跳轉(zhuǎn)至步驟d,否則跳轉(zhuǎn)至步驟c;
步驟c,判斷本移動(dòng)節(jié)點(diǎn)的位移次數(shù)是否達(dá)所述緩存更新頻率k,若達(dá)到,則先將位移次數(shù)清零然后跳轉(zhuǎn)至步驟d;否則,回到步驟a;
步驟d,按照所述步驟d-1至所述步驟d-7的順序更新緩存(其中,步驟d-1、步驟d-2、步驟d-3、步驟d-4之間的順序可以互換,也可同時(shí)在相應(yīng)的運(yùn)算單元內(nèi)并列執(zhí)行),跳轉(zhuǎn)至步驟e:
步驟d-1,計(jì)算本移動(dòng)節(jié)點(diǎn)的位移波動(dòng)因子
步驟d-2,計(jì)算本移動(dòng)節(jié)點(diǎn)接收的所述內(nèi)容下載請(qǐng)求中,每一個(gè)內(nèi)容cm的lfu價(jià)值
步驟d-3,計(jì)算本移動(dòng)節(jié)點(diǎn)的位移趨勢(shì)因子
步驟d-4,計(jì)算本移動(dòng)節(jié)點(diǎn)的位移幅度因子
步驟d-5,計(jì)算本移動(dòng)節(jié)點(diǎn)接收的所述內(nèi)容下載請(qǐng)求中,每一個(gè)內(nèi)容cm的價(jià)值pm=α1α2α3v_lfum,然后跳轉(zhuǎn)至步驟d-6;
步驟d-6,依次判斷本移動(dòng)節(jié)點(diǎn)接收的所述每一個(gè)內(nèi)容cm的價(jià)值pm,若所述內(nèi)容cm的價(jià)值pm大于價(jià)值閾值γ,則不進(jìn)行緩存更新;否則,進(jìn)跳轉(zhuǎn)至步驟d-7;其中,所述價(jià)值閾值γ由用戶設(shè)定,γ=0.02;
步驟d-7,判斷本移動(dòng)節(jié)點(diǎn)緩存空間容量是否足夠存放所述內(nèi)容cm,若容量足夠增在本移動(dòng)節(jié)點(diǎn)緩存空間內(nèi)緩存所述內(nèi)容cm,更新緩存列表;否則,先按照請(qǐng)求次數(shù)由少到多的順序依次刪除本移動(dòng)節(jié)點(diǎn)緩存空間內(nèi)的內(nèi)容,直至剩余的緩存空間足夠存放所述內(nèi)容cm,然后在本移動(dòng)節(jié)點(diǎn)緩存空間內(nèi)緩存所述內(nèi)容cm,更新緩存列表。
步驟e,判斷是否接收到新的內(nèi)容下載請(qǐng)求,若是,則跳轉(zhuǎn)至步驟a;否則,結(jié)束。
上述的緩存更新頻率k可由所述移動(dòng)網(wǎng)絡(luò)統(tǒng)一設(shè)定,或由每一個(gè)所述移動(dòng)節(jié)點(diǎn)自行設(shè)定。所述移動(dòng)節(jié)點(diǎn)的位置坐標(biāo)由所述移動(dòng)蜂窩網(wǎng)絡(luò)提供,或由所述移動(dòng)節(jié)點(diǎn)自行計(jì)算確定。
本發(fā)明技術(shù)方案的優(yōu)點(diǎn)主要體現(xiàn)在:將移動(dòng)節(jié)點(diǎn)的位移因子納入d2d移動(dòng)網(wǎng)絡(luò)緩存更新的考量范圍。通過三種具有不同特性的位移因子,以及相應(yīng)的緩存更新啟動(dòng)機(jī)制(緩存更新位移閾值x),判斷緩存中的哪些內(nèi)容需要更新。與傳統(tǒng)方法中只考慮內(nèi)容緩存方案設(shè)計(jì)的研究場(chǎng)景不同,本發(fā)明只對(duì)已緩存的內(nèi)容進(jìn)行有選擇性的更新,便可有效提高緩存內(nèi)容的有效性。
本發(fā)明能夠在緩存命中率和系統(tǒng)開銷之間達(dá)到很好的平衡,且可在一定程度上由移動(dòng)網(wǎng)絡(luò)用戶根據(jù)其使用網(wǎng)絡(luò)資源的具體情況,自主決定更新比例。尤其,本發(fā)明在進(jìn)行更新判斷時(shí)只需掌握節(jié)點(diǎn)自身所擁有的信息,例如節(jié)點(diǎn)位置變化、所接收到的內(nèi)容請(qǐng)求、時(shí)間等信息,通過簡(jiǎn)單運(yùn)算即可確定相應(yīng)信息的需求情況,刪除需求量較少的緩存內(nèi)容。
尤其值得注意,本實(shí)施例中按照位移次數(shù)判斷是否對(duì)緩存進(jìn)行篩選更新。這樣直接通過節(jié)點(diǎn)位置控制緩存更新,對(duì)數(shù)據(jù)量較小但調(diào)用頻繁的流行內(nèi)容而言,這樣的設(shè)計(jì)能夠保證節(jié)點(diǎn)內(nèi)緩存的數(shù)據(jù)及時(shí)更新(通常這類數(shù)據(jù)具有較強(qiáng)的社交屬性,對(duì)節(jié)點(diǎn)位置關(guān)系更加敏感,通常只在小范圍節(jié)點(diǎn)集合內(nèi)有效),始終保持一定的有效率。
本領(lǐng)域普通技術(shù)人員可以理解:以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,對(duì)于本領(lǐng)域的技術(shù)人員來說,其依然可以對(duì)前述各實(shí)施例記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。