《图解TCP/IP》阅读笔记(第七章 7.4)—— RIP 路由信息协议

news2024/11/24 23:04:14

7.4 RIP

RIP(Routing Information Protocol,路由信息协议),是一种距离向量算法,广泛用于LAN。

该协议将路由控制信息定期(30秒一次)向全网广播。如果没有收到路由控制信息,连接就会被断开。考虑到有可能是因为丢包导致,所以RIP规定等待5次。如果超过6次即180秒仍未收到路由信息,就会真正的关闭连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X6D3HdUl-1671972849055)(2022年12月25日.assets/image-20221225192727692.png)]

RIP会根据距离向量算法决定路径,距离单位成为“跳数”,即经过的路由器的个数(IP首部中有个生存周期字段TTL,和跳数对应)。RIP希望尽可能少通过路由器将数据包转发到目标IP地址,如下图所示。最终,路由器会根据距离向量生成距离向量表,抽出较小的路由生成最终的路由控制表。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UKHnnPPY-1671972849056)(2022年12月25日.assets/image-20221225193246155.png)]


因为子网掩码的长度不固定(并非8的倍数),使用子网掩码时则需要另外注意以下两点:

  • 将借口的IP地址对应分类得出网络地址后,与根据路由控制信息流过此路由器的包中的IP地址对应的分类得出的网络地址进行比较,若二者相同,则以接口的网络地址长度为准
  • 若不同,则以IP地址的分类所确定的网络地址长度为准。

例如192.168.1.33/27,这是一个C类地址,按照IP地址分类,其网络地址为192.168.1.33/24。与192.168.1.33/24相符合的IP地址,其网络地址长度会被认为是接口的27位。除此之外,则采用各个地址的分类(例如B类、C类)所确定的网络地址长度。

因此,使用RIP需要注意以下两点:

  • 因IP地址的分类而产生不同的网络地址
  • 构造网络地址长度不同的网络环境

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gdwWfafR-1671972849056)(2022年12月25日.assets/image-20221225194148197.png)]


接下来我们会讲述一下RIP中路由发生变更时的处理

RIP的基本行为可以归纳为

  • 将自己已知的路由信息定期进行广播
  • 一旦认为网络被断开,数据将无法流过此路由器,其他路由器也就可以得知网络已经断开

但是这么做会有些问题,如下图所示:

首先路由器A将信息发送给路由器B,路由器B又将自己的信息发送给路由器A和C。假设这时网络A发生了故障。

路由器A虽然觉察到自己与网络A的连接断开,无法再将网络A的信息发送给路由器B,但是巧就巧在,路由器B这位“懂哥”会告诉A曾知悉的消息。这就使得路由器A误认为自己的信息还可以通过路由器B到达网络A。

然后就会陷入循环之中,路由器A与B仿佛卧龙凤雏一般,陷入喋喋不休的传话之中。这个问题被称为无限计数(Counting to Infinity)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UU6glHKs-1671972849057)(2022年12月25日.assets/image-20221225200438879.png)]

为了解决这个问题,可以采取以下两种方法:

  • 最长距离不超过16(该信息会由垃圾收集计数器(Garbage collection Timer)的工具保留120秒,一旦超过改时间,信息就会被删除)。也可以从时间上进行控制。

  • 规定路由器不再把所收到的路由信息原路返还给发送端,称作为水平分割(Split Horizon)。如下图所示:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UkkU8jGf-1671972849057)(2022年12月25日.assets/image-20221225201537882.png)]

然而,对于那些有环路的网络,以上解决方法是不起作用的。如下图所示,如有回路,凡响的贿赂会成为迂回的通道,路由信息会不断地被循环往复地转发。虽然可以通过设置一个正确的迂回通道来解决这个问题,但是就像下图一样,若网络A的通信发生故障,将无法传送正确的路由信息,尤其是在环路有多余的情况下,需要很长时间才能产生正确的路由信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kXTBa7rP-1671972849057)(2022年12月25日.assets/image-20221225203043947.png)]

为了解决如上问题,有两种方法:

毒性逆转:指网络中发生链路被断开的时候,不是不再发送这个消息,而是将这个无法通信的消息传播出去,广而告之,即发送一个距离为16的消息。

触发更新:指当路由信息发生变化时,不等待30秒而是立刻发送出去。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5eLPByXV-1671972849057)(2022年12月25日.assets/image-20221225203916052.png)]

这两种方法的目的都是为了迅速地传送消息以使路由信息尽快收敛。

然而,即使有了上述的方法,在一个具有众多环路的复杂的网络环境中,路由信息想要达到一个稳定的状态是需要花一段时间的。为了更好的解决这个问题,必须明确地掌握网络结构,为此可以采用OSPF。


RIP2,即RIP第二版,在原版的基础上进行了改良,有了如下这个新的特点:

  • 使用多播

    RIP中路由器之间交换路由信息使用广播,第二版中则使用多播,减少了网络的流量,缩小了对无关主机的影响。

  • 支持子网掩码

    与OSPF类似,RIP2支持在其交换的路由信息中加入子网掩码信息。

  • 路由域选择

    在同一个网络中可以使用逻辑上独立的多个RIP。

  • 外部路由标志

    通常用于把从BGP等获得的路由控制信息通过RIP传送到自治系统中。

  • 身份验证密钥

    携带密码,只有在自己能够识别这个密码时才接收数据,否则忽略这个RIP包。

本篇小结

本篇介绍了重要的路由信息协议RIP。

其通过广播,每隔30秒,将自己已知的路由信息交换给其他路由。

其根据距离向量确定路由,距离单位为“跳数”。

需要注意的一点时,使用子网掩码时有不同的处理。若IP包网络地址与接口的网络地址相同,就使用接口的网络地址,不相同就使用IP分类(例如C类)的那种网络地址。

当网络信息发生变化时,容易因为RIP的回传消息机制,导致在两个路由器之间反复的告知对方某已经断开连接的网络信息。

基本方案一是限制路由器跳数不超过16,二是规定路由器不再把收到路由信息原路返回给发送端(称作为水平分割)。

然而在有环路的网络中,基本方案不起作用,于是人们提出了两种新的解决方案,一是“毒性逆转”:链路断开后,将这个无法通信的消息传播出去,二是“触发更新”:路由信息发生变化时,不等待30秒而是立刻发送。这两种机制可以使得路由信息尽快收敛。

最后介绍了RIP2中的一些新特性。

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

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

相关文章

【1739. 放置盒子】

来源:力扣(LeetCode) 描述: 有一个立方体房间,其长度、宽度和高度都等于 n 个单位。请你在房间里放置 n 个盒子,每个盒子都是一个单位边长的立方体。放置规则如下: 你可以把盒子放在地板上的…

筛法(线性筛,厄拉多塞筛)

在前前前前前前…的博客中,我们主要谈了欧拉筛和埃氏筛. 今天我们主要来聊一聊线性筛和厄拉多塞筛(其实和埃氏筛和欧拉筛本质上没区别哎).其实在这两种筛法中厄拉多塞筛最好懂(就连本蒟蒻一看代码就明白了…别看这个名字,容易糊弄人) 首先是厄拉多塞筛"粉墨登场"::…

HRTransNet阅读理解

E. Dual-direction short connection fusion module HRFormer applies transformer blocks to enlarge receptive field of fused feature Frs, and uses exchange units to absorb the merits of multi-scales features. The process is described as: HRFormer使用TRM块来扩…

《教育的目的》笔记——如何让学生通过树木看见森林

目录 作者简介 个人感悟 经典摘录 1、学生所受的训练应该比他们最终投身的专业更为广泛 2、学习新语言用途 3、教师的责任 4、教育的主题 5、学到的有用之物 6、教育目的 7、所有事物都不是静态的、定型的,而是处于形成(becoming)过…

Merry Xmas | 用Matplotlib画个3D圣诞树送给你!~

1写在前面 Merry Christmas ! 🥳 过完圣诞就要跨年了,希望2023年自己可以一扫霉运,顺顺利利!!!😘 从网上抄了个英文的祝福语送给大家(主要是懒): 👇 I hope S…

【Unity】VideoPlayer实现视频播放

【Unity】VideoPlayer实现视频播放 背景:开发影院场景需要在荧幕上播放视频 环境:Unity2021.3 VideoPlayer的简单使用:http://t.csdn.cn/K8665 局限:上述方法会使得视频播放窗口强制在相机前; 需求:视频播…

怎么看懂单片机时序图?

本人没有上过单片机相关的专业课,是在《计算机系统结构》里遇见的时序图。由于看不懂加之老师没有专门讲,因此自行查阅了相关的视频和博客。(参考视频已放在文末) 网上资源贫瘠,不过我也不需要太过深入的知识。 大家…

spring事物使用示例及原理总结

目录 事务示例 示例一 示例二 示例三 示例四 示例五 示例六 事务原理 EnableTransactionManagement 执行代理对象目标方法 事务示例 示例一 在test()方法直接调用abc()方法,并在test()方法添加Transactional,test()和abc()方法分别会更新id…

力扣刷题笔记day10(树的子结构+二叉树镜像+对称的二叉树)

文章目录树的子结构题目思路代码二叉树镜像题目思路代码对称的二叉树题目思路代码树的子结构 输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值。 题目 思路 dfs(A, B) …

二叉树经典算法题目

1.二叉树的前中后序遍历(简单) 省略 2.二叉树的深度(简单) 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如&a…

Biotin-PEG-MAL,Maleimide-PEG-Biotin,生物素聚乙二醇马来酰亚胺

英文名称:Biotin-PEG-MAL,Maleimide-PEG-Biotin 中文名称:生物素聚乙二醇马来酰亚胺 Biotin-PEG-Mal,聚乙二醇化生物素对亲和素或链霉亲和素有很高的亲和力。生物素/亲和素体系在生物分子检测和分离中有着广泛的应用。马来酰亚胺…

Container Station搭建个人网盘Nextcloud(Mariadb)

目录 一、Container Station 二、MariaDB安装 三、phpMyAdmin安装及nextcloud对应数据库配置 (一)phpMyAdmin安装 (二)nextcloud对应数据库配置 四、Container Station中部署nextcloud (一)拉取镜像…

javascript下载文件几种方式,接收后台返回流下载或直接下载文件

目录 1 javascript下载文件7中方式 1.1 window.location.href下载 1.2 window.location下载 1.3 iframe下载 1.4 form表单的形式下载 1.5 a标签的方式下载 1.6 ajax方式后台返回文件流下载 1.7 axios方法后台返回流方式下载 2.完整源码 1 javascript下载文件7中方式 1…

Discrete Optimization课程笔记(4)—前沿与工具

目录 1.大规模邻域搜索(Large Neighborhood Search) Case1: 带时间窗的非对称TSP(Asymmetric TSP with Time Windows) 2.列生成算法(Column Generation) Case2: Cutting Stock 3.优化工具汇总 1.大规模邻域搜索(Large Neighborhood Search) 大规模邻域搜索是局部搜索和CP…

linux共享内存的使用

共享内存可以由多个程序同时访问的内存,能够避免进程间通信过程中的冗余数据拷贝,是IPC中最快的一种,特别适合用来作大块数据的传输。共享内存可以映射到不同的进程空间,这些进程间的数据传递就不再涉及内核。这个过程其实是把同一块物理内存…

Java高效率复习-Spring[Spring]

前言 Spring的学习还是很简单的&#xff0c;到SpringMVC的时候则会比较复杂了&#xff0c;因为要创建Web项目以及一些Web因素等等。 Spring的简介 Spring入门案例 导入依赖 <packaging>jar</packaging><dependencies><!-- 基于Maven依赖传递性&#x…

[ 代码审计篇 ] Fortify 安装及使用详解(一)Fortify 下载安装并设置语言为中文导出中文报告

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

毕业5年,我买房了

持续坚持原创输出&#xff0c;点击蓝字关注我吧 都说人到30就觉得时间过的很快&#xff0c;这句话确实不假&#xff0c;2022年我已经毕业五年&#xff0c;今年下半年也终于在成都高新区购房了&#xff0c;在这里有了自己的家。 购房对于大多数人来说肯定是人生一件大事吧&…

【Maven基础】单一架构案例(三)

第六节 业务功能&#xff1a;登录 1、显示首页 1.1、流程图 1.2、创建 PortalServlet 1.2.1、创建 Java 类 public class PortalServlet extends ViewBaseServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletExceptio…

NetSuite Decode函数

昨天是平安夜&#xff0c;小家伙仍然为圣诞老人的到来准备了礼物&#xff0c;这是他的传统。每年为了感谢圣诞老人和驯鹿的到来&#xff0c;他都会准备上点心、水果。今年&#xff0c;他认为驯鹿可能需要电力&#xff0c;所以准备了电池给它们享用。 真希望天真一直伴随他的成长…