本發(fā)明涉及一種用于物聯(lián)網(wǎng)的緩存方法。
背景技術(shù):
物聯(lián)網(wǎng)(Internet of Things,IoT)是指通過信息傳感設(shè)備,將需要進(jìn)行信息傳遞的物體,按照相關(guān)協(xié)議與互聯(lián)網(wǎng)相連而形成的一種網(wǎng)絡(luò),其主要功能是對(duì)物體的狀態(tài)進(jìn)行實(shí)時(shí)感知和智能控制,實(shí)現(xiàn)物理世界與虛擬世界的無縫連接。
物聯(lián)網(wǎng)是互聯(lián)網(wǎng)的延伸和擴(kuò)展,然而物聯(lián)網(wǎng)節(jié)點(diǎn)具有高度異構(gòu)性,物聯(lián)網(wǎng)中不僅存在服務(wù)器、個(gè)人電腦、手持設(shè)備、路由器等高性能節(jié)點(diǎn),還擁有數(shù)量眾多的各種低功耗、小體積通信對(duì)象,如無線傳感器和執(zhí)行器、可穿戴設(shè)備、RFID標(biāo)簽等,這些終端具有共同的特征:受限的能源、有限的處理能力、少量的內(nèi)存空間、脆弱的無線條件、應(yīng)用的實(shí)時(shí)性要求,如此數(shù)量眾多、資源受限且缺乏用戶接口的IoT設(shè)備使得大規(guī)模IoT互聯(lián)、尤其是海量數(shù)據(jù)的采集和分發(fā)成為挑戰(zhàn),給IoT體系結(jié)構(gòu)帶來了極大的壓力。
上百億的IoT設(shè)備連接到互聯(lián)網(wǎng)將產(chǎn)生海量的低速物聯(lián)網(wǎng)流量,會(huì)增加核心網(wǎng)絡(luò)的負(fù)擔(dān),而很大比例的IoT流量被多個(gè)終端用戶頻繁請(qǐng)求,減少由此帶來的冗余傳輸十分必要,同時(shí),很多IoT設(shè)備是可移動(dòng)的,并且受限于能源、內(nèi)存和計(jì)算能力,容易造成斷續(xù)連接。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是,提供一種用于物聯(lián)網(wǎng)的緩存方法,其能夠有效減少物聯(lián)網(wǎng)流量負(fù)載、降低用戶獲取物聯(lián)網(wǎng)數(shù)據(jù)的時(shí)延、減輕內(nèi)容提供者的負(fù)擔(dān),使得內(nèi)容提供者可以進(jìn)行休眠而不影響數(shù)據(jù)發(fā)送,能有效降低節(jié)點(diǎn)上緩存的內(nèi)容數(shù)據(jù)的替換頻率。
為解決上述技術(shù)問題,本發(fā)明提供的用于物聯(lián)網(wǎng)的緩存方法,該方法包括:
在物聯(lián)網(wǎng)的每個(gè)節(jié)點(diǎn)上設(shè)置一個(gè)內(nèi)容表,每個(gè)內(nèi)容表中均包含n條記錄,每條記錄中均包含內(nèi)容名稱、請(qǐng)求次數(shù)、新鮮度值,每個(gè)內(nèi)容表中的n條記錄均始終按照請(qǐng)求次數(shù)的多少進(jìn)行排序;
用戶設(shè)備向物聯(lián)網(wǎng)發(fā)送內(nèi)容請(qǐng)求,當(dāng)用戶設(shè)備發(fā)送的內(nèi)容請(qǐng)求到達(dá)物聯(lián)網(wǎng)的一個(gè)節(jié)點(diǎn)時(shí),如果該節(jié)點(diǎn)的內(nèi)容表中沒有任何記錄,則在該節(jié)點(diǎn)的內(nèi)容表中添加一條記錄,該記錄的內(nèi)容名稱與內(nèi)容請(qǐng)求一致,該記錄的請(qǐng)求次數(shù)設(shè)置為1,該記錄的新鮮度值設(shè)置為1;
當(dāng)用戶設(shè)備發(fā)送的內(nèi)容請(qǐng)求到達(dá)物聯(lián)網(wǎng)的一個(gè)節(jié)點(diǎn)時(shí),如果該節(jié)點(diǎn)的內(nèi)容表中沒有任何一條記錄的內(nèi)容名稱與內(nèi)容請(qǐng)求一致,則搜尋到該節(jié)點(diǎn)的內(nèi)容表中的新鮮度值為n的記錄并刪除,然后在該節(jié)點(diǎn)的內(nèi)容表中添加一條新的記錄,該記錄的內(nèi)容名稱與內(nèi)容請(qǐng)求一致,該記錄的請(qǐng)求次數(shù)設(shè)置為1,該記錄的新鮮度值設(shè)置為1,并且將該節(jié)點(diǎn)的內(nèi)容表中的其余記錄的新鮮度值均加1;
當(dāng)用戶設(shè)備發(fā)送的內(nèi)容請(qǐng)求到達(dá)任意一個(gè)節(jié)點(diǎn)時(shí),如果該節(jié)點(diǎn)的內(nèi)容表中有一條記錄的內(nèi)容名稱與內(nèi)容請(qǐng)求一致,則將該記錄的請(qǐng)求次數(shù)加1,并且將該節(jié)點(diǎn)的內(nèi)容表中新鮮度值小于該記錄的所有記錄的新鮮度值均加1,同時(shí)將該記錄的新鮮度值重置為1;
當(dāng)用戶設(shè)備發(fā)送的內(nèi)容請(qǐng)求到達(dá)內(nèi)容提供者或內(nèi)容緩存時(shí),內(nèi)容提供者或內(nèi)容緩存將相應(yīng)的內(nèi)容數(shù)據(jù)按路由路徑發(fā)送至用戶設(shè)備,內(nèi)容數(shù)據(jù)在發(fā)送之前附上緩存標(biāo)簽C=1,當(dāng)內(nèi)容數(shù)據(jù)到達(dá)物聯(lián)網(wǎng)的任意一個(gè)節(jié)點(diǎn)時(shí),只有在內(nèi)容數(shù)據(jù)上的緩存標(biāo)簽C=1并且當(dāng)前節(jié)點(diǎn)的內(nèi)容表中的與內(nèi)容數(shù)據(jù)相對(duì)應(yīng)的記錄的請(qǐng)求次數(shù)大于當(dāng)前節(jié)點(diǎn)的內(nèi)容表中的最小請(qǐng)求次數(shù)的情況下,才將內(nèi)容數(shù)據(jù)在當(dāng)前節(jié)點(diǎn)進(jìn)行緩存并將緩存標(biāo)簽設(shè)置為C=0,其余情況下,當(dāng)前節(jié)點(diǎn)直接將內(nèi)容數(shù)據(jù)轉(zhuǎn)發(fā)到路由路徑的下一節(jié)點(diǎn);與內(nèi)容數(shù)據(jù)相對(duì)應(yīng)的記錄是指內(nèi)容數(shù)據(jù)的內(nèi)容名稱與記錄的內(nèi)容名稱一致。
作為優(yōu)選,所述的n的最大值為節(jié)點(diǎn)所能緩存的內(nèi)容塊的數(shù)量的1.5倍。
采用以上結(jié)構(gòu)后,本發(fā)明與現(xiàn)有技術(shù)相比,具有以下的優(yōu)點(diǎn):
本發(fā)明的緩存方法,將內(nèi)容數(shù)據(jù)緩存在節(jié)點(diǎn)上,這樣,用戶向物聯(lián)網(wǎng)請(qǐng)求數(shù)據(jù)時(shí),節(jié)點(diǎn)上緩存的內(nèi)容數(shù)據(jù)可以發(fā)送至用戶,而不必每次都向內(nèi)容提供者請(qǐng)求,這樣可以使得數(shù)據(jù)發(fā)送時(shí)路由路徑縮短,從而能夠有效減少物聯(lián)網(wǎng)流量負(fù)載、降低用戶獲取物聯(lián)網(wǎng)數(shù)據(jù)的時(shí)延、減輕內(nèi)容提供者的負(fù)擔(dān),并可以使得內(nèi)容提供者可以進(jìn)行休眠而不影響數(shù)據(jù)發(fā)送,并且本發(fā)明將內(nèi)容數(shù)據(jù)有選擇的緩存在靠近內(nèi)容源并且該內(nèi)容請(qǐng)求頻率較高的節(jié)點(diǎn)上,降低了緩存的盲目性,可以有效降低節(jié)點(diǎn)上緩存的內(nèi)容數(shù)據(jù)的替換頻率。
附圖說明
圖1為本發(fā)明的物聯(lián)網(wǎng)的數(shù)據(jù)傳輸模型;
圖2是內(nèi)容請(qǐng)求到達(dá)節(jié)點(diǎn)時(shí)的操作流程圖;
圖3是內(nèi)容數(shù)據(jù)達(dá)到節(jié)點(diǎn)時(shí)的操作流程圖;
圖4是內(nèi)容請(qǐng)求達(dá)到節(jié)點(diǎn)時(shí)內(nèi)容表的變化示意圖;
圖5是各類緩存算法的例證圖;
圖6是方案1緩存命中率的箱圖;
圖7是方案1跳數(shù)減少率的箱圖;
圖8是方案1每節(jié)點(diǎn)緩存替換數(shù)的箱圖;
圖9是方案2緩存命中率的箱圖;
圖10是方案2跳數(shù)減少率的箱圖;
圖11是方案2每節(jié)點(diǎn)緩存替換數(shù)的箱圖;
圖12是隨相對(duì)緩存大小變化的緩存命中率;
圖13是隨相對(duì)緩存大小變化的跳數(shù)減少率。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)地說明。
本發(fā)明中的物聯(lián)網(wǎng)為基于內(nèi)容中心體系架構(gòu)的物聯(lián)網(wǎng),圖1給出了本發(fā)明的物聯(lián)網(wǎng)的系統(tǒng)模型及數(shù)據(jù)獲取示意圖,用戶A遠(yuǎn)程發(fā)送Interest包,請(qǐng)求所需數(shù)據(jù)(如電力數(shù)據(jù)、監(jiān)控?cái)?shù)據(jù)等),該數(shù)據(jù)按內(nèi)容中心網(wǎng)絡(luò)要求具有內(nèi)容名,并由節(jié)點(diǎn)1所采集,用戶A按照內(nèi)容中心網(wǎng)絡(luò)以內(nèi)容名路由的方式逐跳路由轉(zhuǎn)發(fā)到達(dá)節(jié)點(diǎn)1,節(jié)點(diǎn)1根據(jù)采集頻率等特點(diǎn)對(duì)采集到的數(shù)據(jù)設(shè)置生命期,封裝數(shù)據(jù)并發(fā)送Data包,按Interest包經(jīng)歷的路徑送達(dá)用戶1,沿途節(jié)點(diǎn)可根據(jù)緩存策略有選擇性地存儲(chǔ)過往的數(shù)據(jù)(例如存儲(chǔ)在匯聚節(jié)點(diǎn)2),若之后用戶B需要同樣的數(shù)據(jù),所發(fā)送的Interest請(qǐng)求就可由節(jié)點(diǎn)2服務(wù),直接把所需的數(shù)據(jù)發(fā)送給用戶B,無需路由到源節(jié)點(diǎn)(節(jié)點(diǎn)1)獲取數(shù)據(jù),由此可見,網(wǎng)內(nèi)緩存減少了數(shù)據(jù)傳輸?shù)臅r(shí)延,同時(shí)減少了網(wǎng)絡(luò)流量,減輕了源節(jié)點(diǎn)負(fù)載,另外,節(jié)點(diǎn)1可以在下一次數(shù)據(jù)采集前進(jìn)入休眠狀態(tài)以節(jié)省能量,在這個(gè)系統(tǒng)模型中,還需要考慮緩存替換問題,也需要考慮緩存內(nèi)容與源數(shù)據(jù)的一致性以及針對(duì)物聯(lián)網(wǎng)存在的內(nèi)容新鮮度要求。
由圖2所示,本發(fā)明的緩存方法為LCD-S緩存算法,LCD-S緩存算法的主要思想是通過改進(jìn)常用的LCD算法,使其具有更好的緩存性能,并能很好地適用于內(nèi)容中心物聯(lián)網(wǎng),在該方法中,需要在物聯(lián)網(wǎng)的每個(gè)節(jié)點(diǎn)上設(shè)計(jì)并維護(hù)一個(gè)內(nèi)容表,每個(gè)內(nèi)容表中均包含n條記錄,每條記錄中均包含內(nèi)容名稱、請(qǐng)求次數(shù)、新鮮度值,每個(gè)內(nèi)容表中的n條記錄均始終按照請(qǐng)求次數(shù)的多少從少到多進(jìn)行排序,也就是說每個(gè)內(nèi)容表中的n條記錄的排列順序均可以隨著記錄的請(qǐng)求次數(shù)的變化而實(shí)時(shí)調(diào)整。
用戶設(shè)備向物聯(lián)網(wǎng)發(fā)送內(nèi)容請(qǐng)求,內(nèi)容請(qǐng)求中包含內(nèi)容名稱,當(dāng)用戶設(shè)備發(fā)送的內(nèi)容請(qǐng)求到達(dá)物聯(lián)網(wǎng)的一個(gè)節(jié)點(diǎn)時(shí),如果該節(jié)點(diǎn)的內(nèi)容表中沒有任何記錄,則在該節(jié)點(diǎn)的內(nèi)容表中添加一條記錄,該記錄的內(nèi)容名稱與內(nèi)容請(qǐng)求的內(nèi)容名稱一致,該記錄的請(qǐng)求次數(shù)設(shè)置為1,該記錄的新鮮度值設(shè)置為1。
當(dāng)用戶設(shè)備發(fā)送的內(nèi)容請(qǐng)求到達(dá)物聯(lián)網(wǎng)的一個(gè)節(jié)點(diǎn)時(shí),如果該節(jié)點(diǎn)的內(nèi)容表中沒有任何一條記錄的內(nèi)容名稱與內(nèi)容請(qǐng)求的內(nèi)容名稱一致,則搜尋到該節(jié)點(diǎn)的內(nèi)容表中的新鮮度值為n的記錄并刪除,也就是說將新鮮度值最大的記錄刪除,然后在該節(jié)點(diǎn)的內(nèi)容表中添加一條新的記錄,該記錄的內(nèi)容名稱與內(nèi)容請(qǐng)求的內(nèi)容名稱一致,該記錄的請(qǐng)求次數(shù)設(shè)置為1,該記錄的新鮮度值設(shè)置為1,并且將該節(jié)點(diǎn)的內(nèi)容表中的其余記錄的新鮮度值均加1,也就是說將除了新添加的記錄之外的其他記錄的新鮮度值均加1。
當(dāng)用戶設(shè)備發(fā)送的內(nèi)容請(qǐng)求到達(dá)任意一個(gè)節(jié)點(diǎn)時(shí),如果該節(jié)點(diǎn)的內(nèi)容表中有一條記錄的內(nèi)容名稱與內(nèi)容請(qǐng)求的內(nèi)容名稱一致,則將該記錄的請(qǐng)求次數(shù)加1,并與下一記錄的請(qǐng)求次數(shù)比較,若大于后者,該記錄與下一記錄交換位置,直到請(qǐng)求次數(shù)不超過下一記錄,目的在于維護(hù)內(nèi)容表中的記錄始終以請(qǐng)求次數(shù)從低到高排序,若與內(nèi)容請(qǐng)求相對(duì)應(yīng)的記錄的新鮮度值為S,則內(nèi)容表中新鮮度值<S的其他記錄的新鮮度值加1,同時(shí)將該記錄的新鮮度值重置為1;這里所述的與內(nèi)容請(qǐng)求相對(duì)應(yīng)的記錄是指內(nèi)容請(qǐng)求的內(nèi)容名稱與記錄的內(nèi)容名稱一致。
如圖3所示,給出了一個(gè)內(nèi)容請(qǐng)求達(dá)到節(jié)點(diǎn)時(shí)內(nèi)容表變化的實(shí)例,內(nèi)容表中的n條記錄按照請(qǐng)求次數(shù)的多少進(jìn)行排序,當(dāng)內(nèi)容請(qǐng)求到達(dá)節(jié)點(diǎn)時(shí),內(nèi)容表中的記錄(,10,n)的新鮮度值最大,所以將記錄(,10,n)刪除,然后在內(nèi)容表的表頭插入一條新的記錄(,1,1),同時(shí)將其余記錄的新鮮度值均加1。
如圖4所示,當(dāng)用戶設(shè)備發(fā)送的內(nèi)容請(qǐng)求到達(dá)內(nèi)容提供者或內(nèi)容緩存時(shí),內(nèi)容提供者或內(nèi)容緩存將相應(yīng)的內(nèi)容數(shù)據(jù)按路由路徑發(fā)送至用戶設(shè)備,內(nèi)容數(shù)據(jù)在發(fā)送之前附上緩存標(biāo)簽C=1,當(dāng)內(nèi)容數(shù)據(jù)到達(dá)物聯(lián)網(wǎng)的任意一個(gè)節(jié)點(diǎn)時(shí),只有在內(nèi)容數(shù)據(jù)上的緩存標(biāo)簽C=1并且當(dāng)前節(jié)點(diǎn)的內(nèi)容表中的與內(nèi)容數(shù)據(jù)相對(duì)應(yīng)的記錄的請(qǐng)求次數(shù)不是當(dāng)前節(jié)點(diǎn)的內(nèi)容表中的最小請(qǐng)求次數(shù)的情況下,才將內(nèi)容數(shù)據(jù)在當(dāng)前節(jié)點(diǎn)進(jìn)行緩存并將緩存標(biāo)簽設(shè)置為C=0,其余情況下,當(dāng)前節(jié)點(diǎn)直接將內(nèi)容數(shù)據(jù)轉(zhuǎn)發(fā)到路由路徑的下一節(jié)點(diǎn);這里所述的與內(nèi)容數(shù)據(jù)相對(duì)應(yīng)的記錄是指內(nèi)容數(shù)據(jù)的內(nèi)容名稱與記錄的內(nèi)容名稱一致。
所述的n的最大值為節(jié)點(diǎn)所能緩存的內(nèi)容塊的數(shù)量的1.5倍,也就是節(jié)點(diǎn)若能緩存10個(gè)內(nèi)容塊,則該節(jié)點(diǎn)的內(nèi)容表維護(hù)15條記錄,這樣,既不會(huì)錯(cuò)過流行的內(nèi)容,也不會(huì)因?yàn)閮?nèi)容眾多而付出很多維護(hù)內(nèi)容表的開銷。
下面將本發(fā)明的緩存算法和現(xiàn)有的緩存算法的緩存性能進(jìn)行仿真評(píng)估和比較:
a) 比較算法
把LCD-S緩存算法與常用的內(nèi)容緩存算法以及最近被證明有效的緩存算法進(jìn)行充分比較,所采用的是緩存替換策略都是LRU(最近最少使用算法),主要進(jìn)行比較的緩存算法羅列如下:
LCE (Leaving Copies Everywhere):內(nèi)容分發(fā)路徑上每個(gè)節(jié)點(diǎn)都緩存經(jīng)過的數(shù)據(jù),是一種常用的盲目緩存算法。因其簡單可行,也是最早提出的CCN體系結(jié)構(gòu)中所采用的緩存算法。
RndCache (Random Cache):沿內(nèi)容分發(fā)路徑隨機(jī)存儲(chǔ),每個(gè)節(jié)點(diǎn)以50%的概率緩存經(jīng)過該節(jié)點(diǎn)的數(shù)據(jù)。
ProCache (Probabilistic Cache with uniform probability):沿內(nèi)容分發(fā)路徑隨機(jī)存儲(chǔ),每個(gè)節(jié)點(diǎn)以(1/總跳數(shù))的概率緩存經(jīng)過的數(shù)據(jù), 跳數(shù)指的是從請(qǐng)求者到數(shù)據(jù)提供者所經(jīng)過的設(shè)備節(jié)點(diǎn),沿途每個(gè)節(jié)點(diǎn)緩存概率相等。
BCC (Betweenness-Centrality-based Cache): BCC 采用介數(shù)中心的概念并把內(nèi)容緩存在內(nèi)容分發(fā)路徑上介數(shù)中心值最大的節(jié)點(diǎn)。
BCC+RND:是我們?cè)贐CC基礎(chǔ)上提出的一種改進(jìn)算法。除了緩存在內(nèi)容分發(fā)路徑中的最大介數(shù)中心節(jié)點(diǎn)外,再隨機(jī)取一個(gè)下游節(jié)點(diǎn)進(jìn)行緩存,目的在于防止由頻繁的緩存替換造成的緩存未命中率的增加,利用少量的冗余獲得緩存命中率的提高,并把內(nèi)容進(jìn)一步拉近請(qǐng)求用戶。
LCD (Leave Copy Down):LCD以其簡單有效而成為緩存的常用算法。LCD的基本思想是由給定內(nèi)容的每一次請(qǐng)求驅(qū)動(dòng),把內(nèi)容拷貝到離請(qǐng)求者更近一跳的節(jié)點(diǎn)上,即拷貝到緩存命中節(jié)點(diǎn)緊接著的下游節(jié)點(diǎn),這樣請(qǐng)求內(nèi)容就更靠近端用戶。內(nèi)容中心網(wǎng)絡(luò)緩存算法中的WAVE算法也基于相似的思想,只不過緩存的對(duì)象是文件中的塊(把文件切分成大小相同的塊)。
MCD (Move Copy Down):與 LCD一樣,通過緩存內(nèi)容到相鄰下游節(jié)點(diǎn)的方式把內(nèi)容推進(jìn)端用戶,但MCD要求把內(nèi)容從緩存命中節(jié)點(diǎn)(除了源數(shù)據(jù)服務(wù)器)中刪除以減少網(wǎng)內(nèi)數(shù)據(jù)冗余。
上述緩存比較算法與LCD-S緩存算法的原理圖解如圖5所示。
b) 性能評(píng)估指標(biāo)
緩存命中率 (CHR):由中間緩存節(jié)點(diǎn)而非內(nèi)容提供者服務(wù)的內(nèi)容數(shù)與總的請(qǐng)求的內(nèi)容數(shù)之比。
路由跳數(shù)減少率(HRR):跳數(shù)指的是獲取內(nèi)容實(shí)際所需的請(qǐng)求Interest 所經(jīng)過的節(jié)點(diǎn)數(shù)。HRR指的是因緩存而減少的跳數(shù)平均值與端用戶到內(nèi)容提供者的平均跳數(shù)之比,后者以文獻(xiàn)中建議的11跳計(jì),即HRR=(11-實(shí)際跳數(shù))/11*100%。
緩存替換數(shù)(Cache Evictions):計(jì)算每一輪(發(fā)送10000內(nèi)容請(qǐng)求包為一輪)的緩存替換數(shù)。
c) 仿真環(huán)境
仿真環(huán)境采用GT-ITM產(chǎn)生隨機(jī)的路由器級(jí)網(wǎng)絡(luò)拓?fù)?,?nèi)容提供者隨機(jī)分布在網(wǎng)絡(luò)中,其中20%的內(nèi)容由ISP(互聯(lián)網(wǎng)服務(wù)提供者)網(wǎng)絡(luò)內(nèi)部發(fā)布,80%內(nèi)容則由ISP網(wǎng)外發(fā)布。每個(gè)內(nèi)容請(qǐng)求沿最短路由路徑到達(dá)內(nèi)容源(內(nèi)容提供者或內(nèi)容緩存),路由路徑是根據(jù)CCN基于名字的多源多路徑機(jī)制提取的。
對(duì)于輸入的數(shù)據(jù),在每個(gè)節(jié)點(diǎn)的請(qǐng)求遵循泊松到達(dá),其中是均勻分布的請(qǐng)求到達(dá)率t 是緩存決策的觀察間隔(即10000請(qǐng)求為一輪),每個(gè)端節(jié)點(diǎn)的平均請(qǐng)求數(shù)遵循均勻分布U(20000,40000)。內(nèi)容流行度符合Zipf 分布(),其中,表示內(nèi)容訪問集中度,Zipf 分布給出了N個(gè)可獲得內(nèi)容中排名為第i的內(nèi)容的訪問概率。
因?yàn)镃CN體系架構(gòu)是由接收者驅(qū)動(dòng)的塊級(jí)傳輸,傳輸?shù)膯挝皇蔷哂邢嗤叽绲膲K,此為仿真環(huán)境的默認(rèn)參數(shù)如表1所示。
表1
d) 緩存性能比較
方案1:單個(gè)內(nèi)容提供者
圖6和圖7分別表示各緩存算法的緩存命中率CHR和跳數(shù)減少率HRR的箱圖。由圖6可見,基于介數(shù)中心的緩存算法如 BCC 和BCC+RND 具有最好的緩存命中率CHR,即使在緩存容量不大的情況下(總內(nèi)容0.05%的緩存容量)甚至能夠高達(dá)73%的命中率, LCD-S 和概率緩存方案(如RndCache 和 ProCache)比BCC類的方案略遜,大約能達(dá)到63%的緩存命中率,但比LCD高大約10%。高的緩存命中率可以大幅度減少 ISP之間的流量結(jié)算,降低骨干網(wǎng)絡(luò)負(fù)載并能大量節(jié)省ISP的運(yùn)營成本。跳數(shù)減少率HRR直接影響用戶數(shù)據(jù)檢索的體驗(yàn),與基于CCN的網(wǎng)絡(luò)服務(wù)的應(yīng)用與推廣息息相關(guān)。由圖7可見,LCD-S具有最好的HRR性能,跳數(shù)減少最多,概率緩存方案在HRR指標(biāo)上也具有明顯的優(yōu)勢(shì),而且通過簡單改造的LCD-S比原始的LCD高大約7%的HRR。
每個(gè)緩存算法的緩存動(dòng)態(tài)性測(cè)量從網(wǎng)絡(luò)初始狀態(tài)開始(緩存處于空閑狀態(tài)),緩存替換策略為LRU,除了BCC類算法需要5輪才使緩存替換數(shù)趨于穩(wěn)定,大部分緩存算法表現(xiàn)比較穩(wěn)定。圖8顯示LCD-S 和BCC類算法緩存替換數(shù)上具有最好的性能,而RndCache和LCE在每個(gè)節(jié)點(diǎn)分別采用50% 和100%的高緩存概率,造成緩存替換頻繁,相關(guān)性能最差。同樣地,LCD-S相對(duì)LCD在緩存替換和緩存穩(wěn)定性方面具有優(yōu)勢(shì)。
方案2:多個(gè)內(nèi)容提供者
因?yàn)閮?nèi)容中心網(wǎng)絡(luò)支持多源多路徑機(jī)制,為進(jìn)一步評(píng)估緩存性能,對(duì)更為實(shí)際的多個(gè)內(nèi)容提供者的方案進(jìn)行仿真實(shí)驗(yàn)。在方案2中,內(nèi)容提供者的分布主要信賴于內(nèi)容流行度, 仿真中每項(xiàng)流行度前5%的內(nèi)容設(shè)置4個(gè)內(nèi)容提供者,前5% -10%的內(nèi)容擁有2個(gè)內(nèi)容提供者,其余的只有1個(gè)內(nèi)容提供者。
圖9-11分別給出了與方案1相同仿真環(huán)境下的方案2所得到的仿真結(jié)果。比較圖9與圖6可知,兩者的箱圖非常相似,但總體上方案2的緩存命中率CHR大約比方案1少10%,很大程度上是由于多源多路徑增加了緩存的冗余度造成的,因?yàn)橄嗤瑑?nèi)容將在不同的路由路徑上存在而增加了內(nèi)容復(fù)制品。同樣地,方案2的跳數(shù)減少率HRR比方案1的普遍少5%(見圖7與圖10)。最后,從圖11和圖8的比較可知,兩個(gè)方案的緩存替換數(shù)幾乎相同。所以,多源多路徑方案和單源方案基本上不影響緩存算法的相對(duì)性能。
方案3:單個(gè)內(nèi)容提供者+可變的緩存容量
方案3設(shè)置每個(gè)內(nèi)容只有一個(gè)內(nèi)容提供者,而且改變節(jié)點(diǎn)的緩存容量,在緩存變化的情況下比較各緩存算法的CHR和HRR值。從圖12和圖13可見,CHR和HRR隨著相對(duì)緩存大小的增加而單調(diào)增加,并基本上保持了各緩存算法間的相對(duì)性能優(yōu)勢(shì)。同樣地,BCC類緩存算法具有最好的CHR,而LCD-S和概率緩存算法具有最佳的HRR。圖12和圖13表明大的緩存容量對(duì)緩存性能來說肯定有利,而目前存儲(chǔ)價(jià)格的低廉為提高緩存容量提供了可能,但由于CCN中的路由器結(jié)合了路由和緩存功能,受到存儲(chǔ)訪問速度的限制,導(dǎo)致大存儲(chǔ)在設(shè)計(jì)中不可取。同時(shí),可以觀察到性能曲線隨著緩存容量的增長而趨于平緩,性能增益逐漸減少,性價(jià)比降低。所以,性能增益和成本之間進(jìn)行權(quán)衡,選取合適的緩存容量。另外,LCD-S在相對(duì)緩存容量比較大的情況下,可以達(dá)到高達(dá)85%的緩存命中率和超過50%的跳數(shù)減少率。
從三種方案的仿真性能圖中可知,基于內(nèi)容中心的網(wǎng)內(nèi)緩存方法能夠有效地幫助減少數(shù)據(jù)獲取時(shí)延、降低網(wǎng)絡(luò)流量末梢傳感網(wǎng)絡(luò)和骨干互聯(lián)網(wǎng)的負(fù)載,并能減少節(jié)點(diǎn)的能耗。與互聯(lián)網(wǎng)不同,物聯(lián)網(wǎng)中資源受限設(shè)備占很大比例,而且產(chǎn)生大量暫態(tài)小數(shù)據(jù),使得物聯(lián)網(wǎng)具有更為苛刻的緩存要求:不僅要求快速的內(nèi)容獲取速度(尤其是針對(duì)實(shí)時(shí)告警信息),而且為了適應(yīng)全網(wǎng)節(jié)點(diǎn)緩存,復(fù)雜的合作緩存不適宜于內(nèi)容中心物聯(lián)網(wǎng),緩存算法應(yīng)盡量簡單,否則資源受限設(shè)備無法提供足夠的計(jì)算能力、持續(xù)的網(wǎng)絡(luò)連接和足夠的能源供給。LCD-S在LCD基礎(chǔ)上作了較為簡單的改進(jìn),但在緩存命中率CHR、跳數(shù)減少率HRR和緩存替換數(shù)指標(biāo)方面卻有了很大的提升,尤其是LCD-S 在HRR和緩存替換數(shù)方面具有最佳性能,而且各節(jié)點(diǎn)獨(dú)立處理和操作,無需進(jìn)行協(xié)作。雖然BCC和BCC+RND的緩存性能(尤其是緩存命中率很高)也很好,但相對(duì)LCD-S算法來說計(jì)算復(fù)雜度要大得多。所以,在內(nèi)容中心物聯(lián)網(wǎng)中采用本發(fā)明設(shè)計(jì)的LCD-S緩存算法是最佳選擇。當(dāng)然,從上述性能比較也可以看出,概率緩存算法因其簡單易行也可以作為物聯(lián)網(wǎng)緩存的候選算法。
本發(fā)明的緩存方法能夠有效地幫助減少數(shù)據(jù)獲取時(shí)延、降低網(wǎng)絡(luò)流量末梢傳感網(wǎng)絡(luò)和骨干互聯(lián)網(wǎng)的負(fù)載,并能減少節(jié)點(diǎn)的能耗,與互聯(lián)網(wǎng)不同,物聯(lián)網(wǎng)中資源受限設(shè)備占很大比例,而且產(chǎn)生大量暫態(tài)小數(shù)據(jù),使得物聯(lián)網(wǎng)具有更為苛刻的緩存要求:不僅要求快速的內(nèi)容獲取速度(尤其是針對(duì)實(shí)時(shí)告警信息),而且為了適應(yīng)全網(wǎng)節(jié)點(diǎn)緩存,復(fù)雜的合作緩存不適宜于內(nèi)容中心物聯(lián)網(wǎng),緩存算法應(yīng)盡量簡單,否則資源受限設(shè)備無法提供足夠的計(jì)算能力、持續(xù)的網(wǎng)絡(luò)連接和足夠的能源供給。本發(fā)明的緩存方法在緩存命中率、內(nèi)容訪問跳數(shù)減少率和緩存替換數(shù)指標(biāo)方面卻有了很大的提升,尤其相比較于多種常用的緩存算法,本發(fā)明的緩存方法在內(nèi)容訪問跳數(shù)減少率和緩存替換數(shù)方面具有最佳性能,能夠有效減少網(wǎng)絡(luò)流量負(fù)載、降低用戶獲取物聯(lián)網(wǎng)數(shù)據(jù)的時(shí)延、減輕內(nèi)容提供者的負(fù)擔(dān)、并能有效節(jié)能和及時(shí)休眠,而且各節(jié)點(diǎn)獨(dú)立處理和操作,無需進(jìn)行協(xié)作。
以上僅就本發(fā)明應(yīng)用較佳的實(shí)例做出了說明,但不能理解為是對(duì)權(quán)利要求的限制,本發(fā)明的結(jié)構(gòu)可以有其他變化,不局限于上述結(jié)構(gòu)??傊苍诒景l(fā)明的獨(dú)立權(quán)利要求的保護(hù)范圍內(nèi)所作的各種變化均在本發(fā)明的保護(hù)范圍內(nèi)。