專利名稱::互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及互聯(lián)網(wǎng)
技術(shù)領(lǐng)域:
,尤其是涉及互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法,解決邊界網(wǎng)關(guān)協(xié)議(BorderGatewayProtocol,BGP)的收斂性和穩(wěn)定性問題。
背景技術(shù):
:在互聯(lián)網(wǎng)中,網(wǎng)絡(luò)故障頻繁,而現(xiàn)有的域間路由協(xié)議(BorderGatewayProtocol,BGP)并不能很好地適應(yīng)網(wǎng)絡(luò)故障的解決方案。在現(xiàn)有技術(shù)中,域間路由協(xié)議將經(jīng)歷一個(gè)較長(zhǎng)的無效路由搜索過程,這導(dǎo)致了在互聯(lián)網(wǎng)中發(fā)生大量的數(shù)據(jù)包丟包現(xiàn)象。為了緩解或者解決BGP路由慢收斂問題,現(xiàn)有技術(shù)還提出了很多改進(jìn)的BGP方案。但這些方案由于本身設(shè)計(jì)的缺點(diǎn)并不能有效地提高BGP的性能。例如,RCN和EPIC通過在BGP通告消息中增加路由變化的根源信息加快路由的收斂,但它們的改進(jìn)性能很大程度上依賴于網(wǎng)絡(luò)的拓樸結(jié)構(gòu),而且這些方案并不支持增量部署;CA方案通過檢測(cè)路由通告中的無效路由加快路由收斂,但這個(gè)方案給路由器增加了很大的計(jì)算負(fù)載;GhostFlushing方案通過在通告新路由前撤銷舊路由加快路由收斂,但無法避免路由的無效搜索過程,此外,GhostFlushing還增加了很多BGP通告消息,而且這個(gè)方案會(huì)惡化failover時(shí)的收斂性能。此外,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,新的互聯(lián)網(wǎng)應(yīng)用以及互聯(lián)網(wǎng)用戶數(shù)量的增長(zhǎng)均對(duì)互聯(lián)網(wǎng)網(wǎng)絡(luò)的收斂速度和通信負(fù)荷能力提出了更高的要求,這進(jìn)一步增加了現(xiàn)有的BGP的負(fù)荷問題。
發(fā)明內(nèi)容本發(fā)明的目的是解決上述缺陷之一,特別是解決BGP的路徑搜索時(shí)間長(zhǎng)、路由的傳播時(shí)間長(zhǎng)以及路由策略導(dǎo)致的路由不收斂問題,從而有效提高BGP的性能。為解決上述問題,本發(fā)明一方面提出一種互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法,包括以下步驟接受鄰居通告的路由,并判斷所述通告的路由是否是由于故障引起的,且是否需要撤銷或更改當(dāng)前路由;如果判斷所述通告的路由是由于故障引起的,且需要撤銷或更改當(dāng)前路由,則啟動(dòng)啟發(fā)式域間路由協(xié)議sBGP重新選擇路由;根據(jù)所述sBGP選擇可選的最穩(wěn)定路由作為當(dāng)前路由。作為本發(fā)明的一個(gè)實(shí)施例,根據(jù)所述sBGP選擇可選的最穩(wěn)定路由作為當(dāng)前路由包括判斷當(dāng)前所選的最佳路由的AS路徑是否包含有路由更新中的故障信息AS;如果包含有路由更新中的故障信息AS,則在輸入路由信息庫RIB-IN中選擇存在時(shí)間最長(zhǎng)的路由;判斷所述存在時(shí)間最長(zhǎng)的路由的存在時(shí)間是否大于閾值;如果所述存在時(shí)間最長(zhǎng)的路由的存在時(shí)間是否大于閾值,則進(jìn)一步判斷所述存在時(shí)間最長(zhǎng)的路由是否包含故障鏈路;如果不包含故障鏈路,則將所述存在時(shí)間最長(zhǎng)的路由作為當(dāng)前路由。作為本發(fā)明的一個(gè)實(shí)施例,還包括如果所述存在時(shí)間最長(zhǎng)的路由的存在時(shí)間小于閾值,則從所述RIB-IN中選擇最近通告的路由作為當(dāng)前路由。作為本發(fā)明的一個(gè)實(shí)施例,還包括如果所述存在時(shí)間最長(zhǎng)的路由包含故障鏈5^,則在所述RIB-IN中刪除所述存在時(shí)間最長(zhǎng)的路由,并重新選才奪最穩(wěn)定^各由。作為本發(fā)明的一個(gè)實(shí)施例,所述路由通告中包含有標(biāo)識(shí)路由變化事件源的屬性。作為本發(fā)明的一個(gè)實(shí)施例,在所述RIB-IN中標(biāo)識(shí)每條路由學(xué)習(xí)到的時(shí)間。作為本發(fā)明的一個(gè)實(shí)施例,還包括判斷穩(wěn)定路由選擇計(jì)時(shí)器超時(shí)時(shí)5間內(nèi)路由是否發(fā)生變化;如果穩(wěn)定路由選擇計(jì)時(shí)器超時(shí)時(shí)間內(nèi)路由沒有發(fā)生變化,則選擇傳統(tǒng)的路由選擇算法選擇路由。作為本發(fā)明的一個(gè)實(shí)施例,還包括如果穩(wěn)定路由選擇計(jì)時(shí)器超時(shí)時(shí)間內(nèi)路由發(fā)生了變化,則重啟所述穩(wěn)定路由選擇計(jì)時(shí)器。本發(fā)明提出了一個(gè)穩(wěn)定的域間路由選擇算法sBGP(StableBGP),在本發(fā)明的sBGP中,當(dāng)路由器收到由故障觸發(fā)的^^由通告后,則采用啟發(fā)式的路由選擇算法選擇目前可選的最穩(wěn)定路由作為最佳路由。通過穩(wěn)定路由選擇,路由器可以選擇有效的穩(wěn)定路由,以避免無效的路由搜索以及路由不斷更新引入的路由器處理開銷。通過分析和模擬實(shí)驗(yàn)表明sBGP不僅能夠有效提高BGP的收斂的性能,而且可以減少收斂過程中的通訊開銷。本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中圖1為本發(fā)明實(shí)施例的互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇的決策過程示意圖2為本發(fā)明實(shí)施例的sBGP路由選擇算法;圖3為本發(fā)明實(shí)施例的互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法流程圖。具體實(shí)施例方式下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對(duì)本發(fā)明的限制。本發(fā)明提出的啟發(fā)式BGP路由選擇算法(StableBGP(sBGP))目標(biāo)是本地化處理路由選擇,盡量使路由變化在小范圍內(nèi)發(fā)生,通過選擇穩(wěn)定路由,極大地減少了路由變化次數(shù),提供了路由的穩(wěn)定性。且sBGP選擇穩(wěn)定的路由確保消除了路由收斂過程中無效的路由搜索過程,解決了路由計(jì)算時(shí)間長(zhǎng)的問題。另外,由于路由重計(jì)算僅在所選路由受故障影響的路由器中進(jìn)行,所以路由故障信息將在有限結(jié)點(diǎn)中傳播,解決了路由傳播時(shí)間過程的問題,同時(shí)由于在Adj-RIB-IN中不存在兩個(gè)具有相同穩(wěn)定性的路由,所以sBGP還解決了路由故障以后的不收斂問題。本發(fā)明為了實(shí)現(xiàn)穩(wěn)定路由選擇,sBGP在標(biāo)準(zhǔn)BGP路由通告中增加了一個(gè)屬性以標(biāo)識(shí)路由變化的事件源,并在BGP的Adj-RIB-IN(輸入路由信息庫)中標(biāo)識(shí)每條路由學(xué)習(xí)到的時(shí)間。當(dāng)路由器收到一個(gè)路由通告消息中帶有故障信息,則路由器將啟用sBGP的穩(wěn)定路由選擇算法。本發(fā)明還在sBGP決策過程中增加了額外的兩個(gè)路由選擇,即選擇目前可用路由和選擇運(yùn)行時(shí)間最長(zhǎng)的路由。首先路由器選擇穩(wěn)定路由的第一個(gè)步驟是優(yōu)先選擇目前可用的路由以避免了不必要的路由重計(jì)算過程。如果當(dāng)前所選路由受故障鏈路影響,則sBGP將在Adj-RIB-IN中選擇運(yùn)行時(shí)間最長(zhǎng)的路由最為自己的最佳路由并通告給鄰居,^v而完成穩(wěn)定5^由選^奪過程。如圖l所示,為本發(fā)明實(shí)施例的互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇的決策過程示意圖。首先,本發(fā)明優(yōu)先選擇目前可用的路由作為當(dāng)前路由(步驟1),在本發(fā)明實(shí)施例中,sBGP可通過識(shí)別路由變化的故障源,避免了路由器收到撤銷消息后搜索無效的路由,所以避免了漫長(zhǎng)的路由搜索時(shí)間。并且,sBGP路由器只有在當(dāng)前路由無效的時(shí)候才會(huì)進(jìn)行路由的重新決策,因此sBGP路由器每次聲明出來的路由總是當(dāng)前路由中最穩(wěn)定,有效避免了路由的反復(fù)聲明而引起的路由抑制。類似地,由于sBGP路由器只有在當(dāng)前路由不可用時(shí)進(jìn)行路由重新決策,而決策過程中僅選擇自己可選的最題。另外,在sBGP路由決策步驟2中,如果最少運(yùn)行的路由小于t,則采用新申明的路由。本發(fā)明通過t來進(jìn)行穩(wěn)定路由選擇的判斷。具體算法如圖3所示,本發(fā)明首先選擇路由運(yùn)行時(shí)間最長(zhǎng)的路由,而且該路由的有效時(shí)間超過了t。如果目前所有路由的有效時(shí)間都沒有超過t,則選擇收到的新聲明的路由,這時(shí)候所選擇的路由也是穩(wěn)定的路由。因?yàn)閟BGP有以下的定理:在sBGP中,由于新申明的路由是鄰居路由器采用的最長(zhǎng)時(shí)間的可用路由,所以當(dāng)本地?zé)o可用穩(wěn)定路由時(shí)選擇新申明路由也是一種穩(wěn)定路由的選擇策略;這個(gè)原則也是BGP的穩(wěn)定路由的選擇策略。其中,圖1中的步驟1和步驟2分別是實(shí)現(xiàn)sBGP穩(wěn)定路由選擇的核心,解決了目前BGP路由的問題,在此圖1中的其他步驟不再——描述。具體來說,通過路由決策過程中的這兩個(gè)步驟通過識(shí)別路由變化的故障源以及所有不穩(wěn)定的路由進(jìn)行路由選擇的決策。如圖3所示,為本發(fā)明實(shí)施例的互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法流程圖,包括以下步驟步驟S301,接受鄰居通告的路由,并判斷所述通告的路由是否是由于故障引起的,且是否需要撤銷或更改當(dāng)前路由。如果判斷通告的路由是由于故障引起的,且需要撤銷或更改當(dāng)前路由r*,則啟動(dòng)sBGP重新選擇路由。例如,如果收到一個(gè)帶有故障標(biāo)識(shí)的路由更新,則BGP啟用穩(wěn)定路由選擇算法重新選擇路由。步驟S302,判斷當(dāng)前路由產(chǎn)是否包含故障鏈路,即在本發(fā)明的一個(gè)實(shí)施例中判斷當(dāng)前所選的最佳路由的AS路徑是否包含有路由更新中的故障信息AS。如果當(dāng)前路由1**不包含故障鏈路,則無需重新選擇路由。步驟S303,如果當(dāng)前路由盧包含故障鏈路,即如果當(dāng)前所選的最佳路由的AS路徑包含有路由更新中的故障信息AS,則在RIB-IN(輸入路由信息庫)中選擇存在時(shí)間最長(zhǎng)的路由r。步驟S304,判斷存在時(shí)間最長(zhǎng)的路由r的存在時(shí)間是否大于闊值t。步驟S305,如果存在時(shí)間最長(zhǎng)的路由r的存在時(shí)間是否大于閾值t,則進(jìn)一步判斷存在時(shí)間最長(zhǎng)的路由r是否包含故障鏈路。步驟S306,如果存在時(shí)間最長(zhǎng)的路由r不包含故障鏈路,則將存在時(shí)間最長(zhǎng)的路由r作為當(dāng)前路由。步驟S307,如果存在時(shí)間最長(zhǎng)的路由r的存在時(shí)間小于閾值t,則從RIB-IN中選擇最近通告的路由作為當(dāng)前路由。步驟S308,如果存在時(shí)間最長(zhǎng)的路由r包含故障鏈路,則在RIB-IN中刪除存在時(shí)間最長(zhǎng)的路由r,并重新選擇最穩(wěn)定路由。由于本發(fā)明所提出的sBGP所選擇的是穩(wěn)定路由,因此sBGP極大的減少了路由變化次數(shù)提供了路由的穩(wěn)定性。并且sBGP選銅t、定的路由確保消除了路由收斂過程中無效的路由搜索過程,解決了路由計(jì)算時(shí)間過長(zhǎng)的問題;由于路由重計(jì)算僅在所選路由受故障影響的路由器中進(jìn)行,所以路由故障信息將在有限結(jié)點(diǎn)中傳播,解決了路由傳播時(shí)間過程的問題;由于在Adj-RIB-IN中不存在兩個(gè)具有相同穩(wěn)定性的路由,所以sBGP解決了路由故障以后的不收斂問題。另夕卜,sBGP可能會(huì)選擇一些ISP(InternetServiceProvider,互聯(lián)網(wǎng)服務(wù)提供商)中設(shè)置低優(yōu)先級(jí)的路由。從保證全局路由穩(wěn)定的情況的角度來看,損失ISP的一部分利益是個(gè)4艮好的折衷,特別當(dāng)故障發(fā)生后出現(xiàn)路由不收斂。在sBGP中,本發(fā)明也實(shí)現(xiàn)了恢復(fù)正常路由選擇。在sBGP中,本發(fā)明實(shí)現(xiàn)了穩(wěn)定路由選擇計(jì)時(shí)器,即當(dāng)每個(gè)路由一旦啟用了穩(wěn)定路由選擇,sBGP中將啟用一個(gè)計(jì)時(shí)器。只有當(dāng)路由在計(jì)時(shí)器超時(shí)時(shí)間內(nèi)路由不發(fā)生變化,則當(dāng)計(jì)時(shí)器超時(shí)后,路由器將重新啟用傳統(tǒng)的路由選擇算法。但是,在計(jì)時(shí)器超時(shí)過程中路由發(fā)生了變化,則計(jì)時(shí)器將重新計(jì)時(shí)。由于計(jì)時(shí)器超時(shí)后的路由選擇不會(huì)有漫長(zhǎng)的路由收斂過程,而sBGP的路由重選擇僅發(fā)生在小范圍內(nèi),所以路由的收斂時(shí)間非常短。本發(fā)明所提出的路由穩(wěn)定選擇方案(sBGP)改善BGP路由收斂。首先檢測(cè)算法路由的有效性.只有當(dāng)目前所選路由受故障影響,sBGP才會(huì)重新選擇路由。不同于現(xiàn)有的BGP,sBGP選擇可選的最穩(wěn)定路由最為最佳選路由更新消息數(shù)量。由此可見,本發(fā)明能夠達(dá)到預(yù)期的目的。任何提及"一個(gè)實(shí)施例"、"實(shí)施例"、"示意性實(shí)施例"等意指結(jié)合該實(shí)施例描述的具體構(gòu)件、結(jié)構(gòu)或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例中。在本說明書各處的該示意性表述不一定指的是相同的實(shí)施例。而且,當(dāng)結(jié)合任何實(shí)施例描述具體構(gòu)件、結(jié)構(gòu)或者特點(diǎn)時(shí),所主張的是,結(jié)合其他的9實(shí)施例實(shí)現(xiàn)這樣的構(gòu)件、結(jié)構(gòu)或者特點(diǎn)均落在本領(lǐng)域技術(shù)人員的范圍之內(nèi)。盡管參照本發(fā)明的多個(gè)示意性實(shí)施例對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行了詳細(xì)的描述,但是必須理解,本領(lǐng)域技術(shù)人員可以設(shè)計(jì)出多種其他的改進(jìn)和實(shí)施例,這些改進(jìn)和實(shí)施例將落在本發(fā)明原理的精神和范圍之內(nèi)。具體而言,在前述公開、附圖以及權(quán)利要求的范圍之內(nèi),可以在零部件和/或者從屬組合布局的布置方面作出合理的變型和改進(jìn),而不會(huì)脫離本發(fā)明的精神。除了零部件和/或布局方面的變型和改進(jìn),其范圍由所附權(quán)利要求及其等同物限定。權(quán)利要求1、一種互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法,其特征在于,包括以下步驟接受鄰居通告的路由,并判斷所述通告的路由是否是由于故障引起的,且是否需要撤銷或更改當(dāng)前路由;如果判斷所述通告的路由是由于故障引起的,且需要撤銷或更改當(dāng)前路由,則啟動(dòng)啟發(fā)式域間路由協(xié)議sBGP重新選擇路由;根據(jù)所述sBGP選擇可選的最穩(wěn)定路由作為當(dāng)前路由。2、如權(quán)利要求1所述的互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法,其特征在于,根據(jù)所述sBGP選擇可選的最穩(wěn)定路由作為當(dāng)前路由包括判斷當(dāng)前所選的最佳路由的AS路徑是否包含有路由更新中的故障信息AS;如果包含有路由更新中的故障信息AS,則在輸入路由信息庫RIB-IN中選擇存在時(shí)間最長(zhǎng)的路由;判斷所述存在時(shí)間最長(zhǎng)的路由的存在時(shí)間是否大于閾值;如果所述存在時(shí)間最長(zhǎng)的路由的存在時(shí)間是否大于閾值,則進(jìn)一步判斷所述存在時(shí)間最長(zhǎng)的路由是否包含故障鏈路;如果不包含故障鏈路,則將所述存在時(shí)間最長(zhǎng)的路由作為當(dāng)前路由。3、如權(quán)利要求2所述的互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法,其特征在于,還包括如果所述存在時(shí)間最長(zhǎng)的路由的存在時(shí)間小于閾值,則從所述RIB-IN中選擇最近通告的路由作為當(dāng)前路由。4、如權(quán)利要求2所述的互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法,其特征在于,還包括如果所述存在時(shí)間最長(zhǎng)的路由包含故障鏈路,則在所述RIB-IN中刪除所述存在時(shí)間最長(zhǎng)的路由,并重新選擇最穩(wěn)定路由。5、如權(quán)利要求1所述的互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法,其特征在于,所述路由通告中包含有標(biāo)識(shí)路由變化事件源的屬性。6、如權(quán)利要求1所述的互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法,其特征在于,在所述RIB-IN中標(biāo)識(shí)每條^各由學(xué)習(xí)到的時(shí)間。7、如權(quán)利要求1所述的互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法,其特征在于,還包括判斷穩(wěn)定路由選擇計(jì)時(shí)器超時(shí)時(shí)間內(nèi)路由是否發(fā)生變化;如果穩(wěn)定路由選擇計(jì)時(shí)器超時(shí)時(shí)間內(nèi)路由沒有發(fā)生變化,則選擇傳統(tǒng)的路由選擇算法選擇路由。8、如權(quán)利要求7所述的互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法,其特征在于,還包括如果穩(wěn)定路由選擇計(jì)時(shí)器超時(shí)時(shí)間內(nèi)路由發(fā)生了變化,則重啟所述穩(wěn)定路由選擇計(jì)時(shí)器。全文摘要本發(fā)明提供了一種互聯(lián)網(wǎng)路由中的穩(wěn)定路由選擇方法,包括以下步驟接受鄰居通告的路由,并判斷所述通告的路由是否是由于故障引起的,且是否需要撤銷或更改當(dāng)前路由;如果判斷所述通告的路由是由于故障引起的,且需要撤銷或更改當(dāng)前路由,則啟動(dòng)啟發(fā)式域間路由協(xié)議sBGP重新選擇路由;根據(jù)所述sBGP選擇可選的最穩(wěn)定路由作為當(dāng)前路由。在本發(fā)明中,當(dāng)路由器收到由故障觸發(fā)的路由通告后,采用啟發(fā)式的路由選擇算法選擇目前可選的最穩(wěn)定路由作為最佳路由,通過穩(wěn)定路由選擇,路由器可以選擇有效的穩(wěn)定路由,以避免無效的路由搜索以及路由不斷更新引入的路由器處理開銷。文檔編號(hào)H04L12/56GK101651617SQ200910093209公開日2010年2月17日申請(qǐng)日期2009年9月15日優(yōu)先權(quán)日2009年9月15日發(fā)明者徐明偉,琦李,杜德慧,江學(xué)智申請(qǐng)人:清華大學(xué)