高子軒,鄭 烇,2
(1.中國(guó)科學(xué)技術(shù)大學(xué)自動(dòng)化系未來(lái)網(wǎng)絡(luò)實(shí)驗(yàn)室,合肥 230026;2.中國(guó)科學(xué)技術(shù)大學(xué)先進(jìn)技術(shù)研究院,合肥 230088)
隨著移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,現(xiàn)有的網(wǎng)絡(luò)體系在可擴(kuò)展性、移動(dòng)性和安全性等方面逐漸出現(xiàn)性能瓶頸。為了適應(yīng)互聯(lián)網(wǎng)的需求變化,一種新的網(wǎng)絡(luò)體系架構(gòu)——信息中心網(wǎng)絡(luò)(Information Centric Networks,ICN)[1]應(yīng)運(yùn)而生,而命名數(shù)據(jù)網(wǎng)絡(luò)(Named Data Networks,NDN)[2]作為ICN 架構(gòu)的一種具體網(wǎng)絡(luò)實(shí)現(xiàn),受到研究人員的廣泛關(guān)注。在NDN 中,用戶通過(guò)內(nèi)容名稱去獲取內(nèi)容,而無(wú)需關(guān)心內(nèi)容從何而來(lái),同時(shí),在返回內(nèi)容的過(guò)程中會(huì)在沿路根據(jù)緩存策略進(jìn)行緩存。
近年來(lái),考慮到NDN 的優(yōu)越性能,研究人員開(kāi)始將NDN 和移動(dòng)自組織網(wǎng)絡(luò)(Mobile Ad hoc Networks,MANET)相結(jié)合并進(jìn)行分析[3-5]。傳統(tǒng)的MANET 基于TCP/IP 協(xié)議進(jìn)行通信,但是由于MANET 中節(jié)點(diǎn)移動(dòng)而引起了網(wǎng)絡(luò)拓?fù)鋭?dòng)態(tài)變化,導(dǎo)致其難以建立穩(wěn)定的端到端鏈路,這不僅使得網(wǎng)絡(luò)較難實(shí)現(xiàn)高效的數(shù)據(jù)傳輸,同時(shí)也阻礙了MANET 的實(shí)際應(yīng)用。由于MANET 中多數(shù)通信是“以內(nèi)容為中心”的信息共享,而不關(guān)心數(shù)據(jù)承載在哪個(gè)終端以及某個(gè)數(shù)據(jù)是由哪個(gè)終端產(chǎn)生,因此NDN 適用于MANET[6-8],其比“以主機(jī)為中心”的IP 路由協(xié)議更有利于數(shù)據(jù)傳輸。
命名數(shù)據(jù)無(wú)線移動(dòng)自組織網(wǎng)絡(luò)(NDMANET)的研究起步較晚,許多問(wèn)題亟待解決。其中,緩存策略是NDN 中的一個(gè)關(guān)鍵技術(shù)[9-11],由于MANET 中節(jié)點(diǎn)的移動(dòng)性、網(wǎng)絡(luò)的動(dòng)態(tài)性以及網(wǎng)絡(luò)所呈現(xiàn)出的分布式特性,使得現(xiàn)有NDN 中的緩存機(jī)制可能不再適用于NDMANET。因此,如何在節(jié)點(diǎn)空間資源有限、網(wǎng)絡(luò)節(jié)點(diǎn)自由移動(dòng)的MANET 中有效保證數(shù)據(jù)的可用性,提高更高優(yōu)先級(jí)內(nèi)容的命中率,加快請(qǐng)求的響應(yīng)速度,降低數(shù)據(jù)冗余,是NDMANET 數(shù)據(jù)緩存機(jī)制研究中的關(guān)鍵問(wèn)題。
不同于有線環(huán)境下可以擴(kuò)展較大的緩存容量,無(wú)線環(huán)境下移動(dòng)節(jié)點(diǎn)的緩存容量大小受限,因此,對(duì)緩存替換策略的研究顯得尤為重要。目前,緩存替換策略主要包括先進(jìn)先出(FIFO)、最近最少使用(LRU)[12]和最少經(jīng)常使用(LFU)[13]。這些策略多數(shù)是從現(xiàn)有網(wǎng)絡(luò)中演變而來(lái),通常存在兩點(diǎn)缺陷,一方面,它們沒(méi)有考慮內(nèi)容本身的特性,例如內(nèi)容優(yōu)先級(jí)、內(nèi)容的訪問(wèn)頻率等,另一方面,未考慮MANET應(yīng)用場(chǎng)景下節(jié)點(diǎn)自由移動(dòng)時(shí)重要節(jié)點(diǎn)脫離網(wǎng)絡(luò)時(shí)引發(fā)重要內(nèi)容不可用的問(wèn)題。因此,上述策略并不適用于NDMANET 這種新型網(wǎng)絡(luò)架構(gòu)。
本文分析NDN 的特性,根據(jù)內(nèi)容本身所傳達(dá)的信息,如內(nèi)容優(yōu)先級(jí)、內(nèi)容訪問(wèn)頻率等指標(biāo),提出一種基于內(nèi)容優(yōu)先級(jí)的緩存替換策略PFC。通過(guò)向數(shù)據(jù)包添加新的TLV 字段“priority”,設(shè)計(jì)決策函數(shù)實(shí)現(xiàn)緩存內(nèi)容的替換,以在保證平均緩存命中率的同時(shí)提高重要內(nèi)容的緩存命中率和可用性。
緩存機(jī)制包括緩存放置策略、緩存替換策略和緩存一致性維護(hù)策略等。緩存替換策略在緩存已滿而需要緩存新對(duì)象時(shí),決定如何替換出緩存中的一些舊對(duì)象,從而為新對(duì)象騰出空間。在NDMANET中,有限的緩存空間使緩存替換策略更具挑戰(zhàn)性。NDMANET 的緩存研究包括MANET 和NDN 2 個(gè)方面。
在MANET 的相關(guān)緩存研究中,學(xué)者們提出了各種緩存技術(shù)。文獻(xiàn)[14]提出一種SQUIRREL 緩存軟件,該軟件可以集成到Internet的節(jié)點(diǎn)中,允許區(qū)域內(nèi)的多個(gè)節(jié)點(diǎn)共享其緩存。文獻(xiàn)[15]提出CachePath、CacheData 和HybridCache 3 種緩存方案,CachePath存儲(chǔ)數(shù)據(jù)的位置和路徑信息,CacheData 通過(guò)存儲(chǔ)數(shù)據(jù)而非路徑來(lái)節(jié)省時(shí)間,HybridCache 是一種混合方案。上述MANET 緩存策略均基于TCP/IP 網(wǎng)絡(luò),需要存儲(chǔ)與內(nèi)容對(duì)應(yīng)的IP 地址,因此,并不適用于NDN 網(wǎng)絡(luò)。
在NDN 的相關(guān)緩存研究中,多數(shù)使用LRU、FIFO、LFU 和Random 策略作為緩存替換策略。為了提高NDN 的性能,研究人員也為其設(shè)計(jì)了很多緩存算法。文獻(xiàn)[11]提供了有關(guān)信息中心網(wǎng)絡(luò)中緩存機(jī)制的調(diào)查結(jié)果,其分析不同的參數(shù)(如緩存時(shí)間、內(nèi)容本身、內(nèi)容相關(guān)性以及緩存中的生存期)對(duì)ICN緩存性能的影響。文獻(xiàn)[16]提出一種ICN 的緩存替換策略,其將內(nèi)容的流行度視為替換指標(biāo),此外,還考慮網(wǎng)絡(luò)中的全局流行度。但是,該策略不適用于NDMANET,一方面,對(duì)于NDMANET 而言,全局內(nèi)容流行度并不現(xiàn)實(shí),而且還會(huì)對(duì)CS 管理造成更多的負(fù)擔(dān);另一方面,該策略會(huì)延長(zhǎng)緩存檢索時(shí)間。文獻(xiàn)[17]提出一種基于流行度的細(xì)粒度緩存替換策略FGPC,但是,F(xiàn)GPC 僅使用請(qǐng)求頻率來(lái)決定內(nèi)容的替換。文獻(xiàn)[18]提出一種基于層次流行度的緩存替換策略,其將內(nèi)容流行度分為5 個(gè)層次,每個(gè)數(shù)據(jù)包都屬于一個(gè)流行度級(jí)別,當(dāng)緩存已滿時(shí),將替換緩存中流行度最低的數(shù)據(jù)包。但是,該策略也導(dǎo)致一個(gè)問(wèn)題,一些重要內(nèi)容不一定是流行內(nèi)容,僅通過(guò)流行度去決定緩存替換,對(duì)于一些特定內(nèi)容將不合適。文獻(xiàn)[19]提出一種通用緩存替換策略,節(jié)點(diǎn)可以通過(guò)各項(xiàng)指標(biāo),包括請(qǐng)求頻率、節(jié)點(diǎn)距離、節(jié)點(diǎn)可達(dá)性等,綜合決定替換內(nèi)容,但是,該策略中的內(nèi)容度量系統(tǒng)CMS 的權(quán)重系數(shù)是根據(jù)節(jié)點(diǎn)和網(wǎng)絡(luò)中心的距離來(lái)確定的,對(duì)于MANET 這種去中心化的網(wǎng)絡(luò)而言顯然不合理。文獻(xiàn)[20]將節(jié)點(diǎn)的位置加入到緩存替換決策中,但是,其決策函數(shù)考慮的因素較多,計(jì)算復(fù)雜度較高,從而提高了替換時(shí)的計(jì)算代價(jià)與響應(yīng)時(shí)間。
從已有文獻(xiàn)可以看出,MANET 緩存研究是基于IP 網(wǎng)絡(luò)的,不適用于NDMANET 網(wǎng)絡(luò),針對(duì)NDN 的緩存替換策略也不適合NDMANET,原因是它們沒(méi)有考慮節(jié)點(diǎn)的移動(dòng)性、網(wǎng)絡(luò)的去中心化等NDMANET 的特性。此外,多數(shù)緩存策略并未考慮內(nèi)容本身的優(yōu)先級(jí)。因此,本文從內(nèi)容的優(yōu)先級(jí)出發(fā),同時(shí)兼顧內(nèi)容的請(qǐng)求頻率,提出一種緩存替換策略PFC。
一扇窗子立刻打開(kāi),拿著槍的黑臉孔的人竟跳進(jìn)來(lái),踏了金枝的左腿一下。那個(gè)黑人向棚頂望了望,他熟悉地爬向棚頂去,王婆也跟著走來(lái),她多日不見(jiàn)金枝而沒(méi)說(shuō)一句話,宛如她什么也看不見(jiàn)似的。一直爬上棚頂去。金枝和母親什么也不曉得,只是爬上去。直到黃昏惡消息仍沒(méi)傳來(lái),他們和爬蟲(chóng)樣才從棚頂爬下。王婆說(shuō):“哈爾濱一定比鄉(xiāng)下好,你再去就在那里不要回來(lái),村子里日本子越來(lái)越惡,他們捉大肚女人,破開(kāi)肚子去破‘紅槍會(huì)’(義勇軍的一種),活顯顯的小孩從肚皮流出來(lái)。為這事,李青山把兩個(gè)日本子的腦袋割下掛到樹(shù)上?!?/p>
有效的緩存替換策略可以提高緩存命中率,從而提升內(nèi)容分發(fā)性能。但是,現(xiàn)有研究一方面未考慮NDMANET 不同于傳統(tǒng)NDN 網(wǎng)絡(luò)的3 個(gè)特點(diǎn):1)分布式控制,沒(méi)有中心節(jié)點(diǎn);2)節(jié)點(diǎn)的自由移動(dòng)導(dǎo)致網(wǎng)絡(luò)拓?fù)渥兓约澳承┕?jié)點(diǎn)可能會(huì)“掉線”的情況;3)節(jié)點(diǎn)的資源有限。另一方面,現(xiàn)有緩存策略僅考慮內(nèi)容的流行度而忽略了內(nèi)容本身的優(yōu)先級(jí),這會(huì)導(dǎo)致重要內(nèi)容的可用性降低,一旦重要節(jié)點(diǎn)離開(kāi)網(wǎng)絡(luò),可能出現(xiàn)請(qǐng)求無(wú)響應(yīng)的情況。
NDN 的通信模型由消費(fèi)者驅(qū)動(dòng),消費(fèi)者發(fā)送興趣包(Interest Packet)請(qǐng)求相應(yīng)的數(shù)據(jù)包(Data Packet)。節(jié)點(diǎn)在收到興趣包后,其內(nèi)容緩存CS(Content Store)中如果有匹配的內(nèi)容,則會(huì)返回?cái)?shù)據(jù)包;否則,節(jié)點(diǎn)先查詢未決興趣表PIT,查看是否有記錄,若無(wú)記錄,興趣包將根據(jù)轉(zhuǎn)發(fā)信息表FIB 在網(wǎng)絡(luò)中進(jìn)一步轉(zhuǎn)發(fā)。在接收到數(shù)據(jù)包后,節(jié)點(diǎn)首先檢查相關(guān)請(qǐng)求是否在PIT 中,如果對(duì)該數(shù)據(jù)的請(qǐng)求仍然沒(méi)有得到響應(yīng),則將數(shù)據(jù)進(jìn)一步轉(zhuǎn)發(fā)到網(wǎng)絡(luò)中的下游,否則將丟棄該數(shù)據(jù)。同時(shí),節(jié)點(diǎn)根據(jù)適當(dāng)?shù)木彺鏇Q策方案將數(shù)據(jù)存儲(chǔ)在CS 中,如果CS 達(dá)到其最大容量,則根據(jù)緩存替換策略進(jìn)行內(nèi)容替換。NDN 的通信流程如圖1 所示。
圖1 NDN 通信流程Fig.1 NDN communication procedure
在NDMANET 中,內(nèi)容的可用性指在網(wǎng)絡(luò)中一部分節(jié)點(diǎn)出現(xiàn)故障后,網(wǎng)絡(luò)整體是否還能響應(yīng)消費(fèi)者的請(qǐng)求。在一些實(shí)際的NDMANET 應(yīng)用場(chǎng)景,如軍事活動(dòng)、救援行動(dòng)中,由于環(huán)境的復(fù)雜性,可能經(jīng)常發(fā)生節(jié)點(diǎn)脫離網(wǎng)絡(luò)的情況。如果該節(jié)點(diǎn)緩存了重要內(nèi)容,可能會(huì)導(dǎo)致重要內(nèi)容不可用。因此,對(duì)于NDMANET 而言,節(jié)點(diǎn)可用性的重要程度不低于命中率、響應(yīng)延時(shí)等指標(biāo)。
常用的保證可用性的方法是在多處保留內(nèi)容副本,對(duì)于NDN 架構(gòu)而言,其每個(gè)節(jié)點(diǎn)所帶有的緩存能力可以很好地解決該問(wèn)題,但是,這些是建立在緩存容量足夠大的情況下。在移動(dòng)場(chǎng)景中,大緩存意味著低移動(dòng)性,為保證節(jié)點(diǎn)的移動(dòng)性,高可用性需要與緩存替換策略相結(jié)合。因?yàn)殡y以提高所有內(nèi)容的可用性,所以本文的目標(biāo)是提高重要內(nèi)容的可用性。根據(jù)節(jié)點(diǎn)內(nèi)容對(duì)可用性的不同需求,本文對(duì)內(nèi)容優(yōu)先級(jí)進(jìn)行劃分,即一個(gè)內(nèi)容很重要,在網(wǎng)絡(luò)中需要很高的可用性,則其優(yōu)先級(jí)相應(yīng)很高。
在本文模型中,通過(guò)對(duì)數(shù)據(jù)包添加新的TLV 字段“priority”來(lái)區(qū)分內(nèi)容的優(yōu)先級(jí),priority 值越大,內(nèi)容優(yōu)先級(jí)就越高。
緩存替換決策函數(shù)所含的參數(shù)如下:
2)節(jié)點(diǎn)的請(qǐng)求頻率。本文期望在引入內(nèi)容優(yōu)先級(jí)后對(duì)全局平均命中率并不會(huì)產(chǎn)生太大影響,因?yàn)镹DN 緩存的本質(zhì)就是為后續(xù)請(qǐng)求提供內(nèi)容副本從而提高網(wǎng)絡(luò)性能,包括請(qǐng)求的響應(yīng)時(shí)間、吞吐量和網(wǎng)絡(luò)負(fù)載等,如果僅考慮優(yōu)先級(jí),則會(huì)對(duì)全局性能造成影響,一些較為流行的內(nèi)容可能因?yàn)闆](méi)有被標(biāo)記為重要內(nèi)容而被替換,因此,本文引入節(jié)點(diǎn)的請(qǐng)求頻率,請(qǐng)求頻率度量?jī)?nèi)容在當(dāng)前節(jié)點(diǎn)的CS 中被請(qǐng)求的次數(shù),在某種程度上可以反映一個(gè)內(nèi)容是否流行,如果是流行內(nèi)容,其請(qǐng)求頻率會(huì)相對(duì)較大。
3)內(nèi)容大小??紤]到移動(dòng)自組織網(wǎng)絡(luò)節(jié)點(diǎn)緩存容量的限制,本文將內(nèi)容大小也作為一個(gè)衡量指標(biāo)。
根據(jù)以上分析,對(duì)于每一個(gè)到達(dá)CS 的內(nèi)容k而言,都需要計(jì)算一個(gè)如式(1)所示的函數(shù):
其中,P(k)表示內(nèi)容k的優(yōu)先級(jí),F(xiàn)(k)表示內(nèi)容k在當(dāng)前CS 中的請(qǐng)求頻率,S(k)表示內(nèi)容k的大小,cf是F(k)的標(biāo)準(zhǔn)化系數(shù),cs是S(k)的標(biāo)準(zhǔn)化系數(shù)。
從式(1)可以看出,R(k)隨著F(k)線性增長(zhǎng),即當(dāng)有很多節(jié)點(diǎn)對(duì)同一個(gè)內(nèi)容k發(fā)起請(qǐng)求時(shí),R(k)可能會(huì)變得很大,但是如果在接下來(lái)一段時(shí)間內(nèi)沒(méi)有節(jié)點(diǎn)請(qǐng)求內(nèi)容k,k也會(huì)一直被緩存在CS 中,因?yàn)闆](méi)有較大的R(j)來(lái)替換它。為了解決這一問(wèn)題,本文在替換策略中考慮內(nèi)容的生成周期,每次新內(nèi)容到達(dá)后CS 會(huì)檢測(cè)緩存中是否有內(nèi)容過(guò)期,如果有,則刪除該內(nèi)容,以騰出緩存空間。
基于內(nèi)容優(yōu)先級(jí)的緩存替換策略PFC 的偽代碼如算法1 所示,其步驟為:當(dāng)一個(gè)內(nèi)容k到達(dá)CS 時(shí),先檢查該內(nèi)容是否已經(jīng)在緩存中,如果已經(jīng)在緩存中,則更新R(k)的值;否則,檢測(cè)緩存空間是否已滿,若緩存未滿,則緩存該內(nèi)容,如果緩存已滿,則計(jì)算R(k)值,并與CS 其他內(nèi)容的R值進(jìn)行比較,淘汰R值最小的內(nèi)容,最后,清空過(guò)期的內(nèi)容。
算法1基于內(nèi)容優(yōu)先級(jí)的緩存替換策略PFC
本文選取比較常用的緩存策略LRU 和FIFO 作為對(duì)照組,通過(guò)模擬仿真來(lái)分析基于內(nèi)容優(yōu)先級(jí)的緩存替換策略的緩存性能。
使用ndnSIM 仿真平臺(tái)進(jìn)行實(shí)驗(yàn),網(wǎng)狀拓?fù)涔舶?0 個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)既是內(nèi)容生產(chǎn)者(Producer)也是內(nèi)容消費(fèi)者(Consumer),實(shí)驗(yàn)參數(shù)設(shè)置如表1 所示。不同生產(chǎn)者產(chǎn)生的內(nèi)容有不同的優(yōu)先級(jí)標(biāo)記,為了方便分析,本文將內(nèi)容分為重要內(nèi)容和普通內(nèi)容2 種,其中,10%是重要內(nèi)容,其余是普通內(nèi)容,所有的內(nèi)容流行度服從Zipf-mandelbrot 分布,消費(fèi)者節(jié)點(diǎn)對(duì)內(nèi)容的請(qǐng)求服從泊松分布,請(qǐng)求速率為10 req/s。此外,為了模擬移動(dòng)網(wǎng)絡(luò)的情景,在仿真進(jìn)行到5 min 時(shí),通過(guò)改變節(jié)點(diǎn)的通斷關(guān)系來(lái)改變網(wǎng)絡(luò)拓?fù)洹?/p>
表1 實(shí)驗(yàn)環(huán)境的參數(shù)設(shè)置Table 1 Parameters setting of experimental environment
緩存命中率是到達(dá)緩存節(jié)點(diǎn)時(shí)命中的請(qǐng)求數(shù)與到達(dá)緩存節(jié)點(diǎn)的請(qǐng)求總數(shù)之比。圖2 所示為不同緩存替換策略下緩存命中率與緩存大小的關(guān)系,從圖2可以看出,隨著緩存容量的增加,各策略的內(nèi)容命中率都提高,原因是緩存容量增加,可以緩存的內(nèi)容副本數(shù)也隨之增加,導(dǎo)致內(nèi)容的命中率提高。
圖2 平均緩存命中率隨緩存容量的變化情況Fig.2 The change of average cache hit rate with cache capacity
圖3 所示為重要內(nèi)容命中率隨緩存容量的變化情況,從圖3 可以看出,各策略的重要內(nèi)容命中率也隨緩存容量的增大而提升,且本文內(nèi)容優(yōu)先級(jí)緩存策略對(duì)于重要內(nèi)容的緩存命中率有顯著提高,特別是在緩存容量較小時(shí),緩存命中率較其他2 種策略而言提升幅度更大。這是因?yàn)榫彺娲笮∮邢迺r(shí),內(nèi)容優(yōu)先級(jí)緩存策略優(yōu)先保留內(nèi)容優(yōu)先級(jí)較高的內(nèi)容,即淘汰相對(duì)不重要的內(nèi)容。隨著緩存容量的增加,可以緩存更多的內(nèi)容副本,內(nèi)容優(yōu)先級(jí)緩存策略對(duì)于重要內(nèi)容的緩存命中率仍然高于其他緩存替換策略。
圖3 重要內(nèi)容緩存命中率隨緩存容量的變化情況Fig.3 The change of important content cache hit rate with cache capacity
圖4 所示為重要內(nèi)容緩存占比隨緩存容量的變化情況,從圖4 可以看出,在緩存容量較小時(shí),重要內(nèi)容在緩存中占比最高,此時(shí)緩存的都是較為重要且請(qǐng)求較多的內(nèi)容,隨著緩存容量的增加,重要內(nèi)容緩存占比開(kāi)始減小。圖4 中開(kāi)始階段本文策略的重要內(nèi)容緩存占比達(dá)到1 是因?yàn)榫彺孑^小,而重要內(nèi)容的數(shù)量大于緩存容量,因此本文策略將重要內(nèi)容全部緩存從而替換不重要的內(nèi)容。其他策略的重要內(nèi)容緩存占比基本保持不變,即它們并不區(qū)分重要內(nèi)容與普通內(nèi)容。
圖4 重要內(nèi)容緩存占比隨緩存容量的變化情況Fig.4 The change of important content cache proportion with cache capacity
圖5 所示為平均響應(yīng)跳數(shù)隨緩存容量的變化情況,從圖5 可以看出,緩存可以降低請(qǐng)求的平均響應(yīng)跳數(shù),隨著緩存容量的增加,響應(yīng)跳數(shù)減少,內(nèi)容請(qǐng)求者可以更快地獲取內(nèi)容,原因是隨著用戶的不斷請(qǐng)求,其感興趣的內(nèi)容被緩存在離用戶近的節(jié)點(diǎn),響應(yīng)跳數(shù)隨之降低。
圖5 平均響應(yīng)跳數(shù)隨緩存容量的變化情況Fig.5 The change of average response hops with cache capacity
為了驗(yàn)證本文緩存策略PFC 在提高內(nèi)容可用性方面的性能,設(shè)計(jì)一個(gè)簡(jiǎn)單的包含10 個(gè)節(jié)點(diǎn)的小型拓?fù)?,網(wǎng)絡(luò)中有2 個(gè)節(jié)點(diǎn)產(chǎn)生重要內(nèi)容,在仿真進(jìn)行到3 min 時(shí)分別不斷開(kāi)、斷開(kāi)1 個(gè)和2 個(gè)重要節(jié)點(diǎn)與網(wǎng)絡(luò)的連接,然后計(jì)算10 s 后的內(nèi)容命中率,以反映重要內(nèi)容的可用性。實(shí)驗(yàn)結(jié)果如圖6 所示,其中,100%-topo 表示2 個(gè)節(jié)點(diǎn)都不斷開(kāi),50%-topo 表示1 個(gè)節(jié)點(diǎn)斷開(kāi),0%-topo 表示2 個(gè)節(jié)點(diǎn)均斷開(kāi)。從圖6可以看出,在沒(méi)有節(jié)點(diǎn)斷開(kāi)時(shí),3 種緩存策略的命中率相差不多,隨著重要節(jié)點(diǎn)的斷開(kāi),命中率下降,這是因?yàn)閮?nèi)容生產(chǎn)者節(jié)點(diǎn)斷開(kāi)連接后,用戶需要去向其他潛在內(nèi)容擁有者請(qǐng)求,原有路由可能請(qǐng)求不到內(nèi)容,造成命中率下降。但是,本文策略命中率下降幅度比較緩慢,這是因?yàn)樵摬呗詢?yōu)先緩存重要內(nèi)容,在整個(gè)網(wǎng)絡(luò)中重要內(nèi)容副本更多,所以更容易命中。
圖6 緩存命中率隨拓?fù)浣Y(jié)構(gòu)的變化情況Fig.6 The change of cache hit rate with topology
本文提出一種基于內(nèi)容優(yōu)先級(jí)的緩存替換策略。根據(jù)節(jié)點(diǎn)內(nèi)容對(duì)可用性的不同需求劃分內(nèi)容優(yōu)先級(jí),將優(yōu)先級(jí)作為緩存替換的參考因子進(jìn)行緩存替換決策。實(shí)驗(yàn)結(jié)果表明,該策略能夠提高NDMANET 網(wǎng)絡(luò)的緩存命中率,縮短響應(yīng)時(shí)間,提升網(wǎng)絡(luò)的抗毀性。本文的內(nèi)容優(yōu)先級(jí)劃分方式較簡(jiǎn)單,今后將通過(guò)更精確的方法,如根據(jù)生產(chǎn)者節(jié)點(diǎn)之間的博弈以及一些經(jīng)濟(jì)指標(biāo)來(lái)決定緩存內(nèi)容的優(yōu)先級(jí),從而使本文策略更具可靠性。