量。如果是,則執(zhí)行步驟 十;否則,執(zhí)行步驟十二。
[OOW步驟十:采用DTN消息優(yōu)先級劃分方法對網(wǎng)絡(luò)中每一個節(jié)點(diǎn)的消息進(jìn)行優(yōu)先級的 劃分。
[0042] 步驟^^一 :將S級消息的TTL減半。 陽0創(chuàng)步驟十二:結(jié)束。 W44] 在步驟一種所提到的DTN節(jié)點(diǎn)緩存闊值設(shè)置方法還包括:對于網(wǎng)絡(luò)的任意節(jié)點(diǎn)I, 節(jié)點(diǎn)I的存儲闊值為a= 0. 8XM,其中M為節(jié)點(diǎn)I的緩存大小。
[0045] 在步驟二中所提到的DTN消息闊值設(shè)置方法還包括:對于網(wǎng)絡(luò)中的任意消息q其 轉(zhuǎn)發(fā)跳數(shù)闊值設(shè)置為16,消息q的轉(zhuǎn)發(fā)副本數(shù)闊值設(shè)置為5。
[0046] 在步驟六中所提到的DT肥路由算法還包括:對于網(wǎng)絡(luò)中任意兩個節(jié)點(diǎn)U和V相 遇,將節(jié)點(diǎn)U中所擁有的消息而節(jié)點(diǎn)V中沒有的消息P(i)(P(i)的轉(zhuǎn)發(fā)跳數(shù)和轉(zhuǎn)發(fā)副本數(shù) 分別為J(i)和c(i),且J(i)和C(i)均小于其闊值)轉(zhuǎn)發(fā)給節(jié)點(diǎn)V,此時節(jié)點(diǎn)U中的消息 Pa)的轉(zhuǎn)發(fā)跳數(shù)Ja)+1,轉(zhuǎn)發(fā)副本數(shù)為Ca)+1,節(jié)點(diǎn)V中消息Pa)的轉(zhuǎn)發(fā)跳數(shù)為Ja)+1, 轉(zhuǎn)發(fā)副本數(shù)C(i)。若節(jié)點(diǎn)U中消息p(i)的轉(zhuǎn)發(fā)跳數(shù)或轉(zhuǎn)發(fā)副本數(shù)達(dá)到闊值,節(jié)點(diǎn)V不是消 息P(i)的目的節(jié)點(diǎn)時,則不將消息Pa)復(fù)制給節(jié)點(diǎn)V。
[0047] 在步驟十中所提到的DTN消息優(yōu)先級劃分方法還包括:對于任意消息q,通過判斷 q的Pr的大小來設(shè)置優(yōu)先級,其中
,(Si為消息q的長度,Max 代表網(wǎng)絡(luò)中最大消息的長度、化為消息q已經(jīng)經(jīng)歷的跳數(shù)。其中,0《化《16。Co為消息q的已經(jīng)復(fù)制的副本數(shù)。其中,〇《Co《5。并且a+0 +丫 = 1)。當(dāng)
時,此消息 為一級消息;當(dāng)
時,此消息為二級消息;當(dāng)
時,此消息為=級消息。其 中一級優(yōu)先級最高,=級優(yōu)先級最低。
[0048] 本發(fā)明的主要優(yōu)點(diǎn):(1)通過對網(wǎng)絡(luò)中的節(jié)點(diǎn)設(shè)置存儲闊值,使得節(jié)點(diǎn)在未達(dá)到 擁塞時就進(jìn)行緩存釋放,從而實(shí)現(xiàn)節(jié)點(diǎn)擁塞現(xiàn)象的避免。(2)通過對網(wǎng)絡(luò)中消息設(shè)置消息轉(zhuǎn) 發(fā)跳數(shù)闊值和消息轉(zhuǎn)發(fā)副本數(shù)闊值,使得當(dāng)節(jié)點(diǎn)緩存達(dá)到存儲闊值時,通過刪除消息的跳 數(shù)和消息的副本數(shù)達(dá)到闊值的消息,從而可W有效的控制網(wǎng)絡(luò)中消息副本數(shù),實(shí)現(xiàn)網(wǎng)絡(luò)擁 塞避免。(3)當(dāng)節(jié)點(diǎn)緩存空間的使用情況達(dá)到存儲闊值時,通過刪除消息的跳數(shù)和消息的副 本數(shù)達(dá)到闊值的消息來釋放緩存空間。然后判斷此時節(jié)點(diǎn)的輸入消息量和輸出消息量的大 小,當(dāng)輸入消息量大于輸出消息量時,通過對節(jié)點(diǎn)中消息進(jìn)行優(yōu)先級的劃分,將優(yōu)先級最低 的消息的TTL減半,從而可W盡快釋放節(jié)點(diǎn)緩存空間,達(dá)到網(wǎng)絡(luò)中擁塞現(xiàn)象避免的目的。
[0049] W圖2所示為例,假設(shè)網(wǎng)絡(luò)中有30個節(jié)點(diǎn)。其中節(jié)點(diǎn)的編號為1-30,網(wǎng)絡(luò)中節(jié)點(diǎn) 所攜帶的消息如圖所示,W1號節(jié)點(diǎn)為例,1號節(jié)點(diǎn)所攜帶的消息為Pl、p2、p3。首先由DTN 節(jié)點(diǎn)緩存闊值設(shè)置方法設(shè)置網(wǎng)絡(luò)中所有節(jié)點(diǎn)的存儲闊值,W1號節(jié)點(diǎn)為例,假設(shè)1號節(jié)點(diǎn)的 緩存空間大小為100M,則一號節(jié)點(diǎn)的存儲闊值為80M。然后設(shè)置網(wǎng)絡(luò)中消息轉(zhuǎn)發(fā)跳數(shù)和轉(zhuǎn) 發(fā)副本數(shù)闊值,在本例中,將消息轉(zhuǎn)發(fā)跳數(shù)闊值設(shè)置為16,將消息轉(zhuǎn)發(fā)的副本數(shù)闊值設(shè)置為 5。
[0050] 判斷網(wǎng)絡(luò)中任意兩個節(jié)點(diǎn)是否相遇,在本例中假設(shè)15號節(jié)點(diǎn)和16號節(jié)點(diǎn)相遇 (如圖3),此時15號節(jié)點(diǎn)攜帶消息為plO、pll、pl2,16號節(jié)點(diǎn)攜帶的消息為p8、p9、plO。 將兩個節(jié)點(diǎn)中相同的消息的轉(zhuǎn)發(fā)跳數(shù)和轉(zhuǎn)發(fā)副本數(shù)更新為二者中的最大數(shù),假設(shè)15號節(jié) 點(diǎn)的消息PlO的轉(zhuǎn)發(fā)跳數(shù)和轉(zhuǎn)發(fā)副本數(shù)為7和3, 16號節(jié)點(diǎn)的消息PlO的轉(zhuǎn)發(fā)跳數(shù)和轉(zhuǎn)發(fā) 副本數(shù)為6和2,此時則將16號節(jié)點(diǎn)的消息PlO的轉(zhuǎn)發(fā)跳數(shù)和轉(zhuǎn)發(fā)副本數(shù)更新為7和3。
[0051] 通過DT肥路由算法對相遇的兩個節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。在此例中假設(shè)15號節(jié) 點(diǎn)和16號節(jié)點(diǎn)相遇,由于15號節(jié)點(diǎn)沒有16號節(jié)點(diǎn)中的消息p8、p9 (假設(shè)消息p8的轉(zhuǎn)發(fā)跳 數(shù)為4、轉(zhuǎn)發(fā)副本數(shù)為3,消息p9的轉(zhuǎn)發(fā)跳數(shù)為7、轉(zhuǎn)發(fā)副本數(shù)為3)。當(dāng)消息p8和p9轉(zhuǎn)發(fā) 給15號節(jié)點(diǎn)后,16號節(jié)點(diǎn)中消息p8的轉(zhuǎn)發(fā)跳數(shù)為5、轉(zhuǎn)發(fā)副本數(shù)為4,p9的轉(zhuǎn)發(fā)跳數(shù)為8、 轉(zhuǎn)發(fā)副本數(shù)為4,此時15號節(jié)點(diǎn)中消息p8的轉(zhuǎn)發(fā)跳數(shù)為5、轉(zhuǎn)發(fā)副本數(shù)為3,p9的轉(zhuǎn)發(fā)跳數(shù) 為8、轉(zhuǎn)發(fā)副本數(shù)為3,同理,15號節(jié)點(diǎn)將消息Pll和pl2轉(zhuǎn)發(fā)給16號節(jié)點(diǎn)。
[0052] 判斷進(jìn)行消息轉(zhuǎn)發(fā)后的節(jié)點(diǎn)的緩存空間是否達(dá)到了其存儲闊值,在本實(shí)例中,需 要判斷15號節(jié)點(diǎn)和16號節(jié)點(diǎn)的緩存空間是否達(dá)到了其存儲闊值,W15號節(jié)點(diǎn)為例,假設(shè) 15號節(jié)點(diǎn)的緩存空間為200M,則其存儲闊值為160M,如果此時15號節(jié)點(diǎn)所使用的緩存空間 的大小達(dá)到了 160M,則判斷節(jié)點(diǎn)中是否有消息的轉(zhuǎn)發(fā)跳數(shù)達(dá)到了轉(zhuǎn)發(fā)跳數(shù)闊值或消息的轉(zhuǎn) 發(fā)副本數(shù)達(dá)到了轉(zhuǎn)發(fā)副本數(shù)闊值,如果有,則刪除相應(yīng)的消息,然后判斷此時節(jié)點(diǎn)的輸入消 息量和輸出消息量來判斷是否進(jìn)行進(jìn)一步的擁塞避免操作;否則直接判斷此時節(jié)點(diǎn)的輸入 消息量和輸出消息量來判斷是否進(jìn)行進(jìn)一步的擁塞避免操作。在本實(shí)例中,由于15號節(jié)點(diǎn) 沒有轉(zhuǎn)發(fā)跳數(shù)達(dá)到了轉(zhuǎn)發(fā)跳數(shù)闊值或消息的轉(zhuǎn)發(fā)副本數(shù)達(dá)到了轉(zhuǎn)發(fā)副本數(shù)闊值的消息,貝U 直接判斷此時節(jié)點(diǎn)的輸入消息量和輸出消息量來判斷是否進(jìn)行進(jìn)一步的擁塞避免操作,假 設(shè)此時15號節(jié)點(diǎn)中消息的輸出量為50M,輸入量30,則不做進(jìn)一步的擁塞避免操作。否則, 采用DTN消息優(yōu)先級劃分方法對每個節(jié)點(diǎn)中的消息進(jìn)行優(yōu)先級的劃分,此時每個節(jié)點(diǎn)中的 消息被劃分為一級消息、二級消息、S級消息。其中一級消息的優(yōu)先級最高,S級消息的優(yōu) 先級最低,然后將節(jié)點(diǎn)中的S級消息的TTL減半,假設(shè)在15號節(jié)點(diǎn)中消息p8和消息p9的 消息為一級消息,消息PlO和消息Pll為二級消息,消息Pl2為S級消息,則將消息pl2的 TTL減半。
[0053] 本發(fā)明的主要優(yōu)點(diǎn):(1)通過對網(wǎng)絡(luò)中的節(jié)點(diǎn)設(shè)置存儲闊值,使得節(jié)點(diǎn)在未達(dá)到 擁塞時就進(jìn)行緩存釋放,從而實(shí)現(xiàn)節(jié)點(diǎn)擁塞現(xiàn)象的避免。(2)通過對網(wǎng)絡(luò)中消息設(shè)置消息轉(zhuǎn) 發(fā)跳數(shù)闊值和消息轉(zhuǎn)發(fā)副本數(shù)闊值,使得當(dāng)節(jié)點(diǎn)緩存達(dá)到存儲闊值時,通過刪除消息的跳 數(shù)和消息的副本數(shù)達(dá)到闊值的消息,從而可W有效的控制網(wǎng)絡(luò)中消息副本數(shù),實(shí)現(xiàn)網(wǎng)絡(luò)擁 塞避免。做當(dāng)節(jié)點(diǎn)緩存空間的使用情況達(dá)到存儲闊值時,通過刪除消息的跳數(shù)和消息的副 本數(shù)達(dá)到闊值的消息來釋放緩存空間。然后判斷此時節(jié)點(diǎn)的輸入消息量和輸出消息量的大 小,當(dāng)輸入消息量大于輸出消息量時,通過對節(jié)點(diǎn)中消息進(jìn)行優(yōu)先級的劃分,將優(yōu)先級最低 的消息的TTL減半,從而可W盡快釋放節(jié)點(diǎn)緩存空間,達(dá)到網(wǎng)絡(luò)中擁塞現(xiàn)象避免的目的。
【主權(quán)項(xiàng)】
1. 一種面向Epidemic路由算法的節(jié)點(diǎn)緩存釋放的延遲容忍網(wǎng)絡(luò)擁塞避免方法,其特 征在于,包括如下步驟: (1) 采用DTN節(jié)點(diǎn)緩存閾值設(shè)置方法對網(wǎng)絡(luò)中節(jié)點(diǎn)的緩存設(shè)置存儲閾值; (2) 采用DTN消息閾值設(shè)置方法對節(jié)點(diǎn)緩存中的消息設(shè)置消息轉(zhuǎn)發(fā)跳數(shù)閾值和消息轉(zhuǎn) 發(fā)副本數(shù)閾值; (3) 判斷網(wǎng)絡(luò)中的任意兩個節(jié)點(diǎn)是否正在相遇; (4) 如果存在兩個節(jié)點(diǎn)正在相遇,若兩節(jié)點(diǎn)含有相同的消息,則把共同的消息的跳數(shù) 和消息的轉(zhuǎn)發(fā)副本數(shù)更新為兩個節(jié)點(diǎn)中消息的跳數(shù)和轉(zhuǎn)發(fā)副本數(shù)的最大值,否則執(zhí)行步驟 (6); (5) 采用DTNE路由算法進(jìn)行消息轉(zhuǎn)發(fā); (6) 判斷節(jié)點(diǎn)緩存是否達(dá)到存儲閾值;如果是,則執(zhí)行步驟(7);否則,返回步驟(3); (7) 判斷節(jié)點(diǎn)緩存中是否有消息的轉(zhuǎn)發(fā)跳數(shù)或轉(zhuǎn)發(fā)副本數(shù)達(dá)到消息轉(zhuǎn)發(fā)跳數(shù)閾值或消 息轉(zhuǎn)發(fā)副本數(shù)閾值;如果是,則執(zhí)行步驟(8);否則,執(zhí)行步驟(9); (8) 節(jié)點(diǎn)刪除消息的轉(zhuǎn)發(fā)跳數(shù)達(dá)到轉(zhuǎn)發(fā)跳數(shù)閾值的消息以及消息的轉(zhuǎn)發(fā)副本數(shù)達(dá)到消 息轉(zhuǎn)發(fā)副本數(shù)閾值的消息; (9) 判斷此時節(jié)點(diǎn)的輸入消息量是否大于輸出消息量;如果是,則執(zhí)行步驟(10);否 貝1J,執(zhí)行步驟(12); (10) 采用DTN消息優(yōu)先級劃分方法對網(wǎng)絡(luò)中每一個節(jié)點(diǎn)的消息進(jìn)行優(yōu)先級的劃分; (11) 將三級消息的TTL減半; (12) 結(jié)束; 在所述步驟(1)所述的DTN節(jié)點(diǎn)緩存閾值設(shè)置方法包括:對于網(wǎng)絡(luò)的任意節(jié)點(diǎn)I,節(jié)點(diǎn) I的存儲閾值為α = 0. 8XM,其中M為節(jié)點(diǎn)I的緩存大??; 在步驟(2)中所述的DTN消息閾值設(shè)置方法包括:對于網(wǎng)絡(luò)中的任意消息q其轉(zhuǎn)發(fā)跳 數(shù)閾值設(shè)置為16,消息q的轉(zhuǎn)發(fā)副本數(shù)閾值設(shè)置為5 ; 在步驟(6)中所述的DTNE路由算法包括:對于網(wǎng)絡(luò)中任意兩個節(jié)點(diǎn)U和V相遇,將節(jié) 點(diǎn)U中所擁有的消息而節(jié)點(diǎn)V中沒有的消息p (i),p (i)的轉(zhuǎn)發(fā)跳數(shù)和轉(zhuǎn)發(fā)副本數(shù)分別為 J⑴和C(i),且J(i)和C(i)均小于其閾值,轉(zhuǎn)發(fā)給節(jié)點(diǎn)V,節(jié)點(diǎn)U中的消息p(i)的轉(zhuǎn)發(fā) 跳數(shù)J(i)+1,轉(zhuǎn)發(fā)副本數(shù)為C(i)+1,節(jié)點(diǎn)V中消息p(i)的轉(zhuǎn)發(fā)跳數(shù)為J(i)+1,轉(zhuǎn)發(fā)副本數(shù) C⑴;若節(jié)點(diǎn)U中消息p(i)的轉(zhuǎn)發(fā)跳數(shù)或轉(zhuǎn)發(fā)副本數(shù)達(dá)到閾值,節(jié)點(diǎn)V不是消息p(i)的目 的節(jié)點(diǎn)時,則不將消息P (i)復(fù)制給節(jié)點(diǎn)V ; 在步驟(10)中所述的DTN消息優(yōu)先級劃分方法還包括:對于任意消息q,通過判斷q的 Pr的大小來設(shè)置優(yōu)先級,其_,Si為消息q的長度,Max代表 網(wǎng)絡(luò)中最大消息的長度、Ju為消息q已經(jīng)經(jīng)歷的跳數(shù);其中,0彡Ju彡16 ;Co為消息q的 已經(jīng)復(fù)制的副本數(shù);其中,OSCo <5;并且α+β+ γ = 1:,此消息為一級 消息;,此消息為二級消息;當(dāng),此消息為三級消息;其中一級 優(yōu)先級最1?,二級優(yōu)先級最低D
【專利摘要】本發(fā)明屬于延遲容忍網(wǎng)絡(luò)領(lǐng)域,主要涉及一種面向Epidemic路由算法的節(jié)點(diǎn)緩存釋放的延遲容忍網(wǎng)絡(luò)擁塞避免方法。本發(fā)明包括:采用DTN節(jié)點(diǎn)緩存閾值設(shè)置方法對網(wǎng)絡(luò)中節(jié)點(diǎn)的緩存設(shè)置存儲閾值;采用DTN消息閾值設(shè)置方法對節(jié)點(diǎn)緩存中的消息設(shè)置消息轉(zhuǎn)發(fā)跳數(shù)閾值和消息轉(zhuǎn)發(fā)副本數(shù)閾值;判斷網(wǎng)絡(luò)中的任意兩個節(jié)點(diǎn)是否正在相遇等。本發(fā)明通過對網(wǎng)絡(luò)中消息設(shè)置消息轉(zhuǎn)發(fā)跳數(shù)閾值和消息轉(zhuǎn)發(fā)副本數(shù)閾值,使得當(dāng)節(jié)點(diǎn)緩存達(dá)到存儲閾值時,通過刪除消息的跳數(shù)和消息的副本數(shù)達(dá)到閾值的消息,從而可以有效的控制網(wǎng)絡(luò)中消息副本數(shù),實(shí)現(xiàn)網(wǎng)絡(luò)擁塞避免。
【IPC分類】H04W28/02
【公開號】CN105188086
【申請?zhí)枴緾N201510540536
【發(fā)明人】呂宏武, 王賀哲, 王慧強(qiáng), 馮光升, 朱金美, 譚靜, 林俊宇
【申請人】哈爾濱工程大學(xué)
【公開日】2015年12月23日
【申請日】2015年8月28日