OSPF五种数据包详解

一、OSPF头部封装

OSPF是跨四层封装协议,直接封装在网络层之上,需要IP协议使用一个协议号来标定——89。

OSPF头部结构:

版本:标识OSPF的版本,OSPFv2(2)、OSPFv3(3); 

类型:标识OSPF数据包的类型,hello(1)、DBD(2)、LSR(3)、LSU(4)、LSACK(5);

路由器ID:表示发出数据包设备的Router ID;

区域ID:表示发出数据包的接口所在区域;

认证类型:null(不认证)、simple(明文认证)、MD5(哈希认证);

注意:OSPF进行认证时,会比对两部分内容,一个是认证类型,一个是认证数据。

抓包:

二、Hello包

主要用于周期性的发现,建立以及保活邻居关系,包括DR和BDR的选举。

网络掩码:表示发出数据包接口IP地址的掩码 ;

Hello间隔、路由器失效时间:分别表示hello时间和死亡时间,其比例为1:4;

可选项:一共8位特殊标识位。其中E表示是否支持5类LSA、N表示是否支持7类LSA、NP表示是否支持7转5类LSA;

路由优先级:表示发出该数据包的接口优先级;

DR和BDR:表示指定路由器和备份指定路由器。在没有选举出来之前,使用0.0.0.0临时填充;

邻居:携带自己本地已知邻居的Router ID;

OSPF邻居关系建立的必要条件:

  1. 网络掩码一致
  2. hello时间一致
  3. 死亡时间一致
  4. 特殊区域标识位一致
  5. 认证一致

抓包(省略了头部信息):

三、DBD包

主要用于主从关系选举、共享LSA摘要信息、序列号确认

MTU:标识最大传输单元。华为设备默认没有开启MTU的检测,所以使用0来填充。若双方都开起了MTU的检测,且两边数值不一样,则会卡在Exsart状态;

可选项:一共8位特殊标识位,和Hello包中的基本一致;

R:保留位;

I:初始化位。置1代表的是进行主从关系选举的包,不携带LSA头部信息;若置0代表的是共享LSA摘要的包,需要携带LSA头部;

M:更多位。置1代表后面还有DBD包的发送;若置0表示最后一个包;

MS:主从位。置1表示该设备为主。第一次发送DBD包时都会默认自己为主;

序列号:用于保证DBD报文的顺序性和可靠性;

抓包(省略了头部信息):

四、LSR包

链路状态请求报文,基于DBD包请求未知的LSA

链路状态类型、链路状态ID、通告路由器:LSA的三元组,可以唯一的标识出一条LSA。

抓包(省略了头部信息):

五、LSU包

链路状态更新报文,携带LSA的数据包

抓包(省略了头部信息):

六、LSACK包

链路状态确认报文,充当确认包

抓包(省略了OSPF头部封装):

注:本地链路组播

凡是224.0.0.X格式的组播地址,都称为本地链路组播,这种组播包的特点是TTL设置为1,只能在当前的广播域中发送。

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

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

相关文章

NO.64十六届蓝桥杯备战|基础算法-简单贪心|货仓选址|最大子段和|纪念品分组|排座椅|矩阵消除(C++)

贪⼼算法是两极分化很严重的算法。简单的问题会让你觉得理所应当,难⼀点的问题会让你怀疑⼈⽣ 什么是贪⼼算法? 贪⼼算法,或者说是贪⼼策略:企图⽤局部最优找出全局最优。 把解决问题的过程分成若⼲步;解决每⼀步时…

Linux(十二)信号

今天我们就要来一起学习信号啦!!!还记得小编在之前的文章中说过的ctrlc吗?之前小编没有详细介绍过,现在我们就要来学习啦!!! 一、信号的基本介绍 首先,小编带领大家先一…

Dify开发实战-自制插件 和安装python3最新版本 记录版本 后续会持续更新

自定义插件 Dify 插件脚手架工具Python 环境,版本号 ≥ 3.12 安装Python 一 进入官网 https://www.python.org/downloads/windows/ 点击下载 二、安装python(本文中有借鉴其他图片 所以图片展示python版本可能不一致 请忽略) 1.双击打开py…

Docker安装、配置Redis

1.如果没有docker-compose.yml文件的话,先创建docker-compose.yml 配置文件一般长这个样子 version: 3services:redis:image: redis:latestcontainer_name: redisports:- "6379:6379"command: redis-server --requirepass "123456"restart: a…

Parasoft C++Test软件单元测试_操作指南

系列文章目录 Parasoft C++Test软件静态分析:操作指南(编码规范、质量度量)、常见问题及处理 Parasoft C++Test软件单元测试:操作指南、实例讲解、常见问题及处理 Parasoft C++Test软件集成测试:操作指南、实例讲解、常见问题及处理 进阶扩展:自动生成静态分析文档、自动…

二级索引详解

二级索引详解 二级索引(Secondary Index)是数据库系统中除主键索引外的附加索引结构,用于加速基于非主键列的查询操作。以下是关于二级索引的全面解析: 一、核心概念 特性主键索引 (Primary Index)二级索引 (Secondary Index)唯一性必须唯一可以唯一或非唯一数量每表只有…

Python_level1_字符串_11

目录 一、基本概念 二、字符串基本操作:【索引、切片、遍历】 1.字符串与列表(相同) 1)索引(从0开始)(可以获取某一个/某几个连续的字符) 2)切片 [xx:xx] 与 列表 语法规则一样 [起…

Axure数据可视化科技感大屏设计资料——赋能多领域,展示无限价值

可视化大屏如何高效、直观地展示数据,并将其转化为有价值的决策依据,成为了许多企业和组织面临的共同挑战。Axure大屏可视化模板,作为一款强大的数据展示工具,正在以其出色的交互性和可定制性,赋能多个领域&#xff0c…

MySQL 性能调优:数据库的极限运动训练

就像运动员需要不断训练才能突破极限,数据库也需要各种调优才能跑得更快…让我们一起给 MySQL 安排一套专业的"健身计划"! 什么是 MySQL 性能调优?🤔 MySQL 性能调优是指通过各种配置优化、结构调整和查询改进&#x…

4.5/Q1,GBD数据库最新文章解读

文章题目:Emerging trends and cross-country health inequalities in congenital birth defects: insights from the GBD 2021 study DOI:10.1186/s12939-025-02412-7 中文标题:先天性出生缺陷的新趋势和跨国健康不平等:GBD 202…

基于DeepSeek、ChatGPT支持下的地质灾害风险评估、易发性分析、信息化建库及灾后重建

前言: 地质灾害是指全球地壳自然地质演化过程中,由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。在降水、地震等自然诱因的作用下,地质灾害在全球范围内频繁发生。我国不仅常见滑坡灾害,还…

Linux | 安装超级终端串口软件连接i.MX6ULL开发板(8)

01 它的安装步骤也非常简单,安装语言选择中文简体,点击确定,如下图所示。 点击下一步,如下图所示。 02

蓝桥杯15届 宝石组合

问题描述 在一个神秘的森林里,住着一个小精灵名叫小蓝。有一天,他偶然发现了一个隐藏在树洞里的宝藏,里面装满了闪烁着美丽光芒的宝石。这些宝石都有着不同的颜色和形状,但最引人注目的是它们各自独特的 “闪亮度” 属性。每颗宝…

Lua:第1-4部分 语言基础

1 Lua语言入门 1.1 程序段 我们将 Lua 语言执行的每一段代码(例如,一个文件或交互模式下的一行)称为一个程序段 ( Chunk ) ,即一组命令或表达式组成的序列 。 1.2 一些词法规范 Lua 语言中的标识符&#…

CTF类题目复现总结-hashcat 1

一、题目地址 https://buuoj.cn/challenges#hashcat二、复现步骤 1、下载附件,解压得到What kind of document is this_文件; 2、用010 Editor打开What kind of document is this_文件,发现是office文件; 3、将后缀名改为ppt时…

手机归属地查询Api接口,数据准确可靠

手机归属地查询是一项非常实用的功能,它可以帮助我们快速了解一个手机号码的所属地区、区号、邮政编码等信息。在互联网时代,随着大数据和人工智能技术的发展,手机归属地查询的API接口也变得越来越普及和便捷。 在本文中,我们将介…

orangepi zero烧录及SSH联网

下载对应版本的armbian镜像 armbian的默认用户root,默认密码:1234 下载烧录工具win32diskimager https://sourceforge.net/projects/win32diskimager/files/Archive/ 插入16G以上TF卡,使用win32diskimager烧录armbian镜像 烧录完毕后用l…

为什么有的深度学习训练,有训练集、验证集、测试集3个划分,有的只是划分训练集和测试集?

在机器学习和深度学习中,数据集的划分方式取决于任务需求、数据量以及模型开发流程的严谨性。 1. 三者划分:训练集、验证集、测试集 目的 训练集(Training Set):用于模型参数的直接训练。验证集(Validati…

Linux驱动开发 块设备

目录 序言 1.块设备结构 分区(gendisk) 请求(request) 请求队列 1. 多队列架构 2. 默认限制与扩展 bio 2.块设备的使用 头文件与宏定义 blk-mq 相关结构和操作 块设备操作函数 模块初始化函数 模块退出函数 3.总结 序言 块设备(如硬盘、虚拟盘&#x…

ResNet改进(14):添加 EMA注意力机制提升跨空间学习效率

本专栏代码均经过测试,可以直接替换项目中的模型,一键运行! 采用最新的即插即用模块,有效涨点!! 1.EMA注意力机制 EMA(Efficient Multi-scale Attention)注意力机制是一种创新的注意力设计,能够有效提升模型在跨空间学习任务中的表现。以下是对该机制的详细解析: EM…