高性能路由器中集成IS-IS協(xié)議路由穩定性研究
1 引言 集成IS-IS( Intermediate System to Intermediate System)協(xié)議 [1] 是一種域內路由協(xié)議,通過(guò)與自治系統(AS)內其它路由器交互已知的路由信息,學(xué)習到整個(gè)自治系統的 網(wǎng)絡(luò ) 拓撲結構;并通過(guò)自治系統邊界的路由器注入的其它自治系統的路由信息,得到整個(gè)Internet的路由信息。IS-IS [2] 所使用的協(xié)議數據包有以下幾種:點(diǎn)到點(diǎn)HELLO包;廣播網(wǎng)HELLO包;鏈路狀態(tài)協(xié)議數據包(LSP);完全序列號協(xié)議數據包(CSNP);部分序列號協(xié)議數據包(PSNP)。HELLO包用于發(fā)現、建立和維護鄰居關(guān)系,LSP、CSNP、PSNP則主要用于鏈路狀態(tài)信息的交換、更新和擴散。 路由軟件的穩定性主要與處理器對協(xié)議報文及時(shí)處理負載和路由抖動(dòng)因素相關(guān),如果處理器對路由信息處理的負載很高,那么將意味著(zhù)網(wǎng)絡(luò )穩定性不夠,在網(wǎng)絡(luò )有突發(fā)流量時(shí)就可能出現問(wèn)題。路由抖動(dòng)則是由于網(wǎng)絡(luò )的不穩定而不斷地進(jìn)行路徑的更替,不僅會(huì )產(chǎn)生過(guò)多的鏈路狀態(tài)包,還增加了SPF 計算 的數量。本文對集成IS-IS的路由穩定性進(jìn)行了深入研究,并提出優(yōu)化改進(jìn)方案。 2 集成IS-IS協(xié)議鏈路狀態(tài)數據包處理 2.1 抑制不穩定鏈路LSP的產(chǎn)生 當IS產(chǎn)生一個(gè)新LSP后,就要向外進(jìn)行擴散,刷新原有的鏈路狀態(tài)通告,這樣就會(huì )在網(wǎng)絡(luò )中引起一序列的數據包收發(fā)過(guò)程以及路由的重新計算。如果這種新LSP的產(chǎn)生過(guò)于頻繁,無(wú)疑會(huì )增加整個(gè)網(wǎng)絡(luò )的傳輸和處理負擔。當IS某個(gè)端口處于不穩定狀態(tài),端口UP/DOWN頻繁時(shí),就會(huì )出現這個(gè)問(wèn)題。一個(gè)較簡(jiǎn)單方法是設定本地LSP最小產(chǎn)生間隔(如30秒),也就是一個(gè)LSP產(chǎn)生之后,下一個(gè)LSP的產(chǎn)生要等待此間隔超時(shí)。如果在此間隔內本地IS狀態(tài)已經(jīng)出現了變化,應產(chǎn)生新LSP通告,那么就設置變化標志,等到間隔超時(shí),再由此標志觸發(fā)新LSP的產(chǎn)生。若在此期間有多次狀態(tài)變化,則在間隔超時(shí)后,IS要對各端口和其它路由信息進(jìn)行檢查,最終的狀態(tài)結果會(huì )包含在新產(chǎn)生的LSP中。 2.2 最大LSP序列號的高效處理 LSP序列號表示了IS產(chǎn)生本地LSP的先后次序,同時(shí)也是比較LSP新舊的重要參數。序列號為4個(gè)字節,協(xié)議要求IS產(chǎn)生LSP序號從1開(kāi)始,順序遞增,直至最大值。當序列號取最大值時(shí),本地IS需要強制復位,重啟后序列號又從1開(kāi)始。為了保證網(wǎng)絡(luò )中原有最大序列號LSP能被所有IS從數據庫中超時(shí)清除,本地IS重啟后要延遲足夠的時(shí)間。如果LSP保持時(shí)間為1200秒,再加上60秒的零生命期,那么本地IS至少要等待1260秒才能重新啟動(dòng)。 對于序列號復位可以采用另一種更為有效的處理方法:當序列號取最大值后,由本地IS主動(dòng)進(jìn)行老化處理,也就是產(chǎn)生一個(gè)新LSP,其序列號為最大值,并且剩余生存期置為0,向所有接口網(wǎng)絡(luò )中擴散。網(wǎng)絡(luò )中其它IS收到此LSP后,按照協(xié)議規定,清除數據庫中帶有最大序列號LSP,只保留該LSP的一個(gè)摘要,同時(shí)啟動(dòng)零生命期。零生命期超時(shí)后,LSP被徹底刪除。這樣本地IS只需等待零生命期超時(shí)稍長(cháng)的時(shí)間,就可以重新起用序列號1來(lái)產(chǎn)生新的LSP。與前一種方式相比,此種方法等待時(shí)間明顯縮短,并且路由軟件還不需復位重啟。 3 集成IS-IS協(xié)議鏈路狀態(tài)數據包交互研究 只要某些IS具有相似的鏈路狀態(tài)數據庫,而又與DIS有所不同,就會(huì )發(fā)生LSP重復廣播現象。當DIS A廣播CSNP時(shí),多個(gè)非DIS路由器都發(fā)現自己與DIS間鏈路狀態(tài)數據庫的差異,同時(shí)發(fā)出LSP更新對方或本地的鏈路狀態(tài)數據庫,形成不必要的重復廣播,這種情況在新啟動(dòng)路由器被選舉成DIS時(shí)更明顯。 為避免或減少這種重復發(fā)生,一種可行處理方法是采用隨機延遲策略。在收到DIS的CSNP包后,非DIS若需響應則應隨機等待一段時(shí)間再發(fā)送 LSP。在此時(shí)間段內,如果有IS廣播了 LSP,其它非DIS接收判別后就不必再作相同的廣播,從而有效地減少了數據包重復發(fā)送。 隨機等待的時(shí)間越長(cháng),多個(gè)IS同時(shí)響應的概率越小,產(chǎn)生重復發(fā)送的可能性就越小,但平均響應時(shí)間會(huì )加長(cháng)。為便于分析,令隨機等待時(shí)間 ,其中k取0到n的一個(gè)隨機整數值(均勻分布), 為一個(gè)時(shí)間常數。P表示不產(chǎn)生重復發(fā)送的概率,T表示平均響應延時(shí)。若處于相同(或近似)狀態(tài)的IS有m個(gè),則P、 T可分別計算如下: 設P為IS在某一特定時(shí)刻產(chǎn)生響應的概率,由于IS在任一時(shí)刻(0, ,2 ,n )響應是概率分布,所以 p=1/(n+1)。 0時(shí)刻有且只有一個(gè)IS首次響應的概率: ; 時(shí)刻有且只有一個(gè)IS首次響應的概率: ; (n-1) 時(shí)刻有且只有一個(gè)IS首次響應的概率: ; n 時(shí)刻有且只有一個(gè)IS首次響應的概率: 任一時(shí)刻有且只有一個(gè)IS首次響應(不產(chǎn)生重復發(fā)送)的概率: 根據上式得出概率P的曲線(xiàn)如圖1所示。 圖1 不產(chǎn)生包重復發(fā)送概率圖 在0時(shí)刻沒(méi)有一個(gè)IS響應的概率 ,至 時(shí)刻沒(méi)有一個(gè)IS響應的概率 ,至 (n-1) 時(shí)刻沒(méi)有一個(gè)IS響應的概率 ,至n 時(shí)刻沒(méi)有一個(gè)IS響應的概率P n =0; 0時(shí)刻有IS響應的概率為1- P 0 , 時(shí)刻有IS首次響應的概率為P 0 - P 1 , (n-1) 時(shí)刻有IS首次響應的概率為P n-2 - P n-1 ,n 時(shí)刻有IS首次響應的概率為P n-1 。 IS平均響應延遲:
本文引用地址:http://dyxdggzs.com/article/202307.htm根據上式可畫(huà)出平均響應延時(shí)T的曲線(xiàn)(縱坐標單位為 )如圖2所示。 圖2 平均響應延時(shí)圖 當處于相同狀態(tài)IS個(gè)數m(m>1)一定時(shí),IS允許等待時(shí)間越長(cháng),避免數據包重復廣播概率越大;當IS允許等待的最長(cháng)時(shí)間一定時(shí),m越大,避免數據包重復廣播概率越小。隨著(zhù)n取值的增大,不出現重復廣播的概率增大,但增大的程度會(huì )逐漸趨緩。當n大到一定程度后,對于避免重復廣播已不會(huì )有太大的改善,如圖1所示,當n取值為m的2倍時(shí),P都達到0.8左右,n值再增大,P變化不明顯。當m數一定時(shí),n越大,平均響應延遲越大;n取值一定時(shí),m越大,平均響應延遲越大。當n取值較大時(shí),平均響應延遲T與n近似成線(xiàn)性關(guān)系,隨著(zhù)n的增加,T將線(xiàn)性增長(cháng)。 通過(guò)以上 計算 分析我們知道,采用隨機延時(shí)等待策略可以有效地減少或避免LAN上重復廣播的出現,但這并不意味著(zhù)允許最大等待時(shí)間越長(cháng)越好。當 值較大時(shí),對減少重復廣播已無(wú)多大改善,相應延遲卻仍按比例增加,響應延遲增加會(huì )影響鏈路狀態(tài)包在 網(wǎng)絡(luò ) 中的同步和擴散,影響協(xié)議性能。因此最大允許等待時(shí)間不宜過(guò)大,小于CSNP發(fā)送周期(10秒),這樣可以保證在下一個(gè)CSNP到來(lái)之前完成本次同步過(guò)程。 4 集成IS-IS協(xié)議LSP重傳問(wèn)題 在點(diǎn)到點(diǎn)鏈路上,IS發(fā)出LSP包后,對方要根據收到LSP更新其數據庫,同時(shí)返回PSNP作為確認,發(fā)送方接收到確認后,才把LSP在此鏈路上的發(fā)送標志SRM清除,否則此LSP會(huì )被再次發(fā)送,直至收到對方的確認。這里存在兩種可能:其一是在未收到確認前,LSP的重復發(fā)送過(guò)于頻繁,其二是若對方出現故障無(wú)法應答,則在鄰接關(guān)系解除之前,LSP可能要多次傳送。在協(xié)議信息流已使網(wǎng)絡(luò )處于擁塞的時(shí)期,主要擁塞原因之一是反復重傳LSP。通過(guò)指數退避算法動(dòng)態(tài)調整LSP的重傳速率,可以減輕網(wǎng)絡(luò )的負載,使網(wǎng)絡(luò )盡早恢復正常。在對方發(fā)生故障情況下,也能減少重傳。R(i)表示第i 次LSP重傳時(shí)的RxmtInterval值。使用如下算法計算:
其中k、R min 和 R max 是常量。
4.1 基于未確認的LSP數量檢測算法 如果路由器發(fā)生控制信息擁塞時(shí),其鄰居并不能顯式知道。但能夠從路由器未被確認的LSP的數量隱式檢測出來(lái)。如果這個(gè)值超過(guò)一定的“最高閾值”,則LSP發(fā)送到該路由器的速率應當使用指數退避算法逐步降低,但不能低于最小速率。如果未確認的LSP的數量降到“最低閾值”,則LSP發(fā)送到該路由器的速率應當使用指數退避算法逐步提高,但不能高于最高速率。算法對于每個(gè)鄰居獨立運用,適用于發(fā)送到鄰居的IS-IS單播的LSP分組。整個(gè)算法描述如下: U(t)=t時(shí)刻到鄰居的未確認LSP數量;H =最高閾值(未確認LSP數量);L =最低閾值(未確認LSP數量);G(t)=t時(shí)刻連續發(fā)送LSP到鄰居的時(shí)隙; F=時(shí)隙增長(cháng)(擁塞情況下)或者降低(擁塞之后)的系數; T=時(shí)隙改變的最短間隔; G min =時(shí)隙最小值;G max =時(shí)隙最大值。下述方程式表明了時(shí)間T后時(shí)隙的改變:
4.2 重傳時(shí)間間隔設置對網(wǎng)絡(luò )的影響 網(wǎng)絡(luò )處于LSP擁塞狀態(tài)下,協(xié)議分組傳輸會(huì )受到影響。如果傳輸延遲超過(guò)了設置的重傳時(shí)間間隔,有可能造成鄰居失效或LSP分組的重傳,實(shí)驗模擬當網(wǎng)絡(luò )發(fā)生LSP擁塞時(shí),重傳時(shí)間間隔參數不同的設置值情況下,網(wǎng)絡(luò )的某一接口在3分鐘內收發(fā)的協(xié)議分組總數,實(shí)驗數據見(jiàn)表1。 表1 實(shí)驗數據表 次數 重傳間隔(秒) 接收協(xié)議分組數量 1 1 552 2 4 144 3 8 75 4 16 46 5 32 31 從表1中接口協(xié)議分組收發(fā)數量可以看出,網(wǎng)絡(luò )發(fā)生LSP擁塞時(shí),適當延長(cháng)重傳時(shí)間間隔參數的值,可以降低網(wǎng)絡(luò )中傳輸協(xié)議分組的數量,使網(wǎng)絡(luò )盡快擺脫LSP擁塞狀態(tài),恢復正常。
5 結論 本文以高性能路由器集成IS-IS協(xié)議的研究為基礎,對集成IS-IS協(xié)議的路由穩定性進(jìn)行了研究并對針對相關(guān)問(wèn)題提出了改進(jìn)方案。本文通過(guò)對協(xié)議包處理流程的優(yōu)化有效地減少了不穩定鏈路上LSP的產(chǎn)生,高效地處理了最大LSP順序號的問(wèn)題,通過(guò)理論分析得出了LSP交互的優(yōu)化方案,利用基于未確認的LSP檢測機制研究了減少LSP重傳的問(wèn)題。
參考 文獻
[1]D. Oran.OSI IS-IS Intra-domain Routing Protocol[S],Request for Comments:1142,1990
[2]R. Callon.Use of OSI IS-IS for Routing in TCP/IP and Dual Environments[S],Request for Comments:1195,1990
[3]Jeff Doyle著(zhù),葛建立,吳建章譯.Routing TCP/IP Volume 1[M].人民郵電出版社,2002
評論