首先簡單說一下什麼是環路

首先有R1 R2 兩台路由器,并且R1 R2之間是RIP路由協定 正常情況下R2有pc 的路由條目,如果PC與R1之間突然斷掉那麼R1就沒有了到PC的路由 但是由于路由的更新機制,30s後R2會洪泛一個應答包裡面包含這條到PC的路由條目迎面來了它帶着路由條目來的,R1一看 你帶東西過來啦 并且很高興的收下 又30S後R1也要發出應答包來告訴大家它所擁有的路由(裡面還是包含到PC的路由,雖然它和PC之間的連接配接已經斷掉了), 這個時候,R2又收到了R1的資料包 一看 嗯你那裡有到PC的路由 我接着儲存 然後30S又過去了 R2又開始。。。。。。直到R2右邊收到了一條要通路“192.168.1.1/24”這台PC的請求,R2肯定會直接丢給R1,而R1一看,不是PC不是在你R2那裡嘛?于是又果斷地丢給R2。R2一看,以為R1開了個玩笑,于是又丢給R1。于是,兩個人就這樣一直互丢着,而且速度越來越快。這還隻是一個包,要是剛好是傳一部電影呢?那成千上萬給資料包,就直接給讓R1和R2丢到崩潰了!這個時候,又因為網線上面跑得基本是都是互丢的資料包,其他正常的程式也不能正常收發包了,要麼卡頓,要麼崩潰。這樣一個大家一起崩潰的情景,則美其名曰“環路”。不過好在,IP包本身有一個叫做“TTL”(Time to live)值的東西,在丢了255次之後,這個包終于被丢棄了
1.水準分割
R1給了R2一條 PC路由,R2就不會再把PC路由給R1,等了240S之後(重新整理計時器),A路由就從R1和R2的路由表上面都消失了
2.最大16跳
RIP的最大跳數為16跳,也就是當metric為16時候,說明該網絡不可達互相踢皮球16次之後,路由不可達
3.路由中毒
R1一旦發現A不見了,于是馬上把A的metric值變成16(RIP最多允許15跳,也就是說,當metric值為16的時候,則說明該路由不可達) 。R2一看,原來A中毒了,于是果斷地把A抛棄了。就這樣,A被R1放棄,然後被R2抛棄,環路也就沒有了。
4.毒性逆轉
在R2得知R1發過來的A路由是一條“中毒路由”的時候,它便把自己化作跳闆,在把“路由A已經中毒了,大家快遠離它”這條資訊,發給它的小夥伴們。讓大家都知道A是不可達的。這樣,大家就很都能很速度的做出反映,及時的把A路由丢出自己的路由表了。
5.抑制計時器
這個算是對路由中毒的“緩刑”。因為它怕A是由于不小心碰了一下接口,松了一下或者其他什麼意外而導緻對R1的失去連接配接。要是快刀斬亂麻地處理掉的話,萬一幾秒鐘後它又恢複 了,那豈不是又要通告一次,麻煩。是以,就幹脆給你180S(抑制計時器)的時間給你等待一下,A要是能夠及時回到R1的懷抱,R1就不會發中毒資訊。則大家的都不知道,也就不會引起整個網絡的動蕩了