一種基于k均值算法的內(nèi)容中心網(wǎng)絡(luò)緩存方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于通信技術(shù)領(lǐng)域,涉及一種基于K均值算法的內(nèi)容中心網(wǎng)絡(luò)緩存方法。
【背景技術(shù)】
[0002]網(wǎng)內(nèi)緩存機(jī)制是內(nèi)容中心網(wǎng)絡(luò)(Content Centric Network,CCN)的核心技術(shù)之一。通過(guò)在網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)上緩存部分內(nèi)容,使得內(nèi)容請(qǐng)求能夠使用最近的緩存副本而無(wú)需通過(guò)尋址找到主機(jī)后再獲取相應(yīng)內(nèi)容,因而能有效降低內(nèi)容獲取的時(shí)間延遲,同時(shí)降低網(wǎng)絡(luò)中相同內(nèi)容的流量大小,從而提高網(wǎng)絡(luò)的性能。
[0003]CCN的緩存是對(duì)應(yīng)用透明并且普遍存在的。在傳統(tǒng)的緩存方案是當(dāng)內(nèi)容從提供者返回時(shí),路徑上的所有節(jié)點(diǎn)均對(duì)緩存該內(nèi)容,這種“普遍”的緩存策略導(dǎo)致緩存節(jié)點(diǎn)之間存在冗余數(shù)據(jù),降低了緩存內(nèi)容的多樣性,致使緩存資源的利用率下降。CCN緩存技術(shù)的研究致力于提出各種具體的新型技術(shù)方案和緩存策略,以提升緩存系統(tǒng)的整體性能。為了解決CCN處處緩存機(jī)帶來(lái)的資源浪費(fèi)等問(wèn)題,國(guó)內(nèi)外學(xué)者進(jìn)行了大量研究。目前,緩存策略主要分為緩存共享和緩存決策兩個(gè)方面。
[0004]緩存共享:不同類型的流量和應(yīng)用具有不同的特征,如何為不同流量提供區(qū)別化的緩存服務(wù)是一個(gè)亟待解決的問(wèn)題。為了實(shí)現(xiàn)區(qū)別化緩存服務(wù),緩存共享技術(shù)則是最重要的一部分之一。目前緩存共享技術(shù)分為基于固定劃分的緩存共享和動(dòng)態(tài)劃分的緩存共享兩種。固定劃分的緩存共享將緩存空間劃分為固定的部分讓每一個(gè)不同類別的應(yīng)用都可以使用到不會(huì)被其他流量占用的緩存。這種方案存在的問(wèn)題有兩點(diǎn):第一,當(dāng)某類型的流量未到達(dá),而其他流量較多時(shí),或產(chǎn)生緩存丟失和資源浪費(fèi)。第二,難以保證為不同類型的流量提供不同的緩存質(zhì)量保證。動(dòng)態(tài)劃分的緩存共享則可以讓某個(gè)流量類型使用未被占用的緩存空間。這又包含兩種不同的策略:基于優(yōu)先級(jí)的共享和基于權(quán)重平衡的共享?;趦?yōu)先級(jí)的共享會(huì)讓某些應(yīng)用相對(duì)于其他應(yīng)用擁有更高的優(yōu)先級(jí),并通過(guò)移除低優(yōu)先級(jí)的內(nèi)容來(lái)給高優(yōu)先級(jí)內(nèi)容騰出空間。這種策略的問(wèn)題在于在數(shù)據(jù)高速到達(dá)時(shí),反復(fù)比較優(yōu)先級(jí)會(huì)嚴(yán)重影響性能?;跈?quán)重平衡的共享會(huì)預(yù)先設(shè)定權(quán)重,不過(guò)仍可以使用未被使用的空間,難點(diǎn)在于如何優(yōu)化權(quán)重。
[0005]緩存決策:緩存決策機(jī)制決定了哪個(gè)內(nèi)容需要被儲(chǔ)存在哪個(gè)節(jié)點(diǎn)上,分為非協(xié)作式緩存決策和協(xié)作式緩存決策兩大類。非協(xié)作式緩存決策不需要預(yù)先知道網(wǎng)絡(luò)中其他緩點(diǎn)節(jié)點(diǎn)的狀態(tài)信息。比較典型的非協(xié)作式緩存決策策略主要有LCE( Leave CopyEverywhere )、LCD (Leave Copy Down)、MCD(Move Copy Down)、Prob(Copy withProbability)和ProbCache(Probabilistic Cache)等。LCE是CCN中默認(rèn)的緩存決策策略,該策略要求在數(shù)據(jù)包返回路徑上的所有路由節(jié)點(diǎn)均需緩存內(nèi)容對(duì)象,這樣會(huì)導(dǎo)致網(wǎng)絡(luò)中出現(xiàn)大量緩存內(nèi)容冗余,降低緩存內(nèi)容的多樣性。LCD使得內(nèi)容對(duì)象只緩存在其所在節(jié)點(diǎn)下一跳節(jié)點(diǎn),內(nèi)容對(duì)象被多次請(qǐng)求后才能到達(dá)網(wǎng)絡(luò)邊緣節(jié)點(diǎn),而且會(huì)在路徑上產(chǎn)生大量緩存內(nèi)容冗余。MCD在緩存命中時(shí)將緩存內(nèi)容從命中節(jié)點(diǎn)向下游移動(dòng)一位(源服務(wù)器除外),由此減少請(qǐng)求者到內(nèi)容服務(wù)器的路徑上的緩存內(nèi)容冗余,但當(dāng)請(qǐng)求者來(lái)自不同的邊緣網(wǎng)絡(luò),會(huì)出現(xiàn)內(nèi)容緩存點(diǎn)的搖擺,這種動(dòng)態(tài)性會(huì)產(chǎn)生更多的網(wǎng)絡(luò)開(kāi)銷。Prob要求數(shù)據(jù)包返回路徑上的所有路由節(jié)點(diǎn)都以固定的概率P緩存對(duì)象,P的值可以依據(jù)緩存情況進(jìn)行調(diào)整。ProbCache中請(qǐng)求的對(duì)象根據(jù)概率存放在每個(gè)節(jié)點(diǎn)中但概率都不同,概率與請(qǐng)求節(jié)點(diǎn)的距離成反比,因此如果節(jié)點(diǎn)越近,則緩存概率越大,反之則越小。該策略能夠快速將拷貝推送到網(wǎng)絡(luò)邊緣,同時(shí)減少拷貝數(shù)量。協(xié)作式緩存決策中,網(wǎng)絡(luò)拓?fù)浜凸?jié)點(diǎn)狀態(tài)都是預(yù)先知道的。通過(guò)這些信息的輸入來(lái)計(jì)算最終的緩存位置。根據(jù)參與決策的節(jié)點(diǎn)的范圍,可以分為全局協(xié)調(diào),路徑協(xié)調(diào)和鄰近協(xié)調(diào)三種。全局協(xié)調(diào)是指網(wǎng)絡(luò)內(nèi)所有緩存節(jié)點(diǎn)都會(huì)被考慮,這樣必須預(yù)先知道整個(gè)網(wǎng)絡(luò)的拓?fù)?。路徑協(xié)調(diào)是指這種協(xié)調(diào)僅僅涉及到從請(qǐng)求者到服務(wù)者沿路上的緩存節(jié)點(diǎn)。鄰近協(xié)調(diào)是指協(xié)調(diào)只在節(jié)點(diǎn)的鄰接節(jié)點(diǎn)間發(fā)生。網(wǎng)內(nèi)協(xié)調(diào)作為一種基于哈希函數(shù)的方法,也歸于鄰近協(xié)調(diào),它是使用一個(gè)哈希函數(shù)來(lái)決定哪些近鄰來(lái)緩存某個(gè)文件塊。
[0006]綜上所述:當(dāng)前的內(nèi)容中心網(wǎng)絡(luò)緩存策略仍然存在以下問(wèn)題:同質(zhì)化緩存:非協(xié)作式緩存決策中,各個(gè)節(jié)點(diǎn)獨(dú)立地緩存和替換將會(huì)導(dǎo)致各節(jié)點(diǎn)緩存相同的內(nèi)容;內(nèi)容在空間分布上太集中或太分散,這樣將會(huì)導(dǎo)致請(qǐng)求者需要從過(guò)于集中的或分散的節(jié)點(diǎn)上獲取內(nèi)容,導(dǎo)致流量不合理;在時(shí)間上分布不合理,在熱門時(shí)間里,每個(gè)節(jié)點(diǎn)都緩存相同的內(nèi)容,然而熱門時(shí)間一過(guò),該內(nèi)容在各節(jié)點(diǎn)上又幾乎同時(shí)消失了。緩存命中率較低:非協(xié)作式緩存決策中各節(jié)點(diǎn)之間互相不知道對(duì)方的緩存內(nèi)容;而在協(xié)作式緩存中,即使各節(jié)點(diǎn)互相知道對(duì)方緩存的內(nèi)容,但沒(méi)有時(shí)間承諾,并且各節(jié)點(diǎn)的替換是獨(dú)立的,內(nèi)容隨時(shí)有可能被替換掉。這使得緩存的作用具有一定的隨機(jī)性和偶然性,Interest的轉(zhuǎn)發(fā)效率較低。
【發(fā)明內(nèi)容】
[0007]有鑒于此,本發(fā)明的目的在于提供一種基于K均值算法的內(nèi)容中心網(wǎng)絡(luò)緩存方法,該方法可以解決內(nèi)容中心網(wǎng)絡(luò)現(xiàn)有緩存機(jī)制存在的同質(zhì)化緩存和緩存命中率低等問(wèn)題,該方法在控制器端利用K均值算法計(jì)算若干較優(yōu)緩存位置,并通過(guò)OpenFlow信道下發(fā)緩存命令至緩存節(jié)點(diǎn)。
[0008]為達(dá)到上述目的,本發(fā)明提供如下技術(shù)方案:
[0009]—種基于K均值算法的內(nèi)容中心網(wǎng)絡(luò)緩存方法,該緩存方法利用軟件定義網(wǎng)絡(luò)的控制器統(tǒng)計(jì)內(nèi)容交換機(jī)上的某一內(nèi)容的請(qǐng)求次數(shù),并在控制器端設(shè)定閾值選擇內(nèi)容請(qǐng)求次數(shù)超過(guò)該閾值的所有交換機(jī)作為待定緩存點(diǎn),并在控制器端利用K均值緩存算法從待定緩存點(diǎn)中選出若干個(gè)較優(yōu)的緩存節(jié)點(diǎn),由控制器通過(guò)OpenFlow信道向選出的緩存節(jié)點(diǎn)發(fā)出主動(dòng)緩存內(nèi)容的指令;當(dāng)內(nèi)容從內(nèi)容服務(wù)節(jié)點(diǎn)返回請(qǐng)求者的過(guò)程中,會(huì)執(zhí)行控制器下發(fā)的緩存指令,將內(nèi)容緩存在控制器選出的緩存節(jié)點(diǎn)中。
[0010]進(jìn)一步,本方法中所述的K均值算法為一種用于劃分聚類的算法,根據(jù)輸入的樣本分布信息以及所需要的聚類數(shù)K,通過(guò)多次迭代將樣本分為K個(gè)聚類,具體算法流程為:
[0011]I)隨機(jī)初始化K個(gè)質(zhì)心;
[0012]2)對(duì)剩余每個(gè)樣本測(cè)量其到每個(gè)質(zhì)心的距離,將樣本歸類到離其最近的質(zhì)心中;
[0013]3)對(duì)每個(gè)質(zhì)心,將其所有樣本坐標(biāo)取均值,得到該質(zhì)心新的位置;
[0014]4)重復(fù)2)-3)步直到每個(gè)樣本到每個(gè)質(zhì)心的距離和收斂為止。
[0015]進(jìn)一步,該方法具體包括以下步驟:
[0016]SI:網(wǎng)絡(luò)中各個(gè)交換機(jī)將某一內(nèi)容A的請(qǐng)求次數(shù)計(jì)數(shù)字段統(tǒng)計(jì)至控制器中;
[0017]S2:控制器找出請(qǐng)求內(nèi)容A次數(shù)大于預(yù)先設(shè)定的閾值T的交換作為樣本點(diǎn);
[0018]S3:控制器根據(jù)所需度量將網(wǎng)絡(luò)拓?fù)涑橄鬄槎S坐標(biāo);
[0019]S4:根據(jù)業(yè)務(wù)、流量、成本因素確定所需K值;
[0020]S5:隨機(jī)選取樣本點(diǎn)中K個(gè)不同交換機(jī)作為初始質(zhì)心;
[0021 ] S6:對(duì)剩余每個(gè)樣本測(cè)量其到質(zhì)心的距離,將樣本歸類到距離最小的質(zhì)心所屬的類中;
[0022]S7:對(duì)于每個(gè)質(zhì)心所在的類,將其所有樣本坐標(biāo)取均值,再找出離均值最近的交換機(jī)作為質(zhì)心新的位置;
[0023]S8:重復(fù)步驟S6-S7直到每個(gè)樣本到每個(gè)質(zhì)心的距離和收斂為止;
[0024]S9:將每個(gè)聚類質(zhì)心的交換機(jī)作為內(nèi)容A緩存位置,控制器通過(guò)OpenFlow信道向其發(fā)出主動(dòng)緩存指令。
[0025]本發(fā)明的有益效果在于:本發(fā)明所述方法能夠很好的解決內(nèi)容中心網(wǎng)絡(luò)現(xiàn)有緩存機(jī)制存在的同質(zhì)化緩存和緩存命中率低等冋題。
【附圖說(shuō)明】
[0026]為了使本發(fā)明的目的、技術(shù)方案和有益效果更加清楚,本發(fā)明提供如下附圖進(jìn)行說(shuō)明:
[0027]圖1為各交換機(jī)的內(nèi)容請(qǐng)求次數(shù)計(jì)數(shù)器仿真圖;
[0028]圖2為選定的緩存位置不意圖;
[0029]圖3為本發(fā)明的實(shí)施例實(shí)現(xiàn)流程圖。
【具體實(shí)施方式】
[0030]下面將結(jié)合附圖,對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)的描述。
[0031]本發(fā)明的目的在于解決內(nèi)容中心網(wǎng)絡(luò)現(xiàn)有緩存機(jī)制存在的同質(zhì)化緩存和緩存命中率低等問(wèn)題,在控制器端利用K均值算法計(jì)算若干較優(yōu)緩存位置,并通過(guò)OpenFlow信道下發(fā)緩存命令至緩存節(jié)點(diǎn)。
[0032]在本方法中,K均值算法為一種用于劃分聚類的算法,根據(jù)輸入的樣本分布信息以及所需要的聚類數(shù)K