OSPF工作过程

1.OSPF的数据包

hello包——周期性的发现,建立以及保活邻居关系

hello时间 --- 10S
死亡时间 --- 4倍的hello时间 --- 40S
RID --- 1,全网唯一;2,格式统一---- 格式要求和IP地址一样,由32位二进制构成,使用点分十进制来表示。
1,手工配置:仅需要满足以上两点要求即可
2,自动生成:1,如果设备存在环回接口,则选择环回接口中最大的IP地址作为RID
                     2,如果没有环回接口,则将取物理接口中最大的IP地址作为RID

2,DBD包——数据库描述报文 ---- LSDB(链路状态数据库) ---- 携带的是数据库的摘要信息


3,LSR包—— 链路状态请求报文--- 基于DBD包请求未知的LSA信息。

4,LSU包——链路状态更新报文--- 真正携带LSA的数据包


5,LSACK包——链路状态确认报文--- 确认包

OSPF存在30min一次的周期更新

2.OSPF的状态机

条件匹配: 如果条件匹配成功,则将进入后面的状态,如果条件匹配失败,则只能停留在邻居关系,仅使用Hello包进行周期的保活。

主从关系选举 --- 使用末携带数据的DBD包进行主从关系选举,谁的RID大,谁为主,为主可以优先获取LSA.

这里之所以使用不携带数据的DBD包而非HELLO包进行主从关系选举,只要是为了和之前的邻居关系进行区分

   第一次发送DBD包  隐形

FULL状态--- 标志着邻接关系的建立。---- 主要为了和邻居关系进行区分,邻居关系仅能通过Hello包进行周期的保活,但是,邻接关系,可以交换 LSA信息。

总结七步:

Down状态--- 发送hello包之后进入到下一个状态

init (初始化)状态 --- 在收到hello包中包含本地的rid,则进入到下一个状态

Two-way (双向通信)状态--- 标志着邻居关系的建立

(条件匹配)---- 如果匹配成功,则进入到下一个状态。如果失败,则停留在邻居关系,仅使用hello包进行周期的保活
Exstart (预启动)状态-- 使用未携带数据的DBD包进行主从关系选举。为主的可以优先获取LSA

Exchange(准交换)状态--- 通过DBD包共享数据库目录

Loading (加载)状态 --- 基于DBD包中未知的LSA信息,通过LSR/LSU/LSACK来获取

FULL状态--- 标志着邻接关系的建立

3.OSPF的工作过程

启动配置完成后,OSPF向本地所有运行协议的接口以组播224.0.0.5的形式发送hello包。Hello包中包含本地的RID以及本地已知邻居的RID。之居,将建立的邻居关系收集到本地的一张表中 -- 邻居表。

邻居建立完成之后,则进行条件匹配,失败则停留在邻居关系,仅使用hello包进行周期保活匹配成功,则开始建立邻接关系。首先,使用未携带数据的DBD包进行主从关心选举。之后,使用携带数据的DBD包共享数据库目录。之后,基于DBD包中末知的LSA,使用LSR/LSU/LSACK获取。将所有收集到的LSA信息放置在LSDB数据库中,生成第二张表--- 数据库表。

最后,基于收集到的LSA信息,,生成有向图及最短路径树,最终计算到达未知网段的路由信息。将这些信息记录在第三张表--- 路由表。
收敛完成完成后,依然每隔10S使用Hello包进行周期保活。每隔30Min进行一次周期更新。

结构突变
1,突然新增一个网段

2,突然断开一个网段

3.无法通信---40S死广时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/700321.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matter 1.3版标准新出炉,支持更多智能家居/家电/能源等设备

5月8日,CSA连接标准联盟正式发布了Matter 1.3标准,过去CSA一直保持约每六个月一次的标准更新节奏。 图源CSA连接标准联盟官方 获得一系列改进的Matter 1.3标准,将提升设备的互操作性,扩展支持的设备类别,并增强整个智…

在Linux上安装并启动Redis

目录 安装gcc环境 上传redis文件 启动redis-server 后台启动redis-server 查看redis启动状态 参考文章:Linux 安装 Redis 及踩坑 - 敲代码的阿磊 - 博客园 (cnblogs.com) 准备:打开VMware Workstation,创建一个虚拟机,进入管…

第 5 篇 : 多节点Netty服务端(可扩展)

说明 前面消息互发以及广播都是单机就可以完成测试, 但实际场景中客户端的连接数量很大, 那就需要有一定数量的服务端去支撑, 所以准备虚拟机测试。 1. 虚拟机准备 1.1 准备1个1核1G的虚拟机(160), 配置java环境, 安装redis和minio 1.2 准备6个1核1G的空虚拟机(161到166), …

现在闪侠惠递寄快递有福利了,千万不要因没把握住而后悔呀!

闪侠惠递平台寄快递现在真的是太便宜了,优惠价格把握不住,后悔都来不及!大家可以在闪侠惠递上面寄快递,价格真的非常优惠呢,比咱们平常寄快递的价格都优惠呢,真的,小编都亲自替大家尝试过了呢。…

【Java基础】我不允许还有人搞不懂lambda表达式!!!

λ希腊字母表中排序第十一位的字母避免匿名内部类定义过多,使得代码更加简洁其实质属于函数式编程的概念 (params)->expression[表达式] (params)->statement[语句] (params)->{statements}lambda表达式推导过程: 创建一个类,重写接…

【大数据·hadoop】在hdfs上运行shell基本常用命令

一、准备工作 1.1格式化并启动Hadoop服务 参见Hadoop在ubuntu虚拟机上的伪分布式部署|保姆级教程的4.7节 二、HDFS常用命令 接着,就愉快地在刚刚的命令行里敲命令啦 1.显示hdfs目录结构 hadoop fs -ls -R /hadoop fs: 这是Hadoop文件系统命令行的一部分&#x…

36. 有效的数独 - 力扣(LeetCode)

基础知识要求: Java:方法、for循环、if判断、数组 Python: 方法、for循环、if判断、列表、集合 题目: 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一…

SystemC学习使用记录

一、概述 对于复杂的片上系统,在进行RTL编码前,需进行深入的系统级仿真,以确认设计的体系结构是否恰当、总线是否能满足吞吐量和实现性要求以及存储器是否浪费,所进行的这些仿真要求在芯片的仿真模型上运行大量的软件&#xff0c…

LVS负载均衡超详细入门介绍

LVS 一、LVS入门介绍 1.1.LVS负载均衡简介 1.2.负载均衡的工作模式 1.2.1.地址转换NAT(Network Address Translation) 1.2.2.IP隧道TUN(IP Tunneling) 1.2.3.直接路由DR(Direct Routing) 1.3.…

版本控制:软件开发的基石(一文读懂版本控制)

未经允许,禁止转载! 在现代软件开发中,版本控制是不可或缺的工具。它帮助开发者跟踪和管理代码的变化,协作完成项目,并确保代码的完整性和安全性。本文将基于Git官网的视频“什么是版本控制”来深入探讨版本控制的基本…

macOS Sonoma 14.5(23F79)发布

系统介绍 黑果魏叔5 月 14 日快报,苹果今日向 Mac 电脑用户推送了 macOS 14.5 正式版更新(内部版本号:23F79 同 RC)。这是去年 9 月发布的 macOS Sonoma 操作系统的第五次更新,距离上一次的 macOS Sonoma 14.4 更新已…

在React中利用Postman测试代码获取数据

文章目录 概要名词解释1、Postman2、axios 使用Postman测试API在React中获取并展示数据小结 概要 在Web开发中,通过API获取数据是一项常见任务。Postman是一个功能强大的工具,可以帮助开发者测试API,并查看API的响应数据。在本篇博客中&…