RIP协议详解

​RIP是最早的动态路由协议,虽然已经过时并且很少使用,但是可以通过学习RIP并且和ospf等现在正在使用的路由协议对比,了解其工作原理和过时原因,具有很强的学习性。

一、RIP协议简介

RIP(Routing Information Protocol,路由信息协议)是最早的动态路由协议,其原理简单,配置容易。RIP是一种基于距离矢量算法的路由信息协议,基于UDP端口520,属于应用层协议。

动态路由协议,能够自动发现路由、计算路由,主要用于局域网和小规模网际网络中的路由选择。

RIP基于距离矢量路由选择算法,也就是说它通过跳数(hop count)作为度量路由之间的距离,默认最大跳数为15跳,超过15跳的网络被认为是不可达的。

在这里插入图片描述

二、RIP工作原理

2.1 距离

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

RIP使用跳数(Hop Count)作为度量(Metric)来衡量到达目的网络的代价(cost)。

  • 路由器到直连网络的距离定义为1。
  • 路由器到非直连网络的距离定义为所经过的路由器数加1。
  • 允许一条路径最多只能包含15个路由器。“距离”等于16时相当于不可达。

在这里插入图片描述

2.2 路由表交换

RIP 协议规定,相邻路由器(通过同一网络连接的路由器)之间周期性交换各自的路由表。

  • 路由表交换周期是 30 秒。
  • 周期性不是严格的:发送前附加一段随机延迟(0 到 5 秒)。
  • 原因:避免大量路由器同时发送路由表而造成网络拥塞。

2.3 报文发送

  • RIP 使用 UDP 协议进行路由信息交换。
  • RIP1 和 RIP2 使用 UDP 520 端口发送或接收 RIP 报文。
    在这里插入图片描述
    2.4 路由更新
  • 接收到邻居的路由表后,路由器采用距离向量算法更新自己的路由表。
  • 在下一个发送周期,路由器将更新后的路由表再发送给自己的邻居路由器。
  • 若网络拓扑结构不变,经过有限次的路由表交换后,所有 RIP路由器都会获得到达自治系统中所有网络的最短路由。此时称路由协议收敛(convergence)

在这里插入图片描述
RIP的路由条目的更新规则:

  • 发现了新的网络,添加
  • 到达目的网络,不同下一跳,新路由优势,更新
  • 到达目的网络,不同下一跳,等价负载均衡
  • 到达目的网络,相同下一跳,最新消息,更新
  • 到达目的网络,不同下一跳,新路由劣势,不更新

2.5 故障处理
实际环境中,网络或路由器可能出现故障。

从上一次接收到邻居路由器发送的路由表起,如果经过 180 秒还没有收到新的发送,就假定:

  • 连接邻居路由器的网络发生故障,或邻居路由器发生故障。(跳数置为15)

路由器立即更新自己与故障相关的路由表项,并在随后的发送周期中将新的路由表发送给邻居路由器。

  • 经过有限次的路由表交换后,RIP 协议将达到新的收敛状态。

2.6 处理流程
在这里插入图片描述

三、RIP报文格式

3.1 RIP 协议报文
在这里插入图片描述

RIP 协议报文由固定首部和路由项列表组成。

  • 固定首部包括3个字段,占4个字节。
  • “命令”字段指明发送该报文的目的,占1个字节。 命令字段为1时是请求报文,表明请求接收方发送其全部或部分路由表;
    命令字段为2时是响应报文,表明报文携带有发送方的全部或部分路由表。响应报文可以是对请求报文的回应,也可以是发送方周期性的路由表发送。周期性发送也称为非请求响应。
  • “版本”字段指明RIP协议的版本号,占1个字节,RIP1协议设置为1,RIP2协议设置为2。
  • 第三个字段没有使用,占2个字节,必须置为0。
  • 路由项列表包括最多 25 个路由项。每个路由项描述了一条路由。

3.2 RIP2 路由项

在这里插入图片描述
路由项有固定的格式,占20个字节,分为6个字段。

  • “地址族标识符”字段指明了解释网络地址时应遵循的协议族,占2个字节。对IPv4协议,地址族标识符定义为2。
  • “路由标记”字段占2字节,是分配给该路由项的一个属性值,主要用于区分内部RIP路由和外部RIP路由。内部RIP路由是来自自治系统内部RIP协议的路由;外部RIP路由是来自其他自治系统RIP协议的路由。例如可用自治系统编号作路由标记。路由器在向邻居通告一条路由时,必须保持该路由的标记不变。
  • 字段“IP地址”和“子网掩码”共同标识了该路由项的目的地址。如果IP地址字段是全0地址(0.0.0.0),表示是默认路由。
  • “下一跳”字段指明了报文接收方路由器到达目的地址的下一跳地址。如果是全0地址(0.0.0.0),表明报文接收方路由器到达目的地址的下一跳就是报文发送方路由器,其地址就是携带RIP报文IP分组的源地址。
  • “距离”字段指明了从报文发送方路由器或下一跳字段地址到达目的地址路由的距离。

3.3 RIP 请求报文

RIP 路由器可通过向邻居发送 RIP 请求报文的方式显式地请求其全部或部分路由表。

全部路由表请求用于路由表建立:路由器启动时,可向邻居发送 RIP 请求报文,请求邻居将其整个路由表发送给自己。

  • 请求报文中只有 1 个路由项,且地址族标识符是 0、距离是无穷(16)。
  • 若路由数量超过一个 RIP 报文的携带能力,接收方可构造多个响应报文。

部分路由表请求主要用于路由监测:请求方可以是一台能够发送、接收及处理 RIP 报文的主机(不参与 RIP 路由交换)。

  • 请求报文中的路由项列表列出了所请求的路由。
  • 构造响应报文时,接收方在其路由表中逐项查找相应路由项,若存在,就在距离字段填入其距离值;否则,在距离字段填 16。

3.4 RIP 鉴别报文

RIP2 中路由器可对每个接收的报文进行鉴别(authentication)。

鉴别信息占用了第一个路由项的 20 字节:

  • 地址族标识符: 0xFFFF
  • 路由标记:命名为鉴别类型(authentication type),用于区分不同的鉴别机制。

RFC 2453 只定义了一种简单的密码鉴别:

  • 鉴别类型:2
  • 路由项中剩余的 16 字节包含了鉴别用的明文密码(若密码不足16字节,靠左对齐并补 0)。

3.5 报文发送

RIP1 中路由器用广播(broadcast)方式向邻居发送 RIP 报文。

RIP2 中路由器以组播(multicast)方式向邻居发送RIP报文。

  • 减少了对不参与 RIP 路由交换主机的影响;
  • 不需要组播管理协议(IGMP)的支持:只在相邻路由器间交换报文。

四、RIP环路问题

4.1产生环路的原因

RIP网络中某一段网络的故障,由于收敛速度过慢,部分路由器认为该网络仍然可达,导致路由不断更新导致距离计数至无穷大。
在这里插入图片描述
4.2 防环机制

  1. 最大跳数:当一个路由条目作为更新信息发送给邻居路由器时,路由条目会自加1跳,通过设定最大跳数15防止路由条目被无限转发。同时16跳可作为路由不可达标记。
  2. 触发更新:当网络出现拓扑变更后,路由器会立即产生更新通告,并广播通知所有直连邻居,不需要考虑30秒的更新计时器。为减少带宽和资源占用,触发更新消息只包含更新的路由条目。
  3. 水平分割:RIP路由器路由表中的某条条目信息由路由器的a口学习而来,则路由器a口向外发送响应消息时,不会包含该路由项的信息。
  4. 毒性反转:RIP路由器路由表中的某条不可达路由条目信息由路由器的a口学习而来,则路由器a口向外发送响应消息时,会包含该路由信息,但Metric会设置为16,不可达

注:毒性反转和水平分割都可避免路由环路的产生,但是两者原则上为互斥的,即RIP网络中RIP路 由器不会同时开启水平分割和毒性反转功能。通常,RIP网络中的路由器都会配置触发更新功能, 然后再水平分割和毒性反转功能中选择其一开启。

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

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

相关文章

2024.2.18 C++QT 作业

思维导图 练习题 1>定义一个基类 Animal&#xff0c;其中有一个虛函数perform&#xff08;)&#xff0c;用于在子类中实现不同的表演行为。 #include <iostream>using namespace std;class Animal { public:virtual void perform() {cout << "这是一个动…

css2的三大特性

css的三大特性 一.层叠性概念 二.继承性行高的继承 三. 优先级概念a标签默认蓝色继承注意事项 一.层叠性 概念 二.继承性 行高的继承 可用倍数表示三. 优先级 概念 a标签默认蓝色 继承注意事项 例子

使用倒模耳机壳UV树脂胶液制作HIFI耳机隔音降噪耳机壳有哪些缺点?

虽然使用倒模耳机壳UV树脂胶液制作HIFI耳机隔音降噪耳机壳有很多优点&#xff0c;但也存在一些缺点和需要注意的事项&#xff1a; 技术要求高&#xff1a;制作过程需要一定的技术和经验&#xff0c;如模具制作、树脂混合和填充等。如果没有足够的经验和技巧&#xff0c;可能会…

DS:八大排序之归并排序、计数排序

创作不易&#xff0c;感谢三连支持&#xff01;&#xff01; 一、归并排序 1.1 思想 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide andConquer&#xff09;的一个非常典型的应用。将已有序的子…

Python学习(16)|列表_遍历_排序_max_min_sum

列表的遍历&#xff1a; a [10,20,30,40] for obj in a: #obj 是临时变量名称&#xff0c;随意起名print(obj) 执行结果&#xff1a; 复制列表所有的元素到新列表对象&#xff1a; list1 [30,40,50] list2 list1 #只是将list2也指向了列表对象。也就是说list…

Maven - Plugins报错的正确解决之道

背景&#xff1a; 正确解决之道&#xff1a; 在自己本地Maven的安装目录中找到自己的仓库地址目录&#xff1a;直接搜索自己报错的插件文件&#xff0c;把它们删除&#xff0c;如图&#xff1a; 接着回到IDEA点击Maven刷新按钮重新加载即可&#xff1a;已解决 反例&#xff1…

SORA给数字孪生带来哪些启示

最近两天的朋友圈又被一则科技新闻刷屏了&#xff0c;那就是&#xff1a;OpenAI发布文生视频模型“Sora”。它是继ChatGPT之后&#xff0c;OpenAI又推出的一款震惊科技圈的产品&#xff0c;使AIGC向前迈了一大步。 数字孪生技术与AIGC&#xff08;人工智能生成内容&#xff09…

多元统计分析课程论文-聚类效果评价

数据集来源&#xff1a;Unsupervised Learning on Country Data (kaggle.com) 代码参考&#xff1a;Clustering: PCA| K-Means - DBSCAN - Hierarchical | | Kaggle 基于特征合成降维和主成分分析法降维的国家数据集聚类效果评价 目录 1.特征合成降维 2.PCA降维 3.K-Mean…

集结低代码/零代码行业大咖,2024年领域内首场重磅峰会火热开启!

低代码/零代码技术是一种创新的软件开发方法&#xff0c;旨在简化程序开发过程&#xff0c;使得即便是非专业开发者也能快速构建和部署应用程序。通过图形化界面和拖拽式操作&#xff0c;用户可以无需编写复杂的代码&#xff0c;就能完成应用程序的设计、开发和部署&#xff0c…

tsmc12:boundary cell/tap cell的align VIA0 grid

更多学习内容请关注「拾陆楼」知识星球 拾陆楼知识星球入口 往期文章链接: tsmc12:via0的spacing问题(Via0.S.1) tsmc12 OD.L.5 DRC tsmc12:boundary cell注意事项

2024年【R1快开门式压力容器操作】考试及R1快开门式压力容器操作考试内容

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 R1快开门式压力容器操作考试参考答案及R1快开门式压力容器操作考试试题解析是安全生产模拟考试一点通题库老师及R1快开门式压力容器操作操作证已考过的学员汇总&#xff0c;相对有效帮助R1快开门式压力容器操作考试内…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Marquee组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Marquee组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Marquee组件 跑马灯组件&#xff0c;用于滚动展示一段单行文本&#xff0c;仅当…

在 Python 中,通过列表字典创建 DataFrame 时,若字典的 key 的顺序不一样以及部分字典缺失某些键,pandas 将如何处理?

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ pandas 是一个快速、强大、灵活且易于使用的开源数据分析和处理工具&#xff0c;它是建立在 Python 编程语言之上的。 pandas 官方文档地址&#xff1a;https://pandas.pydata.org/ 在 Python 中&…

多模态基础--- word Embedding

1 word Embedding 原始的单词编码方式&#xff1a; one-hot&#xff0c;维度太大&#xff0c;不同单词之间相互独立&#xff0c;没有远近关系区分。 wordclass&#xff0c;将同一类单词编码在一起&#xff0c;此时丢失了类别和类别间的相关信息&#xff0c;比如class1和class3…

小游戏和GUI编程(7) | SimpleNN 界面源码解析

小游戏和GUI编程(7) | SimpleNN 界面源码解析 0. 简介 SimpleNN 是 AdamYuan 在高中一年级时用 1 天时间写出来的简易 CNN, 使用 SFML 做 UI, 用于交互式输入手写数字&#xff0c;这个数字被训练好的 CNN 网络执行推理得到识别结果, 它的运行效果如下&#xff1a; 这一篇我们…

java客运管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java客运管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&#…

安装Joplin Server私有化部署(docker)

安装Joplin Server私有化部署(docker) 前言: 老规矩官方文档链接 1. 首先拥有一个自己的云服务器(如果没有外网访问需求的话就随意吧) 安装docker安装方式 这里Joplin是使用PostgreSQL数据库的形式, 如果没有PostgreSQL库的话, Joplin默认使用的是SQLLite数据库 我这里使用的是…

Shiro-11-web 介绍

配置 将Shiro集成到任何web应用程序的最简单方法是在web.xml中配置一个Servlet ContextListener和过滤器&#xff0c;该Servlet了解如何读取Shiro的INI配置。 INI配置格式本身的大部分是在配置页面的INI部分中定义的&#xff0c;但是我们将在这里介绍一些额外的特定于web的部…

入门级10寸加固行业平板—EM-I10J

亿道信息以其坚固耐用的智能终端设备而闻名&#xff0c;近日发布了一款理想入门级 10 英寸加固平板电脑—I10J。 EM-I10J​​ 这是一款 10 英寸的平板电脑&#xff0c;主要运行 Windows 10操作系统&#xff0c;带有硬化塑料外壳&#xff0c;具有 IP65 防水防尘功能和 MIL-STD 8…

【Java EE初阶十七】网络原理(二)

2. 传输层 2.2 TCP协议 2.2.2 关于可靠传输 4.滑动窗口 前面的三个机制&#xff0c;都是在保证 tcp 的可靠性&#xff1b; TCP 的可靠传输,是会影响传输的效率的.(多出了一些等待 ack 的时间,单位时间内能传输的数据就少了)&#xff1b; 滑动窗口,就让可靠传输对性能的影响,更…