工作原理

 路由信息协议 RIP (Routing Information Protocol) 是内部网关协议 IGP 中最先得到广泛使用的协议。

RIP 是一种分布式的、基于距离向量的路由选择协议。

RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。(每一个路由器都要记住到目标网段的距离是多少,到目标距离指的是跳数)

RIP协议工作特点

它每隔30秒就送出自己完整的路由表到所有激活的接口。(不管网络有没有变换,周期性的。将自己所连接的网段和学到的路由信息,通过这些口告诉其他的路由器。如果路由表条数多,那么可能需要发好几个包才能将路由表通告出去,如果条数较少,可能一个数据包就可以发送完毕)

RIP协议选择最佳路径的标准就是跳数,认为到达目标网络经过的路由器最少的路径就是最佳路径。(
不考虑带宽这些,所以该协议适合网络带宽差不多的,没有网络带宽差别特别大的情况)

默认它所允许的最大跳数为15跳,也就是说16跳的距离将被认为是不可达的。(在1小型网络当中运行的特别好)

在小型网络中,RIP会运转良好,但是对于使用慢速WAN连接的大型网络或者安装有大量路由器的网络来说,它的效率就很低了。

“距离”的定义

从一个路由器到直接连接的网络的距离定义为 1。

从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。

RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。

这里的“距离”实际上指的是“最短距离”。

举例说明

192.168.10.0/24网段如何通过RIP协议通告给网络中的其他路由器的。

如果学到到一个网段有两条路径,只保留最佳路径。

假设这些路由器A B C D E都运行了RIP协议,每个路由器上面都运行了RIP协议。

现在以192.168.10.0网段为例,A路由器是如何将这个网段通告各其他路由器的,以及距离是怎么增加的。

A路由器通过s0和s1接口会将192.168.10.0/24这个网段通告出去,因为A路由器直连这个网段,所以距离是0。通过s0接口告诉B路由器,那么通告的适合距离就得加一,那么B就学到到这个网段的距离是1,同时记录了下一跳,即接口s0
2.0.0.1。

B路由器学到了之后,因为也运行了RIP协议,所以每隔30s,通过s1接口通告给c这个路由器了,通告的时候会将距离加上1,那么距离就是2了。最后在c路由器上面就记录了到这个网段需要过两个路由器,以及下一跳的地址。

同理A--->E--->D----C

最后C路由器学到了到192.168.10.0/24这个网段有两条路径可以走,一个路径是3,一个路径是2。

最后只保留一条,距离为3的路径忽略了,只保留最佳路径。

当然到C路由器到其他网段也会被通告出去,每个网段都会通告出去,同理其他A,B等路由器也一样。

RIP 协议的三个特点

仅和相邻路由器交换信息。

交换的信息是当前本路由器所知道的全部信息,即自己的路由表。

按固定的时间间隔交换路由信息,例如,每隔 30
秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息(当链路有变化,就不等30s了,比如某个网段不存在了,会立刻告诉。)

路由表的建立

路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为 0)。它的路由表是空的。

以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。

经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。(最后运行RIP协议的路由器,经过一段时间更新之后,都知道网络当中有多少网段,下一跳给谁)

RIP 协议的收敛 (convergence) 过程较快。“收敛”就是在自治系统中所有的结点都得到正确的路由选择信息的过程。
(网络有变化之后,所有的节点都能够学习到正确路由信息的时间,这叫做收敛,也就是调整路由的时间)

 

距离向量算法

 路由器收到相邻路由器(其地址为 X)的一个 RIP 报文:

(1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。

(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:      

若项目中的目的网络不在路由表中,则把该项目加到路由表中。          

否则              

若下一跳字段给出的路由器地址是同样的,则把收到的项目替换原路由表中的项目。                

否则                    

若收到项目中的距离小于路由表中的距离,则进行更新,         

否则,什么也不做。

(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(表示不可达),并且将到该网段的路由删除。

(4) 返回。

距离向量算法的基础就是 Bellman-Ford 算法(或 Ford-Fulkerson 算法)。

这种算法的要点是这样的: 设X是结点 A 到 B 的最短路径上的一个结点。 若把路径 A→B 拆成两段路径 A→X 和 X→B,则每一段路径 A→X 和
X→B 也都分别是结点 A 到 X 和结点 X 到 B 的最短路径。 

如果没用路由记录就增加,有就更新。 

 【例】路由表更新

 

 

 

RIP2 协议的报文格式

 

 RIP协议用的是UDP协议,

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信