【网络协议】路由信息协议 (RIP)

未经许可,不得转载。

路由信息协议(Routing Information Protocol,简称 RIP)是一种使用跳数(hop count)作为路由度量标准的路由协议,用于确定源网络和目标网络之间的最佳路径。

文章目录

    • 什么是路由信息协议?
    • 什么是跳数(Hop Count)?
    • RIP 的特点
    • RIP 的工作原理
    • RIP 版本的区别
    • 调试命令
    • RIP 配置
      • 配置 R1 的 RIP
      • 配置 R2 的 RIP
      • 配置 R3 的 RIP
    • RIP 的不同计时器类型
    • RIP 的应用场景
    • RIP 的优点
    • RIP 的缺点
    • RIP 的局限性
    • 结论
    • RIP 常见问题解答

什么是路由信息协议?

路由信息协议是一种距离矢量路由协议,帮助路由器确定在网络中传输数据包的最佳路径。RIP 工作于 OSI 模型的网络层,使用跳数作为其度量标准来决定最佳路径。但 RIP 中允许的最大跳数为 15。路由信息协议通常用于中小型网络中。

什么是跳数(Hop Count)?

跳数是指源网络与目标网络之间的路由器数量。跳数最少的路径被认为是到达网络的最佳路径,并会被添加到路由表中。为了防止路由循环,RIP 限制了从源到目标路径中允许的最大跳数。RIP 中最大允许的跳数为 15,而跳数为 16 的网络会被视为不可达。

RIP 的特点

(1)周期性更新网络信息:路由器定期交换网络更新信息。
(2)信息以广播方式发送:所有路由更新信息都以广播形式发送。
(3)发送完整的路由表:更新中包含完整的路由表信息。
(4)基于信任的路由:路由器总是信任从邻居路由器接收到的路由信息,这也被称为“基于传闻的路由”。

RIP 的工作原理

路由信息协议使用距离矢量路由法(Distance Vector Routing)将数据包传输到目标。在 RIP 中,每个路由器维护一个路由表,其中记录了到每个目标的距离信息。路由器每隔 30 秒通过广播将其路由表共享给邻居路由器。当接收到这些数据时,每个路由器根据接收到的信息更新自己的路由表。如果接收到的某条路径比现有路径更短,路由器会直接更新表中的数据。

RIP 的跳数限制为 15,如果某条路径的跳数超过 15,则该路径被视为不可达。此限制有效地限制了路由器所能处理的网络规模。如果某条路由在 6 个周期(180 秒)内未被更新,则 RIP 会将该路由移出路由表并通知网络中的其他路由器。

RIP 版本的区别

RIP 共有三个版本:

  • RIP 版本 1(RIP v1)
  • RIP 版本 2(RIP v2)
  • RIPng

以下是它们的差异:

特性RIP v1RIP v2RIPng
更新方式通过广播发送更新通过组播发送更新通过组播发送更新
广播地址255.255.255.255224.0.0.9FF02::9(RIPng 仅支持 IPv6 网络)
认证支持不支持更新消息认证支持更新消息认证
路由协议类型无类别(Classful)路由协议有类别(Classless)支持发送无类别更新

进一步说明:

  • RIP v1:由于不在路由更新中发送子网掩码信息,RIP v1 被称为无类别路由协议(Classful Routing Protocol)。
  • RIP v2:由于在路由更新中发送子网掩码信息,RIP v2 被称为有类别路由协议(Classless Routing Protocol)。

调试命令

使用调试命令查看详细信息:

# debug ip rip

使用此命令查看路由器中配置的所有路由,例如针对路由器 R1:

R1# show ip route

使用此命令查看路由器中配置的所有协议,例如针对路由器 R1:

R1# show ip protocols

RIP 配置

考虑以下拓扑,其中包含三个路由器 R1、R2 和 R3:
R1

  • s0/0/1 接口的 IP 地址为 172.16.10.6/30
  • fa0/0 接口的 IP 地址为 192.168.20.1/24

R2

  • s0/0/0 接口的 IP 地址为 172.16.10.2/30
  • fa0/0 接口的 IP 地址为 192.168.10.1/24

R3

  • s0/1 接口的 IP 地址为 172.16.10.5/30
  • s0/0 接口的 IP 地址为 172.16.10.1/30
  • fa0/0 接口的 IP 地址为 10.10.10.1/24

在这里插入图片描述

配置 R1 的 RIP

R1(config)# router rip
R1(config-router)# network 192.168.20.0
R1(config-router)# network 172.16.10.4
R1(config-router)# version 2
R1(config-router)# no auto-summary

注意no auto-summary 命令禁用了自动汇总功能。如果没有选择任何自动汇总,则在 RIP 版本 1 中,子网掩码将被视为有类的。

配置 R2 的 RIP

R2(config)# router rip
R2(config-router)# network 192.168.10.0
R2(config-router)# network 172.16.10.0
R2(config-router)# version 2
R2(config-router)# no auto-summary

配置 R3 的 RIP

R3(config)# router rip
R3(config-router)# network 10.10.10.0
R3(config-router)# network 172.16.10.4
R3(config-router)# network 172.16.10.0
R3(config-router)# version 2
R3(config-router)# no auto-summary

RIP 的不同计时器类型

1.更新计时器(Update Timer)
默认情况下,运行 RIP 的路由器每 30 秒交换一次路由信息。使用更新计时器,路由器会定期交换它们的路由表。

2.无效计时器(Invalid Timer)
如果在 180 秒内没有收到更新,则目标路由器将该路由视为无效。在这种情况下,目标路由器将该路由的跳数标记为 16。

3.保持计时器(Hold Down Timer)
这是路由器等待邻居路由器响应的时间。如果路由器在给定时间内无法响应,则其被宣布为不可用。默认值为 180 秒。

4.刷新计时器(Flush Timer)
如果某路由在刷新时间内没有响应,其条目将被删除。默认情况下,此时间为 60 秒。该计时器在路由被宣布无效后启动,总时间为 180 + 60 = 240 秒。

注意:所有这些计时器的时间都是可调的。以下命令用于更改计时器:

R1(config-router)# timers basic
R1(config-router)# timers basic 20 80 80 90

RIP 的应用场景

1.小型到中型网络
RIP 通常用于路由需求较简单的小型到中型网络。它易于配置和维护,是小型组织的流行选择。

2.旧式网络
一些旧式网络仍在使用 RIP,这些网络建立于更高级的路由协议开发之前。由于升级的成本和精力可能不值得,这些网络继续使用 RIP 作为其路由协议。

3.实验室环境
RIP 经常用于实验室环境进行测试和学习。它是一种简单易用的协议,非常适合教学用途。

4.备用或冗余路由
在某些网络中,RIP 可能作为主路由协议的备份或冗余协议使用。如果主协议发生故障或出现问题,RIP 作为备份可以提供支持。虽然效率不如其他路由协议,但在紧急情况下仍然有用。

RIP 的优点

1.简单性
RIP 是一种相对简单的协议,易于配置和管理,非常适合资源有限的小型到中型网络。

2.易于实现
RIP 实现简单,不需要太多技术专长即可设置和维护。

3.快速收敛
RIP 因其快速收敛时间而闻名,这意味着它能快速适应网络拓扑的变化并高效地路由数据包。

4.自动更新
RIP 会定期自动更新路由表,确保使用最新的信息来路由数据包。

5.低带宽开销
RIP 在交换路由信息时使用的带宽相对较低,非常适合带宽有限的网络。

6.兼容性强
RIP 与多种类型的路由器和网络设备兼容,便于集成到现有网络中。

RIP 的缺点

1.扩展性有限
RIP 的扩展性有限,不适合复杂拓扑的大型网络。RIP 的最大跳数为 15,对于较大的网络可能不够用。

2.收敛速度较慢
尽管 RIP 通常收敛较快,但与其他路由协议相比,其收敛速度可能较慢,从而导致网络性能的延迟和低效。

3.路由环路问题
RIP 有时会产生路由环路,从而导致网络拥塞并降低整体网络性能。

4.负载均衡支持有限
RIP 不支持复杂的负载均衡机制,这可能导致路由路径次优和网络流量分布不均。

5.安全漏洞
RIP 没有提供任何本地安全特性,容易受到伪造和篡改等攻击。

6.带宽使用低效
RIP 定期更新需要较多的带宽,这在带宽有限的网络中可能效率较低。

RIP 的局限性

1.网络流量增加
RIP 定期向邻近路由器执行更新,从而增加了网络流量。

2.跳数限制
由于 RIP 的最大跳数为 15,因此不适用于大型网络。

3.最近路径与最短路径的差异
RIP 在计算最短路径时并未考虑所有因素,可能导致最近路径和最短路径之间存在差异。

结论

RIP(路由信息协议)是一种距离矢量路由协议,通过跳数来确定网络中的最佳路径。它简单易用,非常适合小型到中型网络。

然而,RIP 也存在一些局限性,例如其最大跳数为 15,这使得其不适用于更大、更复杂的网络。对于大规模网络,更高级的路由协议(如 OSPF 或 EIGRP)更受欢迎。

RIP 常见问题解答

1.什么是 RIP 中的 Split Horizon?
Split Horizon 是 RIP 中用于防止路由环路的一种技术,确保路由器不会将从某一路由器学到的路由信息再发送回该路由器。

2.RIP 是否支持负载均衡?
是的,RIP 支持负载均衡,当具有相同跳数的多条路径通往同一目的地时,可以在多个路径间分配流量。

3.如何在路由器上配置 RIP?
可通过路由器的命令行界面(CLI)配置 RIP,输入特定命令以启用协议、指定要包含的网络并设置版本和认证选项。

4.什么是 RIP 中的 Route Poisoning?
Route Poisoning 是 RIP 中的一种方法,用于将某条路由标记为不可达,将其跳数设置为 16,从而快速通知其他路由器该路由失效。

原文出处:https://www.geeksforgeeks.org/routing-information-protocol-rip/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/497948.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL5.7.26-Linux-安装(2024.12)

文章目录 1.下载压缩包1.访问MySQL版本归档2.找到5.7.26并下载3.百度网盘 2.Linux安装1.卸载原来的MySQL8.0.26(如果没有则无需在意)1.查看所有mysql的包2.批量卸载3.删除残留文件**配置文件**(默认路径): 4.**验证卸载…

《云原生安全攻防》-- K8s安全配置:CIS安全基准与kube-bench工具

在本节课程中,我们来了解一下K8s集群的安全配置,通过对CIS安全基准和kube-bench工具的介绍,可以快速发现K8s集群中不符合最佳实践的配置项,及时进行修复,从而来提高集群的安全性。 在这个课程中,我们将学习…

Flink源码解析之:如何根据算法生成StreamGraph过程

Flink源码解析之:如何根据算法生成StreamGraph过程 在我们日常编写Flink应用的时候,会首先创建一个StreamExecutionEnvironment.getExecutionEnvironment()对象,在添加一些自定义处理算子后,会调用env.execute来执行定义好的Flin…

RoboMIND:多体现基准 机器人操纵的智能规范数据

我们介绍了 RoboMIND,这是机器人操纵的多体现智能规范数据的基准,包括 4 个实施例、279 个不同任务和 61 个不同对象类别的 55k 真实世界演示轨迹。 工业机器人企业 埃斯顿自动化 | 埃夫特机器人 | 节卡机器人 | 珞石机器人 | 法奥机器人 | 非夕科技 | C…

sentinel集成nacos启动报[check-update] get changed dataId error, code: 403错误排查及解决

整合nacos报403错误 因为平台写的一个限流代码逻辑有问题,所以准备使用sentinel来限流。平台依赖里面已经引入了,之前也测试过,把sentinel关于nacos的配置加上后,启动一直输出403错误 [fixed-10.0.20.188_8848-test] [check-upda…

【Redis】 数据淘汰策略

面试官询问缓存过多而内存有限时内存被占满的处理办法,引出 Redis 数据淘汰策略。 数据淘汰策略与数据过期策略不同, 过期策略针对设置过期时间的 key 删除, 淘汰策略是在内存不够时按规则删除内存数据。 八种数据淘汰策略介绍 no evision&…

【畅购商城】详情页模块之评论

目录 接口 分析 后端实现:JavaBean 后端实现 前端实现 接口 GET http://localhost:10010/web-service/comments/spu/2?current1&size2 { "code": 20000, "message": "查询成功", "data": { "impressions&q…

Kafka高性能设计

高性能设计概述 Kafka高性能是多方面协同的结果,包括集群架构、分布式存储、ISR数据同步及高效利用磁盘和操作系统特性等。主要体现在消息分区、顺序读写、页缓存、零拷贝、消息压缩和分批发送六个方面。 消息分区 存储不受单台服务器限制,能处理更多数据…

HTML——13.超链接

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>超链接</title></head><body><!--超链接:从一个网页链接到另一个网页--><!--语法&#xff1a;<a href"淘宝网链接的地址"> 淘宝…

LVS 负载均衡原理 | 配置示例

注&#xff1a;本文为 “ LVS 负载均衡原理 | 配置” 相关文章合辑。 部分内容已过时&#xff0c;可以看看原理实现。 使用 LVS 实现负载均衡原理及安装配置详解 posted on 2017-02-12 14:35 肖邦 linux 负载均衡集群是 load balance 集群的简写&#xff0c;翻译成中文就是负…

Docker 快速搭建 GBase 8s数据库服务

1.查看Gbase 8s镜像版本 可以去到docker hub网站搜索&#xff1a;gbase8s liaosnet/gbase8s如果无法访问到该网站&#xff0c;可以通过docker search搜索 docker search gbase8s2.拉取Gbase 8s镜像 以下演示的版本是目前官网最新版本Gbase8sV8.8_3.5.1 docker pull liaosn…

使用Lodash工具库的orderby和sortby进行排序的区别

简介 _.orderBy 和 _.sortBy 是 Lodash 库中用于排序数组的两个函数。 区别 _.orderBy 允许你指定一个或多个属性来排序&#xff0c;并为每个属性指定排序方向&#xff08;升序或降序&#xff09;。默认所有值为升序排&#xff0c;指定为"desc" 降序&#xff0c…

uniapp中Nvue白屏问题 ReferenceError: require is not defined

uniapp控制台输出如下 exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->Uncaught ReferenceError: require is not defined 或者 exception function:createInstanceContext, exception:white s…

STM32-笔记16-定时器中断点灯

一、实验目的 使用定时器 2 进行中断点灯&#xff0c;500ms LED 灯翻转一次。 二&#xff0c;定时器溢出时间计算 Tout&#xff1a;定时器溢出时间 Ft&#xff1a;定时器的时钟源频率 ARR&#xff1a;自动重装载寄存器的值&#xff08;可设置ARR从0开始&#xff0c;但是计数到…

Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码 【AI辅助开发系列】

&#x1f380;&#x1f380;&#x1f380;【AI辅助编程系列】&#x1f380;&#x1f380;&#x1f380; Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码Visual Studio 安装和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 扩展Visual Studio 使用 GitHu…

【数据结构】数据结构整体大纲

数据结构用来干什么的&#xff1f;很简单&#xff0c;存数据用的。 &#xff08;这篇文章仅介绍数据结构的大纲&#xff0c;详细讲解放在后面的每一个章节中&#xff0c;逐个击破&#xff09; 那为什么不直接使用数组、集合来存储呢 ——> 如果有成千上亿条数据呢&#xff…

开放世界目标检测 Grounding DINO

开放世界目标检测 Grounding DINO flyfish Grounding DINO 是一种开创性的开放集对象检测器&#xff0c;它通过结合基于Transformer的检测器DINO与基于文本描述的预训练技术&#xff0c;实现了可以根据人类输入&#xff08;如类别名称或指代表达&#xff09;检测任意对象的功…

webrtc 源码阅读 make_ref_counted模板函数用法

目录 1. 模板参数解析 1.1 typename T 1.2 typename... Args 1.3 typename std::enable_if::value, T>::type* nullptr 2. scoped_refptr 3. new RefCountedObject(std::forward(args)...); 4. 综合说明 5.在webrtc中的用法 5.1 peerConnectionFactory对象的构建过…

RK3566和Robo_C的EMC防护设计细节

USB部分的防护细节&#xff1a; ROBO C的USB接口&#xff1a; PF级别的电容滤波&#xff1a; TVS电容&#xff08;TVS Capacitor&#xff09;&#xff1a;用于与TVS二极管配合&#xff0c;保护电路免受瞬态电压冲击。电容一般较小&#xff0c;通常为几十皮法&#xff08;pF&am…

如果你的网站是h5网站,如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈

如果你的网站是h5网站&#xff0c;如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈 h5如何转小程序 如果当年你们开发网站是用的h5但是没有开发小程序&#xff0c;也没有使用uniapp这样的混开框架&#xff0c;但是目前根据业务需…