计算机网络:网络层 —— 路由信息协议 RIP

news2024/12/23 23:22:39

文章目录

    • 路由选择协议
      • 动态路由协议
      • 路由信息协议 RIP
        • RIP 的重要特点
        • RIP的基本工作过程
        • RIP的距离向量算法
        • RIP存在的问题
        • RIP版本和相关报文的封装

路由选择协议

因特网是全球最大的互联网,它所采取的路由选择协议具有以下三个主要特点:

  • 自适应:因特网采用动态路由选择,能较好地适应网络状态的变化。

  • 分布式:因特网中的各路由器通过相互间的信息交互,共同完成路由信息的获取和更新

  • 分层次:将整个因特网划分为许多较小的自治系统(AutonomousSystem,AS)在自治系统内部(域内路由选择)和外部(域间路由选择)采用不同类别的路由选择协议,分别进行路由选择。

![[自治系统.png]]

  • 自治系统内部使用内部网关协议 IGP ,自治系统之间使用外部网关协议 EGP

  • 外部网关协议 EGP 和内部网关协议 IGP 只是路由选择协议的分类名称,而不是具体的路由选择协议。

  • 外部网关协议和内部网关协议名称中使用的是“网关”这个名词,是因为在因特网早期的 RFC 文档中,没有使用“路由器”而使用的是“网关”这一名词。

动态路由协议

动态路由协议分为距离矢量路由协议链路状态路由协议

  • 距离矢量路由协议(Distance Vector Routing Protocols)

    • 通过向相邻路由器定期通告自己的路由表,逐跳传递路由信息。
    • 典型协议:RIP(Routing Information Protocol)。
    • 优点:实现简单。
    • 缺点:收敛慢,容易产生路由环。
  • 链路状态路由协议(Link State Routing Protocols)

    • 每个路由器通过广播链路状态信息构建整个网络的拓扑图,使用 Dijkstra 算法计算最短路径。
    • 典型协议:OSPF(Open Shortest Path First)、IS-IS(Intermediate System to Intermediate System)。
    • 优点:收敛快,路由精确。
    • 缺点:实现复杂,资源消耗大。
  • 路径矢量路由协议(Path Vector Routing Protocols)

    • 主要用于大型互联网络(如互联网),通过通告路径信息,避免路由环。
    • 典型协议:BGP(Border Gateway Protocol)。
    • 优点:适用于大规模网络,避免路由环。
    • 缺点:实现复杂,路由策略灵活。

路由信息协议 RIP

路由信息协议(Routing Information Protocol,RIP),是一种基于距离矢量算法的动态路由协议,主要用于在计算机网络中选择最佳路径,并确保数据包能够正确地从源地址传输到目的地址。

RIP 是内部网关协议中最先得到广泛使用的协议之一,其相关标准文档为 [RFC 1058]

  • RIP 要求自治系统 AS 内的每一个路由器,都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为距离向量(Distance-Vector,D-V)。

  • RIP 使用跳数(HopCount)作为度量(Metric)来衡量到达目的网络的距离

    • RIP 将路由器到直连网络的距离定义为1.

    • RIP 将路由器到非直连网络的距离定义为所经过的路由器数加1

    • RIP 允许一条路径最多只能包含15个路由器,距离等于16时相当于不可达。因此RIP只适用于小型互联网

  • RIP 认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由

  • 当到达同一目的网络有多条 RIP 距离相等的路由时,可以进行等价负载均衡,也就是将通信量均衡地分布到多条等价的路径上。

有些厂商的路由器并没有严格按照 RIP 标准文档的规定来实现 RIP。例如思科路由器中的RIP,将路由器到直连网络的距离定义为0,但这并不影响 RIP 的正常运行。

RIP 的重要特点
  1. 和谁交换信息仅和相邻路由器交换信息

![[相邻路由器交换信息.png]]

  1. 交换什么信息:路由器自己的路由表,即本路由器到所在自治系统 AS 中各网络的最短 RIP 距离,以及到各网络应经过的下一跳路由器

  2. 何时交换信息周期性交换(例如,每隔约30秒),为了加快RIP的收敛速度,当网络拓扑发生变化时路由器要及时向相邻路由器通告拓扑变化后的路由信息,这称为触发更新

RIP的基本工作过程

![[RIP的基本工作过程.png]]

  1. 路由器刚开始工作时,只知道自己到直连网络的RIP距离为1

  2. 每个路由器仅和相邻路由器周期性地交换并更新路由信息

  3. 若干次交换和更新后,每个路由器都知道到达本自治系统AS内各网络的最短距离和下一跳路由器,称为收敛

RIP的距离向量算法

RIP(Routing Information Protocol)是一种基于距离向量(Distance-Vector)算法的路由协议,主要用于较小的自治系统(AS)内的路由信息交换。RIP 协议使用跳数(hop count)作为路由的度量标准,即数据包从一个网络节点到另一个网络节点所经过的路由器数量

路由更新

  • RIP 路由器会周期性地向相邻的路由器发送整个路由表(通常是每30秒一次)。这个过程被称为 路由更新

  • 180秒(默认)没有收到某条路由条目的更新报文,则把该路由条目标记为无效(即把RIP距离设置为 16,表示不可达),若再过一段时间(如120秒)还没有收到该路由条目的更新报文,则将该路由条目从路由表中删除

  • 路由器在发送路由表之前,会将自己的跳数加1,然后将其发送出去。这样,接收到的路由器就能知道到达该网络的路径长度(跳数)。

更新原则

  • 相同的下一跳,最新消息,要更新到达目的网络

  • 发现了新的网络,添加

  • 到达目的网络,不同的下一跳,新路由优势(度量值更小),要更新

  • 到达目的网络,不同的下一跳,新路由劣势(度量值更大),不更新

  • 到达目的网络,不同的下一跳,RIP 距离相等,可以等价负载均衡,添加

计算最佳路径

  • 当路由器接收到邻居发来的路由更新时,它会比较新路由与现有路由的度量值(跳数)。

  • 如果新路由的度量值更小(即跳数更少),或者当前路由不可达(跳数为无穷大),那么路由器就会更新其路由表,将新路由作为到达该目的地的最佳路径。

  • 如果新路由的度量值大于或等于现有路由的度量值,则忽略新路由。

RIP存在的问题
  1. 收敛速度慢

    • 因为RIP依赖于周期性的路由更新(通常为每30秒一次),而不是立即响应网络变化。RIP协议在检测到网络故障时,需要经过相对较长的时间才能将此信息传送到所有的路由器,并且可能导致故障消息被覆盖。

    • 当网络拓扑发生变化时,RIP的收敛时间经常大于5分钟,这在大型或动态变化的网络中可能导致路由选择的不及时和次优。

    • 对于规模较大的自治系统 AS,应当使用 OSPF 协议。

  2. 路由环路:由于 RIP 的收敛速度慢,会导致路由环路问题(也称RIP距离无穷计数问题)。这是距离向量算法的一个固有问题。可以采取以下多种措施减少出现该问题的概率或减小该问题带来的危害:

    • 限制最大RIP距离为15(16表示不可达)

    • 触发更新:当路由表发生变化时就立即发送路由更新报文,而不仅是周期性发送

    • 路由毒逆(Split Horizon with Poison Reverse):当路由器向某个接口发送路由更新时,它会从该接口的路由表中删除该路由的条目(即不向发送者发送自己的路由)。
      同时,如果路由器从某个接口学习到了一条路由,但后来又从其他接口收到了关于该路由的更新,且跳数增加,那么路由器会向原始接口发送一个跳数为16(即不可达)的路由更新,以告知邻居该路由已失效。

    • 水平分割(路由毒逆的简化):让路由器记录收到某个特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送。

使用上述措施仍无法彻底解决问题。因为在距离向量算法中,每个路由器都缺少到目的网络整个路径的完整信息,无法判断所选的路由是否出现了环路

  1. 跳数限制:RIP 的跳数限制为 15 跳。如果某个网络的跳数超过这个限制,RIP 会认为该网络不可达,从而限制使用 RIP 的自治系统 AS 的规模。

  2. 开销问题:相邻路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也随之增大。

RIP版本和相关报文的封装

现在较新的 RIP 版本是1998年11月公布的 RIP2 [RFC 2453],已经成为因特网标准协议。与 RIP1 相比,RIP2 可以支持变长子网掩码和CIDR。另外,RIP2 还提供简单的鉴别过程并支持多播

RIP 相关报文使用运输层的用户数据报协议UDP进行封装,使用的UDP端口号为520

  • RIP报文封装的角度看,RIP 属于 TCP/IP 体系结构的应用层
  • 但 RIP 的核心功能是路由选择,这属于 TCP/IP 体系结构的网际层(网络层)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

构建主干交换网络实验

转载请注明出处 该实验为交换网络综合实验,仅供参考。 根据下表配置计算机IP地址和划分VLAN。划分方式见课本48页,不再赘述 计算机名 IP地址 所属VLAN PC0 192.168.10.1 VLAN10 PC1 192.168.20.1 VLAN20 PC2 192.168.10.2 VLAN10 PC3 192.…

MySQL超大分页怎么优化处理?limit 1000000,10 和 limit 10区别?覆盖索引、面试题

1. limit 100000,10 和 limit 10区别 LIMIT 100000, 10: 这个语句的意思是,从查询结果中跳过前100000条记录,然后返回接下来的10条记录。这通常用于分页查询中,当你需要跳过大量的记录以获取后续的记录时。例如,如果你…

电科金仓(人大金仓)更新授权文件(致命错误: XX000: License file expired.)

问题:电科金仓(人大金仓)数据库链接异常,重启失败,查看日志如下: 致命错误: XX000: License file expired. 位置: PostmasterMain, postmaster.c:725 解决方法: 一、下载授权文件 根据安装版本在官网下载授权文件(电科金仓-成为世界卓越的数据库产品与服务提供商)…

DMFLDR数据载入使用实践

1、DMFLDR概述 1.1DMFLDR功能介绍 dmfldr(DM Fast Loader)是 DM 提供的快速数据装载命令行工具。用户通过使用 dmfldr 工具能够把按照一定格式 排序的文本数据以简单、快速、高效的方式载入到 DM 数据库中,或把 DM 数据库中的数据按照一定格…

计算机网络(Ⅵ)应用层原理

一些网络应用的例子: E-mail Internaet电话 Web 电子支付 文本信息 搜索 P2P文件共享 流媒体 即时通讯 实时电视会议 .... .... 创建一个网络应用: 1.编程 2.在不同的端系统上运行。 网络应用的体系架构 可能的应用架构 1.客户-服…

《使用Gin框架构建分布式应用》阅读笔记:p393-p437

《用Gin框架构建分布式应用》学习第17天,p393-p437总结,总45页。 一、技术总结 1.Prometheus Prometheus放在代码里面使用,还是第一次见。在本人实际的工作中未看到这种用法。 2.Grafana Grafana用于被监控数据的可视化。 3.Telegraf …

【动手学强化学习】part7-Actor-Critic算法

阐述、总结【动手学强化学习】章节内容的学习情况,复现并理解代码。 文章目录 一、算法背景1.1 算法目标1.2 存在问题1.3 解决方法 二、Actor-Critic算法2.1 必要说明 优势函数 2.2 伪代码 算法流程简述 2.3 算法代码2.4 运行结果 结果分析 2.5 算法流程说明 初始化…

MySQL【二】

查询列 SELECT [ALL | DISTINCT ] * | 列名1[,……列名n] FROM 表名; 查询所有选课学生的学号,结果去除重复值 select distinct sno from sc; 选择行 查询满足条件的数据集 SELECT 字段列表 FROM 表名 WHERE 查询条件 查询不属于数学系或外国语系的学生全部信息 …

ElasticSearch - Bucket Selector使用指南

文章目录 官方文档Bucket Selector1. 定义2. 工作原理3. 使用场景与示例使用场景官方案例示例2 4. 注意事项5. 总结 官方文档 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html Bucket Selector https://www.elastic.co/guide/en/…

“死鱼眼”,不存在的,一个提词小技巧,拯救的眼神——将内容说给用户,而非读给用户!

视频录制时,死鱼眼问题常见 即便内容再好,眼神死板也会减分 痛点真痛:拍视频时容易紧张 面对镜头,许多人难免紧张 神情僵硬,眼神无光,甚至忘词 这不仅影响表现,还让人难以专注 忘我场景&#x…

PyQt5实战——多脚本集合包,UI以及工程布局(二)

个人博客:苏三有春的博客 系列往期: PyQt5实战——多脚本集合包,前言与环境配置(一) 布局 2.1 UI页面布局 整体框架分为分为三个部分,垂直分布。 第一个部分为功能选择按钮(如UTF-8转换&#…

《Python网络安全项目实战》项目2 Python基础练习_总复习(1)

《Python网络安全项目实战》项目2 Python基础练习 总复习(1) 班级: 姓名: 实训成绩: 任务单成绩 : 输入用户名密码并将其输出打印。 userName _____________________ passWord ______________________ #输…

数组排序简介-基数排序(Radix Sort)

基本思想 将整数按位数切割成不同的数字,然后从低位开始,依次到高位,逐位进行排序,从而达到排序的目的。 算法步骤 基数排序算法可以采用「最低位优先法(Least Significant Digit First)」或者「最高位优先…

LangChain学习之路

何谓 LangChain?释放大语言模型潜能的利器 作为一种专为开发基于语言模型的应用而设计的框架,通过LangChain,我们不仅可以通过API调用如 ChatGPT、GPT-4、Llama 2 等大型语言模型,还可以实现更高级的功能。 我们相信&#xff0c…

二:Linux学习笔记(第一阶段)-- Linux命令

目录 Linux注意事项: Linux目录 Linux系统基础命令 1. 文件和目录操作 2. 文件查看和编辑 3. 文件权限和所有权 4. 系统信息 5. 网络命令 6. 文件查找 7. 压缩和解压缩 8. 系统管理 Linux注意事项: 严格区分大小写一切皆文件windows下的程序不…

嵌入式硬件重点(四)常用信号处理、放大电路、运算放大器(运放)基础篇

引言:在嵌入式硬件设计中,信号处理和放大电路是至关重要的组成部分。它们不仅影响系统的性能,还直接关系到数据的准确性和可靠性。随着嵌入式系统的广泛应用,对各种传感器和外部设备的信号进行有效处理显得尤为重要。 运算放大器&…

3D Gaussian Splatting代码详解(二):模型构建

3 模型构建 gaussians GaussianModel(dataset.sh_degree) 3.1 初始化函数 __init__ 构造函数 构造函数 __init__ 的主要作用是初始化 3D 高斯模型的各项参数和激活函数,用于生成 3D 空间中的高斯表示。 初始化球谐函数的参数: self.active_sh_degre…

自由学习记录(18)

动画事件的碰撞器触发 Physics 类的常用方法 RaycastHit hit; if (Physics.Raycast(origin, direction, out hit, maxDistance)) {Debug.Log("Hit: " hit.collider.name); } Physics.Raycast:从指定点向某个方向发射射线,检测是否与碰撞体…

[FE] React 初窥门径(四):React 组件的加载过程(render 阶段)

1. 回顾 前几篇文章中,我们采用了 VSCode 插件 CodeTour 来记录代码的执行过程, 并把相关的数据 .tour/ 放到了 github: thzt/react-tour 中。 截止到本文为之,我们总共记录了这些 code-tour, .tour/ ├── 2. 构建过程.tour ├─…

java毕业设计之基于Bootstrap的常州地方旅游管理系统的设计与实现(springboot)

项目简介 基于Bootstrap的常州地方旅游管理系统的设计与实现有下功能: 基于Bootstrap的常州地方旅游管理系统的设计与实现的主要使用者分为用户功能模块和管理员功能模块两大部分,用户可查看景点信息、景点资讯等,注册登录后可进行景点订票…