内部网关协议
内部网关协议RIP
RIP(Routing Information Protocol,路由信息协议)是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。
RIP要求自治系统AS内的每一个路由器都要维护它自己到AS内其他每一个网络的距离记录。这一组距离叫距离向量。
跳数:到达目标网络的距离
- 到达直连网络的距离为1
- 到达非直连网络的距离为所经过的路由器数加1
它有如下的特点:
- 仅和相邻的路由器交换信息
- 路由器交换的信息为自己的路由表
- 按固定的时间间隔交换路由信息
RIP只适用于小型互联网,允许一条路径最多只包含15个路由器,距离为16时消息不可达
下面是一个使用RIP协议更新路由表的一个例子:
在路由器B中的路由表如下:
目的网络 | 距离 | 下一跳路由器 |
N1 | 7 | A |
N2 | 2 | C |
N6 | 8 | F |
N8 | 4 | E |
N9 | 4 | F |
现在B收到从C发来的路由信息如下:
目的网络 | 距离 |
N2 | 4 |
N3 | 8 |
N6 | 4 |
N8 | 3 |
N9 | 5 |
路由表B的更新步骤如下:
- 先将收到的路由表信息的下一跳设置为路由器C:
目的网络 | 距离 | 下一跳路由器 |
N2 | 4 | C |
N3 | 8 | C |
N6 | 4 | C |
N8 | 3 | C |
N9 | 5 | C |
- 将收到的路由表信息全部加1:
目的网络 | 距离 | 下一跳路由器 |
N2 | 5 | C |
N3 | 9 | C |
N6 | 5 | C |
N8 | 4 | C |
N9 | 6 | C |
- 按照规则将信息更新到路由表B中:
- 无新信息,不改变
- 有新的信息,直接添加
- 相同的下一跳,则直接更新
- 不同的下一跳,距离更短则更新距离和下一跳地址,否则不变
因此更新后的路由表如下:
目的网络 | 距离 | 下一跳路由器 |
N1 | 7 | A |
N2 | 5 | C |
N3 | 9 | C |
N6 | 5 | C |
N8 | 4 | E |
N9 | 4 | F |
内部网关协议OSPF
OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表。主要特征:使用分布式的链路状态协议
与RIP不同的地方:
- OSPF使用泛洪法向本自制系统中所有路由器发送信息
- RIP仅仅向自己相邻的几个路由器发送信息
- OSPF发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器都和哪些路由器相邻,以及该链路的度量)
- RIP发送的信息是到所有网络的距离和下一跳路由器
- OSPF只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送信息
- RIP不管网络拓扑有无变化,路由器都要定期交换路由表的信息
OSPF的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表,重要优点就是更新收敛过程快。
OSPF的五种分组类型
- 问候(hello)分组,用来发现和维护邻站的可达性
- 数据库描述(DataBase Description)分组,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
- 链路状态请求(Link State Request)分组,向对方请求发送某些链路状态项目的详细信息
- 链路状态更新(Link State Update)分组,用泛洪法对全网更新链路状态
- 链路确认状态(Link State Acknowledgment)分组,对链路更新分组的确认