s5-14 链路状态路由选择
為什么DV逐漸讓位于LS?
DV
? 站的不高,看得不遠
? 完全相信鄰居
LS
? 想辦法站得高,看更遠
? 多高、多遠?
? 怎么做?
鏈路狀態路由(Link State)
主要思想
發現 它的鄰居節點們,了解它們的網絡地址
設置 到它的每個鄰居的成本度量
構造 一個分組,包含它所了解到的所有信息
發送 這個分組給所有其他的路由器
計算 到每個路由器的最短路徑
發現鄰居節點
? 當一個路由器啟動的時候,在每個點到點的線路發送一個特
別的HELLO分組
設置鏈路成本
為了決定線路的開銷,路由器發送一個特別的 ECHO 分組,
另一端立刻回送一個應答
? 通過測量往返時間(round-trip time) ,發送路由器可以獲得
一個合理的延遲估計值
?為了得到更好的結果,可多次測量,取均值
? 一種常用的選擇
?與鏈路帶寬成反比
構造鏈路狀態分組
鏈路狀態分組構造后被發送給其他的路由器,分組中包含這些信息:
1 發送方的標識(ID of the sender)
2 序列號(sequence number )
3 年齡(age )
4 鄰居列表(list of neighbors )
5 到鄰居的成本/量度(delay to each neighbor )
應該什么時候構造分組?
周期性地構造和發送,或者有特別的事件發生時
構造,比如某條線路或鄰居down掉了
發布鏈路狀態分組
基本算法:
? 每個分組都包含一個序列號,序列號隨著新分組產生而遞增
? 路由器記錄下他看見的所有 (源路由器,序列號)對
當一個的新的分組到達時,路由器根據它的記錄:
?如果該分組是新的,就被從除了來線路外的所有其他線路轉
發出去 ( flooding,泛洪)
?如果是重復分組,即被丟棄(喜新厭舊)
?如果該分組的序列號比對應的源路由器發送的到過此地的分
組的最大序列號還小,則該分組被當作過時的信息而被拒絕
基本算法遇到的問題:
? 序列號回轉,引起新老分組識別混淆
?解決辦法:使用 32-bit 的序列號,即使每秒產生一個分組,也
需要137年才發生號碼回轉
? 如果一臺路由器崩潰,那么他將丟失自己的序列號記錄,如果他
再從0開始,新分組將被當作舊分組被拒絕
? 解決上述的路由器崩潰和序列號損壞的方法是:每個分組的
序列號之后是年齡(age) ,并且每秒鐘年齡減1
? 當年齡為零 ( zero )時,來自該路由器的信息被丟棄
? 通常地,每隔一段時間,如10秒鐘,一個新分組就會到來,
所以,只有路由器down機才可能導致超時( 或者,連續6個
間隔因為丟失,沒有收到新的分組)
一些改進讓基本算法更加健壯:
? 當一個鏈路狀態分組到達某個路由器時,它首先被放到一個保留
區中等待一段時間
? 如果來自相同路由器的另一個分組到達了,這兩個分組的序列號
會被比較:
?如果相等,是重復分組,丟棄
?如果不相等,舊的那個被丟棄
為了防止路由器到路由器的線路發生錯誤,所有的鏈路狀態分組
都要被確認
? 當一條線路空閑的時候,路由器掃描保留區,以便選擇一個分組
或確認,并將其發送出去
計算新的路由路徑
? 一旦一個路由器獲得了全部的鏈路狀態分組就可以構造出全
網絡圖來了(Graph)
? 現在,可以使用最短路徑算法來計算路由器之間的最短路徑
? 計算結果是一棵樹,會形成相應的路由,安裝在路由表中,
引導數據分組的轉發
鏈路狀態路由選擇的基本原理
?發現鄰居
?設置成本
?構造LSA
?分發LSA
?計算
總結
以上是生活随笔為你收集整理的s5-14 链路状态路由选择的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: s5-1 CPU调度
- 下一篇: s5-15 开放的最短路径优先_OSPF