OSPF路由计算
关于OSPF路由的基础概述可以看看这篇博客
动态路由---OSPF协议基础
https://blog.csdn.net/ZZZCY2003/article/details/141335261
区域内路由计算
LSA概述
- LSA是OSPF进行路由计算的关键依据
- OSPF的LSU报文可以携带多种不同类型的LSA
- 各种类型的LSA拥有相同的报文头部

重要字段解析
- LS Age(链路状态老化时间):表示LSA已经生存的时间,单位为秒。LSA被始发时,该字段为0,随着LSA在网络中被泛洪,该时间逐渐累加,当到达MaxAge (缺省值为3600s)时,LSA不再用于路由计算
- Options(可选项):每一个bit都对应了OSPF所支持的某种特性
- LS Type(链路状态类型):指示本LSA的类型
- Link Start ID(链路状态ID):不同的LSA,该字段定义不同
- Advertising Router(通告路由器):产生该LSA的路由器的Router ID
- LS Sequence Number(链路状态序列号):当LSA每次有新的实例产生时,序列号就会增加
- LS Checksum(校验和):用于保证数据的完整性和准确性
- Length:是一个包含LSA头部在内的LSA的总长度值
注:链路状态类型、链路状态ID、通告路由器三元组唯一标识一个LSA。老化时间、序列号、校验和用于判断LSA的新旧

链路状态类型
其中类型2、网络LSA是由DR生成,描述网络上所有路由器的连接状态
Router-LSA
报文格式

- V (Virtual Link) :如果产生此LSA的路由器是虚连接的端点,则置为1
- E (External) :如果产生此LSA的路由器是ASBR ,则置为1
- B (Border ) :如果产生此LSA的路由器是ABR ,则置为1
- links:LSA中的Link (链路)数量。Router LSA使用Link来承载路由器直连接口的信息
| Link Type | Link ID | Link Data |
| Point-to-Point(P2P):描述一个从本路由器到邻居路由器之间的点到点链路,属于拓扑信息 | 邻居路由器的Router ID | 宣告该Router LSA的路由器接口的IP地址 |
| TransNet:描述一个从本路由器到一个Transit网段(例如MA或者NBMA网段)的连接,属于拓扑信息 | DR的接口IP地址 | 宣告该Router LSA的路由器接口的IP地址 |
| StubNet:描述一个从本路由器到一个Stub网段(例如Loopback接口)的连接,属于网段信息 | 宣告该Router LSA的路由器接口的IP地址 | 该Stub网络的网络掩码 |
Router LSA描述P2P网络

<Huawei>display ospf lsdb router self-originate

Network-LSA
报文格式

- Link State ID:DR的接口IP地址
- Network Mask:MA网络的子网掩码
- Attached Router:连接到该MA网络的路由器的Router-ID (与该DR建立了邻接关系的邻居的Router-ID,以及DR自己的Router-ID),如果有多台路由器接入该MA网络,则使用多个字段描述
SPF计算过程
其实这个候选列表可能不太看习惯,可以理解为原来的邻居列表,更看重的是开销值,从根节点开始,一个等级的子结点开始对比开销值,开销低就移到最短路径树上。就是重复这个操作,若是有两个相同的结点但开销不同,则选择开销低的路径
一直这样重复操作,最终得到最短路径树,后面就要计算最短路由
区域间路由计算
OSPF要求网络内的路由器同步LSDB,但是当网络规模达到一定程度时,LSDB会非常臃肿,设备根据LSDB进行计算也变得复杂。所以这时候就需要划分多区域

划分区域后,路由器主要分为两种角色:
区域内部路由器IR:所有接口同属于一个OSPF区域,如R1、R4、R5
区域边界路由器ABR:设备接口分别连接两个及两个以上不同区域,如R4、R5
区域间路由信息传递

- R2依据Area 1内所泛洪的Router LSA及Network LSA计算得出192.168.1.0/24路由(区域内路由),并将该路由通过Network Summary LSA通告到Area 0。R3根据Area 0中的该L SA可计算出到达192.168.1.0/24的区域间路由。
- R3重新生成一份Network Summary LSA通告到Area 2中,至此所有OSPF区域都能学习到去往192.168.1.0/24的路由。
Network Summary LSA
报文格式

- LS Type:取值3,代表Network Summary LSA
- Link State ID:路由的目的网络地址
- Advertising Router:生成LSA的Router ID
- Network Mask:路由的网络掩码
- metric:到目的地址的路由开销
区域间的防环机制
在多域间路由中,并没有使用SPF树算法,而是使用了星型拓扑,中心为Area 0。每个区域都需要和Area 0进行相连。其它区域之间不直接相连

区域内则是使用SPF树算法,在区域外则使用星型拓扑进行防环机制

注:ABR不会将描述到达某个区域内网段路由的3类LSA在注入回该区域
因为3类LSA不会重新回到所处区域,所以上图中R1和R3都无法和10.0.2.2/32通信
相关文章:
OSPF路由计算
关于OSPF路由的基础概述可以看看这篇博客 动态路由---OSPF协议基础https://blog.csdn.net/ZZZCY2003/article/details/141335261 区域内路由计算 LSA概述 LSA是OSPF进行路由计算的关键依据OSPF的LSU报文可以携带多种不同类型的LSA各种类型的LSA拥有相同的报文头部 重要字段解…...
【设计模式-迭代】
定义 迭代器模式(Iterator Pattern)是一种行为型设计模式,用于提供一种顺序访问集合对象元素的方式,而不暴露该对象的内部表示。通过迭代器,客户端可以在不需要了解集合实现的细节的情况下遍历集合中的元素。 UML图 …...
k8s搭建双主的mysql8集群---无坑
《k8s搭建一主三从的mysql8集群---无坑-CSDN博客》通过搭建一主三从,我们能理解到主节点只有1个,那么承担增删改主要还是主节点,如果你在从节点上去操作增删改操作,数据不会同步到其他节点。本章我们将实现多主(双主&a…...
Iterm2配置主题和Oh-My-Zsh
文章目录 一、配置主题1.1 安装使用git1.2 安装手册1.2.1 激活使用主题 二、配置oh-my-zsh2.1、oh-my-zsh插件2.2、oh-my-zsh主题 [Zsh](http://zsh.org/)2.2.1、Install using Git2.2.2、Install manually2.2.3、Activating theme2.2.4、Install using [zplug](https://github…...
html+css+js实现step进度条效果
实现效果 代码实现 HTML部分 <div class"box"><ul class"step"><li class"circle actives ">1</li><li class"circle">2</li><li class"circle">3</li><li class&quo…...
OpenCV视频I/O(8)视频采集类VideoCapture之从视频源中读取一帧图像函数read()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 抓取、解码并返回下一个视频帧。 cv::VideoCapture::read() 是 VideoCapture 类的一个成员函数,用于从视频源中读取一帧图像. 该方法…...
深度学习500问——Chapter17:模型压缩及移动端部署(2)
文章目录 17.4.6 低秩分解 17.4.7 总体压缩效果评价指标有哪些 17.4.8 几种轻量化网络结构对比 17.4.9 网络压缩未来研究方向有哪些 17.5 目前有哪些深度学习模型优化加速方法 17.5.1 模型优化加速方法 17.5.2 TensorRT加速原理 17.5.3 TensorRT如何优化重构模型 17.5.4 Tensor…...
【C#】DllImport的使用
DllImport 是 C# 中用于从非托管 DLL(动态链接库)中导入函数的一个特性。这个特性允许你在 .NET 应用程序中调用由其他语言编写的函数,如 C 或 C。使用 DllImport 可以让你重用现有的非托管代码,而不需要重新实现这些功能。 下面…...
基于 Redis 实现滑动窗口的限流
⏳ 限流场景:突发流量,恶意流量,业务本身需要 基于 Redis 实现滑动窗口的限流是一种常见且高效的做法。Redis 是一种内存数据库,具有高性能和支持原子操作的特点,非常适合用来实现限流功能。下面是一个使用 Redis 实现…...
Camera Raw:打开图像
在图像工作流程中,无论是 Raw 格式图像文件还是 JPEG、TIFF 文件,都可以先使用 Camera Raw 打开并调整后,再进入其它 Adobe 软件如 Photoshop 中进行进一步的编辑和处理。 一、打开 Raw 格式图像 1、通过 Adobe Bridge 打开 在 Adobe Bridge …...
RK3588主板PCB设计学习(六)
可以在其它层对过孔进行削盘处理, 可以看到,这里有些过孔用不上,在这一层进行了削盘处理: 对于这种电源层进行铺铜操作的时候,如果不进行削盘处理的话这些焊盘可能导致这个电源层面不完整,存在割裂的风险&a…...
论文阅读(十一):CBAM: Convolutional Block Attention Module
文章目录 IntroductionConvolutional Block Attention ModuleExperimentsConclusion 论文题目:CBAM: Convolutional Block Attention Module(CBAM:卷积注意力机制) 论文链接:点击跳转 代码链接:Git…...
【Kubernetes】常见面试题汇总(四十八)
目录 108.考虑一家拥有非常分散的系统的跨国公司,希望解决整体代码库问题。您认为公司如何解决他们的问题? 109.我们所有人都知道从单服务到微服务的转变从开发方面解决了问题,但在部署方面却增加了问题。公司如何解决部署方面的问题&#x…...
Qt Creator安卓环境配置【筑基篇】
1.前言 由于我的Qt Creator目前就先的14版本IDE老是存在各种莫名奇妙的bug,我都已经成为官方Qt Forum官方论坛的常客了。有一说一新版本的各种设置不小心误触是真的坑死人。不说了给我小主机配置安卓环境了。小主机系统版本window11-23H,Qt-Creator版本是13.01版本…...
利用SpringBoot构建高效社区医院平台
2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…...
【C++ 前缀和 数论】1590. 使数组和能被 P 整除|2038
本文涉及的基础知识点 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 质数、最大公约数、菲蜀定理 LeetCode 1590. 使数组和能被 P 整除 给你一个正整数数组 nums,请你移除 最短 子数组(可以为 空)&am…...
外部引入的 JavaScript 放置位置
部引入的 JavaScript 通常有两种常见的放置位置,每个位置都有其优缺点,具体取决于页面的需求和性能优化目标: 1. 放在页面的 <head> 标签中 这种方式在 HTML 文档的 <head> 部分引入 JavaScript 文件。 <head><scrip…...
【tbNick专享】虚拟机域控、成员服务器、降级等管理
在 VMware 中完成四台域控服务器、一台成员服务器的创建、降级域控为成员服务器,并创建子域的操作。 1. 创建四台域控和一台成员服务器 1.1 在 VMware 中创建虚拟机 启动 VMware Workstation: 打开 VMware Workstation,点击 “创建新的虚拟…...
Raspberry Pi3B+之Rpanion(gst)和ffmpeg验证
Raspberry Pi3B之Rpanion-gst和ffmpeg验证 1. 源由2. 分析3. 环境搭建步骤1:安装镜像步骤2:系统更新步骤3:安装numpy组件步骤4:安装python3-picamera2组件步骤4:安装cv2组件步骤5:安装ffmpeg组件步骤6&…...
数据结构编程实践20讲(Python版)—04队列
本文目录 04 队列 QueueS1 说明S2 示例普通队列循环队列双端队列优先队列S3 问题:基于普通队列实现的打印机任务管理Python3程序S4 问题:使用循环队列管理玩家移动轨迹Python3程序S5 问题:使用双端队列来管理文档操作历史Python3程序S6 问题:使用优先队列管理车辆调度Pytho…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
全面解析数据库:从基础概念到前沿应用
在数字化时代,数据已成为企业和社会发展的核心资产,而数据库作为存储、管理和处理数据的关键工具,在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理,到社交网络的用户数据存储,再到金融行业的交易记录处理&a…...



