我们在这里的距离讲的是节点数量(跳数)
路由表的格式
距离向量 C
C[n]: 从当前节点到目标节点n的距离 向所有邻居通告我到其他节点的距离
收到邻居通告时
对通告中的每一项,如果满足下列条件,就采用该项
- 通告距离比路由表中到目标的距离短 发现了更好的路由
- 路由表中的下一跳就是通告者 发现了更新的路由
否则,丢弃
路由更新原则:更好,更新
问题
无穷计算问题 :好消息反应快 坏消息反应慢 :一个靠邻居“谣言”活着的路由协议
如何解决上述问题?(防环机制)
- 最大跳数
- 水平分割
- 不把某邻居告诉我的事情再告诉给它
- 如果两节点路由已经互相指向 不收敛,直到路由表项超时失效,路由项超时周期通常比通告周期长
- 毒性反转
- 如果某邻居是我到某目的地的下一跳,则我总是告诉该邻居我不能到达相应的节点
- 配置毒性反转后,RouterB在接收到从RouterA发来的路由后,向RouterA发送一个这条路由不可达的消息(将该路由的开销设置为16),这样RouterA就不会再从RouterB学到这条可达路由,因此就可以避免路由环路的产生。
- 触发更新
- 不等更新时钟到来,一旦有变化就立马更新 缺点:鲁棒性差
典型协议 RIP
通告周期: 30s period + random jitter (避免同时通告)
路由项超时周期: route fails (set to 16), 180s
优缺点
优点
实施和维护简单
资源要求低:低CPU /内存开销
缺点
容易出现路由环路
收敛时间慢:定时更新
可扩展性较差,不适用于大规模网络