距离向量路由算法要求,每个结点都参与定期交换整个路由表,即把路由表传递给自己与之相连的结点。

首先,当前路由表的组成如下,<目的网络 N,跳数,下一跳地址>

RIP算法执行步骤
  1. 从相邻的X路由器接收发送过来的RIP报文。
  2. 讲该RIP报文的下一条地址改为X,且跳数(距离)加1。
  3. 对每个项目执行如下步骤:
    a.若原路由表没有 RIP 中的目的网络 N,直接添加到原路由表中
    b.若原路由表中有 RIP 中的目的网络 N,但下一跳地址不是 X ,选择跳数少的替换。如果两者跳数一样,则保留原路由表的项。
    c.若原路由表中有 RIP 中的目的网络 N,且下一跳地址是 X,使用收到的项替换
  4. 若超过 180s (RIP 默认 180s)还没有收到相邻路由器的更新路由表,则相邻路由器置为不可达,跳数为 16
实例1

如下,有 B,C 两个路由器的路由表。B,C 为相邻路由器,现在 C 向 B 发送 RIP 报文,求 B 更新后的路由表

B的路由表

目的网络

距离

下一条

N1

7

A

N2

2

C

N6

8

F

N8

4

E

N9

4

D

C 的 RIP 报文中的路由表

目的网络

距离

N2

15

N3

2

N4

8

N8

2

N7

4

解:

1.将RIP报文的下一跳地址改为C且跳数增加1

目的网络

距离

下一跳

N2

16

C

N3

3

C

N4

9

C

N8

3

C

N7

5

C

2.与原路由表(B 的路由表)比较并更新

a. 因为 C 路由表中并无关于 N1,N6 和 N9 的信息,所以原路由表保存不变

b.对于 N2,目的网络一样,下一跳地址一样(同为 C),所以更新跳数为 16

c.对于 N3,因为原路由表中无该项,所以直接添加。N4 和 N7 同理添加

d.对于 N8,目的网络一样,但下一跳不一样,选择距离短(跳数少的添加),所以更新为 C 路由表的信息。

更新后的B路由表

目的网络

距离

下一跳

N1

7

A

N2

16

C

N3

3

C

N4

9

C

N6

8

F

N7

5

C

N8

3

C

N9

4

D