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网络中的路由器都会配置触发更新功能, 然后再水平分割和毒性反转功能中选择其一开启。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue22 Vue监测数据改变的原理_数组

实例 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>Vue监测数据改变的原理_数组</title><!-- 引入Vue --><script type"text/javascript" src"../js/vue.js"></script>&…

如何避免发送HTTP请求

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) 如何避免发送HTTP请求? 这个思路你看到是不是觉得很奇怪&#xff0c;不发送 HTTP 请求&#xff0c;那客户端还怎么和服务器交互数据?小林你这不是要流氓嘛? 冷静冷静&#xff0c;你说的没错&#xf…

jmeter-12jmeter的录制功能

文章目录 什么情况下使用录制功能?操作流程具体设置如下观察结果什么情况下使用录制功能? 在测试过程中,很多时候可能会没有接口文档,这样你不知道请求方式,url,等等如何进行测试? jmeter提供了对应的录制功能。录制功能可以抓到具体的接口信息 操作流程 创建线程组 …

Pandas 数据处理:从基础到高级的完整指南【第84篇—Pandas 数据处理】

Pandas 数据处理&#xff1a;从基础到高级的完整指南 Pandas 是一个强大的数据分析工具&#xff0c;广泛应用于数据科学、机器学习和统计分析等领域。本文将介绍 Pandas 模块的基础知识&#xff0c;包括数据结构、数据导入、数据选择与过滤等方面&#xff0c;通过实际代码示例…

R语言课程论文-飞机失事数据可视化分析

数据来源&#xff1a;Airplane Crashes Since 1908 (kaggle.com) 代码参考&#xff1a;Exploring historic Air Plane crash data | Kaggle 数据指标及其含义 指标名 含义 Date 事故发生日期(年-月-日) Time 当地时间&#xff0c;24小时制&#xff0c;格式为hh:mm Locat…

Android 11以上获取不到第三方app是否安装

开年第一篇&#xff0c;处理了一下年前的小问题。 问题&#xff1a;本地app跳转到第三方app地图进行导航&#xff0c;获取不到第三方地图是否安装。 解决&#xff1a; 1.添加包名 This can be done by adding a <queries> element in the Android manifest.在app下的…

红队打靶练习:IMF: 1

目录 信息收集 1、arp 2、nmap 3、nikto 目录探测 gobuster dirsearch WEB 信息收集 get flag1 get flag2 get flag3 SQL注入 漏洞探测 脱库 get flag4 文件上传 反弹shell 提权 get flag5 get flag6 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# a…

【力扣hot100】刷题笔记Day5

前言 回学校了&#xff0c;荒废了半天之后打算奋发图强猛猛刷题&#xff0c;找实习&#xff01;赚钱&#xff01;&#xff01; 560. 和为 K 的子数组 - 力扣&#xff08;LeetCode&#xff09; 前缀法 哈希表 这个题解解释比官方清晰&#xff0c;截个图方便看&#xff0c;另一…

慎投!2023年共124本SCI/SSCI被剔除汇总(附电子档下载目录)

2023年SCI/SSCI剔除期刊汇总 2023年3月20日&#xff0c;Web of Science核心期刊目录再次更新&#xff01;共有50本期刊被剔除出SCIE & SSCI期刊目录&#xff0c;其中大部分为Hindawi旗下期刊&#xff08;19本&#xff09;&#xff0c;引起不小的轰动&#xff01; 2023年全…

数据结构之时空复杂度

一、前言 1&#xff09;什么是数据结构 数据结构(Data Structure)是计算机存储、组织数据的方式&#xff0c;指相互之间存在一种或多种特定关系的数据元素的 集合。 2&#xff09;什么是算法 算法(Algorithm):就是定义良好的计算过程&#xff0c;他取一个或一组的值为输入&am…

计算机网络——14CDN

CDN 视频流化服务和CDN&#xff1a;上下文 视频流量&#xff1a;占据着互连网大部分的带宽 Netflix&#xff0c;YouTube&#xff1a;占据37%&#xff0c;16%的下行流量 挑战&#xff1a;规模性-如何服务~1B用户&#xff1f; 单个超级服务器无法提供服务&#xff08;为什么&am…

备战蓝桥杯---数学之博弈论基础1

目录 1.对称博弈 2.巴什博弈&#xff1a; 3.NIM博弈&#xff1a; 注意一个法则&#xff1a; 1.对称博弈 我们先看一个经典的例子&#xff1a; 下面是分析&#xff1a; 2.巴什博弈&#xff1a; 我们只要先手取1个&#xff0c;然后先手再去取5-刚刚后手的数字即可。 当石子数…

SHERlocked93 的 2021 年终总结

我还是和往年一样&#xff0c;总结发的又晚了一点&#xff0c;为什么又发这么晚呢&#xff0c;因为懒 年终总结 疫情之后时间时间过的太快了&#xff0c;不知道是不是只有我这样感觉。 四五月份去兰州玩了下&#xff08;其实是出差&#xff09;&#xff0c;终于看到了黄土高原&…

机器视觉与嵌入式技术:开拓自动驾驶和远程监控新视野

&#xff08;本文为简单介绍&#xff0c;观点源于网络&#xff09; 机器视觉系统是指利用计算机来模拟人眼的识别与判断。在自动驾驶和远程监控领域&#xff0c;机器视觉结合嵌入式技术的应用&#xff0c;不仅极大地提升了自动化水平&#xff0c;而且开辟了新的技术视野。 在…

迅为3A5000_7A2000开发板龙芯自主指令系统支持PCIE3.0、USB3.0、SATA3.0、HDMI、VGA等

性能强 采用全国产龙芯3A5000处理器&#xff0c;基于龙芯自主指令系统 (LoongArch)的LA464微结构&#xff0c;并进一步提升频率&#xff0c;降低功耗&#xff0c;优化性能。 桥片 采用龙芯 7A2000&#xff0c;支持PCIE 3.0、USB 3.0和 SATA 3.0.显示接口2 路、HDMI 和1路 VGA…

【ArcGIS微课1000例】0103:导出点、线、面要素的折点坐标值

点要素对应的是一个或者若干个坐标,线要素对应的是对个坐标值对应的点连起来,面要素是多个坐标值对应的点连起来构成的封闭多边形。本文讲述导出点的坐标值。 文章目录 一、点要素坐标导出1. 计算点坐标2. 导出点坐标二、线要素坐标导出1. 生成线要素折点2. 计算折点坐标3. 导…

一款服务于医院临床数据资源建设的平台,助力医疗信息化发展

随着医疗技术的不断发展&#xff0c;医院需要越来越多的临床数据来支持科研、教学和临床实践。然而&#xff0c;在传统的医疗系统中&#xff0c;数据分散、信息割裂、无法有效整合和共享。为了解决这一问题&#xff0c;临床数据资源整合平台应运而生。 临床数据资源整合平台是…

C++之内存对齐

目录 内存对齐 一、内存对齐解释 二、为什么要内存对齐&#xff1f; 三、内存对齐的三大规则 3.1、数据成员对齐规则 3.2、结构(或联合)的整体对齐规则 3.3、结构体作为成员 3.4、代码例子 内存对齐 一、内存对齐解释 对齐规则是按照成员的声明顺序&#xff0c;依次安排…

openGauss学习笔记-221 openGauss性能调优-确定性能调优范围-分析作业是否被阻塞

文章目录 openGauss学习笔记-221 openGauss性能调优-确定性能调优范围-分析作业是否被阻塞221.1 操作步骤 openGauss学习笔记-221 openGauss性能调优-确定性能调优范围-分析作业是否被阻塞 数据库系统运行时&#xff0c;在某些业务场景下查询语句会被阻塞&#xff0c;导致语句…

vue2+高德地图web端开发(二)

前言&#xff1a; 高德地图输入提示与 POI 搜索相关文档&#xff1a;输入提示与 POI 搜索-服务插件和工具-进阶教程-地图 JS API 2.0 | 高德地图API (amap.com) 输入提示-输入提示-示例中心-JS API 2.0 示例 | 高德地图API (amap.com) 创建输入框&#xff1a; 引入Element组…