本發(fā)明屬于通信
技術(shù)領(lǐng)域:
,特別涉及一種路由方法,可用于負(fù)載感知緩存受限斷續(xù)連通的衛(wèi)星網(wǎng)絡(luò)。
背景技術(shù):
:衛(wèi)星網(wǎng)絡(luò)具有覆蓋范圍廣、不受地理?xiàng)l件限制等先天優(yōu)勢(shì),在通信、國(guó)防、導(dǎo)航、測(cè)控、救援等多個(gè)領(lǐng)域發(fā)揮著不可替代的作用。衛(wèi)星網(wǎng)絡(luò)不同于地面網(wǎng)絡(luò),其面臨的挑戰(zhàn)主要有:1)節(jié)點(diǎn)間距離遙遠(yuǎn)導(dǎo)致傳播時(shí)延大且時(shí)變,路徑損耗嚴(yán)重導(dǎo)致誤碼率高,同時(shí)節(jié)點(diǎn)周期性的運(yùn)動(dòng)使得網(wǎng)絡(luò)拓?fù)鋾r(shí)變,衛(wèi)星遮蔽和節(jié)點(diǎn)功率受限導(dǎo)致鏈路頻繁中斷;2)衛(wèi)星通信通過視距傳播,網(wǎng)絡(luò)節(jié)點(diǎn)稀疏,通信機(jī)會(huì)少且衛(wèi)星節(jié)點(diǎn)的存儲(chǔ)空間和星上處理能力均受限。美國(guó)航空航天局NASA提出的時(shí)延容忍網(wǎng)絡(luò)DTN能夠應(yīng)對(duì)空間環(huán)境中時(shí)延、高誤碼率、鏈路頻繁中斷等特點(diǎn),滿足復(fù)雜空間環(huán)境中建立互聯(lián)互通網(wǎng)絡(luò)的要求。DTN架構(gòu)在傳統(tǒng)的TCP/IP五層協(xié)議的傳輸層和應(yīng)用層之間添加Bundle協(xié)議和匯聚層協(xié)議,采用托管-存儲(chǔ)-轉(zhuǎn)發(fā)的機(jī)制保障數(shù)據(jù)的可靠傳輸。衛(wèi)星網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的運(yùn)動(dòng)是周期且確定的,節(jié)點(diǎn)在任意時(shí)刻的位置是確知的。美國(guó)航空航天局NASA針對(duì)節(jié)點(diǎn)運(yùn)動(dòng)的規(guī)律性和確定性提出了接觸圖路由算法CGR,并運(yùn)用在Bundle協(xié)議中。CGR算法依賴全網(wǎng)的接觸計(jì)劃,采用Dijkstra最短路徑算法,根據(jù)Bundle包的最早到達(dá)時(shí)間計(jì)算出最優(yōu)的路由。但是,Bundle協(xié)議沒有采集接觸鏈路的排隊(duì)業(yè)務(wù)負(fù)載的機(jī)制導(dǎo)致CGR算法在計(jì)算最小時(shí)延路由時(shí)未考慮接觸鏈路的排隊(duì)業(yè)務(wù)負(fù)載和衛(wèi)星節(jié)點(diǎn)可用緩存大小的影響。1)衛(wèi)星節(jié)點(diǎn)緩存受限的影響。如附圖2所示,在這個(gè)衛(wèi)星網(wǎng)絡(luò)中,假設(shè)各衛(wèi)星節(jié)點(diǎn)的緩存大小均為70000kB,現(xiàn)需要從源節(jié)點(diǎn)A向目的節(jié)點(diǎn)D傳輸一個(gè)大小為10000kB的Bundle包,根據(jù)CGR算法計(jì)算最小時(shí)延路由,由于未考慮衛(wèi)星節(jié)點(diǎn)可用緩存大小的影響,計(jì)算所得的最小時(shí)延路由為A→B→D,但是由于節(jié)點(diǎn)B緩存受限,路由A→B→D并無(wú)法完成Bundle包的傳輸。2)接觸鏈路的排隊(duì)業(yè)務(wù)負(fù)載的影響。如附圖2所示,在這個(gè)衛(wèi)星網(wǎng)絡(luò)中,需要從源節(jié)點(diǎn)A向目的節(jié)點(diǎn)D傳輸一個(gè)大小為10000kB的Bundle包,根據(jù)CGR算法計(jì)算最小時(shí)延路由計(jì)算所得的最小時(shí)延路由為A→B→D,Bundle包到達(dá)目的節(jié)點(diǎn)D的時(shí)延大小為18秒。若選擇路由A→C→D,Bundle包到達(dá)目的節(jié)點(diǎn)D的時(shí)延為13秒,小于路由A→B→D的時(shí)延,因此CGR算法計(jì)算的路由并不是最優(yōu)的。技術(shù)實(shí)現(xiàn)要素:本發(fā)明目的在于提出一種負(fù)載感知緩存受限斷續(xù)連通的衛(wèi)星網(wǎng)絡(luò)路由方法,以解決在緩存受限斷續(xù)連通的衛(wèi)星網(wǎng)絡(luò)中因接觸鏈路排隊(duì)業(yè)務(wù)負(fù)載與節(jié)點(diǎn)可用緩存大小信息的缺失,而導(dǎo)致無(wú)法準(zhǔn)確找到最小時(shí)延路由的問題,提高數(shù)據(jù)的投遞率,降低數(shù)據(jù)的端到端時(shí)延。為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案如下:(1)初始化:設(shè)置全網(wǎng)節(jié)點(diǎn)路由表中的業(yè)務(wù)排隊(duì)時(shí)延為0,并全網(wǎng)同步預(yù)先生成接觸計(jì)劃;(2)判斷是否收到其他網(wǎng)絡(luò)節(jié)點(diǎn)的路由表更新信息:如果是,則更新路由表,執(zhí)行步驟(3);否則,直接執(zhí)行步驟(3);(3)判斷是否存在需要傳輸?shù)腂undle包:如果是,則執(zhí)行步驟(4);否則,返回步驟(2);(4)判斷接收到的Bundle包是否為轉(zhuǎn)發(fā)包:如果是,則根據(jù)路由表直接轉(zhuǎn)發(fā),返回步驟(2);否則,設(shè)置本節(jié)點(diǎn)為Bundle包的源節(jié)點(diǎn)A,并根據(jù)Bundle包的目的節(jié)點(diǎn)D,Bundle包的大小z及本節(jié)點(diǎn)傳輸Bundle包的時(shí)間Aarr計(jì)算最小時(shí)延路由,執(zhí)行步驟(5)(5)計(jì)算最小時(shí)延路由:(5a)初始化:設(shè)置標(biāo)記節(jié)點(diǎn)集合S為空,待標(biāo)記節(jié)點(diǎn)集合U存儲(chǔ)所有網(wǎng)絡(luò)節(jié)點(diǎn);將節(jié)點(diǎn)A加入標(biāo)記節(jié)點(diǎn)集合S中,并將其從待標(biāo)記節(jié)點(diǎn)集合U中刪除,設(shè)置節(jié)點(diǎn)A為新標(biāo)記節(jié)點(diǎn)X;(5b)計(jì)算新標(biāo)記節(jié)點(diǎn)X到待標(biāo)記節(jié)點(diǎn)集合U中每一個(gè)節(jié)點(diǎn)N的鏈路代價(jià)wXN:(5b1)判斷待標(biāo)記節(jié)點(diǎn)集合U中是否存在未計(jì)算鏈路代價(jià)wXN的節(jié)點(diǎn)N:如果是,則執(zhí)行步驟(5b2);否則,執(zhí)行步驟(5c);(5b2)判斷接觸鏈路XN是否存在:如果不存在,則設(shè)置鏈路代價(jià)wXN為無(wú)窮大,返回步驟(5b1);否則,執(zhí)行步驟(5b3);(5b3)根據(jù)接觸鏈路XN的排隊(duì)業(yè)務(wù)時(shí)延qXN和節(jié)點(diǎn)X接收到Bundle包的時(shí)間Xarr計(jì)算節(jié)點(diǎn)X傳輸Bundle包的開始時(shí)間t;(5b4)根據(jù)節(jié)點(diǎn)X傳輸Bundle包的開始時(shí)間t和Bundle包的大小z計(jì)算鏈路代價(jià)wXN;(5b5)根據(jù)鏈路XN的鏈路代價(jià)wXN判斷節(jié)點(diǎn)N是否緩存受限:如果是,則設(shè)置鏈路XN的鏈路代價(jià)wXN為無(wú)窮大,返回步驟(5b1);否則,直接返回步驟(5b1);(5c)從待標(biāo)記節(jié)點(diǎn)集合U中選擇鏈路代價(jià)wXN最小的節(jié)點(diǎn)N,并將其從待標(biāo)記節(jié)點(diǎn)集合U中刪除,將其加入標(biāo)記節(jié)點(diǎn)集合S中;(5d)判斷節(jié)點(diǎn)N是否為目的節(jié)點(diǎn)D:如果是,則記錄已經(jīng)計(jì)算得到的最小時(shí)延路由,更新最小時(shí)延路由所經(jīng)過的接觸鏈路XN的業(yè)務(wù)排隊(duì)時(shí)延qXN=wXN,更新路由表并重置接觸鏈路XN的鏈路代價(jià)wXN為0,執(zhí)行步驟(6);否則,設(shè)置節(jié)點(diǎn)N為新標(biāo)識(shí)節(jié)點(diǎn)X,節(jié)點(diǎn)X接收到Bundle包的時(shí)間Xarr為wXN,返回步驟(5b);(6)本節(jié)點(diǎn)根據(jù)路由表轉(zhuǎn)發(fā)Bundle包,并向其他節(jié)點(diǎn)發(fā)送更新的路由表,返回步驟(2);本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn):1)本發(fā)明由于引入了負(fù)載感知機(jī)制,使每一個(gè)衛(wèi)星節(jié)點(diǎn)能感知其他節(jié)點(diǎn)接觸鏈路排隊(duì)業(yè)務(wù)時(shí)延的變化,并更新其路由表,保證了全網(wǎng)信息的一致性和完整性。2)本發(fā)明在計(jì)算最小時(shí)延路由時(shí)考慮到了節(jié)點(diǎn)可用緩存大小與接觸鏈路排隊(duì)業(yè)務(wù)的影響,能準(zhǔn)確計(jì)算出最小時(shí)延路由,有效提高了數(shù)據(jù)的投遞率,降低了數(shù)據(jù)的端到端時(shí)延。附圖說明圖1是本發(fā)明的實(shí)現(xiàn)總流程圖;圖2是本發(fā)明使用的衛(wèi)星通信網(wǎng)絡(luò)示意圖。具體實(shí)施方式下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的描述。參照?qǐng)D2,本發(fā)明使用的衛(wèi)星通信網(wǎng)絡(luò)由目的節(jié)點(diǎn)A、中間節(jié)點(diǎn)B、中間節(jié)點(diǎn)C和目的節(jié)點(diǎn)D組成,各個(gè)節(jié)點(diǎn)的原始緩存大小為70000kB,接觸鏈路AB的排隊(duì)業(yè)務(wù)時(shí)延為5,接觸鏈路AC的排隊(duì)業(yè)務(wù)時(shí)延為4,接觸鏈路BC的排隊(duì)業(yè)務(wù)時(shí)延為8,接觸鏈路BD的排隊(duì)業(yè)務(wù)時(shí)延為13,接觸鏈路CD的排隊(duì)業(yè)務(wù)時(shí)延為31。該網(wǎng)絡(luò)的接觸計(jì)劃預(yù)先生成并同步到各個(gè)衛(wèi)星節(jié)點(diǎn),接觸計(jì)劃如表1所示:表1接觸計(jì)劃傳輸節(jié)點(diǎn)接收節(jié)點(diǎn)起始時(shí)間終止時(shí)間傳輸速率AB0680000AC3780000BC51580000BD91380000AC101880000CD111480000BD172080000BC202580000CD303580000參照?qǐng)D1,本發(fā)明的實(shí)現(xiàn)步驟如下:步驟1,網(wǎng)絡(luò)初始化。設(shè)置全網(wǎng)節(jié)點(diǎn)路由表中的業(yè)務(wù)排隊(duì)時(shí)延為0,并全網(wǎng)同步預(yù)先生成接觸計(jì)劃;步驟2,判斷是否收到其他網(wǎng)絡(luò)節(jié)點(diǎn)的路由表更新信息。如果是,則根據(jù)更新的信息更新本節(jié)點(diǎn)路由表,執(zhí)行步驟3;否則,直接執(zhí)行步驟3;步驟3,判斷是否存在需要傳輸?shù)腂undle包。如果是,則執(zhí)行步驟4;否則,返回步驟2;步驟4,判斷接收到的Bundle包是否為轉(zhuǎn)發(fā)包。判斷Bundle包是否來自于匯聚層:如果是,則說明收到的Bundle包是轉(zhuǎn)發(fā)包,直接根據(jù)路由表直接轉(zhuǎn)發(fā),返回步驟2;否則,設(shè)置本節(jié)點(diǎn)為Bundle包的源節(jié)點(diǎn)A,并根據(jù)Bundle包的目的節(jié)點(diǎn)D,Bundle包的大小z及本節(jié)點(diǎn)傳輸Bundle包的時(shí)間Aarr計(jì)算最小時(shí)延路由,執(zhí)行步驟5;步驟5,計(jì)算最小時(shí)延路由。(5a)初始化:設(shè)置標(biāo)記節(jié)點(diǎn)集合S為空,待標(biāo)記節(jié)點(diǎn)集合U存儲(chǔ)所有網(wǎng)絡(luò)節(jié)點(diǎn);將節(jié)點(diǎn)A加入標(biāo)記節(jié)點(diǎn)集合S中,并將其從待標(biāo)記節(jié)點(diǎn)集合U中刪除,設(shè)置節(jié)點(diǎn)A為新標(biāo)記節(jié)點(diǎn)X;(5b)計(jì)算新標(biāo)記節(jié)點(diǎn)X到待標(biāo)記節(jié)點(diǎn)集合U中每一個(gè)節(jié)點(diǎn)N的鏈路代價(jià)wXN:(5b1)判斷待標(biāo)記節(jié)點(diǎn)集合U中是否存在未計(jì)算鏈路代價(jià)wXN的節(jié)點(diǎn)N:如果是,則執(zhí)行步驟(5b2);否則,執(zhí)行步驟(5c);(5b2)判斷接觸鏈路XN是否存在:如果不存在,則設(shè)置鏈路代價(jià)wXN為無(wú)窮大,返回步驟(5b1);否則,執(zhí)行步驟(5b3);(5b3)根據(jù)接觸鏈路XN的排隊(duì)業(yè)務(wù)時(shí)延qXN和節(jié)點(diǎn)X接收到Bundle包的時(shí)間Xarr計(jì)算節(jié)點(diǎn)X傳輸Bundle包的開始時(shí)間t,其計(jì)算公式為:其中,為接觸鏈路XN第m條接觸信息的開始時(shí)間,為接觸鏈路XN第m條接觸信息的終止時(shí)間,為接觸鏈路XN第n條接觸信息的終止時(shí)間,為接觸鏈路XN第n+1條接觸信息的開始時(shí)間,為接觸鏈路XN第n+1條接觸信息的終止時(shí)間。(5b4)根據(jù)節(jié)點(diǎn)X傳輸Bundle包的開始時(shí)間t和Bundle包的大小z計(jì)算鏈路代價(jià)wXN,具體步驟如下:(5b4a)假設(shè)t在接觸鏈路XN的第m條接觸信息的連通時(shí)間段內(nèi),設(shè)置接觸鏈路XN當(dāng)前選擇的接觸信息CXN為接觸信息CXN的開始時(shí)間tst為t;(5b4b)計(jì)算接觸信息CXN的剩余容量R,計(jì)算公式為:其中,vXN(t)為接觸鏈路XN在t時(shí)刻的傳輸速率,ted為接觸信息CXN的終止時(shí)間;(5b4c)判斷R是否小于z:如果是,則更新z=z-R,m=m+1,設(shè)置接觸鏈路XN當(dāng)前選擇的接觸信息CXN為返回步驟(5b4b);否則,執(zhí)行步驟(5b4d);(5b4d)根據(jù)公式wXN=tst+z/vXN計(jì)算鏈路代價(jià)wXN。(5b5)根據(jù)鏈路XN的鏈路代價(jià)wXN判斷節(jié)點(diǎn)N是否緩存受限,具體步驟如下:(5b5a)計(jì)算在時(shí)間wXN時(shí)節(jié)點(diǎn)N每條接觸鏈路NL的排隊(duì)業(yè)務(wù)大小QNL,其計(jì)算公式為:其中,qNL為接觸鏈路NL的排隊(duì)業(yè)務(wù)時(shí)延,vXN(t)為接觸鏈路NL在t時(shí)刻的傳輸速率;(5b5b)計(jì)算在時(shí)間wXN時(shí)節(jié)點(diǎn)N緩存業(yè)務(wù)大小QN,其計(jì)算公式為:其中,節(jié)點(diǎn)集合V為節(jié)點(diǎn)N的鄰居節(jié)點(diǎn)集合,節(jié)點(diǎn)L屬于節(jié)點(diǎn)集合V;(5b5c)判斷QN+z≤BufN是否成立:如果成立,則說明節(jié)點(diǎn)N緩存不受限,直接返回步驟(5b1);否則,說明緩存受限,設(shè)置鏈路XN的鏈路代價(jià)wXN為無(wú)窮大,返回步驟(5b1)。(5c)從待標(biāo)記節(jié)點(diǎn)集合U中選擇鏈路代價(jià)wXN最小的節(jié)點(diǎn)N,并將其從待標(biāo)記節(jié)點(diǎn)集合U中刪除,將其加入標(biāo)記節(jié)點(diǎn)集合S中;(5d)判斷節(jié)點(diǎn)N是否為目的節(jié)點(diǎn)D:如果是,則記錄已經(jīng)計(jì)算得到的最小時(shí)延路由,更新最小時(shí)延路由所經(jīng)過的接觸鏈路XN的業(yè)務(wù)排隊(duì)時(shí)延qXN=wXN,更新路由表并重置接觸鏈路XN的鏈路代價(jià)wXN為0,執(zhí)行步驟(6);否則,設(shè)置節(jié)點(diǎn)N為新標(biāo)識(shí)節(jié)點(diǎn)X,節(jié)點(diǎn)X接收到Bundle包的時(shí)間Xarr為wXN,返回步驟(5b);步驟6,本節(jié)點(diǎn)根據(jù)路由表轉(zhuǎn)發(fā)Bundle包,并向其他節(jié)點(diǎn)發(fā)送更新路由表信息,返回步驟2。以上描述僅是本發(fā)明的一個(gè)具體實(shí)例,顯然對(duì)于本領(lǐng)域的專業(yè)人員來說,在了解了本
發(fā)明內(nèi)容和原理后,都可能在不背離本發(fā)明原理、結(jié)構(gòu)的情況下,進(jìn)行形式和細(xì)節(jié)上的各種修正和改變,但是這些基于本發(fā)明思想的修正和改變?nèi)栽诒景l(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。當(dāng)前第1頁(yè)1 2 3