鏈路狀態路由協議與OSPF

鏈路狀態路由算法(LS算法)

工作原理

  • 每個路由器將自己的鏈路狀態信息洪泛到網絡上的所有路由器。tips:(每個路由器都洪泛會給網絡帶來負擔)
  • 每個路由器最終會知道整個網絡的拓撲結構(LSDB)。
  • 每個路由器使用Dijkstra最短路徑算法計算本路由器到其他路由器的最短路徑,更新路由表。
  • 路由器的鏈路狀態發生變化時會繼續洪泛自身的鏈路狀態信息到其他路由器。
    鏈路與鏈路狀態
    鏈路的本質上是路由器上的一個接口
    鏈路狀態是有關各條鏈路的狀態信息
    在這裏插入圖片描述
    鏈路狀態數據包洪泛
    路由器一旦接收到來自相鄰路由器的LSP,立即將該LSP從除接收該LSP的接口以外的所有接口發出

Dijkstra算法(直接見圖)Dikstra算法

Dijkstra算法分析
算法複雜度:n個節點

  • 每次迭代需要檢查不在N的節點
  • 最差的複雜度:n*(n - 1)/2次比較:O(n^2)
  • 平均的複雜度:O(nlogn)
    路由振盪
  • 假設,link cost = amount of carried traffic(鏈路代價與流量和有關),且鏈路代價的具有方向性,LS算法可能會讓分組一會逆時針轉發,一會順時針轉發,形成振盪。
  • 本質:同時執行最短路徑算法導致路由振盪,可以採用隨機數解決同時問題
OSPF協議

概述

  • Open Shortest Path First,開放式最短路徑優先路由協議
  • 鏈路狀態路由算法,無路由自環
  • 用於AS內部,屬於IGP
  • 使用區域劃分,適用於大規模網絡
  • 支持VLSM和CIDR
  • 使用組播方式發送協議報文
  • 支持驗證
  • OSPF是基於IP的,協議號爲89
  • OSPF是典型的停止等待協議,自身實現了可靠傳輸

路由器標識(Router ID)

  • 用於唯一確定OSPF路由器
  • 一個32位的無符號整數,整個自治系統內唯一
  • 若不手動配置,一般取該路由器的所有接口的IP地址的最大值(loopback地址優先)

OSPF的鏈路代價
一條OSPF鏈路的代價定義爲:10^8/BandWidth
一條OSPF路由的代價爲其經過的所有鏈路代價的總和

OSPF規定的網絡類型

網絡類型 舉例
廣播 以太網
非廣播多路訪問NBMA 幀中繼、X.25
點到點 PPP,HDLC
點到多點 多個點到點鏈路的集合

在這裏插入圖片描述
全連通網絡的處理
選取DR和BDR
DR:指定路由器 (村長)
BDR:備份指定路由器 (副村長)
DR負責通告路由
BDR備份

選取規則
選取優先級最大的
選取router id 最大的

選取方式
投票制和終身制
在這裏插入圖片描述
OSPF的數據包格式

ODPF包類型 描述
Hello (不需要確認) 用戶鄰居路由器之間建立和維護鄰接關係
數據庫描述包DBD 描述每臺OSPF路由器的鏈路狀態數據庫的內容
鏈路狀態請求包LSR 請求鏈路狀態數據庫的部分內容
鏈路狀態更新包LSU 傳送鏈路狀態數據通告LSA給鄰居路由器
鏈路狀態確認包LSAck(不需要確認) 確認鄰居發過來的LSA已經收到

OSPF劃分區域
目的:減少洪泛的範圍
在這裏插入圖片描述
工作方式:

  • 同一個區域內部路由器之間使用鏈路狀態算法,洪泛的範圍限於一個區域內部
  • 不同區域之間的路由通過ABR(區域邊界路由器)負責通告(距離矢量算法)
  • 必須要有骨幹區域(area 0),且所有區域應當和骨幹區域物理上直連,保證不會出現路由環路問題
  • 區域劃分可以和IP地址結合在ABR上通告彙總的路由。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章