本發(fā)明屬于移動(dòng)終端緩存技術(shù)領(lǐng)域,特別涉及一種移動(dòng)自組織網(wǎng)絡(luò)中基于馬爾科夫模型的移動(dòng)終端緩存空間的分配控制方法以及緩存空間大小的預(yù)測(cè)方法。
背景技術(shù):
移動(dòng)自組織(MobileAd Hoc)網(wǎng)絡(luò)是一種移動(dòng)終端(節(jié)點(diǎn))組成的多跳的自治數(shù)據(jù)傳輸系統(tǒng),整個(gè)網(wǎng)絡(luò)沒有固定的基礎(chǔ)設(shè)施,能夠在無法使用或不便利用現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)設(shè)施(包括基站和AP在內(nèi))的情況下,提供移動(dòng)終端之間的數(shù)據(jù)通信服務(wù)。網(wǎng)絡(luò)中的移動(dòng)終端具有路由和分組轉(zhuǎn)發(fā)功能,可以通過無線網(wǎng)絡(luò)接口進(jìn)行無線通訊,從而按需構(gòu)成相應(yīng)的網(wǎng)絡(luò)拓?fù)洹R苿?dòng)自組織網(wǎng)絡(luò)被廣泛地應(yīng)用于軍事網(wǎng)絡(luò)、移動(dòng)會(huì)議、無線傳感器網(wǎng)絡(luò)、緊急服務(wù)和災(zāi)難恢復(fù)領(lǐng)域。
由于移動(dòng)節(jié)點(diǎn)存儲(chǔ)空間較為有限,移動(dòng)自組織網(wǎng)絡(luò)需要高效的緩存管理策略來實(shí)施消息的存儲(chǔ)、投遞和丟棄,以減少節(jié)點(diǎn)緩存溢出的可能,避免網(wǎng)絡(luò)擁塞?,F(xiàn)有的移動(dòng)自組織網(wǎng)絡(luò)中緩存管理方法主要集中在對(duì)緩存消息的調(diào)度上,可以分為以下三種:1)Drop random,Drop head,Drop tail等傳統(tǒng)緩存管理方法,這類方法簡(jiǎn)單易行,但在自組織網(wǎng)絡(luò)中的性能卻很差。2)利用全局網(wǎng)絡(luò)狀態(tài)信息的全局緩存管理方法,如GBD(Global Knowledge based Drop),GBSD(Global Knowledge based Scheduling and Drop)等。這類方法的性能最好且提供了一個(gè)最優(yōu)的框架,但是由于自組織網(wǎng)絡(luò)具有動(dòng)態(tài)的拓?fù)浣Y(jié)構(gòu)的特性,獲取網(wǎng)絡(luò)的全局狀態(tài)信息較為困難,因此該類方法很難適用于真實(shí)的網(wǎng)絡(luò)環(huán)境中。3)利用局部網(wǎng)絡(luò)信息如消息的剩余生命周期、消息的大小、跳數(shù)、消息副本數(shù)等的局部緩存管理方法,如E-DROP(Equal drop),T-DROP(ThresholdDrop)等。該類方法比全局緩存管理策略易于實(shí)現(xiàn)且比傳統(tǒng)緩存管理策略的性能更好,目前研究的較多。
本發(fā)明在研究過程中發(fā)現(xiàn),現(xiàn)有的方法大都是考慮在緩存空間有限的情況下,如何調(diào)度消息以提高投遞成功率,但在節(jié)點(diǎn)緩存空間相對(duì)充足的情況下,現(xiàn)有的緩存管理算法大都默認(rèn)將全部空間用于存儲(chǔ)轉(zhuǎn)發(fā)消息(在資源申請(qǐng)和使用方面表現(xiàn)出較強(qiáng)的貪婪性),導(dǎo)致移動(dòng)終端上的其他應(yīng)用(APP)則無法正常運(yùn)行,造成終端上各應(yīng)用對(duì)緩存空間使用的不公平和極大地降低了用戶體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的:針對(duì)現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種移動(dòng)自組織網(wǎng)絡(luò)中基于馬爾科夫模型的移動(dòng)終端緩存空間的分配控制方法以及緩存空間大小的預(yù)測(cè)方法,可以為終端節(jié)點(diǎn)間消息存儲(chǔ)、攜帶、轉(zhuǎn)發(fā)動(dòng)態(tài)地分配緩存空間,有助于節(jié)點(diǎn)動(dòng)態(tài)分配緩存大小以提高緩存利用率,便于多種應(yīng)用共享緩存空間以提升用戶體驗(yàn),不需要更改移動(dòng)終端的消息調(diào)度策略和相關(guān)路由算法,可以與移動(dòng)終端的策略和算法相配合使用,完成消息在移動(dòng)終端間的轉(zhuǎn)發(fā)。
技術(shù)方案:為解決上述技術(shù)問題,本發(fā)明提供一種移動(dòng)終端緩存空間的分配控制方法,包括如下步驟:
步驟一:程序啟動(dòng)并設(shè)定緩存閥值為threshold,設(shè)置的緩存閥值小于移動(dòng)終端節(jié)點(diǎn)的可用空間;
步驟二:對(duì)移動(dòng)終端節(jié)點(diǎn)的緩存空間進(jìn)行初始化,每個(gè)節(jié)點(diǎn)為APP設(shè)置threshold/2的緩存空間用于消息的存儲(chǔ)攜帶轉(zhuǎn)發(fā);
步驟三:收集網(wǎng)絡(luò)信息,對(duì)每個(gè)終端節(jié)點(diǎn)統(tǒng)計(jì)單位時(shí)間內(nèi)到達(dá)節(jié)點(diǎn)的信息數(shù)λ和前n條消息的服務(wù)時(shí)間Tn-1(其中前一條消息的服務(wù)時(shí)間為T0,前兩條消息的服務(wù)時(shí)間為T1,前n條消息的服務(wù)時(shí)間為Tn-1);
步驟四:預(yù)測(cè)緩存空間Npre的大??;
步驟五:調(diào)整緩存大小,根據(jù)步驟四預(yù)測(cè)出的緩存空間Npre調(diào)整當(dāng)前用于消息存儲(chǔ)轉(zhuǎn)發(fā)的緩存空間N,如果Npre小于N,則使用Drop head策略丟棄部分消息直至剩余的消息大小不大于Npre,然后將多余的緩存空間交還系統(tǒng);如果Npre不大于N則判斷Npre是否小于threshold,如果Npre大于N且小于threshold,則向系統(tǒng)再申請(qǐng)Npre-N大小的空間;如果Npre不小于threshold,則再向系統(tǒng)申請(qǐng)threshold-N大小的空間。
進(jìn)一步的,步驟四中預(yù)測(cè)緩存空間大小Npre的方法如下:
(1)每個(gè)節(jié)點(diǎn)計(jì)算第n+1條消息所需的服務(wù)時(shí)間Tn的均值:
(2)每個(gè)節(jié)點(diǎn)計(jì)算第n+1條消息所需的服務(wù)時(shí)間Tn的方差:
(3)每個(gè)節(jié)點(diǎn)計(jì)算消息的平均隊(duì)長(zhǎng):
(4)每個(gè)節(jié)點(diǎn)根據(jù)提前設(shè)定好的消息大小m,計(jì)算下一時(shí)刻所需的緩存空間:
Npre=m×Ls
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
1、本發(fā)明可以使各移動(dòng)終端節(jié)點(diǎn)結(jié)合網(wǎng)絡(luò)的運(yùn)行狀況預(yù)測(cè)并設(shè)置節(jié)點(diǎn)的緩存大小,提高了緩存利用率和轉(zhuǎn)發(fā)成功率,并避免消息溢出。
2、本發(fā)明使各終端節(jié)點(diǎn)能夠動(dòng)態(tài)分配緩存大小,便于多種應(yīng)用共享緩存空間,提升了用戶體驗(yàn)。
3、本發(fā)明不需要更改移動(dòng)終端的消息調(diào)度策略和相關(guān)路由算法,可以與上述策略和算法相配合使用,完成消息在移動(dòng)終端間的轉(zhuǎn)發(fā)。
附圖說明
圖1是本發(fā)明的流程圖;
圖2是具體實(shí)施例中M|G|1排隊(duì)模型示意圖;
圖3是具體實(shí)施例中M|G|1嵌入馬爾可夫鏈的狀態(tài)轉(zhuǎn)移圖;
圖4是具體實(shí)施例中算法運(yùn)行時(shí)移動(dòng)終端中具有存儲(chǔ)轉(zhuǎn)發(fā)消息功能的APP占用緩存變化圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式,進(jìn)一步闡明本發(fā)明。
如圖1所示是移動(dòng)終端節(jié)點(diǎn)動(dòng)態(tài)預(yù)測(cè)分配緩存工作流程。
步驟1,設(shè)定緩存閾值。程序啟動(dòng)后,用戶為具有消息存儲(chǔ)轉(zhuǎn)發(fā)功能的APP設(shè)定使用空間閾值threshold,如果設(shè)置的閾值大于移動(dòng)終端節(jié)點(diǎn)的可用空間,則示警提示用戶“閾值設(shè)置過大,空間不足”。
步驟2,緩存空間初始化。對(duì)移動(dòng)終端節(jié)點(diǎn)的緩存空間進(jìn)行初始化,每個(gè)節(jié)點(diǎn)為APP設(shè)置的緩存空間用于消息的存儲(chǔ)攜帶轉(zhuǎn)發(fā)。
步驟3,收集網(wǎng)絡(luò)信息。每個(gè)終端節(jié)點(diǎn)統(tǒng)計(jì)單位時(shí)間內(nèi)到達(dá)節(jié)點(diǎn)的消息數(shù)和前n條消息的服務(wù)時(shí)間。
步驟4,預(yù)測(cè)緩存大小。每個(gè)點(diǎn)計(jì)算第n+1條消息所需的服務(wù)時(shí)間的均值和方差,并根據(jù)提前設(shè)定好的消息大小m,計(jì)算下一時(shí)刻所需的緩存空間。
步驟5,調(diào)整緩存大小。每個(gè)節(jié)點(diǎn)根據(jù)步驟4預(yù)測(cè)出的緩存大小調(diào)整當(dāng)前用于消息存儲(chǔ)轉(zhuǎn)發(fā)的緩存空間N。
圖2和圖3分別描述的是M|G|1排隊(duì)模型和M|G|1嵌入馬爾可夫鏈的狀態(tài)轉(zhuǎn)移圖。對(duì)于每個(gè)移動(dòng)終端節(jié)點(diǎn),將消息的到達(dá)過程建模為泊松到達(dá)過程,消息的服務(wù)時(shí)間服從一般分布G,并認(rèn)為每次只有一條消息能夠接受服務(wù),其他到達(dá)的消息保存在緩存中等待服務(wù)。在第n+1條消息接受服務(wù)的期間,新進(jìn)入節(jié)點(diǎn)緩存的消息數(shù)只取決于第n+1條消息的服務(wù)時(shí)間而與之前的時(shí)間無關(guān)。
具體的,將消息到達(dá)過程建模為泊松到達(dá)過程,消息的服務(wù)時(shí)間是一般分布G,整個(gè)系統(tǒng)建模成排隊(duì)模型
tn:表示第n條消息接受服務(wù)完成的時(shí)刻。
Xn:表示在第n條消息接受服務(wù)完成時(shí),節(jié)點(diǎn)緩存中的消息數(shù)。
Tn:表示當(dāng)?shù)趎條消息離開節(jié)點(diǎn)緩存,第n+1條消息所需的服務(wù)時(shí)間。
Yn:表示在第n+1條消息接受服務(wù)的期間,新進(jìn)入節(jié)點(diǎn)緩存的消息數(shù)。
這樣,我們可以用圖2表示系統(tǒng)排隊(duì)情況。
由圖2可見
若令aj=P(Yn=j(luò))>0,其中aj表示在第n+1條消息接受服務(wù)的期間,新進(jìn)入節(jié)點(diǎn)緩存的消息數(shù)為j的概率,j為任意非負(fù)整數(shù),則可以證明{Xn}構(gòu)成一個(gè)馬爾可夫鏈,一般稱為嵌入馬爾可夫鏈。此外,Yn只取決于第n+1條消息的服務(wù)時(shí)間而與之前的時(shí)間無關(guān)。因此,Xn是離散時(shí)間馬爾可夫鏈。記Pij=P(Xn+1=j(luò)|Xn=i),則
P0j=P(Xn+1=j(luò)|Xn=0)=P(Yn=j(luò))=aj,j≥0 (1)
從而
即該馬爾可夫鏈的一步轉(zhuǎn)移矩陣為
由此可畫出其狀態(tài)轉(zhuǎn)移圖,如圖2所示。
由Tn的定義可知,服務(wù)時(shí)間{Tn,n≥1}是獨(dú)立同分布的隨機(jī)變量序列,記其公共分布函數(shù)為G(t)=P(Tn≤t)。于是
其中,P(Yn=j(luò)|Tn=t)表示在(0,t)時(shí)間區(qū)間內(nèi)(即第n+1條消息所需的服務(wù)時(shí)間內(nèi))新進(jìn)入節(jié)點(diǎn)緩存的消息個(gè)數(shù)為j的概率。由于消息是按照泊松流到達(dá)的,所以應(yīng)該有
帶入式(3),得到
由式(1)可知a0=P00>0,且馬爾可夫鏈各狀態(tài)是互通的,故該馬爾可夫鏈?zhǔn)欠侵芷诓豢杉s的,而且計(jì)算在第n+1條消息接收服務(wù)的期間內(nèi),新進(jìn)入節(jié)點(diǎn)緩存的消息數(shù)Yn的均值E(Yn)
于是,計(jì)算在第n+1條消息接受服務(wù)的期間,新進(jìn)入節(jié)點(diǎn)緩存的消息數(shù)Yn的方差D(Yn)
D(Yn)=E(Yn2)-[E(Yn)]2=ρ+λ2D(Tn)
可以驗(yàn)證,當(dāng)ρ<1,該馬爾可夫鏈?zhǔn)潜闅v的,故存在平穩(wěn)分布{pj,j≥0},而且{pj}必滿足
下面用母函數(shù)去解pj,令
利用式(4)與式(2),則有
將上述諸式相加,便可得到
由此得到系統(tǒng)中消息隊(duì)長(zhǎng)分布的母函數(shù)
再來求P0,因?yàn)?/p>
P(1)=1,A(1)=1
故由洛必達(dá)法則得到
于是
p0=1-ρ
將其代入式(5),有
由上式并兩次利用洛必達(dá)法則,則系統(tǒng)中消息的平均隊(duì)長(zhǎng)Ls為:
假設(shè)每條消息的大小一樣,均為m,則預(yù)測(cè)出的下一時(shí)刻所需的緩存空間Npre=m×Ls。
圖4描述的是算法運(yùn)行時(shí)移動(dòng)終端中具有存儲(chǔ)轉(zhuǎn)發(fā)消息功能的APP占用緩存變化情況。當(dāng)用戶設(shè)定一個(gè)APP的使用空間閾值threshold后,系統(tǒng)最多可以分配threshold大小的空間給該應(yīng)用。當(dāng)節(jié)點(diǎn)下一時(shí)刻預(yù)測(cè)的緩存空間Npre小于當(dāng)前緩存空間N,則使用Drop head策略丟棄部分消息直至剩余的消息大小不大于Npre,將多余的緩存空間交還系統(tǒng);如果Npre大于N且小于threshold,則向系統(tǒng)再申請(qǐng)Npre-N大小的空間;如果Npre大于threshold,則再申請(qǐng)threshold-N大小的空間。
以上所述僅為本發(fā)明的實(shí)施例子而已,并不用于限制本發(fā)明。凡在本發(fā)明的原則之內(nèi),所作的等同替換,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明未作詳細(xì)闡述的內(nèi)容屬于本專業(yè)領(lǐng)域技術(shù)人員公知的已有技術(shù)。