OSPF邻居状态机
OSPF(Open Shortest Path First)协议的邻接关系状态机描述了两台OSPF路由器之间建立和维护邻接关系的过程。以下是每个状态的简要描述:
-
Down State(关闭状态)
描述:这是OSPF邻接关系的初始状态,表示路由器尚未从邻居接收到任何Hello报文。
特点:
在此状态下,路由器认为邻居不可达。
如果接口被启用或配置了OSPF,状态会从Down开始。
如果在Dead Interval(死亡间隔)时间内仍未收到Hello报文,状态将保持为Down。 -
Init State(初始化状态)
描述:当路由器收到邻居发送的Hello报文后,进入Init状态。
特点:
路由器已收到邻居的Hello报文,但尚未在Hello报文中看到自己的Router ID。
此时,路由器知道邻居的存在,但尚未建立双向通信。
如果路由器在Hello报文中看到了自己的Router ID,状态将迁移到Two-way状态。 -
Two-way State(双向通信状态)
描述:当路由器在收到的Hello报文中看到自己的Router ID时,进入Two-way状态。
特点:
表示双向通信已经建立,双方都知道彼此的存在。
在广播或多播网络中,此状态下还会进行DR(Designated Router)和BDR(Backup Designated Router)的选举。
如果DR和BDR选举完成,非DR/BDR路由器的状态可能会停留在Two-way状态,而DR和BDR会继续进入后续状态。 -
Exstart State(交换开始状态)
描述:在Two-way状态之后,如果路由器需要建立完全邻接关系(如需要交换LSA信息),则进入Exstart状态。
特点:
此状态用于协商主从关系(Master/Slave),确定哪台路由器先发送数据库描述(DD)报文。
路由器会比较Router ID,Router ID较大的路由器成为主设备,较小的成为从设备。
协商完成后,进入Exchange状态。 -
Exchange State(交换状态)
描述:在Exstart状态协商完成后,进入Exchange状态,开始交换链路状态数据库(LSDB)的摘要信息。
特点:
路由器通过发送数据库描述(DD)报文,交换LSDB的摘要信息。
DD报文包含LSA头部信息,用于判断双方的LSDB是否一致。
如果发现LSDB不一致,路由器会请求缺失或更新的LSA。 -
Loading State(加载状态)
描述:在Exchange状态之后,如果发现LSDB不一致,进入Loading状态。
特点:
路由器通过发送链路状态请求(LSR)报文,请求缺失或更新的LSA。
收到请求的路由器会发送链路状态更新(LSU)报文,将缺失或更新的LSA发送给请求方。
接收方收到LSU后,会更新自己的LSDB,并发送链路状态确认(LSAck)报文确认。 -
Full State(完全邻接状态)
描述:当两台路由器的LSDB完全同步后,进入Full状态。
特点:
表示两台路由器的LSDB完全一致,邻接关系建立完成。
路由器可以基于完整的LSDB计算路由信息。
在Full状态下,路由器会定期发送Hello报文以维持邻接关系,并根据LSA的TTL值更新LSDB。
状态迁移总结
Down → Init:收到Hello报文,但未看到自己的Router ID。
Init → Two-way:在Hello报文中看到自己的Router ID。
Two-way → Exstart:需要建立完全邻接关系,开始协商主从关系。
Exstart → Exchange:协商完成,开始交换LSDB摘要信息。
Exchange → Loading:发现LSDB不一致,请求缺失或更新的LSA。
Loading → Full:LSDB完全同步,邻接关系建立完成。
相关文章:
OSPF邻居状态机
OSPF(Open Shortest Path First)协议的邻接关系状态机描述了两台OSPF路由器之间建立和维护邻接关系的过程。以下是每个状态的简要描述: Down State(关闭状态) 描述:这是OSPF邻接关系的初始状态,…...
使用tensorflow实现线性回归
目录 前言使用TensorFlow实现算法的基本套路:实战 前言 实现一个算法主要从以下三步入手: 找到这个算法的预测函数, 比如线性回归的预测函数形式为:y wx b, 找到这个算法的损失函数 , 比如线性回归算法的损失函数为最小二乘法 找到让损失函数求得最小值的时候的系数, 这时一…...
CF每日5题Day4(1400)
好困,感觉很累,今天想赶紧写完题早睡。睡眠不足感觉做题都慢了。 1- 1761C 构造 void solve(){int n;cin>>n;vector<vector<int>>a(n1);forr(i,1,n){//保证每个集合不同a[i].push_back(i);}forr(i,1,n){string s;cin>>s;forr(…...
Vala 编程语言教程-继承
继承 在 Vala 中,一个类可以继承自 一个或零个 其他类。尽管实际开发中通常继承一个类(不同于 Java 等语言的隐式继承机制),但 Vala 并不强制要求必须继承。 当定义继承自其他类的子类时,子类的实例与父…...
CLion下载安装(Windows11)
目录 CLion工具下载安装其他 CLion CLion-2024.1.4.exe 工具 系统:Windows 11 下载 1.通过百度网盘分享的文件:CLion-2024.1.4.exe 链接:https://pan.baidu.com/s/1-zH0rZPCZtQ60IqdHA7Cew?pwdux5a 提取码:ux5a 安装 打开…...
QEMU源码全解析 —— 块设备虚拟化(12)
接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(11) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 特此致谢! QEMU初始化阶段的块设备虚拟化 从模板生成类和类的实例化 本回继续解析QEMU类Java反…...
如何使用VS中的Android Game Development Extension (AGDE) 来查看安卓 Logcat 日志
一、首先按照以下 指引 中的 第1、2步骤,安装一下 AGDE ,AGDE 的安装包可以在官网上找到。 UE4 使用AndroidGameDevelopmentExtension(AGDE)对安卓客户端做“断点调试”与“代码热更”-CSDN博客 在执行第二步骤前,记得…...
Z字形变换
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下: P A H N A P L S I I G Y I R 之后,你的输出需要从左往右…...
跟着尚硅谷学vue-day1
前言:企业多用vue3,但是考虑到时间较充足,先学vue2,学vue3较为方便。 1.vue是什么? 一套用于构建用户界面的渐进式Javascript 框架 构建用户界面:数据->界面 渐进式:Vue可以自底向上逐层的应用 简单应用: 只需一个轻量小…...
平板实现 adb connect 连接的步骤
1. 检查设备的开发者选项 确保平板设备已开启开发者模式,并启用了USB调试。 2. 检查设备和电脑的网络连接 确保平板和电脑连接到同一个Wi-Fi网络,确认设备的 IP 地址是否正确。 通过 ping 命令测试: ping 192.168.3.243. 通过USB线进行初…...
VUE3+TypeScript项目,使用html2Canvas+jspdf生成PDF并实现--分页--页眉--页尾
使用html2CanvasJsPDF生成pdf,并实现分页添加页眉页尾 1.封装方法htmlToPdfPage.ts /**path: src/utils/htmlToPdfPage.tsname: 导出页面为PDF格式 并添加页眉页尾 **/ /*** 封装思路* 1.将页面根据A4大小分隔边距,避免内容被中间截断* 所有元素层级不要…...
windows第十八章 菜单、工具栏、状态栏
文章目录 创建框架窗口菜单菜单的风格通过资源创建菜单菜单的各种使用通过代码创建菜单在鼠标位置右键弹出菜单 CMenu常用函数介绍工具栏方式一,从资源创建工具栏方式二,代码创建 状态栏状态栏基础创建状态栏 创建框架窗口 手动创建一个空项目ÿ…...
C语言中的位域:节省内存的标志位管理技术
位域(Bit-field) 是 C 语言中的一种特性,允许在结构体(struct)中定义占用特定位数的成员变量。通过位域,可以更精细地控制内存的使用,尤其是在需要存储多个布尔值或小范围整数时,可以…...
单端信号差分信号
单端信号和差分信号是电路中常见的两种信号传输方式,它们在具体的应用场景和特点上有着明显的区别。下面就来详细说明一下单端信号和差分信号的区别。 首先,单端信号是指信号通过一个信号线传输,通常一个信号线携带一个信号。这种传输方式适…...
数据设计(范式、步骤)
文章目录 数据设计1.数据库设计的三大范式2、数据库设计的具体步骤 数据设计 1.数据库设计的三大范式 关系型数据库的三大范式,指导如何设计一个关系型数据库。 1NF: 关系表的每个字段,都应该是不可再分的,——保证原子性。 字…...
Linux 中查看文件大小方法
目录 方法一:ls -l 输出的第五列方法二:du 命令的输出信息方法三:stat -c %s 的输出 方法一:ls -l 输出的第五列 ls 是列出指定目录下文件列表的命令,通过 -l 选项可以显示文件的属性信息,第五列显示的就是…...
SEO(搜索引擎优化)详解
SEO(搜索引擎优化)详解 SEO是Search Engine Optimization的缩写,中文称为"搜索引擎优化"。它是指通过一系列技术和方法,提高网站在搜索引擎自然(非付费)搜索结果中的排名,从而获得更…...
软考-高项,知识点一览十二 质量管理
十二 质量管理 项目质量管理包括把组织的质量政策应用于规划、管理、控制项目和产品质量要求,以满足干系人目标的各个过程。 项目质量管理需要兼顾项目管理与项目可交付成果两个方面,它适用于所有项目,无论项目的可付成果具有何种特性。 管…...
Docker 设置国内镜像源
Windows 和 macOS 用户 1、一般使用Docker Desktop软件,在 Docker Desktop 的图形界面中完成镜像源的更换操作。具体步骤如下: 打开 Docker Desktop 后,在菜单栏依次点击 Settings -> Docker Engine。此时会弹出一个 JSON 编辑框…...
探秘Transformer系列之(19)----FlashAttention V2 及升级版本
探秘Transformer系列之(19)----FlashAttention V2 及升级版本 文章目录 探秘Transformer系列之(19)----FlashAttention V2 及升级版本0x00 概述0x01 FlashAttention V21.1 动机1.2 方案1.2.1 减少冗余计算1.2.2 增加并行1.2.3 调整…...
《白帽子讲 Web 安全》之跨站请求伪造
引言 在数字化时代,网络已深度融入人们生活的方方面面,Web 应用如雨后春笋般蓬勃发展,为人们提供着便捷高效的服务。然而,繁荣的背后却潜藏着诸多安全隐患,跨站请求伪造(CSRF)便是其中极为隐蔽…...
C++20:make_shared_for_overwrite与make_unique_for_overwrite
文章目录 一、背景与动机二、std::make_shared_for_overwrite2.1 语法与用法2.2 优势 三、std::make_unique_for_overwrite3.1 语法与用法3.2 优势 四、应用场景4.1 高性能计算4.2 大型对象管理4.3 实时系统 五、总结 C20 引入了两个新的标准库函数: std::make_sha…...
北斗导航 | 改进奇偶矢量法的接收机自主完好性监测算法原理,公式,应用,RAIM算法研究综述,matlab代码
改进奇偶矢量法的接收机自主完好性监测算法研究 摘要 接收机自主完好性监测(RAIM)是保障全球导航卫星系统(GNSS)安全性的核心技术。针对传统奇偶矢量法在噪声敏感性、多故障隔离能力上的缺陷,本文提出一种基于加权奇偶空间与动态阈值的改进算法。通过引入观测值权重矩阵重…...
【React】基础版React + Redux实现教程,自定义redux库,Redux Toolkit教程
本项目是一个在react中,使用 redux 管理状态的基础版实现教程,用简单的案例练习redux的使用,旨在帮助学习 redux 的状态管理机制,包括 store、action、reducer、dispatch 等核心概念。 项目地址:https://github.com/Yv…...
onlyoffice实现office文件在线编辑保存
一、简介 onlyoffice是开源的在线文档编辑软件,支持主流的office格式,可实现文档在线编辑保存,多人协作编辑等场景,是目前我用过的功能最完善且强大的在线office编辑软件; 二、安装onlyoffice 这里仅介绍docker安装 简单运行查看sudo docker run -i -t -d -p 80:80 --…...
Transformer革命:人工智能如何突破语言理解的边界
Transformer革命:人工智能如何突破语言理解的边界? 当你在手机输入法中打出"苹果"时,系统是否知道你要输入水果还是手机品牌?这个看似简单的选择,背后隐藏着自然语言处理领域二十年来最深刻的变革。2017年谷…...
禅道品牌全面战略升级:开创项目管理国产化替代新格局
2025年,禅道软件完成企业品牌战略深度升级。此次升级,从产品力、服务力到生态圈构建等方面进行了全面优化,以更智慧的解决方案、更开放的生态布局,更安全的国产化解决方案,助力企业实现从“工具应用”到“价值创造”的…...
软件项目管理课程之第4讲:软件需求管理
讲授内容 项目案例 软件需求管理的基本概念 软件需求开发 软件需求管理 项目案例 案例背景:小王作为软件项目负责人,带领团队开展需求调查工作,但在需求分析和后续开发过程中出现了一系列问题。 问题表现: 项目规模庞大&…...
java基础知识和语法
1.类的信息加载完成后,会自动调用静态代码块,可以完成静态属性的初始化功能 对象准备创建时,也会自动调用代码块,但不是静态的; public class java_3_24 {public static void main(String[] args) {new User08();}} …...
横扫SQL面试——事件流处理(峰值统计)问题
横扫SQL面试 📌 事件流处理(峰值统计)问题 “会议室预定冲突怎么查? 🔍 服务器瞬时负载如何算?🎢 健身房的‘人挤人’高峰究竟出现在几点?🏃♂️” 这些看似毫不相干…...
如何降低频谱分析仪的底噪
测量微小信号的时候,底噪可能会淹没有用的信号:(如下图,底噪为-60dB) 如何降低底噪: 1.分辨率带宽RBW设置小一点,可以减小信号的底噪 2.减小衰减器(频谱分析仪底噪的功率随着输入衰…...
C语言基础知识09---文件操作
目录 文件操作 1.1 文件操作 1.2 文件操作的数据传输形式 1.3 文件操作的分类 1.4 文件存储格式 1.5 文件流指针 1.6 函数名:fopen() 1.7 函数名:fclose() 1.8 函数名:fprintf() 1.9 函数名:fscanf() 1.10 函数名&…...
GRS认证的主要步骤是什么?
GRS认证的具体步骤,是一个严谨而系统的过程,旨在确保产品从原料来源到最终消费的每一个环节都符合全球回收标准(Global Recycle Standard,简称GRS)的严格要求。 首先,企业需要向GRS认证机构提交申请&#…...
探究 CSS 如何在HTML中工作
2025/3/28 向全栈工程师迈进! 一、CSS的作用 简单一句话——美化网页 <p>Lets use:<span>Cascading</span><span>Style</span><span>Sheets</span> </p> 对于如上代码来说,其显示效果如下࿱…...
软件工程面试题(七)
1、DAO设计模式及DELEGATE模式 DAO(Data Access Object)模式实际上是两个模式的组合,即Data Accessor 模式和 Active Domain Object 模式,其中 Data Accessor 模式实现了数据访问和业务逻辑的分离,而Active Domain Object 模式实现了业务数据的对象化封装,一般我们将这两…...
AfxMessageBox()如何显示string字符串
书籍:《Visual C 2017从入门到精通》的2.7 字符串 环境:visual studio 2022 内容:几个字符串类型->(将单字节char*转换为宽字节wchar_t *) 在 MFC 中,AfxMessageBox 默认支持显示 CString 或宽字符字符…...
基于 kubekey -实现懒人一键部署K8S集群
基于 kubekey -实现懒人一键部署K8S集群 操作步骤 官网: https://kubesphere.io/zh/ 一、执行以下命令快速创建一个 Kubernetes 集群。 Master节点 如果您访问 GitHub/Googleapis 受限,请登录 Linux 主机,执行以下命令设置下载区域。 [roott…...
19款超级华丽动画的图片轮播HTML5+CSS3模板源码
大家好,我是分享源码和设计思想的程序媛, 今天给大家分享一个 19款超级华丽动画的图片轮播HTML5CSS3模板源码。 纯CSS3HTML5代码实现,没有任何其它杂乱的框架东西。 图片演示 1. 3D立方体轮播效果 2. 视差滚动轮播效果 3. 卡片堆叠轮播效果 4…...
第十六:redis 的 帖子投票要点
ZADD orders 100 order1 ZADD orders 200 order2 ZADD orders 300 order3 zadd myzset 100 nameorder // 添加一个有序集合 其中存储了用户的订单信息,每个订单用一个唯一的 ID 表示 ZSCORE myzset nameorder // myzset 是key nameorder 是成员ÿ…...
51c深度学习~合集4
我自己的原文哦~ https://blog.51cto.com/whaosoft/12327892 #robustlearn 本文提出了「鲁棒关键微调」,通过「微调」对抗训练模型的「非鲁棒关键性模块」,充分利用其冗余能力提升泛化性。 对抗训练(Adversarail Training)…...
解决Vmware 运行虚拟机Ubuntu22.04卡顿、终端打字延迟问题
亲测可用 打开虚拟机设置,关闭加速3D图形 (应该是显卡驱动的问题,不知道那个版本的驱动不会出现这个问题,所以干脆把加速关了)...
Arduino硬件控制开发基础资料
Arduino 的程序可以划分为三个主要部分:结构、变量(变量与常量)、函数。 结构部分 一、结构 1.1 setup() 1.2 loop() 二、结构控制 2.1 if 2.2 if...else 2.3 for 2.4 switch case 2.5 while 2.6 do... while 2.7 break 2.8 cont…...
地图项目入手学习
如果你目前对自己的地图项目实现原理不太了解,周末可以通过以下方法进行高效学习: ⸻ 第一步:梳理项目相关代码(3 小时) 目标:先大致了解你的地图项目代码,找到核心实现逻辑。 具体做法&…...
OpenCV图像处理:边缘检测
文章目录 前言一、什么是边缘检测?二、算法分类1、Sobel算子2、Scharr算子3、Canny边缘检测3.1 Canny检测的优点3.2 Canny 边缘检测分为 4 个部分3.2.1 、图像降噪3.2.2 、梯度计算3.2.3 、非极大值抑制3.2.4 、双阈值边界跟踪 4、算法比较 三、代码实现总结 前言 …...
性能测试~
1.什么是性能测试 1.什么是性能 就像这两个车一样,虽然都是代步工具,构造都是一样的,但是路虎的发动机要比捷达好.路虎的百米加速却是比捷达快的,我们就知道路虎的性能要比捷达好 . 那么什么是软件的性能呢?我们分析一下 2.常见的性能测试指标 2.1并发数 并发数是指在同一…...
pagehelper 分页插件使用说明
pom.xml:pageHelper坐标 <!--pageHelper坐标--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.6</version></dependency> 分…...
使用crypto-js进行DES加/解密
crypto-js 官方网站:https://github.com/brix/crypto-js 中文参考教程:前端加密JS库–CryptoJS 使用指南 在线加解密网站:https://www.mklab.cn/utils/des 首先要安装crypto-js库,根据自己使用的方式按照官方网站步骤进行即可。 …...
【图片识别Excel表格】批量将图片上的区域文字识别后保存为表格,基于WPF和阿里云的项目实战总结
一、项目背景 在信息处理和文档管理中,经常会遇到需要从大量图片中提取文字并进行整理的场景。例如,财务部门需要从大量报销票据中提取金额、日期等信息;法务部门需要从合同文档中提取关键条款;教育行业需要从试卷中提取学生的答题内容等。传统的手工处理方式不仅耗时长、…...
在 i.MX8MP 上用 C++ 调用豆包 AI 大模型实现图像问答
本文介绍了如何在 i.MX8MP 嵌入式平台上使用 C 调用豆包 AI 大模型(Doubao-vision-pro-32k)进行图像问答。我们将详细讲解代码实现的各个步骤,包括文件读取、Base64 编码、构造 JSON 请求体、使用 libcurl 进行 HTTP POST 请求以及解析响应数…...
uni-app自动升级功能
效果图 一、VUE login.vue <template><view><view class"uni-common-mt"><view class"uni-flex uni-column"><view class"flex-item flex-item-V"><view class"logo"><image src"/st…...