【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

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

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

相关文章

【PHP入门】2.1-运算符

-运算符- 运算符&#xff1a;operator&#xff0c;是一种将数据进行运算的特殊符号&#xff0c;在PHP中一共有十种运算符之多。 2.1.1赋值运算符 赋值运算&#xff1a;符号是“”&#xff0c;表示将右边的结果&#xff08;可以是变量、数据、常量和其它运算出来的结果&#…

C# WPF上位机开发(ExtendedWPFToolkit扩展包使用)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 虽然个人认为当前的c# wpf内容已经足够多&#xff0c;但是肯定还是有很多个性化的需求没有满足。比如说不够好看&#xff0c;比如说动画效果不好&a…

Scala多线程爬虫程序的数据可视化与分析实践

一、Scala简介 Scala是一种多种类型的编程语言&#xff0c;结合了针对对象编程和函数式编程的功能。它运行在Java虚拟机上&#xff0c;具有强大的运算能力和丰富的库支持。Scala常用于大数据处理、并发编程和Web应用程序开发。其灵活性和高效性编程成为编写多线程爬虫程序的理…

DiffUtil + RecyclerView 在 Kotlin中的使用

很惭愧, 做了多年的Android开发还没有使用过DiffUtil这样解放双手的工具。 文章目录 1 DiffUtil 用来解决什么问题?2 DiffUtil 是什么?3 DiffUtil的使用4 参考文章 1 DiffUtil 用来解决什么问题? 先举几个实际开发中的例子帮助我们感受下: 加载内容流时,第一次加载了ABC,…

Hadoop3.x完全分布式模式下slaveDataNode节点未启动调整

目录 前言 一、问题重现 1、查询Hadoop版本 2、集群启动Hadoop 二、问题分析 三、Hadoop3.x的集群配置 1、停止Hadoop服务 2、配置workers 3、从节点检测 4、WebUI监控 总结 前言 在大数据的世界里&#xff0c;Hadoop绝对是一个值得学习的框架。关于Hadoop的知识&…

50ms时延工业相机

华睿工业相机A3504CG000 参数配置&#xff1a; 相机端到端理论时延&#xff1a;80ms 厂家同步信息&#xff0c;此款设备帧率上线23fps&#xff0c;单帧时延&#xff1a;43.48ms&#xff0c;按照一图缓存加上传输显示的话&#xff0c;厂家预估时延在&#xff1a;80ms 厂家还有…

亿某通电子文档安全管理系统任意文件上传漏洞 CNVD-2023-59471

1.漏洞概述 亿某通电子文档安全管理系统是一款电子文档安全防护软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产。亿赛通电子文档安全管理系统UploadFileFromClientServiceForClient接口处存在任意文件…

Java EE 网络之网络编程

文章目录 1. 什么是网络编程1.1 基础概念 2. Socket 套接字2.1 概念2.2 分类2.2.1TCP 和 UDP 的区别 2.3 UDP数据报套接字编程2.3.1 DatagramSocket2.3.2 DatagramPacket2.3.3 写一个简单的 UDP 的客户端程序2.3.3.1 编写服务器代码2.3.3.2 编写客户端代码 2.3.4 编写基于 echo…

C++11特性:可调用对象以及包装器function的使用

在C中存在“可调用对象”这么一个概念。准确来说&#xff0c;可调用对象有如下几种定义&#xff1a; 是一个函数指针&#xff1a; int print(int a, double b) {cout << a << b << endl;return 0; } // 定义函数指针 int (*func)(int, double) &print…

giee 添加公匙 流程记录

一、安装 百度网盘CSDN4文件夹下&#xff0c;或者官网下载&#xff1a;https://git-scm.com/downloads 二、生成密钥 1.右击打开git bash 2.$ ssh-keygen -t rsa -C “个人邮箱地址”&#xff0c;按3个回车&#xff0c;密码为空。 3.在C:\Users{windows用户名}.ssh目录下得到…

onvif协议笔记

一、简介 ONVIF官网 ONVIF协议网络摄像机&#xff08;IPC&#xff09;客户端程序开发&#xff08;1&#xff09;&#xff1a;专栏开篇 onvif协议开发 二、gSOAP gsoap官网 1、下载和编译 下载地址 #! /bin/sh # 指定源码目录(解压源码) GSOAP_SRCgsoap-2.8 PWDpwd echo &…

LiteClient工具箱:降低成本,减少监管风险

​​发表时间&#xff1a;2023年9月14日 BSV区块链协会的工程团队一直在为即将推出的LiteClient而努力工作&#xff0c;这是一套模块化的组件&#xff0c;可使简易支付验证&#xff08;SPV&#xff09;变得更加便利。 借助LiteClient工具箱&#xff0c;交易所可以通过区块头中…