- 距离矢量路由选择协议一般都是基于贝尔曼福特和福特福克森算法。
- 距离矢量路由协议的名字来源于路由器是以矢量形式更新路由(距离,方向)距离=metric,方向= next-hop-router
- 每台路由器都是从他的直连邻居接受更新,并且将更新发送给自己的邻居。路由器是通过邻居的信息进行路由,因此这种路由方式又被称作为“传言路由(routing by rumor)”
距离矢量路由协议的一些特性
- 定时更新
- 有邻居
- 广播更新
- 全路由表更新
- 路由不可用计时器
n 当一条路由不可用的时候,路由器会将这条路由标记为不可达,并发送更新给全部邻居
n 当这台路由器不可用的时候,他的邻居会等待路由的hold-on timer过期,然后将这条路由标记为不可达,并传递给其他邻居。
- 水平分割
当一条路由从接收端被指向发送端的时候,这条路由叫做反向路由。水平分割是为了防止反向路由,从而防止路由环路的一种机制。
当R1发送路由给R2的时候,这条路由标记的下一条是R1,但是如果没有水平分割的话,R2会默认将路由传递给所有邻居,因此R1会重新收到这条路由,并且其中下一条被标记为R2.
- 无穷计数
因为距离矢量路由协议只是从邻居处接受消息,路由器对网络状况没有了解,因此就有可能造成一条路由在一个环状网络中被无数次传递,到最后这条路由的metric将会变成无穷大
为了防止这种现象发生,距离矢量路由协议定义16跳为不可达。当一条路由被传递16次之后,将会标记为不可达,并从路由表中删除。
- 异步更新
每一个路由器的更新都独立于系统进程,因此不会受到路由器启动的影响。
路由协议会在更新时间差中加入一个随机的偏移量,防止突发更新造成网络拥塞。