專利名稱:Ospf快速恢復(fù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)路由技術(shù)領(lǐng)域,特別涉及一種路由快速恢復(fù)方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)上諸如VoIP、實(shí)時(shí)視頻等服務(wù)的部署,網(wǎng)絡(luò)端到端的性能 越發(fā)地引人關(guān)注,特別是報(bào)文延遲和丟失方面。而研究表明,路由協(xié)議對(duì) 故障事件的反應(yīng)特性,特別是路由收斂時(shí)間,對(duì)網(wǎng)絡(luò)端到端的性能有極大
的影響。因此,如何提高路由協(xié)議處理故障的能力,即自愈能力,成為近 年來(lái)的研究熱點(diǎn)之一。
從網(wǎng)絡(luò)運(yùn)營(yíng)商的角度,更加嚴(yán)格的服務(wù)等級(jí)協(xié)定(SLA, ServiceLevel Agreement)對(duì)域內(nèi)路由協(xié)議的收斂時(shí)間提出了更嚴(yán)苛的要求,而現(xiàn)有的域 內(nèi)路由協(xié)議的自愈能力不能滿足用戶的需求,例如,OSPF ( Open Shortest Path First,開(kāi)放最短路徑優(yōu)先)協(xié)議的路由收斂時(shí)間一般在幾秒到幾十秒 之間。因此,需要一種方法解決上述問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的旨在至少解決上述技術(shù)缺陷之一,特別是解決路由協(xié)議 對(duì)網(wǎng)絡(luò)故障的處理能力差的問(wèn)題。
為了達(dá)到上述目的,本發(fā)明提出一種OSPF快速恢復(fù)方法,包括以下 步驟檢測(cè)故障;生成新的鏈路狀態(tài)公告LSA反映拓樸變化,通過(guò)洪泛的 方式傳播給每個(gè)路由器;所述每個(gè)路由器根據(jù)新的拓樸重新計(jì)算路由。
作為本發(fā)明的 一個(gè)實(shí)施例,所述生成新的鏈路狀態(tài)公告時(shí)引入令牌桶 算法,包括以下步驟計(jì)時(shí)器每隔5秒產(chǎn)生一個(gè)令牌token,最大token數(shù) 為3;如果需要產(chǎn)生LSA時(shí),token數(shù)為0,則延遲請(qǐng)求,直至token數(shù)變 為1,否則,立即產(chǎn)生一個(gè)LSA,并減少token凄t。作為本發(fā)明的 一 個(gè)實(shí)施例,所述每個(gè)路由器根據(jù)新的拓樸重新計(jì)算路
由時(shí)采用令牌桶算法,包括以下步驟路由計(jì)算間隔定時(shí)器每個(gè)5秒產(chǎn)生 一個(gè)token,最大token數(shù)為3;如果需要計(jì)算路由時(shí),token數(shù)為O,則延 遲計(jì)算,直至token數(shù)變?yōu)閘,否則,在最小等待時(shí)間后開(kāi)始計(jì)算。
作為本發(fā)明的一個(gè)實(shí)施例,當(dāng)網(wǎng)絡(luò)中存在鏈路抖動(dòng)時(shí),采用慢恢復(fù)機(jī) 制處理,所述慢恢復(fù)沖幾制采用兩個(gè)計(jì)時(shí)器watch—timer和report—timer進(jìn)行 控制,其中,watch—timer和report—timer的初始值均設(shè)置為0, report—timer 的取值為0、 10、 20、 40、 80、 160、 320、 600秒。
作為本發(fā)明的一個(gè)實(shí)施例,所述慢恢復(fù)機(jī)制包括以下步驟鏈路發(fā)生 故障并恢復(fù)后,在report_timer之后報(bào)告該次恢復(fù),同時(shí)將watch_timer設(shè) 置為600秒;如果在watchjimer超時(shí)之前再次發(fā)生故障,則報(bào)告該故障, 取消watch—timer,同時(shí)將report—timer的取值i殳置為當(dāng)前取ii的下一個(gè); 如果watch—timer超時(shí),則將report—timer重新i殳置為0 。
本發(fā)明通過(guò)調(diào)整OSPF協(xié)議中的計(jì)時(shí)器,使得OSPF協(xié)議能夠在網(wǎng)絡(luò) 穩(wěn)定偶然出現(xiàn)故障的情況下達(dá)到快速收斂,在網(wǎng)絡(luò)不穩(wěn)定的情況下減緩對(duì) 故障的響應(yīng)速度,不消耗過(guò)多的網(wǎng)絡(luò)資源。
本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描 述中將變得明顯和容易理解,其中
圖1為本發(fā)明實(shí)施例的OSPF快速恢復(fù)方法的流程圖; 圖2為本發(fā)明實(shí)施例的網(wǎng)絡(luò)中出現(xiàn)故障的示意圖。
具體實(shí)施例方式
下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其
能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā) 明,而不能解釋為對(duì)本發(fā)明的限制。
本發(fā)明主要在于通過(guò)調(diào)整OSPF協(xié)議中的計(jì)時(shí)器,使得OSPF協(xié)議能
5夠在網(wǎng)絡(luò)穩(wěn)定偶然出現(xiàn)故障的情況下達(dá)到快速收斂,在網(wǎng)絡(luò)不穩(wěn)定的情況 下減緩對(duì)故障的響應(yīng)速度,不消耗過(guò)多的網(wǎng)絡(luò)資源。
如圖1所示,為本發(fā)明實(shí)施例的OSPF快速恢復(fù)方法的流程圖,包括 以下步驟
步驟S101,;險(xiǎn)測(cè)故障。
在本發(fā)明實(shí)施例中,采用IETF中的雙向故障4企測(cè)4支術(shù)(BFD, Bidirectional Failure Detecting )力口快故障才企測(cè)的速度。
步驟S102,生成新的LSA ( Link State Announcement,鏈路狀態(tài)公告) 反映拓樸變化,通過(guò)洪泛的方式將該LSA傳播給每個(gè)路由器。
在原來(lái)的OSPF協(xié)議中,為了控制對(duì)資源的消耗,例如,CPU和網(wǎng)路 帶寬,規(guī)定了兩個(gè)計(jì)時(shí)器MinLSInterval和MinLSArrival 。其中, MinLSInterval為產(chǎn)生type, id和adv—router相同的同一 LSA的兩個(gè)實(shí)例的 最小間隔時(shí)間,設(shè)為5秒;MinLSArrival為其他路由器對(duì)一個(gè)路由器產(chǎn)生 的同一LSA的兩個(gè)實(shí)例^"收的最小間隔時(shí)間,~沒(méi)為1秒。
在本發(fā)明實(shí)施例中,引入令牌桶算法加快路由的收斂,具體地,以 MinLSInterval為例進(jìn)4亍+兌明。
計(jì)時(shí)器每隔5秒產(chǎn)生一個(gè)token,且token數(shù)最大為3。當(dāng)需要產(chǎn)生一 個(gè)LSA時(shí),首先判斷token數(shù)是否為0,如果是,則延遲該請(qǐng)求,直至token 數(shù)變?yōu)?,否則,立即產(chǎn)生一個(gè)LSA,同時(shí)減小token數(shù)。
應(yīng)理解,上述實(shí)施例僅是示意性的實(shí)施例,并不限制本發(fā)明僅能夠通 過(guò)上述實(shí)施例實(shí)現(xiàn),還可通過(guò)除上述方法以外的其他方式實(shí)現(xiàn)。
步驟S103,每個(gè)路由器根據(jù)新的拓樸重新計(jì)算路由。
網(wǎng)絡(luò)中的一個(gè)故障,如路由器故障,可能產(chǎn)生多個(gè)不同的LSA,這些 LSA不一定同時(shí)到達(dá),因此,在本發(fā)明的實(shí)施例中,定義了一個(gè)路由計(jì)算 間隔定時(shí)器,使得路由器在收到第一個(gè)LSA后等待可能的更多的LSA,以 提高效率。所述路由計(jì)算間隔定時(shí)器也采用令牌桶算法,具體地,本發(fā)明 提出的可能的計(jì)算方案如下,當(dāng)然本領(lǐng)域技術(shù)人員還能夠根據(jù)下述方案提 出其他修改或變化,這些修改或變化均應(yīng)包含在本發(fā)明的包含范圍之內(nèi)。
路由計(jì)算間隔定時(shí)器每隔5秒產(chǎn)生一個(gè)token,且token數(shù)最大為3。當(dāng)需要計(jì)算路由時(shí),首先判斷token數(shù)是否為0,如果是,則延遲計(jì)算,直 至token數(shù)變?yōu)閘,否則,在最小等待時(shí)間后開(kāi)始計(jì)算。
作為本發(fā)明的一個(gè)實(shí)施例,網(wǎng)絡(luò)中可能存在鏈路抖動(dòng),即一條鏈路在 很短的時(shí)間內(nèi)反復(fù)出現(xiàn)故障,針對(duì)這種情況,本發(fā)明采用慢恢復(fù)機(jī)制進(jìn)行 處理,即當(dāng)一條鏈路從故障中恢復(fù)后,不立即產(chǎn)生LSA,而是等待一定的 間隔后才產(chǎn)生LSA進(jìn)行通告。具體地,本發(fā)明提出的可能的方案如下,當(dāng) 然本領(lǐng)域技術(shù)人員還能夠根據(jù)下述方案提出其他修改或變化,這些修改或 變化均應(yīng)包含在本發(fā)明的包含范圍之內(nèi)。
定義兩個(gè)計(jì)時(shí)器watch—timer和report—timer進(jìn)行控制,其中report—timer 的取值可為0、 10、 20、 40、 80、 160、 320、 600秒。初始時(shí),將watch—timer 和report—timer的值均設(shè)置為0。
當(dāng)鏈路發(fā)生故障并恢復(fù)后,在report—timer之后報(bào)告該次恢復(fù),同時(shí)將 watch—timer計(jì)時(shí)器設(shè)為600秒。如果在watch—timer超時(shí)之前再次發(fā)生故 障,則報(bào)告該故障,取消watch_timer,同時(shí)將report_timer的取值設(shè)為當(dāng) 前取值的下一個(gè),即如果當(dāng)前取值為0,那么新值為20,如果當(dāng)前取值為 20,那么新值為40,以此類推。如果watch—timer超時(shí),則將report—timer 重新設(shè)置為0。
如圖2所示,為本發(fā)明實(shí)施例的網(wǎng)絡(luò)中出現(xiàn)故障的示意圖。當(dāng)網(wǎng)絡(luò)中 鏈路1和鏈路2同時(shí)出現(xiàn)故障的時(shí)候,在原來(lái)的OSPF協(xié)議中,路由器A 檢測(cè)到第 一 個(gè)故障后可立即生成一 個(gè)LSA報(bào)告該故障,但是隨后當(dāng)它檢測(cè) 到第二個(gè)故障時(shí),由于MinLSInterval計(jì)時(shí)器的限制,它必須要在5秒后才 能報(bào)告該故障;而采用本發(fā)明實(shí)施例的方法后,路由器A能夠立即報(bào)告第 二個(gè)故障。類似地,對(duì)網(wǎng)絡(luò)中的其他路由器而言,在原來(lái)的OSPF協(xié)議中, 它們?cè)谔幚淼谝粋€(gè)LSA后,由于MinLSArrival計(jì)時(shí)器的限制,必須要在1 秒后才能處理第二個(gè)LSA;而采用本發(fā)明實(shí)施例的方法后,它們能夠立即 處理第二個(gè)LSA。這樣,就使得故障信息能夠及時(shí)的在網(wǎng)絡(luò)中傳播。故障 信息的及時(shí)傳播使得一個(gè)路由器能夠在較短的時(shí)間間隔內(nèi)收到兩個(gè)LSA, 然后用一次路由計(jì)算生成新的路由,提高了效率也加快了收斂。并且,即 使一個(gè)路由器提前啟動(dòng)了路由計(jì)算,錯(cuò)過(guò)了第二個(gè)LSA,采用本發(fā)明實(shí)施例的方法后,該路由器也能夠在第一次路由計(jì)算后立即啟動(dòng)第二次路由計(jì) 算,而不需要等待很長(zhǎng)的時(shí)間。
而且,在鏈路不穩(wěn)定的情況下,如鏈路1反復(fù)出現(xiàn)故障時(shí),采用本發(fā)
明實(shí)施例的方法后,路由器A不立即公告鏈路1的恢復(fù)信息,在這段抑制 時(shí)間后,如果鏈路l又出現(xiàn)故障,這時(shí)路由器A就不再需要公告該故障。 這種機(jī)制避免了不必要的路由計(jì)算,提高了路由系統(tǒng)的穩(wěn)定性。
本發(fā)明通過(guò)調(diào)整OSPF協(xié)議中的計(jì)時(shí)器,使得OSPF協(xié)議能夠在網(wǎng)絡(luò) 穩(wěn)定偶然出現(xiàn)故障的情況下達(dá)到快速收斂,在網(wǎng)絡(luò)不穩(wěn)定的情況下減緩對(duì) 故障的響應(yīng)速度,不消耗過(guò)多的網(wǎng)絡(luò)資源。
盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員 而言,可以理解在不脫離本發(fā)明的原理和精神的情況下可以對(duì)這些實(shí)施例 進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由所附權(quán)利要求及其等 同限定。
8
權(quán)利要求
1、一種OSPF快速恢復(fù)方法,其特征在于,包括以下步驟檢測(cè)故障;生成新的鏈路狀態(tài)公告反映拓?fù)渥兓?,通過(guò)洪泛的方式傳播給每個(gè)路由器;所述每個(gè)路由器根據(jù)新的拓?fù)渲匦掠?jì)算路由。
2、 如權(quán)利要求1所述的OSPF快速恢復(fù)方法,其特征在于,所述檢測(cè) 故障采用雙向故障檢測(cè)技術(shù)。
3、 如權(quán)利要求1所述的OSPF快速恢復(fù)方法,其特征在于,所述生成 新的鏈路狀態(tài)公告時(shí)引入令牌桶算法,包括以下步驟計(jì)時(shí)器每隔5秒產(chǎn)生一個(gè)令牌token,最大token數(shù)為3; 如果需要產(chǎn)生LSA時(shí),token數(shù)為0,則延遲請(qǐng)求,直至token數(shù)變?yōu)?1,否則,立即產(chǎn)生一個(gè)LSA,并減少token數(shù)。
4、 如權(quán)利要求1所述的OSPF快速恢復(fù)方法,其特征在于,所述每個(gè) 路由器根據(jù)新的拓樸重新計(jì)算路由時(shí)采用令牌桶算法,包括以下步驟路由計(jì)算間隔定時(shí)器每個(gè)5秒產(chǎn)生一個(gè)token,最大token數(shù)為3; 如果需要計(jì)算路由時(shí),token數(shù)為0,則延遲計(jì)算,直至token數(shù)變?yōu)?, 否則,在最小等待時(shí)間后開(kāi)始計(jì)算。
5、 如權(quán)利要求1所述的OSPF快速恢復(fù)方法,其特征在于,所述最小 等待時(shí)間為lOOrns。
6、 如權(quán)利要求1所述的OSPF快速恢復(fù)方法,其特征在于,還包括 當(dāng)網(wǎng)絡(luò)中存在鏈路抖動(dòng)時(shí),采用慢恢復(fù)機(jī)制。
7、 如權(quán)利要求1所述的OSPF快速恢復(fù)方法,其特征在于,所述慢恢 復(fù)機(jī)制采用兩個(gè)計(jì)時(shí)器watch_timer和report—timer進(jìn)行控制,其中, watch—timer和report—timer的初始l直均"i殳置為0秒,report—timer的取it為 0、 10、 20、 40、 80、 160、 320、 600秒。
8、 如權(quán)利要求1所述的OSPF快速恢復(fù)方法,其特征在于,所述慢恢 復(fù)才幾制包括以下步驟鏈^各發(fā)生故障并恢復(fù)后,在report—timer之后才艮告該次恢復(fù),同時(shí)將 watch_timer設(shè)置為600秒;如果在watch—timer超時(shí)之前再次發(fā)生故障,則報(bào)告該故障,取消 watch_timer,同時(shí)將report—timer的取4直i殳置為當(dāng)前取4直的下一個(gè);如果watch—timer超時(shí),貝'J將report—timer重新i殳置為0 。
全文摘要
本發(fā)明提出一種OSPF快速恢復(fù)方法,包括以下步驟檢測(cè)故障;生成新的鏈路狀態(tài)公告LSA反映拓?fù)渥兓?,通過(guò)洪泛的方式傳播給每個(gè)路由器;每個(gè)路由器根據(jù)新的拓?fù)渲匦掠?jì)算路由。本發(fā)明通過(guò)調(diào)整OSPF協(xié)議中的計(jì)時(shí)器,使得OSPF協(xié)議能夠在網(wǎng)絡(luò)穩(wěn)定偶然出現(xiàn)故障的情況下達(dá)到快速收斂;在網(wǎng)絡(luò)不穩(wěn)定的情況下,能夠減緩對(duì)故障的響應(yīng)速度,不消耗過(guò)多的網(wǎng)絡(luò)資源。
文檔編號(hào)H04L12/26GK101594300SQ20091008676
公開(kāi)日2009年12月2日 申請(qǐng)日期2009年6月29日 優(yōu)先權(quán)日2009年6月29日
發(fā)明者徐明偉, 琦 李, 潘凌濤, 陳文龍 申請(qǐng)人:清華大學(xué)