【HCIP学习记录】OSPF之DD报文

1.OSPF报文格式

24字节

image-20231218193243012
字段长度含义
Version1字节版本,OSPF的版本号。对于OSPFv2来说,其值为2。
Type1字节类型,OSPF报文的类型,有下面几种类型: 1:Hello报文;● 2:DD报文;● 3:LSR报文;● 4:LSU报文;● 5:LSAck报文。
Packet length2字节OSPF报文的总长度,包括报文头在内,单位为字节
Router ID4字节发送该报文的路由器标识。
Area ID4字节发送该报文的所属区域。
Checksum2字节校验和,包含除了认证字段的整个报文的校验和。
AuType2字节验证类型,值有如下几种表示:● 0:不验证。● 1:简单认证。● 2:MD5认证。
Authentication8字节鉴定字段,其数值根据验证类型而定:● 当验证类型为0时未作定义。● 类型为1时此字段为密码信息 ● 类型为2时此字段包括Key ID、MD5验证数据长度和序列号的信 MD5验证数据添加在OSPF报文后面,不包含在Authenticaiton字段

2. DD报文-database description

作用:用于数据库的同步,

  • 对比对端链路状态通告(LSA)和自己链路状态通告的差异(通过LSA中的LSA Type 、Link-state ID、adveriting Router,全部一致才认为自己有该LSA)

  • 如果自己存在对端的LSA,还要比较LSA的新旧(通过sequence number,越大越优,相同则比较checksum,再相同比较LSA Age)

    为什么不直接发送全部的LSA给其他路由器?原因在于只比对摘要信息判断是否需要更新自己数据库,可以节省链路开销,有针对性的更新需要的路由条目,按需索取。

    DD报文格式

image-20231218193402739
字段长度含义
Interface MTU16比特在不分片的情况下,此接口最大可发出的IP报文长度。华为OSPFv2默认不检查,该值为0,华为OSPFv3需要检查。
Options8比特可选项:● E:允许Flood AS-External-LSAs;● MC:转发IP组播报文;● N/P:处理Type-7 LSAs;● DC:处理按需链路。
I (Init)1比特当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。
M(More)1比特当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文。
MS(Master/Slave)1比特当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,Router ID大的一方会成为Master。当值为1时表示发送方为Master。
DD sequence number32比特DD报文序列号。主从双方利用序列号来保证DD报文传输的可靠性和完整性。
An LSA Header每个20字节该DD报文中所包含的LSA的头部信息。

OSPF是承载于IP之上,IP是不可靠的,通过OSPF自身报文保证可靠性。其中,DD sequence number可以保证DD报文可靠性和有序性,I 、M(More)、MS(Master/Slave)保证DD报文可控性。

抓包验证:

image-20231219000608898

在AR1的g0/0/0进行抓包分析

第一个DD包:10.1.12.1 ->10.1.12.2,没有LSA摘要

image-20231218200008229

10.1.12.2->10.1.12.1 .2 RouterID大为master,没有LSA摘要

image-20231218200233939

10.1.12.1 ->10.1.12.2 序列号这个master保持一致,通过这种类似三次握手的方式保持可靠性。发送LSA摘要给.2

image-20231218200520836

10.1.12.2->10.1.12.1 .2向.1发送LSA 摘要,序列号+1

image-20231218201118476

10.1.12.1 ->10.1.12.2 确认上一个报文,LSA 摘要为空,回复报文序列号于master发送序列号相同。

image-20231218201544275

在AR1上开启Debug模式看DD报文:

<R1>terminal debugging 
<R1>debugging ospf packet dd 
# 由于前面已经到达FULL状态,不会再交互DD报文,这里reset一下OSPF进程
<R1>reset ospf process 
# 关闭debug
<R1>undo debugging all 

可以看到第一DD报文信息,与抓包的一致:I、M、MS置位,LSA头部长度为0

image-20231218231427328

.1发送给.2的第二条DD报文:可以看到I、M、MS已经复位,LSA头部长度为1,有一条摘要

.1发送给.2的第三条DD报文:可以看到I、M、MS已经复位,LSA头部长度为0,没有LSA header

image-20231218232032661

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

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

相关文章

人工智能解决方案工程师,究竟是个怎样的职业?

人工智能解决方案工程师是专注于利用人工智能技术为企业和组织提供解决方案的专业人员。 他们在人工智能技术的基础上&#xff0c;结合业务需求和场景&#xff0c;设计和开发定制化的智能系统&#xff0c;以解决特定的问题或优化业务流程。 人工智能解决方案工程师需要具备一系…

ros2 学习04 工作空间说明及示例

ros2 术语说明&#xff1a; 大家在学习其他的开发语言之前的学习和开发中&#xff0c;应该有接触过某些集成开发环境&#xff0c;比如Visual Studio、Eclipse、Qt Creator等&#xff0c;当我们想要编写程序之前&#xff0c;都会在这些开发环境的工具栏中&#xff0c;点击一个“…

win环境下启动kafka Port already in use: 6688; nested exception is

背景 zk启动成功后&#xff0c;接下来启动kafka&#xff0c;再启动kafka后一直说端口被占用。 端口占用解决办法: netstat -aon|findstr 9092 taskkill -f -pid 7780 杀掉后&#xff0c;再次启动kafka时&#xff0c;问题并未解决 后来修改了批处理文件kafka-run-class.bat中…

从零开始学习Web自动化:用Python和Selenium实现网站登录功能!

Web自动化测试实战项目&#xff1a;使用Selenium和Python完成网站登录功能的自动化测试 本文将介绍如何使用Selenium和Python编写自动化测试脚本&#xff0c;对网站登录功能进行测试。我们将通过模拟用户在网站上输入用户名和密码&#xff0c;并点击登录按钮&#xff0c;来检验…

测试工具Jmeter:设置中文界面

首先我们打开Jmeter所在的文件&#xff0c;进入bin目录&#xff0c;打开Jmeter.properties&#xff1a; 打开后找到languageen&#xff1a; 改为zh_CN: 保存关闭&#xff0c;然后再打开Jmeter&#xff1a; 英文并不会显得高级&#xff0c;能做到高效的性能测试才是高级的。

明理信息科技打造专属个人或企业知识付费平台,核心功能设计

在当今信息爆炸的时代&#xff0c;知识管理已经成为了每个人必须面对的问题。然而&#xff0c;市面上的知识付费平台大多数都是通用的&#xff0c;无法满足个性化需求。 因此&#xff0c;明理信息科技提供了一款专属定制的适合个人的知识付费平台。核心产品能力如下&#xff1…

宠物新手必读:5款公认性价比高的猫罐头测评

很多人在买猫罐头的时候&#xff0c;可是费了老鼻子劲儿了。他们浏览了各大平台&#xff0c;读了大量的评测文章&#xff0c;就想着找到最好的那一个。但最后他们发现&#xff0c;很多所谓的「实测」都是虚的&#xff0c;假的。花了几天时间&#xff0c;结果选了个垃圾猫罐头&a…

Elasticsearch——深入原理

在正式介绍Elasticsearch的具体功能以前&#xff0c;将介绍Elasticsearch中比较重要的原理与机制。这有助于理解Elasticsearch的内部机制&#xff0c;以及从表面功能深入了解其背后的逻辑本质。主要内容如下&#xff1a; 搜索引擎的基本原理和组成结构。Elasticsearch集群的形…

Java基础语法之内部类

什么是内部类 就是在一个类中又定义了另一个类 分类 实例内部类 即未被static修饰的内部类 1.外部类中的任何成员都可以在内部类里面直接访问&#xff0c;不管这个成员是什么权限 2.内部类对象的创建必须是在有外部类成员的前提下 这是错误的&#xff0c;那如何实例化呢&a…

个人熟悉C语言,准备学习嵌入式,用得上吗?

今日话题&#xff0c;准备学习嵌入式&#xff0c;熟悉C语言用得上吗&#xff1f;C语言具有高效的性能和接近硬件的特性&#xff0c;因此在嵌入式开发中有着广泛的应用&#xff0c;包括系统级编程和驱动程序开发等方面。实际上&#xff0c;C语言在嵌入式开发中扮演着非常关键的角…

八股文打卡day3——计算机网络(3)

面试题&#xff1a;请讲一下四次挥手的过程&#xff1f; 1.客户端发送FIN数据包给服务器&#xff0c;表示客户端不再发送数据给服务器&#xff0c;想要断开这个方向的连接。 2.服务器收到客户端的FIN包之后&#xff0c;发送ACK包给客户端&#xff0c;对收到的FIN包进行收到确认…

大数据机器学习-梯度下降:从技术到实战的全面指南

大数据机器学习-梯度下降&#xff1a;从技术到实战的全面指南 文章目录 大数据机器学习-梯度下降&#xff1a;从技术到实战的全面指南一、简介什么是梯度下降&#xff1f;为什么梯度下降重要&#xff1f; 二、梯度下降的数学原理代价函数&#xff08;Cost Function&#xff09;…

VueStu01-Vue是什么

1.概念 Vue 是一个 用于构建用户界面 的 渐进式 框架 。 2.构建用户界面 基于数据渲染出用户看到的页面。 3.渐进式 Vue的学习是循序渐进的&#xff0c;可以学一点用一点&#xff0c;不必全部学完才能用。哪怕你只学了 声明式渲染 这一个小部分的内容&#xff0c;你也可以完成…

商业加速终极指南:创业家的10个关键步骤

多年来&#xff0c;前沿的初创企业一直在塑造整个行业&#xff0c;引入新技术、更精简的业务模式以及深受客户喜爱的开箱即用的产品。这不仅仅是一种短暂的趋势&#xff0c;而是我们的商业格局发生了根本性的转变&#xff0c;在这种情况下&#xff0c;率先抓住新的增长机遇可以…

ubuntu无 root 权限安装 screen

网上的方法主要是如下图的方法&#xff0c;源码安装&#xff0c;但是我一直 make install失败显示没有权限 然后选择放弃&#xff0c;然后随便试了一下方法 2&#xff0c;成功 方法 1 方法 2 pip3 install screen结果&#xff1a;

【软件工程】软件工程复习题库2023

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; SpringCloud MybatisPlus JVM 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 软件工程复习题库 一、选择题二、填空题三、判断题四…

AtCoder Beginner Contest 333 A~D(E,F更新中...)

A.Three Threes&#xff08;循环&#xff09; 题意&#xff1a; 给出一个正整数 N N N&#xff0c;要求输出 N N N个 N N N 分析&#xff1a; 按要求输出即可 代码&#xff1a; #include <bits/stdc.h> using namespace std;void solve() {int n;cin >> n;fo…

【C语言】自定义类型:结构体深入解析(一)

&#x1f308;write in front :&#x1f50d;个人主页 &#xff1a; 啊森要自信的主页 ✏️真正相信奇迹的家伙&#xff0c;本身和奇迹一样了不起啊&#xff01; 欢迎大家关注&#x1f50d;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;>希望看完我的文章对你有小小的帮助&am…

springboot 学生信息管理

介绍 一个学生信息管理后台&#xff0c;适用于大作业&#xff0c;课设等 软件架构 springbootmybatisthymeleaf &#xff08;前后端未分离&#xff09; 安装教程 注&#xff1a;mysql数据库要8.0以上&#xff0c;&#xff0c;本地mysql新建一个名为 student 的空数据库&am…

open3d bug:pcd转txt前后位姿发生改变

1、open3d bug&#xff1a;pcd转txt前后位姿发生改变 open3d会对原有结果进行一个微小位姿变换 import open3d as o3d import numpy as np# 读取PCD点云文件 pcd o3d.io.read_point_cloud(/newdisk/darren_pty/zoom_centered_s2.pcd)# 获取点云坐标 points pcd.points# 指定…