計算機網絡-網絡層(4)路由選擇算法


主機通常直接與一台路由器相連接,該路由器即為該主機的默認路由器(defaultrouter) ,又稱該主機的第一跳路由器(first-hop router)每當主機發送一個分組時,該分組被傳送給它的默認路由器。
源主機的默認路由器稱作源路由器(sourcerouter) ,目的主機的默認路由器稱作目的路由器(destination router)。
一個分組從源主機到目的主機的路由選擇問題顯然可歸結為從源路由器到目的路由器的路由選擇問題。
 
路由選擇算法可分為:
  • 全局式路由選擇算法:所有路由器掌握完整的網絡拓撲和鏈路費用信息,例如鏈路狀態(LS)路由算法
  • 分散式路由選擇算法;路由器只掌握物理相連的鄰居以及鏈路費用,例如距離向量(DV)路由算法
又可以分為:
  • 靜態路由算法:手工配置、路由更新慢、優先級高
  • 動態路由算法:路由更新快、定期更新、及時響應鏈路費用或網絡拓撲變化
還可以分為:
  • 負載敏感算法:鏈路費用會動態地變化以反映出底層鏈路的當前擁塞水平。如果當前擁塞的一條鏈路與高費用相聯系,則路由選擇算法趨向繞開該擁塞鏈路來選擇路由。
  • 負載遲鈍算法:當今的因特網路由選擇算法(如RIP 、OSPF和BGP) 都是負載遲鈍的,因為某條鏈路的費用不明顯地反映其當前/最近的擁塞水平。
 
鏈路狀態路由選擇算法可以用Dijksua算法實現。
Dijksua算法詳見https://www.cnblogs.com/yangyuliufeng/p/9287511.html
所有結點(路由器)通過鏈路狀態廣播掌握網絡拓撲和鏈路費用,擁有相同信息,只計算自己的轉發表
計算從一個源結點到達所有其他結點的最短路徑,經過k次迭代后,得到到達k個目的結點的最短路徑
假設鏈路費用是該鏈路承載的通信量,則存在震盪(oscillations)可能:
距離向量路由選擇算法可以用Bellman-Ford方程dx(y) = min {c(x,v) + dv(y)}實現。
Bellman-Ford算法詳見https://www.cnblogs.com/yangyuliufeng/p/9287527.html
每個結點當DV變化時將自身DV估計通告給鄰居;鄰居在必要時(其DV更新后發生改變)才通告它們的鄰居
當結點檢測到本地鏈路費用改變或者接收到來自鄰居的新DV估計更新時,即依據B-F方程更新自身的距離向量估計
Dx(y) ← minv{c(x,v) + Dv(y)} for each node y ε N
Dx(y)將最終收斂於實際的最小費用dx(y)
當鏈路費用變化時:
  • 鏈路費用變小,消息傳遞快
(1)y檢測到鏈路費用改變 ,更新DV,通告其鄰居.
(2)z收到y的DV更新,更新其距離向量表,計算到達x的最新最小費用,更新其DV,並發送給其所有鄰居.
(3)y收到z的DV更新,更新其距離向量表,重新計算y的DV未發生改變,不再向z發送DV
  • 鏈路費用增加,消息傳遞慢,還會產生無窮計數問題
毒性逆轉(poisoned reverse):如果一個結點Z到達某目的X的最小費用路徑是通過某個鄰居Y,則Z告知鄰居結點Y到達該目的X的距離為無窮大。使用毒性逆轉前后的消息傳遞過程如圖所示:
 
涉及3個或更多結點(而不只是兩個直接相連的鄰居結點)的環路將無法用毒性逆轉技術檢測到。
可以定義最大度量(maximum metric):一個最大的有效費用值,如16跳步表示費用為∞
 
LS算法和DV算法的比較:
  • 報文復雜性
LS 算法要求每個結點都知道網絡中每條鏈路的費用,要發送O(|N|*|E|)個報文。而且無論何時一條鏈路的費用改變時,必
須向所有結點發送新的鏈路費用。
DV算法要求在每次迭代時,在兩個直接相連鄰居之間交換報文。當鏈路費用改變時,DV 算法僅當在新的鏈路費用導致與該鏈路相連結點的最低費用路徑發生改變時,才傳播已改變的鏈路費用。
  • 收斂速度
LS算法的實現是一個要求O(|N|*|E|)個報文的O(|N|^2)算法。
DV 算法收斂較慢,且在收斂時會遇到路由選擇環路,還會遭遇無窮計數的問題。
  • 健壯性。
如果一台路由器發生故障、行為錯亂或受到破壞時
LS算法:路由器能夠向其連接的一條鏈路廣播不正確費用。作為LS廣播的一部分,一個結點也可損壞或丟棄它收到的任何LS廣播分組。但是每個LS結點都僅計算自己的轉發表。因此路由計算在某種程度上是分離的,提供了一定程度的健壯性。
DV算法:一個結點可向任意或所有目的結點通告其不正確的最低費用路徑。因此一個不正確的結點計算值會擴散到整個網絡。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM