本發(fā)明屬于延遲容忍網(wǎng)絡(luò)(DTN)路由與緩存管理策略,主要涉及一種基于非合作博弈論的DTN路由與緩存管理策略。
背景技術(shù):
DTN概念最初來源于星際互聯(lián)網(wǎng)(IPN),星際互聯(lián)網(wǎng)主要實現(xiàn)了如何在太空中進行通信,并且如何通過星際骨干網(wǎng)連接到互聯(lián)網(wǎng)。隨著時間推移,一系列的DTN應(yīng)用也隨之產(chǎn)生,這些應(yīng)用能夠適應(yīng)地球上的各種環(huán)境。由于DTN中的節(jié)點具有移動性,間接連接性,資源極度有限等特性,并且消息在傳遞過程中會經(jīng)歷較長的時延,不能保證一定存在一條端到端完整路徑,這些明顯的網(wǎng)絡(luò)特征給設(shè)計網(wǎng)絡(luò)的一些核心功能時帶來了巨大的挑戰(zhàn),例如路由機制和緩存管理機制等。因此,如何設(shè)計高效的DTN路由算法和緩存管理算法成為了DTN研究的重點問題之一。
目前針對DTN路由機制及緩存管理已有大量研究。其中路由方面,根據(jù)網(wǎng)絡(luò)中消息副本的數(shù)量將路由協(xié)議分類為單副本路由和多副本路由。
在單副本路由協(xié)議中,同一個消息在網(wǎng)絡(luò)中只有一個消息副本。單副本路由協(xié)議中最簡單的是直接傳輸(Direct Transmission Routing)路由協(xié)議。另一種常見單副本路由協(xié)議是最先連接路由協(xié)議(First Contact Routing)。在多副本路由協(xié)議中,同一個消息在網(wǎng)絡(luò)中可以有多個消息副本。其中,傳染路由和概率路由是較為常見的路由算法。傳染路由算法是一種基于洪泛的路由算法,網(wǎng)絡(luò)中當(dāng)兩個節(jié)點相遇時交換對方?jīng)]有的消息,經(jīng)過足夠多的消息交換后,理論上每個非孤立的節(jié)點都將收到所有的消息,從而實現(xiàn)消息的傳輸。概率性路由是基于預(yù)測的路由協(xié)議,根據(jù)節(jié)點之間歷史相遇頻率作為節(jié)點的傳輸預(yù)測值,將消息轉(zhuǎn)發(fā)至到達(dá)目的節(jié)點的概率更大的節(jié)點。
目前大多緩存管理策略只考慮了局部網(wǎng)絡(luò)范圍內(nèi)的節(jié)點或者單個節(jié)點的本地信息來制定合適的緩存調(diào)度或丟棄策略。最為典型的緩存丟棄策略有以下5種:DL(Drop Last/Droptail):當(dāng)節(jié)點緩存被消息填滿時,最后到達(dá)的消息將會被簡單丟棄。DF(Drop Front):當(dāng)節(jié)點緩存溢出時,排在緩存隊列中最前端的消息將被丟棄。DO(Drop Oldest):當(dāng)節(jié)點緩存被消息填滿時,丟棄節(jié)點緩存中產(chǎn)生時間最早即最老的消息。DY(Drop Youngest):與DO丟棄策略相對應(yīng),DY策略是在節(jié)點緩存被消息填滿時丟棄最近時間產(chǎn)生的即最年輕的消息。DLA(Drop Largest):考慮到小容量(size)消息比大容量消息有更多的轉(zhuǎn)發(fā)機會,因此,當(dāng)節(jié)點緩存發(fā)生擁塞時,大容量消息就會最先被選擇丟棄。
DTN的性能受不同應(yīng)用環(huán)境下的移動模型所影響,由于在城市環(huán)境中的節(jié)點節(jié)點具有社會性,自私等特性,并不愿消耗自己過多的資源,來接收其它節(jié)點所產(chǎn)生的消息。因此,現(xiàn)存的路由機制及緩存管理機制并不能使城市環(huán)境下的網(wǎng)絡(luò)性能達(dá)到最優(yōu)。為了解決網(wǎng)絡(luò)中的節(jié)點具有自私性等問題,Yuxin Mao等人在文獻《A Game Theoretical Model for Energy-Aware DTN Routing in MANETs with Nodes’Selfishness》中作者提出了一個基于博弈論的能量感知路由算法,在基于能量感知的路由算法中,通過鼓勵節(jié)點為其他節(jié)點轉(zhuǎn)發(fā)更多的消息,來從其它節(jié)點獲得更多的服務(wù)。在文獻《A DTN Routing on Noncooperative Game Theory in a City Environment》中,Wenzao Li等人提出了在城市環(huán)境下的一個基于非合作博弈路由算法,算法主要思想是下一跳節(jié)點的選擇以及消息的遞交都是基于非合作博弈的過程和城市環(huán)境的特點進行的,當(dāng)兩個節(jié)點相遇有消息轉(zhuǎn)發(fā)時,該算法在博弈的過程中鼓勵其中一個節(jié)點轉(zhuǎn)發(fā)消息另一個節(jié)點接收消息。以上兩個算法都能使網(wǎng)絡(luò)具有較好的性能,但這倆個算法僅僅在路由階段考慮了有關(guān)節(jié)點的自私性等問題,并沒在緩存管理過程中考慮有關(guān)節(jié)點自私性等問題,當(dāng)節(jié)點緩存溢出時,很容易刪除為網(wǎng)絡(luò)貢大的節(jié)點的消息,同時這兩種算法也沒考慮節(jié)點在建立連接時的博弈以及如何控制網(wǎng)絡(luò)中消息的副本數(shù)。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是針對網(wǎng)絡(luò)中節(jié)點具有自私性,不愿意消耗自身的資源來接收其它節(jié)點的消息等問題而提出一種基于非合作博弈論的延遲容忍網(wǎng)絡(luò)路由與緩存管理策略。
本發(fā)明的目的是這樣實現(xiàn)的:包括節(jié)點之間狀態(tài)的轉(zhuǎn)換、節(jié)點的路由選擇及緩存管理,
1.節(jié)點之間狀態(tài)的轉(zhuǎn)換
網(wǎng)絡(luò)節(jié)點具有空閑狀態(tài)、連接狀態(tài)、接收狀態(tài)三種狀態(tài),當(dāng)兩個空閑狀態(tài)的節(jié)點相遇,彼此之間有發(fā)送消息的請求,便建立連接,從空閑狀態(tài)變?yōu)檫B接狀態(tài),如建立連接后,發(fā)現(xiàn)沒有滿足的消息進行轉(zhuǎn)發(fā),則從連接狀態(tài)變?yōu)榭臻e狀態(tài);若兩個空閑狀態(tài)的節(jié)點建立連接后彼此之間的消息滿足轉(zhuǎn)發(fā)條件,則進行消息轉(zhuǎn)發(fā),處于連接狀態(tài)的節(jié)點接收彼此的消息,消息接收完成之后,處于連接狀態(tài)的節(jié)點釋放連接,重新轉(zhuǎn)向空閑狀態(tài);
2.路由選擇具體步驟
步驟1:設(shè)置節(jié)點的貢獻效用值為U(x),U(x)為非負(fù)常數(shù);
步驟2:節(jié)點每產(chǎn)生一個消息Mes(i)為該消息設(shè)置一個副本數(shù)閾值Ni標(biāo)記,Ni=F(α)*U(x),F(xiàn)(α)為調(diào)節(jié)系數(shù);網(wǎng)絡(luò)中任意時刻消息Mes(i)的副本數(shù)最多為Ni,當(dāng)轉(zhuǎn)發(fā)消息時轉(zhuǎn)發(fā)給下一跳節(jié)點的副本數(shù)為NO1=Nid*α1,其中α1為調(diào)節(jié)系數(shù),此時當(dāng)前節(jié)點的該消息副本數(shù)標(biāo)記為Nid-NO1,接收該消息的節(jié)點中該消息的副本數(shù)標(biāo)記為NO1,當(dāng)節(jié)點中的消息數(shù)為1時,則直接遞交給下一跳節(jié)點,其中,Nid為當(dāng)前節(jié)點消息剩余數(shù)量;
步驟3:當(dāng)節(jié)點A與1個或多個節(jié)點相遇時相遇時,若節(jié)點B為節(jié)點A中某個消息的目的節(jié)點,則節(jié)點A直接將B作為下一跳節(jié)點,將消息轉(zhuǎn)發(fā)給目的節(jié)點B,否則執(zhí)行步驟4;
步驟4:節(jié)點A在鄰居節(jié)點中選擇一個貢獻效用值U(x)最小的的節(jié)點,若有多個節(jié)點的效用率最小則隨機選擇;
步驟5:計算節(jié)點A的連接函數(shù)Fnode,其中連接函數(shù)Bufv(x)為節(jié)點x緩存空閑的空閑的大小,Buft(x)為節(jié)點x緩存空間總的大小,Deld(x)為節(jié)點x遞交給該消息目的節(jié)點的次數(shù),β1+β2+β3=1;
步驟6:若節(jié)點A的連接函數(shù)值小于節(jié)點B的連接函數(shù)值,則A向B發(fā)起連接(A-B),執(zhí)行步驟7,否則不連接;
步驟7:B以概率同意連接節(jié)點A向節(jié)點B建立的連接,其中β為調(diào)節(jié)系數(shù);
步驟8:若A與B連接建立,A失敗,A的U(a)=U(a)-ξ*U(a),同時B成功,B的U(b)=U(b)+ξ*U(b),反之,若B不同意連接則B失敗執(zhí)行U(b)減小操作U(b)=U(b)-ξ*U(b),其中ξ為任意常數(shù);
3.緩存管理策略
節(jié)點緩存管理分為兩個階段,
階段1:當(dāng)節(jié)點A中的消息的源節(jié)點中最大的貢獻效用值小于閾值η1,則節(jié)點A不進行消息轉(zhuǎn)發(fā)請求,否則執(zhí)行節(jié)段2;
階段2:當(dāng)網(wǎng)絡(luò)中兩個節(jié)點(A-B)建立連接后,若節(jié)點A有多個消息需要發(fā)送,節(jié)點A發(fā)消息時先發(fā)送源節(jié)點貢獻效用值大的節(jié)點的消息,節(jié)點B以的概率接收消息,其中ΔE為剩余緩存值,δ為調(diào)節(jié)系數(shù),每接收一個消息自身貢獻系數(shù)ΔC增加0.1,每拒絕接收一個消息自身的貢獻系數(shù)ΔC減少0.1,當(dāng)節(jié)點B為了接收其他貢獻大的節(jié)點的消息而發(fā)生擁塞的時候,刪除消息的時候,先刪除消息的源節(jié)點貢獻效用值小的節(jié)點的消息,自身節(jié)點的貢系數(shù)不變;
節(jié)點B的緩存過程與節(jié)點A相同;
4.當(dāng)兩個節(jié)點建立連接后兩個節(jié)點進行接收消息的博弈矩陣
當(dāng)節(jié)點A和節(jié)點B建立連接后,若節(jié)點A和節(jié)點B同時接收了對方的消息,則節(jié)點A和節(jié)點B的收益分別為(U(a)λ1(1+ΔCA),U(b)λ1(1+ΔCB));當(dāng)節(jié)點A接收了節(jié)點B的消息,而節(jié)點B沒接收節(jié)點A的消息則節(jié)點A的效用值增加到U(a)λ2(1+ΔCA),節(jié)點B的效用值減少到U(b)λ(1-ΔCB);節(jié)點B接收了節(jié)點A的消息,而節(jié)點A沒接收節(jié)點B的消息節(jié)點A的效用值減少到U(a)λ(1-ΔCA),節(jié)點B的效用值增加到U(b)λ2(1+ΔCB),若節(jié)點A和節(jié)點B都沒接收對方的消息,則節(jié)點A和節(jié)點B的效用值不變,其中,λ2>λ1>λ,ΔCX為節(jié)點X的貢獻系數(shù)。
本發(fā)明針對網(wǎng)絡(luò)中節(jié)點具有自私性,不愿意消耗自身的資源來接收其它節(jié)點的消息等問題,提出了一種基于博弈論的路由與緩存管理策略。在該策略中,鼓勵網(wǎng)絡(luò)中節(jié)點進行消耗自身的資源來為其它節(jié)點接收消息。節(jié)點通過接收其它節(jié)點的消息來增加自身的貢獻值,從而使得其在路由過程中及其產(chǎn)生的消息在其它節(jié)點中消息調(diào)度時具有更大的優(yōu)勢,同時貢獻值越大,節(jié)點所產(chǎn)生的消息副本數(shù)就越多。
本發(fā)明的策略通過鼓勵網(wǎng)絡(luò)中的節(jié)點與其它節(jié)點建立連接,并為其他節(jié)點轉(zhuǎn)發(fā)消息,來增加自身節(jié)點的效用貢獻值,貢獻值越大的節(jié)點所產(chǎn)生的消息的副本數(shù)越多,在路由階段若節(jié)點的貢獻值越大,則在選擇下一跳節(jié)點并與之建立連接的成功率就越高。同時,當(dāng)網(wǎng)絡(luò)中節(jié)點緩存溢出時,貢獻大的節(jié)點所產(chǎn)生的消息最后被刪除。
本發(fā)明所具有的優(yōu)點:1.該方法同時針對路由和緩存管理兩個方面來解決節(jié)點自私行的問題。2.通過鼓勵網(wǎng)絡(luò)中的節(jié)點與其它節(jié)點建立連接,并為其他節(jié)點轉(zhuǎn)發(fā)消息,來增加自身節(jié)點的效用貢獻值,貢獻值越大的節(jié)點所產(chǎn)生的消息的副本數(shù)越多,并且在路由階段若節(jié)點的貢獻值越大,則在選擇下一跳節(jié)點并與之建立連接的成功率就越高。3.當(dāng)網(wǎng)絡(luò)中節(jié)點緩存溢出時,貢獻大的節(jié)點所產(chǎn)生的消息最后被刪除。
附圖說明
圖1一種基于非合作博弈論的DTN路由與緩存管理策略的節(jié)點間狀態(tài)轉(zhuǎn)換圖;
圖2一種基于非合作博弈論的DTN路由與緩存管理策略的路由選擇流程圖;
圖3一種基于非合作博弈論的DTN路由與緩存管理策略的緩存管理流程圖;
圖4一種基于非合作博弈論的DTN路由與緩存管理策略的博弈矩陣表。
具體實施方式
下面舉例對本發(fā)明做更詳細(xì)的描述。
本發(fā)明主要包括三部分內(nèi)容,節(jié)點之間狀態(tài)的轉(zhuǎn)換,節(jié)點的路由選擇及緩存管理兩個階段。
1.節(jié)點之間狀態(tài)的轉(zhuǎn)換
本發(fā)明中網(wǎng)絡(luò)節(jié)點具有三種狀態(tài):空閑狀態(tài)、連接狀態(tài)、接收狀態(tài)。當(dāng)兩個空閑狀態(tài)的節(jié)點相遇,彼此之間有發(fā)送消息的請求,便會建立連接,節(jié)點就會從空閑狀態(tài)變?yōu)檫B接狀態(tài)。如節(jié)點建立連接后,發(fā)現(xiàn)沒有滿足的消息進行轉(zhuǎn)發(fā),節(jié)點便會從連接狀態(tài)變?yōu)榭臻e狀態(tài)。若兩個空閑狀態(tài)的節(jié)點建立連接后彼此之間的消息滿足轉(zhuǎn)發(fā)條件,則進行消息轉(zhuǎn)發(fā)。處于連接狀態(tài)的節(jié)點接收彼此的消息,消息接收完成之后,處于連接狀態(tài)的節(jié)點釋放連接,重新轉(zhuǎn)向空閑狀態(tài)。節(jié)點之間的狀態(tài)轉(zhuǎn)換如圖1所示。
2.路由選擇具體步驟
步驟1:設(shè)置節(jié)點的貢獻效用值為U(x)(非負(fù)常數(shù))。
步驟2:節(jié)點每產(chǎn)生一個消息Mes(i)為該消息設(shè)置一個副本數(shù)閾值Ni標(biāo)記,其中Ni=F(α)*U(x),F(xiàn)(α)為調(diào)節(jié)系數(shù)。網(wǎng)絡(luò)中任意時刻消息Mes(i)的副本數(shù)最多為Ni。當(dāng)轉(zhuǎn)發(fā)消息時轉(zhuǎn)發(fā)給下一跳節(jié)點的副本數(shù)為NO1=Nid*α1,其中α1為調(diào)節(jié)系數(shù),此時當(dāng)前節(jié)點的該消息副本數(shù)標(biāo)記為Nid-NO1,接收該消息的節(jié)點中該消息的副本數(shù)標(biāo)記為NO1。當(dāng)節(jié)點中的消息數(shù)為1時,則直接遞交給下一跳節(jié)點。其中,Nid為當(dāng)前節(jié)點消息剩余數(shù)量。
步驟3:當(dāng)節(jié)點A與節(jié)點1個或多個節(jié)點相遇時相遇時,若節(jié)點B為節(jié)點A中某個消息的目的節(jié)點,則節(jié)點A直接將B作為下一跳節(jié)點,將消息轉(zhuǎn)發(fā)給目的節(jié)點B。否則執(zhí)行步驟4。
步驟4:節(jié)點A在鄰居節(jié)點中選擇一個貢獻效用值U(x)最小的的節(jié)點(若有多個節(jié)點的效用率最小,則隨機選擇)。
步驟5:計算節(jié)點A的連接函數(shù)Fnode,其中連接函數(shù)其中Bufv(x)為節(jié)點x緩存空閑的空閑的大小,Buft(x)為節(jié)點x緩存空間總的大小,Deld(x)為節(jié)點x遞交給該消息目的節(jié)點的次數(shù),β1+β2+β3=1。
步驟6:若A的值小,則A向B發(fā)起連接(A-B),執(zhí)行步驟7,否則不連接。
步驟7:B以概率同意連接節(jié)點A向節(jié)點B建立的連接。其中β為調(diào)節(jié)系數(shù)。
步驟8:若A與B連接建立,A失敗,A的U(a)=U(a)-ξ*U(a),同時B成功,B的U(b)=U(b)+ξ*U(b)。反之,若B不同意連接則B失敗執(zhí)行U(b)減小操作U(b)=U(b)-ξ*U(b)。其中ξ為任意常數(shù)。
3.緩存管理策略
節(jié)點緩存管理分為兩個階段:
階段1:當(dāng)節(jié)點A中的消息的源節(jié)點中最大的貢獻值小于閾值η1,則節(jié)點A不進行消息轉(zhuǎn)發(fā)請求。否則執(zhí)行節(jié)段2。
階段2:當(dāng)網(wǎng)絡(luò)中兩個節(jié)點(A-B)建立連接后,若節(jié)點A有多個消息需要發(fā)送,節(jié)點A發(fā)消息時先發(fā)送貢獻大的節(jié)點的消息,節(jié)點B以的概率接收消息,其中ΔE為剩余緩存值,δ為調(diào)節(jié)系數(shù)。每接收一個消息自身貢獻系數(shù)ΔC(初始值=0)增加0.1,每拒絕接收一個消息自身的貢獻系數(shù)ΔC減少0.1。當(dāng)節(jié)點B為了接收其他貢獻大的節(jié)點的消息而發(fā)生擁塞的時候,刪除消息的時候,先刪除消息的源節(jié)點貢獻小的節(jié)點的消息,自身節(jié)點的貢系數(shù)不變。
節(jié)點B的緩存過程同理。
4.當(dāng)兩個節(jié)點建立連接后兩個節(jié)點進行接收消息的博弈矩陣
DTN網(wǎng)絡(luò)中節(jié)點的資源極其有限,這就導(dǎo)致節(jié)點不情愿消耗自身的資源來為其他節(jié)點轉(zhuǎn)發(fā)消息,因此本發(fā)明提出了一種基于非合作博弈論的DTN路由與緩存管理策略,該策略通過鼓勵節(jié)點接收其他節(jié)點的消息來增加自身的貢獻值,節(jié)點的貢獻值越高,其在建立路由階段以及節(jié)點的緩存管理方面都占據(jù)更大的優(yōu)勢。在消息轉(zhuǎn)發(fā)階段,鼓勵節(jié)點接收消息為網(wǎng)絡(luò)做貢獻,每執(zhí)行一個連接過程其具體博弈矩陣如圖4的表所示。當(dāng)節(jié)點A和節(jié)點B建立連接后(假設(shè)節(jié)點A所選擇的策略不會對節(jié)點B選擇的策略受到影響),若節(jié)點A和節(jié)點B同時接收了對方的消息,則節(jié)點A和節(jié)點B的收益分別為(U(a)λ1(1+ΔCA),U(b)λ1(1+ΔCB))。當(dāng)節(jié)點A接收了節(jié)點B的消息,而節(jié)點B沒接收節(jié)點A的消息則節(jié)點A的效用值增加到U(a)λ2(1+ΔCA),節(jié)點B的效用值減少到U(b)λ(1-ΔCB)。同理節(jié)點B接收了節(jié)點A的消息,而節(jié)點A沒接收節(jié)點B的消息節(jié)點A的效用值減少到U(a)λ(1-ΔCA),節(jié)點B的效用值增加到U(b)λ2(1+ΔCB),若節(jié)點A和節(jié)點B都沒接收對方的消息,則節(jié)點A和節(jié)點B的效用值不變。其中,λ2>λ1>λ,ΔCX為節(jié)點X的貢獻系數(shù)。由圖4的表可知,節(jié)點為了使自身的利益最大化,在建立連接后都會選擇接收對方的消息。因此,此時節(jié)點A和節(jié)點B符合納什均衡博弈。