当前位置: 首页 > news >正文

RIP、OSPF、IS-IS学习

文章目录

  • 前言
  • RIP路由信息协议
  • OSPF开放最短路径优先
  • IS-IS 中间系统到中间系统
  • 总结


前言

路由协议的种类繁多,每种协议都有其独特的特性、工作原理和适用场景。本文将重点介绍:RIP(路由信息协议)、OSPF(开放最短路径优先)和IS-IS(中间系统到中间系统)

RIP路由信息协议

(Routing Information Protocol)

特性

  • 基于距离向量:RIP使用跳数作为路由度量,简单直观。
  • 自动路由更新:周期性广播路由信息,无需手动配置。
  • 易于实施:配置简单,适合初学者和小型网络。
  • 有限的网络规模:由于跳数限制(最大15跳),不适合大型复杂网络。

工作原理

  1. 路由表初始化:路由器启动时,将所有未知目的地的路由设置为默认跳数16。
  2. 广播路由信息:路由器定期向所有邻居广播自己的路由表。
  3. 更新路由表:收到邻居的路由信息后,根据收到的距离和自己的路由表进行比较,如果收到的距离更小,则更新自己的路由表。
  4. 毒性逆转:如果收到的路由距离大于自己路由表中的距离加1,将其设置为不可达(跳数16)。
  5. 路由老化:如果长时间没有收到特定路由的更新,该路由将从路由表中删除。

应用场景

  • 小型办公网络:网络规模小,结构简单,易于管理和维护。
  • 教育机构:成本敏感,易于教授和学习。
  • 临时网络:如会议或展览,快速部署和配置。

OSPF开放最短路径优先

(Open Shortest Path First)
特性

  • 链路状态路由:每个路由器独立计算到达所有目的地的最短路径。
  • 区域支持:通过区域划分,减少路由信息的泛洪范围,提高效率。
  • 快速收敛:链路状态变化时,快速更新路由表,收敛速度快。
  • 支持VLSM和CIDR:适应不同长度的子网掩码,提高IP地址的利用率。

工作原理

  1. 维护LSDB:每个路由器维护一个链路状态数据库,记录网络的拓扑结构。
  2. Hello协议:通过Hello包发现邻居并建立邻接关系。
  3. 泛洪LSA:链路状态发生变化时,生成LSA并泛洪到所有路由器。
  4. Dijkstra算法:使用Dijkstra算法计算最短路径。
  5. 区域间路由:通过ABR(区域边界路由器)在不同区域间传递路由信息。

应用场景

  • 大型企业网络:需要快速收敛和高效路由的大型网络环境。
  • 服务提供商网络:需要支持大量用户和动态IP地址分配的网络。
  • 数据中心:需要高效率和可靠性的路由协议。

报文分类

  1. Hello报文
    • 功能:用于发现和维护同一网络内的邻居路由器关系。
    • 内容:包含路由器的Router ID、接口的IP地址、网络掩码、Hello间隔、路由器优先级等信息。
  2. DD报文(Database Description Packet)
    • 功能:用于描述路由器链路状态数据库(LSDB)的内容,是LSDB同步过程中的一部分。
    • 内容:包含路由器拥有的链路状态通告(LSA)的摘要信息,用于初始化和同步LSDB。
  3. LSR报文(Link-state Request Packet)
    • 功能:当路由器的LSDB不完整或需要更新时,通过LSR报文请求邻居路由器提供特定的LSA。
    • 内容:包含请求的LSA的LS type、Link State ID和Advertising Router的标识。
  4. LSU报文(Link-state Update Packet)
    • 功能:包含一个或多个链路状态通告(LSA),用于向邻居路由器通告链路状态变化或更新。
    • 内容:可以包含不同类型的LSA,如路由器LSA、网络LSA、ASBR-LSA等,是LSDB同步的关键部分。
  5. LSAck报文(Link-state Acknowledgement Packet)
    • 功能:对收到的LSU报文中的LSA进行确认,确保LSA的可靠传输。
    • 内容:对LSU报文中的每个LSA进行确认,如果收到的LSA是新的或更新的,LSAck报文会进行确认。

IS-IS 中间系统到中间系统

(Intermediate System to Intermediate System)
特性

  1. 分层路由:IS-IS使用两级路由体系,即Level-1和Level-2。Level-1路由器负责区域内路由,Level-2路由器负责区域间路由,Level-1-2路由器则同时具备两种功能。
  2. 快速收敛:IS-IS能够快速响应网络变化,因为它是基于链路状态的,所以当链路状态发生变化时,可以迅速计算出新的路由。
  3. 支持大规模网络:设计用于大型网络,IS-IS可以处理大量的路由信息,适用于大型服务提供商和企业网络。
  4. 双协议栈:原生支持IPv4和IPv6,使得IS-IS能够在一个网络中同时运行两种协议。
  5. 高效的路由计算:使用Dijkstra算法进行路由计算,确保找到最短路径。

工作原理

  1. 邻居发现:通过Hello协议建立邻居关系。
  2. 维护LSDB:每个路由器维护两个LSDB,分别对应Level-1和Level-2。
  3. LSP泛洪:使用LSP(链路状态PDU)泛洪链路状态信息。
  4. 路由计算:使用最短路径算法计算到达目的地的最佳路径。
  5. 区域间路由:通过L1/L2路由器在不同区域间传递路由信息。

应用场景

  • 大型电信网络:需要高效和可扩展的路由协议的大规模网络。
  • 多协议网络:需要同时运行IPv4和IPv6的网络环境。
  • 复杂的企业网络:具有多个层次和区域的大型企业网络。

总结

  • RIP以其简单直观的特性,适合小型网络和初学者使用。它的自动路由更新和易于实施的特点,使得在小型办公网络和教育机构中非常受欢迎。然而,由于其跳数限制,RIP并不适用于大型复杂网络。

  • OSPF作为链路状态路由协议,以其快速收敛和高效的路由计算而著称。它通过区域支持和VLSM/CIDR的适应性,为大型企业网络和服务提供商网络提供了强大的路由解决方案。OSPF的报文分类和功能,如Hello、DD、LSR、LSU和LSAck,共同确保了路由信息的准确传递和更新。

  • IS-IS则以其分层路由和双协议栈的特性,在大型电信网络和多协议网络中发挥着重要作用。它的快速收敛和高效路由计算能力,使其成为复杂企业网络的理想选择。

相关文章:

RIP、OSPF、IS-IS学习

文章目录 前言RIP路由信息协议OSPF开放最短路径优先IS-IS 中间系统到中间系统总结 前言 路由协议的种类繁多,每种协议都有其独特的特性、工作原理和适用场景。本文将重点介绍:RIP(路由信息协议)、OSPF(开放最短路径优…...

移植案例与原理 - build lite源码分析 之 hb命令__main__.py

hb命令可以通过python pip包管理器进行安装,应该是OpenHarmony Build的缩写,在python包名称是ohos-build。hb作为编译构建子系统提供的命令行,用于编译构建产品、芯片厂商组件或者单个组件。本文,我们来学习hb的源码。 1、hb的安…...

Leo赠书活动-26期 不同数据库背后的数据存储方案

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 赠书活动专栏 ✨特色专栏:…...

在Windows10中使用Vim

服务器没有图形界面,但是numpy包又需要调用图形界面接口,这样就导致了错误,搞得我只好先回windows开发。看来当年 Ubuntu桌面版也不算是多此一举啊。 这么多ide我还是喜欢vim,因为它真的太简单了。咱们这个老年机启动的也非常快&…...

【Python机器学习实战】 | 基于PCA主成分分析技术读入空气质量监测数据进行数据预处理并计算空气质量综合评测结果

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…...

学习java第一百零八天

Spring的AOP理解: OOP面向对象,允许开发者定义纵向的关系,但并不适用于定义横向的关系,会导致大量代码的重复,而不利于各个模块的重用。 AOP,一般称为面向切面,作为面向对象的一种补充&#xff…...

Linux通配符总结

Linux通配符总结 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在Linux系统中,通配符是一种用于匹配文件名或路径名的特殊字符。通过使用通配符&a…...

ffmpeg的安装教程

1.官网下载ffmpeg 进入Download FFmpeg网址,点击下载windows版ffmpeg(点击左下第一个绿色的行) 在release builds第一个绿框里面选择一个版本下载。 2.配置 下载完成后解压该压缩包单击进入ffmpeg\bin,会出现如下界面&#xff1…...

禅道身份认证绕过漏洞(QVD-2024-15263)复现

禅道项目管理系统在开源版、企业版、旗舰版的部分版本中都存在此安全漏洞。攻击者可利用该漏洞创建任意账号实现未授权登录。 1.漏洞级别 高危 2.漏洞搜索 fofa: title"禅道"3.影响范围 v16.x < 禅道 < v18.12 &#xff08;开源版&#xff09; v6.x <…...

深入分析 Android BroadcastReceiver (六)

文章目录 深入分析 Android BroadcastReceiver (六)1. 广播机制的高级优化策略1.1 使用 Sticky Broadcast&#xff08;粘性广播&#xff09;示例&#xff1a;粘性广播&#xff08;过时&#xff0c;不推荐&#xff09; 1.2 使用 LiveData 和 ViewModel 进行组件通信示例&#xf…...

mysql 查询的一般思路

能用单表优先用单表&#xff0c;即便是需要用group by、order by、limit等&#xff0c;效率一般也比多表高 不能用单表时优先用连接&#xff0c;连接是SQL中非常强大的用法&#xff0c;小表驱动大表建立合适索引合理运用连接条件&#xff0c;基本上连接可以解决绝大部分问题。…...

【Web APIs】DOM 文档对象模型 ⑤ ( 获取特殊元素 | 获取 html 元素 | 获取 body 元素 )

文章目录 一、获取特殊元素1、获取 html 元素2、获取 body 元素3、完整代码示例 本博客相关参考文档 : WebAPIs 参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/APIgetElementById 函数参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/API/Document/getE…...

Android11 以Window的视角来看FallbackHome的启动

在WMS中&#xff0c;使用WindowState代表着一个Window并维护着一个Window的"层级树"&#xff0c;每个Window需要按照"层级"的规则进行排列。对于FallbackHome&#xff0c;其Window是挂载在home task上&#xff0c;而home task挂载在DefaultTaskDisplayArea…...

9 RestClient客户端操作文档

1. match_all GetMapping("matchAll")public void matchAll() throws IOException {//1. 准备requestSearchRequest request new SearchRequest("hotel");//2. 组织DSL参数request.source().query(QueryBuilders.matchAllQuery());SearchResponse respon…...

『Z-Weekly Feed 08』加密资产观 | FHE应用前景 | OPAL协议

一位机构投资者的加密资产观 作者&#xff1a;Hongbo 01 &#x1f4a1;TL;DR 在加密投资领域如何找到真正的“价值”&#xff1a;Crypto 作为一种新兴资产&#xff0c;应该找到一种区别于传统公司股票资产的估值方法&#xff0c;本文重点阐述了加密货币作为新的资产类型与传统资…...

酒店预定系统

酒店预定系统本身设计过程中会遇到售卖系统两个常见问题&#xff0c;第一个同一个房间同一日期被多个订单预定&#xff0c;或者预定和库存数据不一致&#xff0c;这些都会涉及到金钱&#xff0c;需要在系统涉及是被重点考虑。 问题1:同一个房间同一个日期被多个订单预定 酒店…...

Redis的实战常用一、验证码登录(解决session共享问题)(思路、意识)

一、基于session实现登录功能 第一步&#xff1a;发送验证码&#xff1a; 用户在提交手机号后&#xff0c;会校验手机号是否合法&#xff1a; 如果不合法&#xff0c;则要求用户重新输入手机号如果手机号合法&#xff0c;后台此时生成对应的验证码&#xff0c;同时将验证码进行…...

基于Spring Boot的智能分析平台

项目介绍&#xff1a; 智能分析平台实现了用户导入需要分析的原始数据集后&#xff0c;利用AI自动生成可视化图表和分析结论&#xff0c;改善了传统BI系统需要用户具备相关数据分析技能的问题。该项目使用到的技术是SSMSpring Boot、redis、rabbitMq、mysql等。在项目中&#…...

HTML(13)——显示模式

目录 显示模式 块级元素 行内元素 行内块元素 转换显示模式 显示模式&#xff1a;标签的显示方式 作用&#xff1a;布局网页时&#xff0c;根据标签的显示模式选择合适的标签摆放内容 显示模式 块级元素 独占一行宽度默认为父级的100%添加宽高属性生效 行内元素 …...

【Spring】Spring Boot 快速入门

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…...

Go自定义数据的序列化流程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...

贪心算法练习题(2024/6/18)

什么是贪心 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 贪心算法一般分为如下四步&#xff1a; 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优解将局部最优解堆叠成全局最优解 1分发饼干 假设你是一位很棒的家长&#xff0c…...

4.1 四个子空间的正交性

一、四个子空间的正交性 如果两个向量的点积为零&#xff0c;则两个向量正交&#xff1a; v ⋅ w v T w 0 \boldsymbol v\cdot\boldsymbol w\boldsymbol v^T\boldsymbol w0 v⋅wvTw0。本章着眼于正交子空间、正交基和正交矩阵。两个子空间的中的向量&#xff0c;一组基中的向…...

RabbitMQ实践——使用WebFlux响应式方式实时返回队列中消息

大纲 Pom.xml监听队列实时返回消息测试完整代码工程代码 在之前的案例中&#xff0c;我们在管理后台收发消息都是通过短连接的形式。本文我们将探索对队列中消息的实时读取&#xff0c;并通过流式数据返回给客户端。 webflux是反应式Web框架&#xff0c;客户端可以通过一个长连…...

SpringBoot前后端传递数据时常用的JSON格式数据是什么?【讲解JSON概念、语法、以及Java对象互转】

SpringBoot前后端传递数据时常用的JSON格式数据是什么&#xff1f; JSON概念JSON语法JSON的两种结构&#xff1a;JSON字符串和Java对象互转&#xff1a;objectMapper.writeValueAsString(person);objectMapper.readValue(jsonStr,Person.class); 在SpringMVC框架中&#xff0c;…...

mysql学习——SQL中的DQL和DCL

SQL中的DQL和DCL DQL基本查询条件查询聚合函数分组查询排序查询分页查询 DCL管理用户权限控制 学习黑马MySQL课程&#xff0c;记录笔记&#xff0c;用于复习。 DQL DQL英文全称是Data Query Language(数据查询语言)&#xff0c;数据查询语言&#xff0c;用来查询数据库中表的记…...

windows系统上nginx搭建文件共享

1、下载windows版nginx 下载地址 2、配置nginx 编辑nginx.conf配置文件 在http模块下添加这个参数 underscores_in_headers on;#修改location内容&#xff0c;共享哪个文件夹&#xff0c;就写哪个文件夹&#xff0c;最后一定要跟上/&#xff0c;否则无法访问 location / {…...

星闪指向遥控,做家电交互的破壁人

“面壁者罗辑&#xff0c;我是你的破壁人。” 科幻小说《三体》中&#xff0c;当人类的基础科学被三体人封锁&#xff0c;变得停步不前&#xff0c;人类启动了自救的面壁计划&#xff0c;通过一次又一次破壁&#xff0c;找到战胜三体人的办法。 现实中&#xff0c;有一点已经成…...

SpringBoot使用AutoConfigure实现依赖库自动导入配置

我们知道导入配置有两种&#xff0c;一种是Value&#xff0c;一种是ConfigurationProperties&#xff0c;将对应的类标记为Component即可导入。但是被注解标识的类创建Bean有一个前提&#xff0c;只对启动类所在的包路径下的所有带有Component等注解的类才会创建Bean。如果我们…...

QT中利用动画弄一个侧边栏窗口,以及贴条效果

1、效果 2、关键代码 void Widget::on_sliderBtn_clicked() {m_sliderWidget->show();QPropertyAnimation* animation = new QPropertyAnimation(m...