一種面向Epidemic路由算法的節(jié)點緩存釋放的延遲容忍網絡擁塞避免方法
【技術領域】
[0001] 本發(fā)明屬于延遲容忍網絡領域,主要設及一種面向化idemic路由算法的節(jié)點緩 存釋放的延遲容忍網絡擁塞避免方法。
【背景技術】
[0002]DTN是一種新型網絡,代表了未來移動通信領域發(fā)展方向之一,主要應用于星際網 絡、鄉(xiāng)村網絡、戰(zhàn)地網絡等。DTN具有鏈路間斷連接特性,并且消息在傳遞過程中會經歷長 時間或者不確定的時延。DTN中通常不存在端到端的連接,從而使得面向連接的端到端傳 輸協(xié)議不適用于此種網絡。由于DTN具有高延遲性、間斷連接性、拓撲易變性、節(jié)點資源有 限等特點。為了克服運些網絡限制,能夠保證消息傳輸?shù)牡竭_率,DTN使用傳輸層提供的服 務,W跳到跳的托管機制,采用"存儲-攜帶-轉發(fā)"運種方式對消息進行傳輸。然而DTN具 有高延遲性、間斷連接性、拓撲易變性、節(jié)點資源有限等特點,運就導致了托管節(jié)點有可能 需要長時間保存接收到的消息,來應對可能出現(xiàn)的網絡延遲和中斷,直到收到下一跳托管 節(jié)點的確認信息或者消息被成功傳遞至目的節(jié)點。如果托管節(jié)點不能及時轉發(fā)其收到的消 息,網絡又有大量的消息需要及時轉發(fā),那么網絡就會最終耗盡托管節(jié)點的存儲資源,造成 網絡擁塞。
[0003] 化idemic路由算法是DTN網絡中最重要的路由算法之一,許多路由算法都可W視 為是在此算法基礎上的一種改進?;痠demic路由算法是V址dat等人提出的,其主要思想是 網絡中當2個節(jié)點相遇時交換對方沒有的消息,經過足夠多的消息交換后,理論上每個非 孤立的節(jié)點都將收到所有的消息,從而實現(xiàn)消息的傳輸。在化idemic算法中,每個消息都 有一個全局唯一的標識,每個節(jié)點中保存一個概要向量,用來記錄節(jié)點中攜帶的消息。當2 個節(jié)點相遇時,彼此首先交換概要向量,從而獲知對方所攜帶的消息情況,然后雙方僅傳送 對方沒有的消息。在設計化idemic路由算法時主要有3個目標,分別是最大的傳輸成功率、 最小的傳輸延遲和最小的網絡資源消耗?;痠demic路由算法本質上是一種無限制泛洪算 法,從理論上講該算法能最大化消息傳輸?shù)某晒β剩钚』瘋鬏斞舆t。但在很多數(shù)場景中, 由于過度泛洪會導致路由算法的性能顯著下降。
[0004]DTN中的擁塞是指DTN中節(jié)點間復制轉發(fā)消息使得DTN中消息的副本數(shù)過多,從 而導致了DTN性能的降低。而網絡資源的占用與分布不均的網絡流量是產生網絡擁塞的主 要原因。如果合理分配網絡有限的資源、控制網絡流量,可有效地保證楊通網絡流量和維持 網絡的性能平穩(wěn),而DTN擁塞避免要求既能使DTN性能得到一定保障、又能最大化DTN吞吐 量。但是擁塞避免對延遲容忍網絡的投遞率和延遲等網絡性能的影響重大,因此,研究DTN 擁塞避免對于DTN在實際中的應用尤為重要。 陽0化]針對W上分析,本發(fā)明針對DTN網絡中化idemic路由算法,提出了一種面向 化idemic路由算法的節(jié)點緩存釋放的延遲容忍網絡擁塞避免方法。該方法的主要思想是: 對網絡中節(jié)點的緩存空間設置存儲闊值,并且對節(jié)點中的消息設置消息轉發(fā)跳數(shù)闊值和消 息轉發(fā)副本數(shù)闊值,當節(jié)點已使用的緩存空間達到存儲闊值時,通過刪除節(jié)點中轉發(fā)跳數(shù) 已經達到消息轉發(fā)跳數(shù)闊值、轉發(fā)副本數(shù)達到消息副本數(shù)闊值的消息,來釋放節(jié)點緩存空 間。若此時能夠有效的釋放節(jié)點空間則不做進一步的擁塞避免操作。否則,對節(jié)點中的消 息采進行優(yōu)先級的劃分,將優(yōu)先級最低的消息的TTL減半,使節(jié)點的緩存空間盡快被釋放, 從而實現(xiàn)網絡中擁塞現(xiàn)象的避免。
【發(fā)明內容】
[0006] 本發(fā)明的目的是提出一種面向化idemic路由算法的節(jié)點緩存釋放的延遲容忍網 絡擁塞避免方法。
[0007] 本發(fā)明的目的是運樣實現(xiàn)的:
[0008] (1)采用DTN節(jié)點緩存闊值設置方法對網絡中節(jié)點的緩存設置存儲闊值;
[0009] (2)采用DTN消息闊值設置方法對節(jié)點緩存中的消息設置消息轉發(fā)跳數(shù)闊值和消 息轉發(fā)副本數(shù)闊值;
[0010] (3)判斷網絡中的任意兩個節(jié)點是否正在相遇; W11] (4)如果存在兩個節(jié)點正在相遇,若兩節(jié)點含有相同的消息,則把共同的消息的跳 數(shù)和消息的轉發(fā)副本數(shù)更新為兩個節(jié)點中消息的跳數(shù)和轉發(fā)副本數(shù)的最大值,否則執(zhí)行步 驟化);
[0012] (5)采用DT肥路由算法進行消息轉發(fā);
[001引 (6)判斷節(jié)點緩存是否達到存儲闊值;如果是,則執(zhí)行步驟(7);否則,返回步驟 (3);
[0014] (7)判斷節(jié)點緩存中是否有消息的轉發(fā)跳數(shù)或轉發(fā)副本數(shù)達到消息轉發(fā)跳數(shù)闊值 或消息轉發(fā)副本數(shù)闊值;如果是,則執(zhí)行步驟(8);否則,執(zhí)行步驟巧);
[0015] (8)節(jié)點刪除消息的轉發(fā)跳數(shù)達到轉發(fā)跳數(shù)闊值的消息W及消息的轉發(fā)副本數(shù)達 到消息轉發(fā)副本數(shù)闊值的消息;
[0016] (9)判斷此時節(jié)點的輸入消息量是否大于輸出消息量;如果是,則執(zhí)行步驟(10); 否則,執(zhí)行步驟(12);
[0017] (10)采用DTN消息優(yōu)先級劃分方法對網絡中每一個節(jié)點的消息進行優(yōu)先級的劃 分;
[0018] (11)將S級消息的TTL減半;
[0019] (。)結束;
[0020] 在所述步驟(1)所述的DTN節(jié)點緩存闊值設置方法包括:對于網絡的任意節(jié)點I, 節(jié)點I的存儲闊值為a= 0. 8XM,其中M為節(jié)點I的緩存大??;
[0021] 在步驟(2)中所述的DTN消息闊值設置方法包括:對于網絡中的任意消息q其轉 發(fā)跳數(shù)闊值設置為16,消息q的轉發(fā)副本數(shù)闊值設置為5 ; 陽02引在步驟(6)中所述的DT肥路由算法包括對于網絡中任意兩個節(jié)點U和V相遇, 將節(jié)點U中所擁有的消息而節(jié)點V中沒有的消息P(i),P(i)的轉發(fā)跳數(shù)和轉發(fā)副本數(shù)分別 為J(i)和C(i),且J(i)和C(i)均小于其闊值,轉發(fā)給節(jié)點V,節(jié)點U中的消息p(i)的轉 發(fā)跳數(shù)Ja)+1,轉發(fā)副本數(shù)為Ca)+1,節(jié)點V中消息Pa)的轉發(fā)跳數(shù)為Ja)+1,轉發(fā)副本 數(shù)c(i);若節(jié)點U中消息p(i)的轉發(fā)跳數(shù)或轉發(fā)副本數(shù)達到闊值,節(jié)點V不是消息p(i)的 目的節(jié)點時,則不將消息P(i)復制給節(jié)點V;
[002引在步驟(10)中所述的DTN消息優(yōu)先級劃分方法還包括:對于任意消息q,通過判 斷q的Pr的大小來設置優(yōu)先級,其中
ISi為消息q的長度, Max代表網絡中最大消息的長度、化為消息q已經經歷的跳數(shù);其中,0《化《16 ;Co為消 息q的已經復制的副本數(shù);其中,0《Co《5 ;并且a+0 + 丫 = 1 ;當
時,此消息 為一級消息;當
時,此消息為二級消息;當
時,此消息為=級消息;其 中一級優(yōu)先級最高,=級優(yōu)先級最低。
[0024] 本發(fā)明的有益效果在于:
[00巧]本發(fā)明的主要優(yōu)點:(1)通過對網絡中的節(jié)點設置存儲闊值,使得節(jié)點在未達到 擁塞時就進行緩存釋放,從而實現(xiàn)節(jié)點擁塞現(xiàn)象的避免。(2)通過對網絡中消息設置消息轉 發(fā)跳數(shù)闊值和消息轉發(fā)副本數(shù)闊值,使得當節(jié)點緩存達到存儲闊值時,通過刪除消息的跳 數(shù)和消息的副本數(shù)達到闊值的消息,從而可W有效的控制網絡中消息副本數(shù),實現(xiàn)網絡擁 塞避免。做當節(jié)點緩存空間的使用情況達到存儲闊值時,通過刪除消息的跳數(shù)和消息的副 本數(shù)達到闊值的消息來釋放緩存空間。然后判斷此時節(jié)點的輸入消息量和輸出消息量的大 小,當輸入消息量大于輸出消息量時,通過對節(jié)點中消息進行優(yōu)先級的劃分,將優(yōu)先級最低 的消息的TTL減半,從而可W盡快釋放節(jié)點緩存空間,達到網絡中擁塞現(xiàn)象避免的目的。
【附圖說明】 陽0%] 圖1 一種面向化idemic路由算法的節(jié)點緩存釋放的延遲容忍網絡擁塞避免方法 的流程圖;
[0027] 圖2 -種面向化idemic路由算法的節(jié)點緩存釋放的延遲容忍網絡擁塞避免方法 具體實施的框架圖;
[0028] 圖3 -種面向化idemic路由算法的節(jié)點緩存釋放的延遲容忍網絡擁塞避免方法 倆節(jié)點相遇實例圖。
【具體實施方式】
[0029] 下面結合附圖對本發(fā)明做進一步描述:
[0030] 該方法的主要思想是:首先對網絡中節(jié)點的緩存空間設置存儲闊值,并且對節(jié)點 中的消息設置消息轉發(fā)跳數(shù)闊值和消息轉發(fā)副本數(shù)闊值,當節(jié)點已使用的緩存空間達到節(jié) 點緩存空間的存儲闊值時,通過刪除節(jié)點中轉發(fā)跳數(shù)已經到達消息轉發(fā)跳數(shù)闊值、轉發(fā)副 本數(shù)達到消息副本數(shù)闊值的消息,來釋放節(jié)點緩存空間。然后通過此時節(jié)點的輸入消息量 和輸出消息量來判斷是否進行進一步的擁塞避免操作,若此時節(jié)點中輸出消息量大于輸入 消息量則不做進一步的擁塞避免操作(運里的輸入消息量指的是節(jié)點正在接受的消息的 長度;輸出消息量指的是正在刪除的消息的大小,正在刪除的消息包括:達到消息轉發(fā)跳 數(shù)闊值的消息、達到消息轉發(fā)副本數(shù)闊值的消息、TTL等于0的消息)。否則,對節(jié)點中的消 息采用DTN消息優(yōu)先級劃分方法進行優(yōu)先級的劃分,將優(yōu)先級最低的消息的TTL減半,使節(jié) 點的緩存空間盡快被釋放,從而實現(xiàn)網絡中擁塞現(xiàn)象的避免。
[0031] 本發(fā)明是運樣實現(xiàn)的:
[0032] 步驟一:采用DTN節(jié)點緩存闊值設置方法對網絡中節(jié)點的緩存設置存儲闊值。
[003引步驟二:采用DTN消息闊值設置方法對節(jié)點緩存中的消息設置消息轉發(fā)跳數(shù)闊值 和消息轉發(fā)副本數(shù)闊值。
[0034] 步驟S:判斷網絡中的任意兩個節(jié)點是否正在相遇。
[0035] 步驟四:如果存在兩個節(jié)點正在相遇,若兩節(jié)點含有相同的消息,則把共同的消息 的跳數(shù)和消息的轉發(fā)副本數(shù)更新為兩個節(jié)點中消息的跳數(shù)和轉發(fā)副本數(shù)的最大值,否則執(zhí) 行步驟六。
[0036] 步驟五:采用DT肥路由算法進行消息轉發(fā)。
[0037] 步驟六:判斷節(jié)點緩存是否達到存儲闊值。如果是,則執(zhí)行步驟屯;否則,返回步 驟=。
[0038] 步驟屯:判斷節(jié)點緩存中是否有消息的轉發(fā)跳數(shù)或轉發(fā)副本數(shù)達到消息轉發(fā)跳 數(shù)闊值或消息轉發(fā)副本數(shù)闊值。如果是,則執(zhí)行步驟八;否則,執(zhí)行步驟九。
[0039] 步驟八:節(jié)點刪除消息的轉發(fā)跳數(shù)達到轉發(fā)跳數(shù)闊值的消息W及消息的轉發(fā)副本 數(shù)達到消息轉發(fā)副本數(shù)闊值的消息。
[0040] 步驟九:判斷此時節(jié)點的輸入消息量是否大于輸出消息