计算机网络 网络层 RIP协议工作原理路由与交换

网友投稿 1315 2022-11-30

计算机网络 网络层 RIP协议工作原理路由与交换

计算机网络 网络层 RIP协议工作原理路由与交换

工作原理

路由信息协议 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协议,

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Go 函数 函数类型和作为函数返回值
下一篇:使用自定义注解进行restful请求参数的校验方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~