什麼是距離向量路由演算法?
距離向量路由演算法還有其他名稱。Bellman-Ford 路由演算法和 Ford-Fulkerson 演算法通常是在研究人員建立它之後(Bellman 1957,以及 Ford 和 Fulkerson,1962)進行分發的。
特點
以下是距離向量路由的特點:
路由器傳送整個自治系統的知識。
資料共享僅與鄰居進行。
資料傳送在固定的、普通的間隔時間內進行,每 30 秒宣告一次。
在這個演算法中,每個路由器都會評估自身與每個可到達目的地的距離。這是透過評估路由器與其所有直接路由鄰居之間的距離,並加上每個鄰居路由器計算的該鄰居與其緊鄰鄰居之間的距離來實現的。
學習此演算法工作原理的三個關鍵點如下:
瞭解整個網路
每個路由器都會發送其關於整個網路的知識。它將其連線到的關於網路的所有知識傳達給其鄰居。
僅路由到鄰居
每個路由器反覆地僅與其具有顯式連線的那些路由器共享其關於網路的知識。它透過其所有部分傳輸其關於完整網路的任何知識。這些資料由每個鄰居路由器獲取和儲存,並且可以升級路由器自己關於網路的資料。
定期共享資訊
在距離向量路由中,每個路由器都會反覆地與其鄰居共享其關於整個網路的知識。例如,30 秒後,每個路由器都會共享其關於其鄰居整個網路的資料。
在此,矩形框表示 LAN。每個矩形框內的數字是 LAN 的網路 ID。這些 LAN 透過路由器連線,由 A、B、C、D、E 等框描述。方形框表示路由器與其鄰居的連線。
路由表建立和更新
此表包含三列,其中包含有關網路 ID、成本和下一跳的資訊。假設每個路由器的原始表為。
路由器 A
網路 ID | 成本 | 下一跳 |
---|---|---|
24 | 1 | B |
23 | 1 | E |
88 | 1 | F |
路由器 B
網路 ID | 成本 | 下一跳 |
---|---|---|
24 | 1 | A |
65 | 1 | C |
路由器 E
網路 ID | 成本 | 下一跳 |
---|---|---|
23 | 1 | A |
18 | 1 | D |
路由器 D
網路 ID | 成本 | 下一跳 |
---|---|---|
18 | 1 | E |
76 | 1 | C |
當 A 可以將其資料包或路由表資訊直接傳送到 B 路由器、E 和 C 時。
類似地,B 可以將其路由表資訊傳送到路由器 A 和 C,依此類推。
當 A 接收器從 B、E 和 F 接收路由表時,它可以更新其表。類似地,B 接收 A 和 C 並更新自身,依此類推,如新表所示。
路由器 A 的新路由表
網路 ID | 成本 | 下一跳 |
---|---|---|
23 | 1 | E |
24 | 1 | B |
88 | 1 | F |
23 | 2 | D |
38 | 2 | C |
路由器 B 的新路由表
網路 ID | 成本 | 下一跳 |
---|---|---|
13 | 2 | A |
24 | 1 | A |
28 | 1 | C |
35 | 2 | C |
38 | 2 | C |
類似地,每個路由器都會更新自身,依此類推。更新演算法檢查路由器首先是否為每個廣告路由的跳數字段新增跳數。路由器應應用以下規則。
如果顯示的目的地不在路由表中,則路由器必須將顯示的資料插入表中。
如果顯示的目的地在路由表中,則可能發生兩種情況。
如果下一跳欄位相似,則路由器必須使用顯示的欄位恢復表的條目。
如果下一跳欄位不相似
如果顯示的跳數小於表中的跳數,則路由器必須使用新的跳數恢復表中的條目。
如果顯示的跳數不大於表中的跳數,則路由器無需執行任何操作。