像童話一樣學習OSPF原理

可以把整個網絡(一個自治系統AS)看成一個王國,這個王國可以分成幾個 區(area),現在我們來看看區域內的某一個人(你所在的機器root)是怎樣得到一張 世界地圖(routing table)的。
  首先,你得跟你周圍的人(同一網段如129.102)建立基本聯繫。你大叫一聲 “我在這!”(發HELLO報文),於是,周圍的人知道你的存在,他們也會大叫,這樣 你知道周圍大概有哪些人,你與他們之間建立了鄰居(neighbor)關係,當然,他們 之間也有鄰居關係。
  在你們這一羣人中,最有威望(Priority優先級)的人會被推薦爲首領( Designated Router)首領與你之間是上下級關係(adjacency鄰接),它會與你建立 單線聯繫,而不許你與其它鄰居有過多交往,他會說:“那樣做的話,街上太擠了 ”。
  你只好通過首領來知道更多的消息了,首先,你們互通消息,他告訴你他知 道的所有地圖的地名,你也會告訴他你現知道的地名,當然上也許只有你一個點。 (Database Deion數據庫描述報文)
  你發現地名錶中有你缺少的或比你新的東西,你會問他要一份更詳細的資料 ,他發現你的地名錶中有他需要的東西,他也會向你索求新資料。(Link State Request連接狀態請求報文)
  當然,你們毫不猶豫地將一份詳細資料發送給對方。(Link State Update連 接狀態升級報文)
  收到地圖後,互相致謝表示收到了。(Link State Ack連接狀態響應報文)
  現在,你已經盡你所能得到一份地圖(Link State DataBase連接狀態數據庫 ),你去查找地圖把到所有地方的路挑一條最近(shortest path最短路)的,記 爲一張表格(routing table路由表),當然以後查這份表格就知道到目的地的一 條最近的路了。地圖也要收好,萬一表格上的某條路不通了可以通過圖去找一條新 的路。
  其實跟你有聯繫的,只是周圍一羣人,外面的消息要通過首領來知道。因爲 你的地圖是跟首領的一致,我們假設你是首領,你要去畫一份世界地圖。
  你命令所有手下向你通報消息,你可以知道你這一羣人的任何一點點小動靜 (event事件)。你手下還會有同時屬於兩羣人的傢伙(同一區內兩網段),他會 告訴你另一羣人的地圖,當然也會把你們這一羣人的地圖泄露,(不過,無所謂啦 )。這樣,整個區的地圖你知道了(對於不知道的那也沒辦法,我們盡力了)。
  通過不停地交換地圖,現在,整個區的人都有同樣的地圖了,住在區邊境上 的人義不容辭地把這個區的地圖(精確到每一羣人)發送到別的區,把別的區信息 發送進來。國王會把這些邊境的人命名爲骨幹(backbone area)。通過骨幹人士 的不懈努力,現在,整個國家的地圖你都瞭解得一清二楚了。
  有些人“裏通外國”(AS Boundary Router自治系統邊界路由器) ,他們知 道一些“出國”(AS External route自治系統外部路由)的路,當然他們會把這些 祕密公之與衆(import 引入),通過信息的傳遞,現在,你已經有一張完整的“ 世界地圖”了。
  OSPF是這樣標記最短的路的:對於某個目的地,首先,考慮是否有同一區內 部到目的地的路(intra area區域內),如果有,則在其中取一條離你最近的(花 費最小),寫進你的表格中,這個目的地可能是到本羣體某個人也可能是到其他羣 體的,對於經過其他區域的路由,你會不予考慮,跟自己人(同區域)打交道總比 與外人(其他區域)打交道好;如果沒有本區的路,你只好通過別的區域了(區域 間),你只要在地圖上找最近的就是了;如果你發現目的地在國外,你也只能先把 它標記到你的表格上,期待什麼時候王國擴張到那,你就可以把它標記到國內地圖 上了。
  OSPF就是這樣,給你一份“世界地圖”,並且在上面標記了最短的路,如此 而已罷了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章