HCIA项目实践---OSPF的知识和原理总结
9.5 OSPF
9.5.1 从哪些角度评判一个动态路由协议的好坏?
(1)选路佳(是否会出环)
OSPF 协议采用链路状态算法,通过收集网络拓扑信息来计算最短路径,从根本上避免了路由环路的产生。
(2)收敛(速度)快 [跟计时器有关];
(A)快速适应拓扑变化
(B)减少路由震荡(在网络状态频繁变化的情况下,好的协议应能避免路由的频繁抖动,保持路由的相对稳定,以免影响网络的正常运行和数据传输的稳定性。)
(3)占用资源多少;
(4) 其次是安全性。
(A)防攻击能力
OSPF 协议提供了基于区间标识符的身份认证机制
(B)数据保密性
9.5.2 OSPF协议比RIP协议好在什么地方?
(1)OSPF在进行选路时,是以带宽作为评判标准,并且,因为是链路状态型协议,所以,计算出来的路径不会出现环路。从选路的维度来比较,则优于RIP。
(2)因为OSPF的计时器时间短于RIP,则其收敛速度快于RIP;
(3)从单个数据包的角度,OSPF需要传递拓扑信息,所以,其资源占用量远大于RIP,但是,从整体角度看,OSPF并没有像RIP那样高频的周期更新,并且,设计者设计了很多减少资源占用的措施,所以,整体上资源占用略优于RIP。
9.5.3 OSPF的中文名称是什么?
OSPF --- 开放式最短路径优先协议
9.5.4 从版本的角度对OSPF和RIP进行比较:
RIPV1,RIPV2 --- IPV4
RIPNG --- IPV6
OSPFV1(在实验室阶段夭折),OSPFV2(在市场上经常见到这个) --- IPV4
OSPFV3 --- IPV6
9.5.5 对RIPV2和OSPFV2进行比较:
(1)RIPV2和OSPFV2相同点:
说明:RIP和OSPF俩协议:V1都是有类别的路由协议;V2都是无类别的路由协议。
无类别路由协议最本质的原因是:传递路由条目中是否携带子网掩码决定的。携带子网掩码就是无类别,因为是多少子网掩码就带多少。
(A) OSPFV2和RIPV2一样,都是无类别的路由协议。支持VLSM(可变长子网掩码)、CIDR(无类别域间路由,更有效分配IP地址并降低路由表大小)。
(B)OSPFV2和RIPV2一样,都是组播发送信息。(组播没有减少链路资源,可节省硬件设备资源,减小一些算力)
RIPV2的组播地址是224.0.0.9 ;
OSPFV2的组播地址是224.0.0.5和224.0.0.6
(C). OSPFV2和RIPV2一样,都支持等开销负载均衡。
(这种策略都确保每个服务器都能接收到数量大致相同的请求,从而实现负载的均匀分布)
(2)RIPV2和OSPFV2不同点:
A RIPV2只能应用在小型网络环境中(对其影响最大的因素是占用资源);但是OSPFV2可以应用在中大型网络环境中(结构化部署这个特点让OSPF更加适用于大型网络)。
结构化部署:是一种遵循规则流程的系统性技术设施部署方法。涵盖规划、实施与验收优化阶段,包括需求与架构设计、资源准备、硬件软件安装配置、系统集成测试及最终验收交付等环节,旨在提升部署的效率、可靠性与可维护性,保障系统成功上线与稳定运行。
注意:
(收敛速度 也影响协议是应用在中小型企业还是大型企业;
选路不佳也会影响因为选路不佳会让网络延迟比较高但是,最影响的还是占用资源)
结构化部署的优点?
结构清晰:结构化部署的设计使得整个系统结构清晰明了,便于管理和维护。
灵活性强:系统能够灵活适应各种不同的需求,方便进行扩展和升级。
材料统一:采用高品质的标准材料,确保系统的稳定性和可靠性。
节约成本:通过统一的规划设计和部署,可以有效节约费用,同时提高系统的整体效能。
9.5.6 区域划分

(1)划分区域 的目的:
让区域内部传递拓扑信息,区域之间传递路由信息。
(2)区域边界路由器(英文名ABR设备)
它的特点:同时属于多个区域,一个接口对应一个区域,一个接口属于区域0。
ABR可以连接多个区域,区域之间也可以存在多个ABR设备。
(3)区域划分的要求
(A)区域之间必须存在ABR设备;
(B) 区域划分必须按照星型拓扑结构划分;(中间一个区域,其他区域连接在中间这个区域)
为了方便区分这些区域,我们可以用区域ID对其进行编号
其他区域 :可用区域ID对其进行编号,它由32位二进制构成
可用 点分十进制和十进制两种表示方法进行表示。
其他区域的区域ID从区域1,区域2一直往后面排
中间区域:又被称为骨干区域,中间区域的区域ID必须是区域0。
9.5.7在hello包中:什么是RID以及它的特点
(在计算机网络中,RID通常指的是Router ID,即路由器ID的缩写。在OSPF(开放式最短路径优先)协议中,RID是一个非常重要的概念,用于在OSPF区域内唯一标识一台运行OSPF的路由器。每个运行OSPF的路由器都会有一个唯一的RID,用于在OSPF网络中确定其身份,以便其他路由器可以通过这个标识与之进行通信和路由选择。
(1)RID的特点
(1)全网唯一;
(2)格式统一 (一般使用IP地址的格式来表示),由32位二进制构成。
IP地址作为RID太合适了!!!
(2)配置RID的方法?
(A)手工配置RID
由网络管理员手动配置。
(B)自动生成
首先选择设备的环回接口的IP地址,如果存在多个环回接口,则选择其中数值最大(一位一位的比,单纯数字大)的作为RID。如果没有环回接口,则选择物理接口的IP地址作为RID,如果物理接口存在多个,则选 择数值最大的作为RID。
(比如192.168.3.1和193.168.4.1选后者,一位一位地区比较)
9.5.8 OSPF的数据包
(A)hello包
hello包:周期发现,建立以及保活邻居关系
周期时间又称hello时间 (周期一般是10S左右)
失效时间又称死亡时间 (dead time) -时长为 4倍的hello时间
(B)DBD包 (数据库描述报文 )
传递的都是LSA(链路状态通告)
LSDB (链路状态数据库) --- 用来存储LSA信息的数据库。
数据库描述报文里面携带的是本地数据库中LSA信息的摘要信息 (目录,菜单)。
举个栗子理解:例如去乡厨家宴干饭,老板不可能把每一样菜炒一边端上来,因为会浪费,这时候DBD包就相当于一个菜单让顾客选,我的菜单里有那些LSA(菜品)。
(C)LSR包 (链路状态请求报文)
基于DBD包请求本地未知的LSA
(顾客选好的菜品)
(D)LSU包 (链路状态更新报文)
--- 真正携带LSA的数据包
(老板炒菜)
(E)LSACK包 ——(链路状态确认报文 )
确认包(端上来的菜)
OSPF**存在周期更新,30min一次,只能说明设计者不自信,因为这个协议数据量比较大,因此害怕仅通过LSACK不能保证可靠性,设置一个兜底机制,同步数据,保证收敛的完成。但是也不能设计的太快,否则占用资源又会变多。
9.5.9 OSPF的状态机

(类似于生活中的理解:A进入交友平台,这时是Down State状态,A在交友平台上发布了求偶启示,一直会盯着屏幕看是否有人回复消息, 这时就是Init State初始化状态,以组播的形式,B看到回复A,这时候就建立Two-Way的关系,成为朋友关系)。
Two-Way --- 标志着邻居关系的建立。
(条件匹配) --- 如果满足匹配要求,则将进入到下一个状态;如果匹配失败,则停留在邻居关系,仅使用hello包进行周期保活即可。(对本句话的理解就是如果对方答应,变为情侣关系,如果拒绝,则维持普通的朋友关系)。

Exstart 状态 ---主从关系选举 --- 通过使用未携带数据的DBD包来比较RID,以RID大的为主,为主可以优先获取LSA的摘要信息。(可以理解为变成情侣之后,谁在家中的地位比较高,谁听谁的。)
使用DBD包进行主从关系选举主要是为了表示已经超越了邻居关系。(可以理解为:情侣之间可以做的事情比普通朋友之间做的事情更加亲密,体现身份的不一样)

上面图片的第一个LSACK是错误的
FULL State ——标志着邻接关系的建立。 --- 邻接状态主要为了和邻居状态进行区分。只有邻接状态可以交换LSA信息。邻居状态仅能使用Hello包进行周期保活。(这个状态指的是情侣之间可以做更加亲密的行为和举动)
9.5.10 对OSPF状态机发生变化的过程的总结
down状态 --- 发送完hello包之后进入到下一个状态
Init(初始化)状态 ---- 收到对方的Hello包中存在本地的RID进入下一个状态
Two-way(双向通信)状态 --- 标志着邻居关系的建立
(条件匹配) --- 匹配成功,则进入到下一个状态。失败则停留在邻居关系,仅使用hello包进行周期保活。
Exstart(预启动)状态 --- 使用未携带数据的DBD包进行主从关系选举,为主的可以优先获取LSA信息
Exchange(准交换)状态 --- 使用携带数据的DBD包交换LSDB的摘要信息。
Loading(加载)状态 --- 使用LSR/LSU/LSACK来交换LSA信息。
FULL(转发)状态 --- 标志着邻接关系的建立。
9.5.11 OSPF的工作过程
(1)启动配置完成后,OSPF会向本地所有运行协议的接口以组播(224.0.0.5)形式发送hello包;hello包中携带本地RID以及已知邻居的RID。之后,将收集到的邻居关系记录在本地的一张表中 --- 邻居表。
(2)邻居表建立完成后,进行条件匹配,匹配失败,则停留在邻居关系,仅使用hello包进行保活;匹配成功,则开始建立邻接关系。首先,使用未携带数据的DBD包进行主从关系选举之后,使用携带数据的DBD包共享数据库的目录。之后,本地使用LSR/LSU/LSACK来获取未知的LSA信息。完成本地数据库的建立,生成数据库表 --- LSDB表。
(3)最后,基于本地的链路状态数据库生成有向图,以及最短路径树,之后,计算出到达未知网段的路由信息。生成的路由添加到路由表中。
(4)收敛完成后,依然使用hello包10S周期保活;30min一次周期更新。
相关文章:
HCIA项目实践---OSPF的知识和原理总结
9.5 OSPF 9.5.1 从哪些角度评判一个动态路由协议的好坏? (1)选路佳(是否会出环) OSPF 协议采用链路状态算法,通过收集网络拓扑信息来计算最短路径,从根本上避免了路由环路的产生。 (…...
Calico网络组件本地部署支持IPv6(Kubernetes)
知其然 问题背景 因项目现场的网络正逐步从IPv4向IPv6迁移,这几年现场服务器基本上都配置了双栈;但随着IPv6铺开,出现了很多纯IPv6的服务器,并且要求通信优先使用IPv6。 在项目建设之初,其实就考虑了上述情况&#…...
【广州大学主办,发表有保障 | IEEE出版,稳定EI检索,往届见刊后快至1个月检索】第二届电气技术与自动化工程国际学术会议 (ETAE 2025)
第二届电气技术与自动化工程国际学术会议 (ETAE 2025) The 2nd International Conference on Electrical Technology and Automation Engineering 大会官网:http://www.icetae.com/【更多详情】 会议时间:2025年4月25-27日 会议地点:…...
Python项目31:待办事项列表应用1.0(命令行界面+Json+类+初学者必做)
------------★Python练手项目源码★------------ Python项目27:用Tkinter写日志管理系统(中下等难度) Python项目26:设计学生成绩管理系统(简易版) Python项目25:带滚动效果的商场抽奖系统&…...
Redis 01 02章——入门概述与安装配置
一、入门概述 (1)是什么 Redis:REmote Dictionary Server(远程字典服务器)官网解释:Remote Dictionary Server(远程字典服务)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高…...
Large Language Model Distilling Medication Recommendation Model
摘要:药物推荐是智能医疗系统的一个重要方面,因为它涉及根据患者的特定健康需求开具最合适的药物。不幸的是,目前使用的许多复杂模型往往忽视医疗数据的细微语义,而仅仅严重依赖于标识信息。此外,这些模型在处理首次就…...
2025最新版Node.js下载安装~保姆级教程
1. node中文官网地址:http://nodejs.cn/download/ 2.打开node官网下载压缩包: 根据操作系统不同选择不同版本(win7系统建议安装v12.x) 我这里选择最新版win 64位 3.安装node ①点击对话框中的“Next”,勾选同意后点…...
deepseek:三个月备考高级系统架构师
一、备考总体规划(2025年2月11日 - 2025年5月) 1. 第一阶段:基础夯实(2025年2月11日 - 2025年3月10日) 目标:快速掌握系统架构师考试的核心知识点。 重点内容: 计算机组成原理、操作系统、数据…...
springboot如何将lib和jar分离
遇到一个问题,就是每次maven package或者maven install后target中的jar很大,少的50几MB,大的100多兆 优化前: 优化后: 优化前 优化后压缩率77.2MB4.65MB93% 具体方案: pom.xml中 <build><…...
解锁建造者模式:Java 编程中的对象构建秘籍
系列文章目录 后续补充~~~~ 文章目录 一、引言二、建造者模式原理剖析2.1 定义与概念2.2 模式结构与角色2.2.1 产品(Product)2.2.2 建造者(Builder)2.2.3 具体建造者(ConcreteBuilder)2.2.4 指挥者(Director)2.3 工作流程与交互机制三、建造者模式在 Java 中的优势3.1 …...
RocketMQ和Kafka如何实现顺序写入和顺序消费?
0 前言 先说明kafka,顺序写入和消费是Kafka的重要特性,但需要正确的配置和使用方式才能保证。本文需要解释清楚Kafka如何通过分区来实现顺序性,以及生产者和消费者应该如何配合。 首先,顺序写入。Kafka的消息是按分区追加写入…...
Electron 全面解析:跨平台桌面应用开发指南
引言 在当今多平台并存的数字时代,如何高效开发跨平台桌面应用成为开发者面临的重要挑战。Electron作为GitHub开源的跨平台框架,凭借其独特的Web技术融合能力,已成为构建桌面应用的热门选择。本文将深入探讨Electron的核心原理、开发实践及未…...
Node.js技术原理分析系列——Node.js调试能力分析
本文由体验技术团队屈金雄原创。 Node.js 是一个开源的、跨平台的 JavaScript 运行时环境,它允许开发者在服务器端运行 JavaScript 代码。Node.js 是基于 Chrome V8引擎构建的,专为高性能、高并发的网络应用而设计,广泛应用于构建服务器端应…...
从技术债务到架构升级,滴滴国际化外卖的变革
背 景 商家营销简述 在外卖平台的运营中,我们致力于通过灵活的补贴策略激励商家,与商家共同打造良好的合作关系,也会提供多样化的营销活动,帮助商家吸引更多用户下单。通过这些活动,不仅能够提高商家的销量,…...
DeepSeek教unity------MessagePack-05
动态反序列化 当调用 MessagePackSerializer.Deserialize<object> 或 MessagePackSerializer.Deserialize<dynamic> 时,二进制数据中存在的任何值都将被转换为基本值,即 bool、char、sbyte、byte、short、int、long、ushort、uint、ulong、…...
SQL Query美化
推荐一个可以美化Query的网站! 名称:SQL formatter | Online free SQL Beautifier 地址:https://sqlformatter.org/# 在处理 SQL 查询语句时,可读性是至关重要的。 杂乱无章的 SQL代码不仅难以理解,还会给后续的维…...
探索RDMA技术:从基础到实践
1. 引言 在当今的高性能计算(HPC)和数据中心领域,数据传输的效率和速度至关重要。RDMA(Remote Direct Memory Access,远程直接内存访问)技术作为一种高效的网络通信机制,能够显著减少数据传输的延迟和CPU负载。本文将从基础到实践,详细介绍RDMA技术及其编程模型,帮助…...
2025 docker可视化管理面板DPanel的安装
1.什么是 DPanel ? DPanel 是一款 Docker 可视化管理面板,旨在简化 Docker 容器、镜像和文件的管理。它提供了一系列功能,使用户能够更轻松地管理和部署 Docker 环境。 软件特点: 可视化管理:提供直观的用户界面&#…...
mapbox V3 新特性,添加下雪效果
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象…...
【STM32】H743的以太网MAC控制器的一个特殊功能
调试743的MAC,翻阅手册的时候,发现了一个有意思的功能 混杂模式 H743的MAC控制器,可以设置为混杂模式,这就意味着它可以做一些网络监控的应用,譬如连接具备端口镜像功能的交换机,然后直接代替PC实现网络数据…...
WEB攻防-第60天:PHP反序列化POP链构造魔术方法流程漏洞触发条件属性修改
目录 一、序列化与反序列化基础 1.1 什么是序列化与反序列化 二、魔术方法的生命周期 2.1 常见的魔术方法 2.2 模式方法的生命周期触发调用 2.2.1 __construct() 2.2.2 __destruct() 2.2.3 __sleep() 2.2.4 __wakeup() 2.2.5 __invoke() 2.2.6 __toS…...
STM32硬件SPI函数解析与示例
1. SPI 简介 SPI(Serial Peripheral Interface)即串行外设接口,是一种高速、全双工、同步的通信总线,常用于微控制器与各种外设(如传感器、存储器等)之间的通信。STM32 系列微控制器提供了多个 SPI 接口&a…...
如何设置Python爬虫的User-Agent?
在Python爬虫中设置User-Agent是模拟浏览器行为、避免被目标网站识别为爬虫的重要手段。User-Agent是一个HTTP请求头,用于标识客户端软件(通常是浏览器)的类型和版本信息。通过设置合适的User-Agent,可以提高爬虫的稳定性和成功率…...
二、交换机的vlan子设备接入
一、交换机的vlan设置-CSDN博客 二、交换机的vlan子设备接入-CSDN博客 接上篇的文章,本文接入了子设备 网络结构如下: 用路由器A和POE交换机B代替第一篇中的笔记本电脑,路由器A和交换机B都关闭DHCP服务,并分别接入一个IPC&#…...
Spring IoC的实现机制是什么?
大家好,我是锋哥。今天分享关于【Spring IoC的实现机制是什么?】面试题。希望对大家有帮助; Spring IoC的实现机制是什么? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring IoC(Inversion of Control…...
配置mysql8.0使用PXC实现高可用。
准备好下面三台服务器 cat >> /etc/hosts << EOF 192.168.1.11 pxc1 192.168.1.12 pxc2 192.168.1.13 pxc3 EOF 三台服务器同时进行,下载安装包 [rootlocalhost ~]#yum module disable mysql [rootlocalhost ~]#yum ins…...
对openharmony HDF驱动框架的C/S设计模式和单例类的说明
在分析openharmony的HDF驱动框架时我们会发现用了很多面向对象的思想,例如类继承、接口、单例类等,本来应该是好事情,**但使用时对象之间的关系交错复杂,不太符合linux内核分层分模块的思路,导致整体理解起来比较困难&…...
联合汽车电子嵌入式面试题及参考答案
所使用的板子 Flash 内存是多少,单位 b 指的是 byte 还是 bit? 不同的嵌入式板子具有不同的 Flash 内存容量。常见的有几 KB 到几 MB 甚至更大。比如一些小型的单片机开发板可能只有几 KB 的 Flash,如 AT89C51 单片机的 Flash 一般为 4KB,这里的 KB 是指千字节(kilobyte)…...
Vue 2 路由指南:从基础到高级
注意:对于代码看不清的部分,用鼠标选中就能看到了,背景颜色和字体颜色过于接近,我也不知道怎么调,只能这样子先看着了 一、Vue Router 是什么? Vue Router 是 Vue.js 官方的路由管理器,它允许…...
vue学习10
1.GPT和Copilot Copilot Tab接受 删除键,不接受 ctrlenter更多方案 更适合的是修改方向 const submitForm async () > {//等待校验结果await formRef.value.validate()//提交修改await userUpdateInfoService(form.value)//通知user模块,进行数据更…...
