一:路由信息协议(RIP)
路由信息协议(RIP):是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,是内部网关协议(IGP)中最先得到广泛应用的协议,是应用层协议
(1)RIP规定
- 网络中的每个路由器都要维护从它自身到其他每个目的网络的距离记录(因此这是一组距离,称为距离向量)
- 距离也称跳数(Hop Count),规定从一个路由器到直接连接网络的距离(跳数)为1。而每经过一个路由器,距离(跳数)加1
- RIP认为好的路由就是它通过的路由器的数目少,即优先选择跳数少的路径。
- RIP允许一条路径最多只能包含15个路由器(即最多允许15跳)。因此距离等于16时表示网络不可达。可见RIP只适用于小型互联网。距离向量路由可能会出现环路的情况,规定路径上的最高跳数的目的是为了防止数据报不断循环在环路上,减少网络拥塞的可能性
- RIP默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表(动态维护)
- 在RIP中不支持子网掩码的RIP广播,所以RIP中每个网络的子网掩码必须相同。但在新的RIP2中,支持变长子网掩码和CIDR

(2)RIP特点
- 和谁交换:仅和相邻路由器交换信息
- 交换什么:路由器交换的信息是自己的路由表
- 多久交换:每隔30s交换一次路由信息,然后路由器根据新信息更新路由表。如果超过180s没有收到邻居路由器的通过,则判定邻居消失,并更新自己的路由器
(3)RIP协议报文格式

(4)RIP优缺点
优点
缺点
- RIP限制了网络的规模,它能使用的最大距离为15 (16表示不可达)。
- 路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也越大
- 网络出现故障时,会出现慢收敛现象(即需要较长时间才能将此信息传送到所有路由器),俗称“坏消息传得慢”,使更新过程的收敛时间长

二:距离向量算法
RIP通过距离向量算法来完成路由表的更新:
- 最初,每个路由器只知道与自己直接相连的网络;通过每30秒的RIP广播,相邻两个路由器相互将自己的路由表发给对方
- 于是经过第一次RIP广播,每个路由器就知道了与自己相邻的路由器的路由表(即知道了距离自己跳数为1的网络的路由)
- 同理,经过第二次RIP广播,每个路由器就知道了距离自己跳数为2的网络的路由…
- 因此,经过若干RIP广播后,所有路由器都最终知道了整个IP网络的路由表,成为RIP最终是收敛的
- 通过RIP收敛后,每个路由器到每个目标网络的路由都是距离最短的(即跳数最少,最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由
每个路由表项目都有三个关键数据: <目的网络
N
N
N,距离
d
d
d,下一跳路由器
X
X
X>。对于每个相邻路由器发送过来的RIP报文,执行如下步骤:
①:对地址为
X
X
X的相邻路由器发来的RIP报文,先修改此报文中的所有项目:把“下一跳”字段中的地址都改为
X
X
X,并把所有“距离”字段的值加1
②:对修改后的RIP报文中的每个项目,执行如下步骤:
- 当原来的路由表中没有目的网络
N
N
N时,把该项目添加到路由表中
- 当原来的路由表中有目的网络
N
N
N,且下一跳路由器的地址是
X
X
X时。用收到的项目替换原路由表中的项目
- 当原来的路由表中有目的网络
N
N
N,且下一跳路由器的地址不是
X
X
X时。如果收到的项目中的距离
d
d
d小于路由表中的距离,那么就用收到的项目替换原路由表中的项目;否则什么也不做
③:如果180秒(RIP默认超时时间为180秒)还没有收到相邻路由器的更新路由表,那么把此相邻路由器记为不可达路由器,即把距离设置为16
④:返回
