基于時間聚合圖的延遲容忍網(wǎng)絡(luò)最大流路由方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于通信技術(shù)領(lǐng)域,特別設(shè)及一種延遲容忍網(wǎng)絡(luò)中的路由方法,可用于互 聯(lián)網(wǎng)、物聯(lián)網(wǎng)、移動通信、衛(wèi)星通信和深空通信中提高傳輸吞吐量。
【背景技術(shù)】
[0002] 延遲容忍網(wǎng)絡(luò)DTN在一些特定的網(wǎng)絡(luò)環(huán)境下,會經(jīng)常出現(xiàn)網(wǎng)絡(luò)斷開的現(xiàn)象,導(dǎo)致 報文在傳輸過程中不能確保端到端的路徑。目前,DTN在互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、移動通信、衛(wèi)星通 信、深空通信及軍事通信等領(lǐng)域有著廣泛的應(yīng)用需求與應(yīng)用前景,因此它逐漸成為無線通 信領(lǐng)域的研究熱點。
[0003] Internet研究任務(wù)組IRTF通過對機會組網(wǎng)的星際網(wǎng)絡(luò)的研究而發(fā)展出DTN體系 結(jié)構(gòu),最初是為解決星際互聯(lián)網(wǎng)IPN的連通問題而提出的,后來研究人員希望將其發(fā)展成 為一種普遍適用于解決受限網(wǎng)絡(luò)連通的方法。延遲容忍網(wǎng)絡(luò)的主要特點包括鏈路斷續(xù)連 通、鏈路特性如容量隨著時間而不斷變化著、網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)也是時變的。運與傳統(tǒng)的靜態(tài) 網(wǎng)絡(luò)有很大的差異,使得傳統(tǒng)的路由方法不能適用于DTN。
[0004] 為了更好的研究DTN,需要構(gòu)建合適的模型來描述DTN。時間聚合圖能將DTN的拓 撲變化、鏈路的特性等都聚合成時間序列,運樣可W有效的減少網(wǎng)絡(luò)原始信息所占用的儲 存空間。因此,很多學(xué)者開始研究時間聚合圖,一些適用于DTN的最短路徑方法已經(jīng)被提出 并且被證實能有效的解決DTN的最短路徑問題。但是,由于時間聚合圖中并沒有描述鏈路 不同時段之間的聯(lián)系,運導(dǎo)致不同的選路順序所求得的最大流不同。如附圖2所示,在運個 時間聚合圖中有兩種選路方案:1)如果先選擇路徑S-A-B-D,接著就只能選擇路徑 S-A-D,求得的網(wǎng)絡(luò)最大流的流量為7 ;2)如果先選擇路徑S-A-D或S-B-D,接 著就只能選擇路徑S-B-D或S-A-D,求得的網(wǎng)絡(luò)最大流的流量為5。雖然兩種選路 策略都沒有問題,但卻求出了不同的最大流。網(wǎng)絡(luò)中選路的過程往往是隨機選擇的,如果選 擇了選路方案2)則無法獲得網(wǎng)絡(luò)最準(zhǔn)確的最大流。正是由于選路順序所帶來的影響,至今 沒有在時間聚合圖上找出求解最大流的有效方法,影響網(wǎng)絡(luò)傳輸?shù)耐掏铝俊?br>
【發(fā)明內(nèi)容】
[0005] 本發(fā)明目的在于針對上述的問題,提出一種基于時間聚合圖的延遲容忍網(wǎng)絡(luò)最大 流路由方法,W解決現(xiàn)有的時間聚合圖模型中,由于同一鏈路不同時段之間缺乏聯(lián)系而引 起的不同選路順序?qū)е虑蠼獬霾煌淖畲罅鞯膯栴},實現(xiàn)對最大流的準(zhǔn)確計算,提高網(wǎng)絡(luò) 傳輸?shù)耐掏铝俊?br>[0006] 為實現(xiàn)上述目的,本發(fā)明的技術(shù)方案如下:
[0007] (1)標(biāo)記時間聚合圖
[0008] 時間聚合圖是由若干節(jié)點和多條有向的邊所構(gòu)成的一種圖形,每條邊標(biāo)記一 個容量時間序列C(T) =(Cl,...,Ct,...,Cm),每個節(jié)點設(shè)置一個存儲傳遞序列N(T)= (ni,. . .,n。. . .,r〇,其中T是指給定的時間范圍,Ct是指與該邊相對應(yīng)的網(wǎng)絡(luò)鏈路在第t 個時間段內(nèi)的網(wǎng)絡(luò)鏈路總?cè)萘?,nt是指該節(jié)點從第t-1個時間段向第t個時間段儲存的數(shù) 據(jù)量,1《t《m,m是指在給定的時間范圍T內(nèi)W單位時間為間隔分割的時間段;
[0009] 似在時間聚合圖中尋找增廣路徑L:
[0010] (2a)設(shè)定時間聚合圖所描述的延遲容忍網(wǎng)絡(luò)的當(dāng)前最大流為Wfmgy(T),并初始化 為0 ;
[0011](2b)將源點S設(shè)為增廣路徑L的當(dāng)前找路節(jié)點并將該節(jié)點的找路出發(fā)時間tg設(shè) 定在第1個時段內(nèi)即tg= 1 ;
[0012] (2c)利用當(dāng)前找路節(jié)點的存儲傳遞序列對當(dāng)前節(jié)點的找路出發(fā)時間進行更新,得 到當(dāng)前節(jié)點新的出發(fā)時間tg;
[0013] (2d)依據(jù)當(dāng)前節(jié)點的鄰接關(guān)系,找到W當(dāng)前節(jié)點為起始節(jié)點的所有鄰接鏈路,并 在運些鄰接鏈路中找出所有有效的鄰接鏈路:若鏈路連通的時間段t滿足t>tg,且鏈路 容量Ct> 0則該鏈路是有效的鄰接鏈路,否則,該鏈路是無效的鄰接鏈路;
[0014] (2e)判斷當(dāng)前節(jié)點是否有有鄰接鏈路或是否有有效的鄰接鏈路,若有,則執(zhí)行步 驟(2f),否則,從所有有效的鄰接鏈路中選擇具有最早連通時段t' =min(t)的一條有效鄰 接鏈路,將此鏈路的終止節(jié)點作為增廣路徑L的下一跳節(jié)點,并將此鏈路的終止節(jié)點設(shè)置 為新的當(dāng)前找路節(jié)點,設(shè)定當(dāng)前節(jié)點的找路出發(fā)時間為tg=t',執(zhí)行步驟(2g);
[0015] (2f)若當(dāng)前節(jié)點為源點S,則不存在增廣路徑,執(zhí)行步驟化),否則將當(dāng)前節(jié)點的 上一跳鄰接鏈路設(shè)為無效,在增廣路徑L中刪除該節(jié)點,同時把當(dāng)前節(jié)點的上一跳節(jié)點設(shè) 為增廣路徑L新的當(dāng)前找路節(jié)點,返回步驟(2c);
[0016] (2g)若當(dāng)前節(jié)點為終點d,則執(zhí)行步驟(3),否則,返回步驟(2c);
[0017] (3)計算增廣路徑L的最大流:
[0018] (3a)設(shè)定增廣路徑L的當(dāng)前最大流為Tfm。、燈),并初始化為無窮大,選取增廣路徑 L的最后一跳鏈路作為當(dāng)前鏈路;
[0019] (3b)根據(jù)當(dāng)前鏈路終止節(jié)點的存儲傳遞序列,計算當(dāng)前鏈路的容量時間序列 Cu^y(T)與增廣路徑L的當(dāng)前最大流Tfmgy(T)之間所允許的最大流Pfmay(T),更新增廣路徑L 的當(dāng)前最大流Tfmax燈)=Pfmax燈);
[0020] (3c)判斷當(dāng)前鏈路是否為增廣路徑L的第一跳鏈路:若是,則得到增廣路徑L的 最大流Lfmgy(T) =Tfmgy(T),執(zhí)行步驟(4),否則,選擇此鏈路的前一跳鏈路作為當(dāng)前鏈路, 返回步驟(3b);
[0021] (4)獲得剩余路徑:
[0022] (4a)設(shè)定增廣路徑L的暫時最大流為Zfm。、(T) =Lfm。、(T),選取增廣路徑L的第一 跳鏈路作為當(dāng)前鏈路;
[0023] (4b)根據(jù)當(dāng)前鏈路起始節(jié)點的存儲傳遞序列,計算增廣路徑L的暫時最大流 Zfmax(T)與當(dāng)前鏈路的容量時間序列Cu,V(T)之間所允許的可行流fu,V(T);
[0024](4c)更新增廣路徑L的暫時最大流Zfm。, (T) =f。,,(T),依據(jù)可行流fu,y(T)計算當(dāng) 前鏈路W及與當(dāng)前鏈路反方向的鏈路的剩余鏈路容量時間序列;
[00巧](4d)判斷當(dāng)前鏈路是否為增廣路徑L的最后一跳鏈路:若是,則執(zhí)行步驟巧),否 貝1J,選擇此鏈路的后一跳鏈路作為當(dāng)前鏈路,返回步驟(4b);
[00%] (5)將每次計算出的增廣路徑L最大流Lfmgy(T)進行累加,累加的結(jié)果作為網(wǎng)絡(luò)當(dāng) 前的最大流Wf^^OO,返回步驟(2b);
[0027] (6)結(jié)束循環(huán),輸出網(wǎng)絡(luò)的最大流fmax燈)=Wfmax燈)。
[0028] 本發(fā)明為時間聚合圖中的所有節(jié)點提供了一個存儲傳遞序列,基于存儲傳遞序列 設(shè)計了節(jié)點的存儲策略,改善了鏈路中不同時段之間的聯(lián)系,從而解決了時間聚合圖中因 選路先后順序而帶來的最大流問題,有效的提高了網(wǎng)絡(luò)的吞吐能力。
【附圖說明】
[0029] 圖1是本發(fā)明的實現(xiàn)流程圖;
[0030] 圖2是本發(fā)明使用的時間聚合圖模型示意圖;
[0031] 圖3是本發(fā)明的實施例圖。
【具體實施方式】
[0032] 下面結(jié)合附圖對本發(fā)明做進一步的描述。
[0033] 參照圖1、圖2、圖3,本發(fā)明的實現(xiàn)步驟如下:
[0034]步驟1,標(biāo)記時間聚合圖。
[0035] 時間聚合圖是由若干節(jié)點和多條有向的邊所構(gòu)成的一種圖形,其每條邊標(biāo)記一 個容量時間序列C(T) =(Cl,...,Ct,...,Cm),每個節(jié)點設(shè)置一個存儲傳遞序列N(T)= (rii,. . .,rit,. . .,r〇,其中T是指給定的時間范圍,Ct是指與該邊相對應(yīng)的網(wǎng)絡(luò)鏈路在第t 個時間段內(nèi)的網(wǎng)絡(luò)鏈路總?cè)萘浚琻t是指該節(jié)點從第t-1個時間段向第t個時間段儲存的數(shù) 據(jù)量,1《t《m,m是指在給定的時間范圍T內(nèi)W單位時間為間隔分割的時間段。
[0036] 如附圖2所示,本實施例的時間聚合圖中有4個節(jié)點化A,B,D)和多條連接相鄰 節(jié)點的