你好,这里是网络技术联盟站。
今天给大家介绍的是动态路由中的RIP协议,如果本文对您有帮助,可以收藏本文哦!
让我们直接开始!
RIP 英文全称:Routing Information Protocol,中文术语:**路由信息协议**,是一种**距离矢量**路由协议,用**跳数**作为路由度量。
RIP 是小型网络中最常用的动态路由协议之一,RIP 通过每 **30 秒**向相邻路由器发送路由表详细信息来**定期**交换拓扑信息,它们以 UDP 数据包的形式发送,源端口号和目标端口号都设置为 **520**。由于最大数据报大小仅为 **504** 字节,因此单个数据包中最多可以宣告 **25** 条路由。这些相邻路由器依次将信息转发给其他路由器,直到它们达到**网络收敛**。RIP 跳数最大限制为 15 跳,超出此范围的任何内容都无法访问,因此,**RIP 不适用于大型复杂网络**。
默认情况下,路由器到其直连网络的跳数为 **0**,从一台路由器到另外一台路由器跳数**加1**,跳数的取值范围为 **0 到 15**的整数,大于等于 16 的跳数为**无穷大**,表示目的网络或主机不可达。
RIP 基于**距离矢量路由算法**,根据到目标网络的跳数计算路由成本,在计算路由成本时**不使用**其他路由指标,例如负载、带宽、延迟。
下面我们用一个例子来直观的感受一下RIP的选路规则:
如上图,R1现在要和R4进行通信,目前有三个链路:
这个时候我们可以很直观的看出每条链路的跳数:
看跳数最好最快的办法就是一条链路就是一跳,如下图:
那么答案毫无悬念:选择**跳数最小**的链路3:
案例1是链路的跳数都不一样,那加入跳数一样的情况,RIP如何选路的呢?
如上图,R1现在要和R4进行通信,目前有两个链路:
这个时候我们可以很直观的看出每条链路的跳数:
上面我们提到过,RIP在计算路由成本时**不使用**其他路由指标,例如负载、带宽、延迟。所以这里起到了负载均衡的作用,网络将同时向两条路由发送数据。
RIP 有三个版本:
RIP v1被称为**有类路由协议**,因为它在路由更新中不发送子网掩码信息。
RIP v2被称为**无类路由协议**,因为它在其路由更新中发送子网掩码信息。
RIP 有四种定时器:
如果直到 **180 秒**没有更新,则目标路由器认为它无效。
路由中难免会出现环路,RIP也不例外,RIP常见的主要有以下防环机制:
水平分割防止向始发路由器通告相同的路由。
这个乍一看是不是很难理解?
我们来举个栗子:
现在有一个小型的网络,三台路由器:R1、R2、R3,R1和R2之间的网段为172.16.1.0/24:
现在R2要将172.16.1.0/24宣告给R3:
R3收到该路由信息后更新其路由表,因为RIP的刷新定时器为30秒,所以30秒后,R3开始将自己的路由表信息广播通告给附近所有的路由器,包括R2:
这样一来,R2和R3就会不停的向对方互发172.16.1.0/24路由协议,形成了一个环路:
水平分割防止这种类型在网络中循环,R3 知道R2 早先广播了网络172.16.1.0/24,因此R3 不会将此更新发送给R2:
这样就避免了环路!
这就是水平分割。
毒性反转,网上八股文讲的太死板了,我这边直接举个栗子:
还是这个拓扑图,假如这个时候172.16.1.0/24网段发生故障,这个时候只有R2知道这个事:
假如R2上配置了毒性反转,那么此时会把172.16.1.0/24的跳数变为16,广播给其他路由器,也就是R3:
R3一看172.16.1.0/24的跳数为16,代表路由不可达,就知道172.16.1.0/24这条路行不通了,但是这还是一条路由信息,随机广播给其他路由器,这样就跟毒性一样传播了,所有的路由器都知道了172.16.1.0/24网络不可达,避免了环路。
这就是毒性反转。
同华为
同思科
RIP是最简单、最古老的距离矢量路由协议之一,AD 值为 **120**,工作在 OSI 模型的**网络层**,RIP 使用端口号 **520**,RIP 对于小型网络非常实用。