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