我們在這里的距離講的是節點數量(跳數)
路由表的格式
距離向量 C
C[n]: 從當前節點到目標節點n的距離 向所有鄰居通告我到其他節點的距離
收到鄰居通告時
對通告中的每一項,如果滿足下列條件,就采用該項
- 通告距離比路由表中到目標的距離短 發現了更好的路由
- 路由表中的下一跳就是通告者 發現了更新的路由
否則,丟棄
路由更新原則:更好,更新
問題
無窮計算問題 :好消息反應快 壞消息反應慢 :一個靠鄰居“謠言”活着的路由協議
如何解決上述問題?(防環機制)
- 最大跳數
- 水平分割
- 不把某鄰居告訴我的事情再告訴給它
- 如果兩節點路由已經互相指向 不收斂,直到路由表項超時失效,路由項超時周期通常比通告周期長
- 毒性反轉
- 如果某鄰居是我到某目的地的下一跳,則我總是告訴該鄰居我不能到達相應的節點
- 配置毒性反轉后,RouterB在接收到從RouterA發來的路由后,向RouterA發送一個這條路由不可達的消息(將該路由的開銷設置為16),這樣RouterA就不會再從RouterB學到這條可達路由,因此就可以避免路由環路的產生。
- 觸發更新
- 不等更新時鍾到來,一旦有變化就立馬更新 缺點:魯棒性差
典型協議 RIP
通告周期: 30s period + random jitter (避免同時通告)
路由項超時周期: route fails (set to 16), 180s
優缺點
優點
實施和維護簡單
資源要求低:低CPU /內存開銷
缺點
容易出現路由環路
收斂時間慢:定時更新
可擴展性較差,不適用於大規模網絡