5.3.2 因特网的路由协议(二)基于距离向量算法的RIP协议

news2024/11/21 20:32:44

5.3.2 因特网的路由协议(二)基于距离向量算法的RIP协议

一、RIP协议概念

RIP是Routing Information Protocol缩写,又称为路由信息协议,是最先得到应用的内部网关协议,RIP作为一个常在小型互联网中使用的路由信息协议,它是依据跳数来作为度量值进行路由选择,这里的跳数可以直观的理解为内含RIP协议的报文从源地址向目的地址发送过程中所经过的路由器的数量,如图一个自治系统中有8个路由器,对于路由器R1来说它可以直接到达主机H1所在的网络,那么就定义距离为1,如果

RIP

选择上面的路到达主机H2的话则需要再经过R2、R3、R4、R74个路由器,距离就是经过的路由器数量加1,也就是距离为5。

如果选择下面的路到达主机H2,需要经过路由器R6,R5、R8,也就是距离为4。

在图中我们也可以看出对于路由器R1来说到达H2有多条路可以选择,那么它就究竟选择那一条路呢?对于RIP协议来说**选择数据发送的最佳路径,依靠的是寻找最少的跳数,也就是选择经过路由器最少得路径。**在这张图中我们可以看出对于路由器R1来说到达主机H2,经过路由器数量最少的应该是中间的那条路,只经过了两个路由器的转发。

二、RIP协议特点

RIP协议有两个重要特点

  1. 如果一个自治系统运用了RIP协议,那么这个自治系统中的每个路由器都要维护并且更新从它自己到其他每一个目的网络距离的记录。
  2. 当发现数据到达某一个网络的距离大于16的情况下,路由器就会自动的认为该分组是不可以被传送的,也就是说该分组会被丢弃,或者说这个网络是不可达的。

三、RIP路由信息表的交换

我们通过示例来理解每台路由器是如何更新自己距离记录表即路由器彼此之间如何进行路由信息的交换。

如图

路由表交换

这是一个简单的由三个路由器A、B、C连接的四个网络所组成的一个自治系统,四个网络的网络地址分别是10.1.1.0,10.1.2.0,10.1.3.0,10.1.4.0,为了使理解方便,每个路由器的左右两个接口的IP地址我们只用了它的后8位的十进制,比如说路由器A的两个接口的IP地址分别是10.1.1.1和10.1.2.1,对于每个路由器的初始状态从图中我们可以看出他们各自的路由表中只包含了与自身直接相连的网络地址,并且规定到达这些直连网络的距离为1,由于是直接交付所以在路由表中是没有下一跳路由器的地址。经过一段时间后(这里假定为30秒)A、B、C路由器相互之间进行第一次路由表更新,这里要强调的是每过30秒每个路由器只和自己的邻居路由器去交换路由信息,并且是把自己知道的全部信息都拿出去和邻居交换,也就是说当前路由器是倾其所有,毫无保留的和邻居路由器来进行交换,当然因为是彼此交换每个路由器都是这么做的。

在这个示例中A和B彼此交换路由表,B和C之间交换路由表,此时A用自己初始的表与B发来的RIP报文,也就是B的路由表相比较,发现原来自己不能到达网络10.1.3.0,但是通过邻居路由器B可以到达,于是将该网络地址加入到自己的路由表中,并且把距离记为2,下一跳路由器IP地址就是路由器B左边与A相连接口的IP地址,也就是10.1.2.2,把以上信息都记录在A路由器的路由表中。同时B对A所发来的路由表进行比较发现没有到达10.1.1.0的路由信息,于是把这条路由信息加入到路由表中,B与C的路由表交换过程也是如此。图中增加的路由用红色表示。

接下来再经过30秒相邻路由器之间有相互发送了一次RIP报文,也就是又经过了一次路由表的交换,此时A路由器从B发送的报文中发现自己路由表中没有到达10.1.4.0的路由信息,于是加入这个网络并且把B路由器存储的到达该网络地址的距离值加一后并记录到自己的路由表,B路由器发现A路由器的路由表中所含的目的网络自己的路由表都已经包含,所以说就不必再更新了。B和C之间亦是如此。

以上我们就完成了模拟整个自治系统中路由表的交换的过程,从图中我们也可以看出每个路由器的路由表中都包含了整个自治系统中所有的网络地址,以及距离值,也就是说每个路由器都知道了如何通过最少的跳数去到达本自治系统中任何一个网络。

四、RIP的工作过程

因为组成互联网的网络都在不断的变化,RIP又是一种自适应型的路由协议,那它是如何来适应这种变化的呢?对于RIP协议它的工作过程如下。如图

工作过程

  1. 路由器启动RIP以后,会向周围的路由器发送请求报文,然后等待周围路由器的相应。
  2. 一旦收到相应就根据距离向量算法开始完成本地路由表的更新与修改工作。
  3. 同时向邻居路由器发送一个触发修改的报文。
  4. 邻居路由器收到了触发修改报文以后又向其各自相邻的路由器发送触发修改报文

经过上面一连串的触发修改广播之后,各个路由器都能够得到并且保持最新的路由信息,当然我们还要考虑到刚才发出请求的路由器,如果其迟迟没有收到响应的情况下,老化机制就会对超时的路由器进行老化处理,也就是说视超时路由器提供的路由表信息为无效。

五、RIP协议的局限性

从上面我们可以看出RIP协议有其局限性

  1. RIP协议允许一个自治系统中只能包含15个路由器,这在大型的互联网络中是不切实际的
  2. 该协议是以跳数(分组经过的路由器个数)作为衡量标准,并以此标准来选择路由,这一措施欠合理性,因为他没有考虑到网络延时、可靠性、线路负荷等因素。对传输质量和速度的影响。

因此我们就希望能够出现另外一种能够克服以上缺点并且能够完成最佳路径选择的协议,也就是我们马上学习的OSPF协议。

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

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

相关文章

【mmcls】mmdet中使用mmcls的网络及预训练模型

mmcls现在叫mmpretrain,以前叫mmclassification,这里为了统一称为mmcls。在基于MM框架的下游任务,例如检测(mmdetection)中可以使用mmcls中的backbone进行特征提取,但这就需要知道网络的参数以及输出特征的维度。本文简单介绍了在…

CDD诊断数据库的简单介绍

1. 什么是数据库? 数据库是以结构化方式组织的一个数据集合。 比如DBC数据库: Network nodes Display Rx Messages EngineState(0x123) 通过结构化的方式把网络节点Display里Rx报文EngineState(0x123)层层展开。这种方 式的好处是:层次清晰,结构分明,易于查找。 2. 什么…

ERROR: AddressSanitizer: heap-use-after-free on address

内存错误"heap-use-after-free",这是因为在C中,当使用delete关键字释放对象的内存后,该对象仍然会保留指向已经被释放内存的指针。这个指针称为悬挂指针(Dangling Pointer)。如果我们试图访问已经被释放的内…

【Linux】15. 文件系统与软硬链接

1. 文件系统的引出 在之前的学习过程当中,我们知道当文件被打开后需要加载进内存,第一步为其创建struct file结构体描述其结构(操作系统需要管理被打开的文件:先描述再组织),在通过进程当中的文件描述符指针指向文件描述符表&…

《机器学习算法竞赛实战》-chapter2问题建模

《机器学习算法竞赛实战》学习笔记,记录一下自己的学习过程,详细的内容请大家购买作者的书籍查阅。 问题建模 当参赛者拿到竞赛题目时,首先应该考虑的事情就是问题建模,同时完成基线(baseline)模型的pipeline搭建,从…

芯片工程师平均薪酬排第一,入行就学这几个热门专业>>>

高考已经结束,对于广大考生来说,考一个理想的分数固然重要,但高考志愿的填报同样事关重大,它决定未来几年考生的学习走向,也会影响到考生未来职业生涯的长远发展。目前,北京、江苏、河南、湖南、海南、甘肃…

Spring Boot进阶(45): Spring Boot 如何返回统一结果包装?一文教会你 | 超级详细,建议收藏

1. 前言🔥 现如今是前后端分离的时代,如果没有统一的返回格式,给前端的结果各式各样,估计前端小伙伴就要骂街了。我们想对自定义异常抛出指定的状态码排查错误,对系统的不可预知的异常抛出友好一点的异常信息。我们想让…

Java基础重点概要(部分)

为工信部第六届全国计算机信息大赛准备 ,主要复习以下内容。 Java基础及环境:JDK发展历史,不同版本的进阶内容。Java程序的编写、编译、调试。 Java程序设计基础:常量和变量的概念,声明方式和作用域。基本数据类型的定…

基于Java学校运动会管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

C语言之指针详解(4)

目录 本章重点 1. 字符指针 2. 数组指针 3. 指针数组 4. 数组传参和指针传参 5. 函数指针 6. 函数指针数组 7. 指向函数指针数组的指针 8. 回调函数 9. 指针和数组面试题的解析 函数指针 数组指针—指向数组的指针 函数指针—指向函数的指针 函数指针 我们来看代码 #…

基于人工智能,现代数据基础架构的新兴架构

作者 Matt Bornstein、Jennifer Li和Martin Casado 摘要 现代机器学习基础设施2.0新架构: http://bit.ly/3AVBpV6 这个图概括了机器学习基础设施2.0的主要组成部分。它涵盖了从数据转换到模型集成的全过程。每个阶段的具体工具和技术也在括号中列出。 结构解读 …

stub实验和配置命令

拓扑 需求 将区域12设置为Stub区域,使区域12的路由设备不受外部链路影响(不接收4/5类LSA)降低区域12(末梢区域)设备压力,还能让区域12的PC1与外部PC3通信 配置步骤 1)配置接口信息 - 配置PC的IP地址 - 配置…

SpringBoot的基础配置 - yaml文件的格式以及数据读取

文章目录 SpringBoot基础配置配置文件格式yaml文件格式yaml数据读取 SpringBoot基础配置 配置文件格式 我们用修改服务器端口号来举例, 演示配置的格式 目前我们SpringBoot入门程序已经可以启动, 但是端口是使用的默认的8080 http://localhost:8080/books/1修改服务器的端口号…

CleanMyMacX4.13.4中文免费版mac电脑管家

CleanMyMac X这款软件集成清理、mac保护、速度优化维护、应用程序管理和文件管理5大功能,使用过程安全高效,用户不必担心误操作导致系统的崩溃。作为一款专业的mac电脑系统管家,CleanMymac X一直致力于更加智能、便捷地全方位维护我们的电脑&…

基于servlet+jsp+mysql人事工资管理系统(含实训报告)

基于servletjspmysql人事工资管理系统 一、系统介绍二、功能展示1.用户登陆2.查看个人信息3.查看个人工资、查看考勤4.查看自己所在部门5.人员信息管理6.考勤管理(管理员)7.工资管理(管理员)8.部门管理(管理员&#xf…

批量生成,本地推理,人工智能声音克隆框架PaddleSpeech本地批量克隆实践(Python3.10)

云端炼丹固然是极好的,但不能否认的是,成本要比本地高得多,同时考虑到深度学习的训练相对于推理来说成本也更高,这主要是因为它需要大量的数据、计算资源和时间等资源,并且对超参数的调整也要求较高,更适合…

大数据处理架构Hadoop

大数据处理架构 Hadoop 概述Hadoop简介Hadoop的特性 Hadoop项目架构Hadoop的安装和使用Hadoop的安装方式Hadoop的安装配置(单机/伪分布式)SSH登录权限设置单机安装配置伪分布式安装配置 Hadoop集群的部署与使用Hadoop集群中有哪些节点类型集群规模要多大…

Python高级系列教程:HTTP协议与静态Web服务器开发

学习目标 1、了解HTTP协议的基本概念 2、掌握HTTP请求报文与响应报文 3、学会使用开发者工具查看HTTP协议的通信过程 4、搭建Python自带的静态Web服务器 5、掌握Python静态Web服务器开发 一、HTTP协议概述 1、网址URL 网址又称为URL,URL的英文全拼是(Uniform …

Vue中如何进行表格合并与拆分

Vue中如何进行表格合并与拆分 在Vue应用程序中,表格是一个非常常见的组件。有时候我们需要对表格进行合并或拆分来满足特定的需求。在本文中,我们将介绍如何在Vue中进行表格的合并和拆分。 如何进行表格合并? 表格合并是指将多行或多列的单…

如何使用ArcGIS制作SketchUp格式三维建筑

GIS数据也可以和传统的三维建模软件进行结合,在很长一段时间内,一直有客户问如何将水经微图中下载的建筑数据转换为SketchUp模型,这里给大家找到了一种解决方案,可以通过插件进行转换,希望能够对你有所帮助。 加载插件…