深入講解RIP路由協(xié)議的慢收斂
RIP路由協(xié)議的使用,是我們接觸路由協(xié)議當(dāng)中最為常見的。那么這個(gè)協(xié)議,也是眾多路由協(xié)議的根源。為了更好地掌握路由方面的知識,現(xiàn)在我們來遐想一個(gè)基于RIP路由協(xié)議的網(wǎng)絡(luò)拓?fù)洹<偃?,R1直接與網(wǎng)絡(luò)1相連,所以在它的選路表中有一條到該網(wǎng)絡(luò)的距離為1的路由;在周期性的路由廣播中包括了這個(gè)路由.R2從R1處得知了這個(gè)路由,并在自己的選路表中建立了相應(yīng)的路由產(chǎn)工將之以距離值2廣播出去.***R3從R2處得知該路由并以距離值3廣播.
現(xiàn)在假設(shè)R1到網(wǎng)絡(luò)1的連接失效了.那么R1立即更新它的選路表把該路由的距離置為16(無窮大).在下一次廣播時(shí),R1應(yīng)該通告這一信息.但是,除非協(xié)議包含了額外的機(jī)制預(yù)防此類情況,可能有其他的路由器在R1廣播之前就廣播了其路由.可能假設(shè)一個(gè)特殊的情況,即R2正好在R1與網(wǎng)絡(luò)1連接失效后通告其路由.因此,R1就會(huì)收到R2的報(bào)文,并對此使用通常的矢量距離算法:它注意到R2有到達(dá)網(wǎng)絡(luò)1的費(fèi)用更低的路由,計(jì)算出現(xiàn)在到達(dá)網(wǎng)絡(luò)1需要3跳(R2通告的到網(wǎng)絡(luò)1費(fèi)用是2跳,再加上到R2的1跳).然后在選路表中裝入新的通過R2到達(dá)網(wǎng)絡(luò)1的路由.這樣的話,R1和R2中的任一個(gè)收到去網(wǎng)絡(luò)1的數(shù)據(jù)報(bào)之后,就會(huì)把該報(bào)文在兩者之間來回傳輸直到壽命計(jì)時(shí)器超時(shí)溢出.
這兩個(gè)路由器隨后廣播的RIP路由協(xié)議不能迅速解決這個(gè)問題.在下一輪交換選路信息的過程中,R1通告它的選路表中的各個(gè)項(xiàng)目.而R2得知R1到網(wǎng)絡(luò)1的距離是3之后,計(jì)算出該路由新長度4.到第三輪的時(shí)候,R1收到從R2傳來的路由距離增加的信息,把自己的選路表中該路由的距離增到5.如此循環(huán)往復(fù),直至距離值到達(dá)RIP的極限.
慢收斂問題的解決
可以使用分割范圍更新(split horizon update)技術(shù)來解決慢收斂問題.在使用分割范圍技術(shù)時(shí),路由器記錄下收到各路由的接口,而當(dāng)這路由器通告路由時(shí),就不會(huì)把該路由再通過那個(gè)接口送回去.在該例中,路由器R2不會(huì)把它到網(wǎng)絡(luò)1的距離為2的路由再通告給R1,因此一旦R1與網(wǎng)絡(luò)1的連接失效,它就不會(huì)再通告該路由.經(jīng)過幾輪選路更新之后,所有的機(jī)器都會(huì)知道網(wǎng)絡(luò)1是不可達(dá)的.但是分割范圍更新技術(shù)不能解決所有的拓?fù)浣Y(jié)構(gòu)中的問題.
考慮慢收斂問題的另一個(gè)方法是使用信息流的概念.如果路由器通告了到某網(wǎng)絡(luò)的短路由,所有接收路由器迅速地作出安裝該路由的反應(yīng).當(dāng)路由器停止通告某路由,協(xié)議在判斷該路由不可達(dá)之前,要依據(jù)超時(shí)機(jī)制來工作.當(dāng)超時(shí)出現(xiàn)時(shí),路由器尋找替代路由并開始傳播此信息.不幸的是,路由器并不知道這個(gè)替代路由是否要依賴于剛剛消失的路由.因此,通常不應(yīng)迅速地傳播否定的信息.有一條警句或謂一語破的:
好消息傳播得快,壞消息傳播得慢.
解決慢收斂問題的另一個(gè)技術(shù)使用了抑制(hold down)法.抑制法迫使參與協(xié)議工作的路由器,在收到關(guān)于某網(wǎng)絡(luò)不可達(dá)的信息后的一段固定時(shí)間內(nèi),忽略任何關(guān)于該網(wǎng)絡(luò)的路由信息.這段抑制時(shí)間的典型長度是60秒.該技術(shù)的思路是等待足夠的時(shí)間以便確信所有的機(jī)器都收到壞消息,并且不會(huì)錯(cuò)誤地接受內(nèi)容過時(shí)的報(bào)文.需要指出的是,所有參與RIP路由協(xié)議的機(jī)器都要遵循抑制策略,否則仍然會(huì)發(fā)生選路回路現(xiàn)象.抑制技術(shù)的缺點(diǎn)是:如果出現(xiàn)了選路回路,那么在抑制期間內(nèi)這些選路回路仍然會(huì)維持下去.更嚴(yán)重的是,在抑制期間所有不正確的路由也保留下來了,即使是有替代路由的存在.
解決慢收斂問題的***一種技術(shù)就是毒性逆轉(zhuǎn)(poison reverse).當(dāng)一條連接消失后,路由器在若干個(gè)更新周期內(nèi)都有保留該路由,但是在廣播路由時(shí)則規(guī)定該路由的費(fèi)用為無限長.為提高毒性逆轉(zhuǎn)法的效率,它應(yīng)該與觸發(fā)更新(triggered updates)技術(shù)結(jié)合.觸發(fā)更新技術(shù)使得新信息,路由器減少了因?yàn)橄胄藕孟⒍菀壮鲥e(cuò)的時(shí)間.
不幸的是,雖然觸發(fā)更新技術(shù)、毒性逆轉(zhuǎn)技術(shù)、抑制技術(shù)和分割范圍技術(shù)能夠解決一些問題,但它們又帶來了一些新的問題.例如,在許多路由器共享一個(gè)公共網(wǎng)絡(luò)的結(jié)構(gòu)中采用觸發(fā)更新技術(shù)的情況下,一個(gè)廣播就能改變這些路由器的選路表,引發(fā)一輪新的廣播.如果第二輪廣播改變了路由表,它又會(huì)引起更多的廣播.這就產(chǎn)生了廣播雪崩.
使用廣播技術(shù)(這有可能產(chǎn)生選路回路)和使用抑制技術(shù)防止慢收斂問題,可使得RIP在廣域網(wǎng)上的工作效率極低.廣播要耗費(fèi)大量寶貴的帶寬.即便不出現(xiàn)廣播雪崩現(xiàn)象,所有機(jī)器周期性地進(jìn)行廣播也意味著網(wǎng)絡(luò)流量隨著路由器數(shù)目的增加而增加.而可能出現(xiàn)的選路回路在線路容量有限的情況下可能就是致命的問題.當(dāng)兜圈子的分組使得線路的容量飽和后,路由器要交換一些選路報(bào)文來打破這種回路,就變得很困難甚至是不可能的.同樣,在廣域網(wǎng)中,抑制期間可能太長,使得高層協(xié)議使用的定時(shí)器超時(shí)從而中斷連接.盡管有這些熟知的問題,但還是有許多的組織在廣域網(wǎng)上使用RIP作為IGP.