OSPF基础(1):工作过程、状态机、更新
OSPF基础
1、技术背景(与RIP密不可分,因为RIP中存在的问题)
- RIP中存在最大跳数为15的限制,不能适应大规模组网
- 周期性发送全部路由信息,占用大量的带宽资源
- 以路由收敛速度慢
- 以跳数作为度量值
- 存在路由环路可能性
- 每隔30秒更新
2、OSPF协议特点
- 没有跳数限制,适合大规模组网
- 使用组播更新变化的路由和网络信息
- 路由收敛快
- 以COST作为度量值
- 采用SPF算法有效避免环路
- 每隔30分钟更新
- 在互联网上大量使用,是运用最广泛的路由协议
注意:OSPF传递的是拓扑信息和路由信息,RIP传递的是路由表
3、OSPF三张表
邻居表:记录邻居状态和关系
拓扑表:链路状态数据库(LSDB)

路由表:记录由SPF算法计算的路由,存放在OSPF路由表中
4、OSPF数据包(可抓包)
(1)hello:hello包携带自己的router ID、被发现的邻居标识,用来周期保活的,发现,建立邻居关系。
(2)DBD(数据库描述报文):仅包含LSA摘要
(3)LSR:请求自己没有的或则比自己更新的链路状态详细信息
(4)LSU:链路状态更新信息
(5)LSAck:对LSU的确认
因为OSPF数据包内容过长,博主将其单开了一篇博客,想要详细了解的请移步OSPF数据包
5、OSPF工作过程
- 邻居:双方通过hello报文,相互认识
- 邻接:邻居关系建立好后,进行一系列报文交互,当两台路由器LSDB同步完成,开始独立计算路由时,这两台路由器形成了邻接关系
(1)确认可达性,建立邻居


router ID :标明的是路由器身份
手工配置:IPV4地址格式
自动选举:
环回口:IP地址大的优先
物理口:IP地址大的优先
2-way前,确认DR/BDR
选举原因:广播网络中使路由信息交换更加高速有序,可以降低需要维护的邻接关系数量

- 选举范围:每个网段都需要选出一个DR和BDR(0-255)
- 选举规则:1.优先级大的优先,默认优先级是1;2.router-id大的优先


DR/BDR的选举没有抢占性
关系状态:DRother与DR建立邻接关系;
DRother与BDR建立邻接关系;
DR /BDR建立邻接关系;
DRother之间保持邻居关系
(2)摘要同步,开始建立邻接关系
- 向邻接路由器发送DBD报文,通告本地LSDB中所有LSA的摘要信息
- 收到DBD报文后,与本地LSDB对比,向对方发送LSR报文,请求发送本地所需要的LSA的完整信息
- 收到LSR后,把对方所需的LSA的完整信息打包为一条LSU报文,发送至对方
- 收到LSU后,向对方回复LSAck报文,进行确认
邻接建立过程:


(3)完整信息同步,完全邻接关系建立
完全邻接关系建立,LSDB表与路由表形成
6、OSPF的状态机

(1)down:关闭状态(稳定状态),这种情况处于手动指定邻居的情况下,发送hello包之后进入下一个状态
(2)INIT:初始化状态,收到对方的hello报文,但没有收到对方的hello确认报文
(3)Attempt:一般不会出现,只出现在NBMA网络中,发出hello,但收不到对方的hello包
(4)2-way(稳定状态):双方互相发现,邻居状态稳定,并确认了DR/BDR的角色;
当选举完毕后,就算出现一台优先级更高的路由器,也不会替换成新的DR\BDR;
需要原DR\BDR失效,或重置OSPF进程才会成为新的DR\BDR;
<R1>reset ospf process
2-way的前提:
- Router-id无冲突,修改router-id需要重置ospf进程使生效;
- 掩码长度一致(MA网络中);
- 区域ID一致;
- 验证密码一致;
- hello-time一致;
- dead-time一致;
- 特殊区域类型一致;
(5)Exstart:交换开始状态;发送第一个DD报文,但不发送LSA摘要,仅用于确定LSDB协商的主从,ROUTER-ID大的成为master
(6)Exchange:交换状态;发送后续DD报文,用于通告LSDB摘要
(7)Loading:读取状态,进行LSA的请求(LSR)、加入(LSU)和确认(LSACK)
(8)Full:邻接状态(稳定状态),两端同步LSDB;
FULL的前提:两端MTU一致,否则可能卡在EXSTART\Exchange状态
能够计算路由的前提:两端网络类型一致,否则邻居状态full,但无法学习路由
7、LSDB的更新(了解)

注:广播网络中的更新:只由DR发起
相关文章:
OSPF基础(1):工作过程、状态机、更新
OSPF基础 1、技术背景(与RIP密不可分,因为RIP中存在的问题) RIP中存在最大跳数为15的限制,不能适应大规模组网周期性发送全部路由信息,占用大量的带宽资源以路由收敛速度慢以跳数作为度量值存在路由环路可能性每隔30秒…...
工业相机如何获得更好的图像色彩
如何获得更好的图像色彩 大部分的工业自动化检测中对物体的色彩信息并不敏感,因此会使用黑白的相机,但是在显微镜成像、颜色分类识别等领域,相机的色彩还原就显得格外重要,在调节相机色彩方面的参数时,有以下几个方面需…...
使用requestAnimationFrame减少浏览器重绘
文章目录 介绍使用使用rAF前使用rAF后 介绍 在屏幕中,浏览器通常都以60FPS(1/60 s)每帧更新屏幕,但是当前端绑定了一些高频事件,如鼠标移动,屏幕滚动、触摸滑动等时,在一帧的周期内,…...
Mac 终端命令大全
—目录操作— ꔷ mkdir 创建一个目录 mkdir dirname ꔷ rmdir 删除一个目录 rmdir dirname ꔷ mvdir 移动或重命名一个目录 mvdir dir1 dir2 ꔷ cd 改变当前目录 cd dirname ꔷ pwd 显示当前目录的路径名 pwd ꔷ ls 显示当前目录的内容 ls -la ꔷ dircmp 比较两个目录的内容 di…...
如何使用deepseek开发一个翻译API
什么是deepseek Deepseek 是一个基于人工智能技术的自然语言处理平台,提供了多种语言处理能力,包括文本翻译、语义分析、情感分析等。它通过深度学习模型和大规模语料库训练,能够实现高质量的文本翻译和多语言理解。Deepseek 的核心优势在于…...
vue如何解决跨域
文章目录 vue如何解决跨域1. 什么是跨域2. 如何解决2.1 CROS(Cross-Origin Resource Sharing,跨域资源共享)2.2 Proxy2.2.1 使用webpack proxy2.2.2 服务端代理转发2.2.3 通过nginx实现代理 vue如何解决跨域 1. 什么是跨域 跨域本质是浏览器…...
红包雨项目前端部分
创建项目 pnpm i -g vue/cli vue create red_pakage pnpm i sass sass-locader -D pnpm i --save normalize.css pnpm i --save-dev postcss-px-to-viewportpnpm i vantlatest-v2 -S pnpm i babel-plugin-import -Dhttps://vant.pro/vant/v2/#/zh-CN/<van-button click&…...
新版AndroidStudio 修改 jdk版本
一、问题 之前,在安卓项目中配置JDK和Gradle的过程非常直观,只需要进入Android Studio的File菜单中的Project Structure即可进行设置,十分方便。 如下图可以在这修改JDK: 但是升级AndroidStudio之后,比如我升级到了Android Stu…...
【golang学习之旅】使用VScode安装配置Go开发环境
1. 下载并安装Go 1.1 下载地址1.2 选择版本并下载1.3 安装目录1.4 验证是否安装成功 2. 配置环境变量 2.1 配置步骤2.2 GO部分环境变量说明 3. 下载或更新 Vscode 3.1 下载地址3.2 安装步骤 4. 为Go开发配置VScode 1. 下载并安装Go 1.1 下载地址 https://studygolang.com/dl…...
langchain教程-2.prompt
前言 该系列教程的代码: https://github.com/shar-pen/Langchain-MiniTutorial 我主要参考 langchain 官方教程, 有选择性的记录了一下学习内容 这是教程清单 1.初试langchain2.prompt3.OutputParser/输出解析4.model/vllm模型部署和langchain调用5.DocumentLoader/多种文档…...
GGML、GGUF、GPTQ 都是啥?
GGML、GGUF和GPTQ是三种与大型语言模型(LLM)量化和优化相关的技术和格式。它们各自有不同的特点和应用场景,下面将详细解释: 1. GGML(GPT-Generated Model Language) 定义:GGML是一种专为机器学习设计的张量库,由Georgi Gerganov创建。它最初的目标是通过单一文件格式…...
C++ 原码、反码、补码和位操作符
目录 一、原码、反码、补码 二、位操作符 1、左移操作符是双⽬操作符 移位规则:左边抛弃、右边补 0 2、右移操作符是双⽬操作符 逻辑右移:左边⽤ 0 填充,右边丢弃算术右移:左边⽤原该值的符号位填充,右边丢弃 3、…...
idea中git版本回退
idea中git版本回退 将dev分支代码合并到master分支执行回退步骤 将dev分支代码合并到master分支 #合并成功之后 执行回退步骤 #在指定的版本上 右键 #这里选择【Hard】彻底回退 #本地的master分支回退成功 #将本地的master强制推送到远程,需要执行命令 git p…...
【PostgreSQL内核学习 —— (WindowAgg(三))】
WindowAgg set_subquery_pathlist 部分函数解读check_and_push_window_quals 函数find_window_run_conditions 函数执行案例总结 计划器模块(set_plan_refs函数)set_windowagg_runcondition_references 函数执行案例 fix_windowagg_condition_expr 函数f…...
redis教程
Redis 教程 Redis 是一个开源的内存数据结构存储系统,用作数据库、缓存和消息代理。以下是一些基础知识和常用操作。 一、简介 Redis 支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。它具有高性能、高可用性和数据持久化的特性。 二、安…...
Python aiortc API
本研究的主要目的是基于Python aiortc api实现抓取本地设备媒体流(摄像机、麦克风)并与Web端实现P2P通话。本文章仅仅描述实现思路,索要源码请私信我。 1 demo-server解耦 1.1 原始代码解析 1.1.1 http服务器端 import argparse import …...
Transaction rolled back because it has been marked as rollback-only问题解决
1、背景 在我们的日常开发中,经常会存在在一个Service层中调用另外一个Service层的方法。比如:我们有一个TaskService,里面有一个execTask方法,且这个方法存在事物,这个方法在执行完之后,需要调用LogServi…...
深入浅出 DeepSeek V2 高效的MoE语言模型
今天,我们来聊聊 DeepSeek V2 高效的 MoE 语言模型,带大家一起深入理解这篇论文的精髓,同时,告诉大家如何将这些概念应用到实际中。 🌟 什么是 MoE?——Mixture of Experts(专家混合模型&#x…...
读书笔记--分布式架构的异步化和缓存技术原理及应用场景
本篇是在上一篇的基础上,主要对分布式应用架构下的异步化机制和缓存技术进行学习,主要记录和思考如下,供大家学习参考。大家知道原来传统的单一WAR应用中,由于所有数据都在同一个数据库中,因此事务问题一般借助数据库事…...
售后板子HDMI无输出分析
问题: 某产品售后有1例HDMI无输出。 分析: 1、测试HDMI的HPD脚(HDMI座子的19pin),测试电压4.5V,属于正常。 2、用万用表直流电压档,测试HDMI的3对数据脚和1对时钟脚(板子通过HDM…...
5大核心功能深度解析:Umi-OCR开源离线文字识别工具的技术实现与应用指南
5大核心功能深度解析:Umi-OCR开源离线文字识别工具的技术实现与应用指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二…...
ARM Cortex-M0 SoC实战:如何用SystemVerilog和C语言实现软硬件高效握手通信
ARM Cortex-M0 SoC实战:软硬件握手通信的黄金法则 在嵌入式系统开发中,处理器与外围设备之间的高效通信一直是工程师们面临的挑战。当ARM Cortex-M0这类精简指令集处理器遇到AHB-Lite总线时,如何设计出既稳定又高效的握手协议?本…...
通义千问1.5-1.8B-Chat-GPTQ-Int4实战:微信小程序集成AI对话功能开发指南
通义千问1.5-1.8B-Chat-GPTQ-Int4实战:微信小程序集成AI对话功能开发指南 最近在做一个宠物社区的小程序,想加个智能客服功能,让用户能随时问问养宠问题。一开始觉得这事儿挺复杂,得自己搞个大模型服务器,成本高不说&…...
超高压输电线路空载运行时的电压升高现象解析
1. 为什么空载时线路末端电压会升高? 第一次接触超高压输电线路时,很多工程师都会对这个现象感到困惑:明明没有接任何用电设备,为什么线路末端的电压反而比始端更高?这就像往一根长长的水管里注水,结果发现…...
公交客流统计摄像机系统,能替代监控摄像头吗?
公交车内乘客流量大,安全隐患较多,多年来监控摄像头已经成为车内的标配。随着科技技术的进步,如今公交客流统计摄像机系统,也逐渐部署到了各地公交上。那么公交客流统计摄像机系统,能替代监控摄像头吗?如今…...
SpringBoot 3.2.0 项目里,如何优雅地引入 Flowable 7.1.0 工作流引擎?
SpringBoot 3.2.0 项目优雅集成 Flowable 7.1.0 工作流引擎实战指南 在微服务架构中引入工作流引擎,往往意味着需要在不破坏现有架构的前提下实现业务流程的自动化管理。本文将深入探讨如何在已具备MyBatis-Plus、Spring Cloud Alibaba等技术栈的SpringBoot 3.2.0项…...
告别手动操作!Open-AutoGLM部署教程,让AI接管你的手机
告别手动操作!Open-AutoGLM部署教程,让AI接管你的手机 1. 引言:AI手机助手的革命性突破 想象一下这样的场景:早上醒来,你只需要对手机说"帮我点一杯星巴克燕麦拿铁,加双份浓缩,送到公司&…...
如何将微信聊天记忆转化为数字珍藏:WeChatMsg的数据主权革命
如何将微信聊天记忆转化为数字珍藏:WeChatMsg的数据主权革命 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…...
货车行车记录仪被破坏手工修复成功
由于视频记录了打架过程,很重要, 客户在第一次查看时没问题,再次想拷贝,发现内容都没有了只有USC文件,使用容量也有,如图 好在客户没有再次破坏,TS视频文件,同行通过恢复软件恢复&am…...
Linux内核工程师面试高频问题解析
1. Linux内核工程师面试核心问题解析作为一名在Linux内核领域摸爬滚打多年的老手,我经历过无数次技术面试的洗礼。今天就把阿里云这类一线大厂在Linux内核工程师岗位上的高频面试题做个系统梳理,并附上我个人的解题思路和实战经验。这些题目看似基础&…...
