OSPF基础(2):数据包详解

 OSPF数据包(可抓包)

OSPF报文直接封装在IP报文中,协议号89

头部数据包内容:

  • 版本(Version):对于OSPFv2,该字段值恒为2(使用在IPV4中);对于OSPFv3,该字段值恒为3(使用在IPV6中)。
  • 类型(Message Type):该OSPF报文的类型。该字段的值与报文类型的对应关系是:1-Hello;2-DD;3-LSR;4-LSU;5-LSAck。
  • 报文长度(Packet Length):整个OSPF 报文的长度(字节数)。
  • 路由器ID (Router Identification):路由器的OSPF Router-ID。
  • 区域ID (Area Identification):该报文所属的区域ID,这是一个32bit 的数值。
  • 校验和(Checksum):用于校验报文有效性的字段。
  • 认证类型(Authentication Type):指示该报文使用的认证类型。
  • 认证数据(Authentication Data):用于报文认证的内容。

(1)hello:hello包携带自己的router ID、被发现的邻居标识,用来周期保活的,发现,建立邻居关系。

  • 网络掩码(Network Mask):一旦路由器的某个接口激活了OSPF,该接口即开始发送Hello报文,该字段填充的是该接口的网络掩码。两台OSPF 路由器如果通过以太网接口直连,那么双方的直连接口必须配置相同的网络掩码,否则影响邻居关系建立。
  • Hello间隔(Hello Interval):接口周期性发送报文的时间间隔(单位为s)。两台直连路由器要建立OSPF邻居关系,需确保接口的Hello Interval相同,否则邻居关系无法正常建立。
  • 可选项(Options):该字段一共8bit,每个比特位都用于指示该路由器的某个特定的OSPF 特性。Options字段中的某些比特位会被检查,这有可能会直接影响到OSPF邻接关系的建立。(特殊区域的标记)。
  • 路由器优先级(Router Priority):路由器优先级,范围:0-255,默认是1,数字越大,代表路由优先级越高,也叫DR优先级,该字段用于DR、BDR 的选举。
  • 路由器失效时间(Router Dead Interval):在邻居路由器被视为无效前,需等待收到对方Hello报文的时间(单位为s)。两台直连路由器要建立OSPF 邻居关系,需确保双方直连接口的Router Dead Interval相同,否则邻居关系无法正常建立。缺省情况下,OSPF路由器接口的Router Dead Interval为该接口的Hello Interval的4倍。
  • 指定路由器(Designated Router):网络中DR的接口IP地址。如果该字段值为0.0.0.0,则表示没有DR,或者DR尚未选举出来。
  • 备份指定路由器(Backup Designated Router):网络中 BDR的接口IP地址。如果该字段值为0.0.0.0,则表示网络中没有BDR,或者BDR尚未选举出来。
  • 邻居(Neighbor)。在直连链路上发现的有效邻居,此处填充的是邻居的Router-iD,如果发现了多个邻居,则包含多个邻居字段。

(2)DBD(数据库描述报文):仅包含LSA摘要

  • 接口最大传输单元(Interface Maximum Transmission Unit):接口的MTU。
  • 可选项(Options):路由器支持的OSPF可选项。
  • DD报文置位符:

R:没什么功能,留给后来者使用

I:init位,I=1,这是第一个DD报文

M:more位,M=1表示后续还有DD报文

MS:master位,MS=1,表示本端为主

  • DD序列号( Sequence Number): DD报文的序列号,在报文交互的过程中,DD序列号被逐次加1,用于确保DD报文传输的有序和可靠性。值得注意的是,DD序列号必须是由Master路由器来决定的,而Slave路由器只能使用Master路由器发送的DD序列号来发送自己的DD报文。(route id大的设备会成为master)

LSA头部( Header):当路由器使用DD报文来描述自己的LSDB时,LSA的头部信息被包含在此处。一个DD报文可能包含一条或多条LSA的头部。

(3)LSR:请求自己没有的或则比自己更新的链路状态详细信息

链路状态类型,链路状态ID,通告路由器:“LSA三元组” ( 通过着三个参数可以唯一的标识出一条LSA)

(4)LSU:链路状态更新信息

一个LSU报文可以包含多个LSA

当路由器感知到网络发生变化时,也可以触发LSU报文的泛洪,以便将该变化通知给网络中的其他OSPF 路由器。

在MA网络中,非 DR、BDR路由器向224.0.0.6这个组播地址发送LSU报文,而DR及 BDR会侦听这个组播地址,DR在接收LSU报文后向224.0.0.5发送LSU报文,从而将更新信息泛洪到整个OSPF区域,所有的OSPF 路由器都会侦听224.0.0.5这个组播地址。

总结:

224.0.0.5所有运行OSPF的接口会监听

224.0.0.6所有DR\BDR的接口会监听

(5)LSAck:对LSU的确认

报文中包含着路由器所确认的LSA的头部(每个LSA头部的长度为20byte)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第二篇:前端VSCode常用快捷键-以及常用技巧

继续书接上一回, 我们讲解了常用的vscode 插件。 vscode 常用的插件地址: 前端VSCode常用插件-CSDN博客 本篇文章,主要介绍vscode常用的快捷键,可以提高我们的开发效率。 一、VSCode常用的快捷键 注意,其实这个快捷…

【LeetCode】152、乘积最大子数组

【LeetCode】152、乘积最大子数组 文章目录 一、dp1.1 dp1.2 简化代码 二、多语言解法 一、dp 1.1 dp 从前向后遍历, 当遍历到 nums[i] 时, 有如下三种情况 能得到最大值: 只使用 nums[i], 例如 [0.1, 0.3, 0.2, 100] 则 [100] 是最大值使用 max(nums[0…i-1]) * nums[i], 例…

vue生命周期及其作用

vue生命周期及其作用 1. 生命周期总览 2. beforeCreate 我们在new Vue()时,初始化一个Vue空的实例对象,此时对象身上只有默认的声明周期函数和事件,此时data,methods都未被初始化 3. created 此时,已经完成数据观测&#xff0…

什么是三层交换技术?与二层有什么区别?

什么是三层交换技术?让你的网络飞起来! 一. 什么是三层交换技术?二. 工作原理三. 优点四. 应用场景五. 总结 前言 点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。 作者:神的孩子都在歌唱 大家好…

e2studio开发RA2E1(5)----GPIO输入检测

e2studio开发RA2E1.5--GPIO输入检测 概述视频教学样品申请硬件准备参考程序源码下载新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置GPIO口配置按键口配置按键口&Led配置R_IOPORT_PortRead()函数原型R_IOPORT_PinRead()函数原型代码 概述 本篇文章主要介绍如何…

【LLM】为何DeepSeek 弃用MST却采用Rejection采样

文章目录 拒绝采样 Rejection sampling🎯马尔可夫搜索树 🌳RFT和SFT1. RFT和SFT的区别2. 如何将RFT用于数学推理任务? Reference 在提升大语言模型(LLM)推理能力时,拒绝采样(Rejection Sampling…

股指入门:股指期货是什么意思?在哪里可以做股指期货交易?

股指期货是一种以股票指数为标的物的期货合约,也可以称为股票指数期货或期指。 股指期货是什么意思? 股指期货是一种金融衍生品,其标的资产是股票市场上的股指,例如标普500指数、道琼斯工业平均指数、上证50指数等。 股指期货允…

前端构建工具大比拼:Vite、Webpack、Parcel、esbuild 等热门工具使用分析

前端构建工具大比拼:Vite、Webpack、Parcel、esbuild 等热门工具使用分析 随着前端技术的不断发展,构建工具成为了每个前端项目的核心部分。通过合适的构建工具,我们能够优化开发效率、提升构建速度,并最终实现更加高效和灵活的开…

安装和使用 Ollama(实验环境windows)

下载安装 下载 https://ollama.com/download/windows 安装 Windows 安装 如果直接双击 OllamaSetup.exe 安装,默认会安装到 C 盘,如果需要指定安装目录,需要通过命令行指定安装地址,如下: # 切换到安装目录 C:\Use…

node.js使用mysql2对接数据库

一、引言 在现代Web开发中,Node.js作为一种高效、轻量级的JavaScript运行时环境,已经广泛应用于后端服务的开发中。而MySQL,作为一个广泛使用的关系型数据库管理系统(RDBMS),提供了强大的数据存储和查询功能…

Unity 快速入门 1 - 界面操作

本项目将快速介绍 Unity 6的基本操作和功能,下载附件的项目,解压到硬盘,例如 D:\Unity Projects\, 注意整个文件路径中只有英文、空格或数字,不要有中文或其他特殊符合。 1. 打开Unity Hub,点击右上角的 O…

携程Java开发面试题及参考答案 (200道-上)

说说四层模型、七层模型。 七层模型(OSI 参考模型) 七层模型,即 OSI(Open System Interconnection)参考模型,是一种概念模型,用于描述网络通信的架构。它将计算机网络从下到上分为七层,各层的功能和作用如下: 物理层:物理层是计算机网络的最底层,主要负责传输比特流…

云轴科技ZStack+海光DCU:率先推出DeepSeek私有化部署方案

针对日益强劲的AI推理需求和企业级AI应用私有化部署场景(Private AI),云轴科技ZStack联合海光信息,共同推动ZStack智塔全面支持DeepSeek V3/R1/Janus Pro系列模型,基于海光DCU实现高性能适配,为企业提供安全…

通信易懂唠唠SOME/IP——SOME/IP协议简介

一 简介 1.1 面向服务的中间件 SOME/IP是Scalable service-Oriented MiddlewarE over IP (SOME/IP)的缩写,基于IP的可扩展面向服务的中间件。 1.2 广泛应用于汽车嵌入式通信 SOME/IP是一种支持远程通信的汽车/嵌入式通信协议 。支持远程过程调用(RPC…

游戏引擎学习第89天

回顾 由于一直没有渲染器,终于决定开始动手做一个渲染器,虽然开始时并不确定该如何进行,但一旦开始做,发现这其实是正确的决定。因此,接下来可能会花一到两周的时间来编写渲染器,甚至可能更长时间&#xf…

PostgreSql-COALESCE函数、NULLIF函数、NVL函数使用

COALESCE函数 COALESCE函数是返回参数中的第一个非null的值,它要求参数中至少有一个是非null的; select coalesce(1,null,2),coalesce(null,2,1),coalesce(null,null,null); NULLIF(ex1,ex2)函数 如果ex1与ex2相等则返回Null,不相等返回第一个表达式的值…

【苍穹外卖 Day1】前后端搭建 Swagger导入接口文档

项目技术选型 前端 直接使用打包好的nginx运行。 后端 1、导入初始代码结构如下: 2、将代码上传远程仓库。 3、创建数据库,并修改数据库配置。 4、断点调试,前后端联调。 5、使用Nginx代理,修改Nginx配置 好处:提…

八大排序算法细讲

目录 排序 概念 运用 常见排序算法 插入排序 直接插入排序 思想: 步骤(排升序): 代码部分: 时间复杂度: 希尔排序 思路 步骤 gap的取法 代码部分: 时间复杂度: 选择排序 直接选…

python算法和数据结构刷题[3]:哈希表、滑动窗口、双指针、回溯算法、贪心算法

回溯算法 「所有可能的结果」,而不是「结果的个数」,一般情况下,我们就知道需要暴力搜索所有的可行解了,可以用「回溯法」。 回溯算法关键在于:不合适就退回上一步。在回溯算法中,递归用于深入到所有可能的分支&…

【远程控制】安装虚拟显示器

todesk远程发现没显示器的机器有问题 电脑如果不外接一个显示器那么会默认为1024 768 分辨率需要安装虚拟显示器参考 竟然是一个隐私屏幕的解决方案。 虚拟显示器 Parsec-vdd 项目地址 Parsec-vdd 最大的优点是:支持 4K 高刷、可添加多个虚拟屏、 H-Cursor&#…