OSPF的7大状态和5大报文详讲

news/2024/12/30 2:15:50/

在这里插入图片描述

- Down
OSPF的初始状态

- Init
初始化——我刚刚给别人发Hello报文

我们可以将OSPF邻居建立的过程理解为:我和你打招呼,你和我打招呼,然后咱俩成了邻居
比如:
R1和R2要建立OSPF邻居
R1给R2发送了Hello报文,但是R1此时发送的Hello报文中,并没有Active Neighbor字段

即:R1此时还不认识R2,那么R2会认为:R1的状态是初始化的状态——Init
纯文本

- 2-way——意味着邻居的开始!
也叫双向通信状态

比如:
R1和R2要建立OSPF邻居
R1给R2发送了Hello报文,而R1的Hello报文中,Active Neighbor字段是:R2的Router ID

说明:

  1. R2给R1发送的Hello报文,R1收到了——否则,R1不会知道R2的Router ID
  2. R2成功的接收了来自于R1的Hello报文——否则,R2也不会知道,R1收到了R2发送的Hello报文

即:R2清楚的知道:R2和R1可以互相通信了!此时,对于R2来说,R1处于2-way状态
纯文本

- Exstart——交换DD报文的初始状态

交换的是第一个DD报文,也叫空DD报文,不带数据库简要描述信息!

我们都知道:DD报文时数据库简要信息描述报文

如果说,两台设备的数据库,是两个图书馆,那么,DD报文,就是:图书馆的书籍名录简介

而空DD报文,是指:没有任何关于LSA的描述的DD报文


设备通过空DD报文,确定主从关系!

空DD报文有三个bit位:

  1. I(Init)——初始位为1 //表示这个DD报文时第一个DD报文
  2. M(More)——初始位为1 //表示这个DD报文后面还有更多的DD报文
    3.M/S(Master/Slave)——初始位为1 //表示我认为自己是主路由器

通过Router ID比较(Router ID大的是主路由器),确定主从关系,从而Slave发送的DD报文的序列号,必须是Master发送的DD报文的序列号

即:Slave必须收到Master发送的DD报文,Slave才会发送DD报文

这样做的目的:就是提高OSPF交换数据的可靠性!!!
纯文本

- Exchange——交换其余的DD报文

此时的DD报文,都带着“LSA Header”

所谓的“LSA Header”,就是数据库的简要描述信息
纯文本

- Loading——意味着邻居的结束 ——加载

LSR——链路状态请求报文——设备发送LSR,请求自己数据库中没有的LSA

LSU——链路状态更新报文——设备收到对端发送的LSR,会将LSA放在LSU中,发送给对方

LSAck——链路状态确认报文——设备收到对端的LSU,会发送LSAck进行接收的确认
纯文本

- FULL——邻接状态

两台设备的OSPF数据库完全同步(完全相同),此时,彼此的状态是FULL——邻接
纯文本

🔻OSPF的邻居和邻接
邻居:2-way到Loading

邻接:FULL
纯文本

🔻display ospf peer brief命令详解
< R1 >display ospf peer brief

OSPF Process 1 with Router ID 1.1.1.1 //OSPF进程1,Router ID是1.1.1.1
Peer Statistic Information //邻居 统计 信息

Area IdInterfaceNeighbor idState
0.0.0.0GigabitEthernet0/0/02.2.2.2Full
0.0.0.13GigabitEthernet0/0/13.3.3.3Full

【 Area ID 】

邻居所在的区域

【 Interface 】

我通过哪个接口,和对端建立邻居

【 Neighbor id 】

邻居的Router ID

【 State 】

邻居的状态不是我的状态,我的状态应该在邻居那里查看

http://www.ppmy.cn/news/1143724.html

相关文章

嵌入式养成计划-37----C++内存动态分配与回收--C++类中特殊的成员函数

八十五、 C内存动态分配与回收 C语言中的动态内存分配和回收是用malloc、free来完成的C中也可以用上述两个函数来完成。C中也为用户提供了两个关键字来进行动态内存分配和回收 new 、delete 85.1 分配 单个内存分配 格式&#xff1a; 数据类型 *指针名 new 数据类型 例如&a…

机器学习极值问题

给出二次函数 f ( x ) 1 2 x T P x q T x r f(x) \frac{1}{2}x^TPx q^Tx r f(x)21​xTPxqTxr的极小值点。(P是对称矩阵) 解&#xff1a; 对f(x)求导数&#xff1a; f ( x Δ x ) − f ( x ) 1 / 2 ( x Δ x ) T P ( x Δ x ) q T ( x Δ x ) r − 1 / 2 x T P x…

Transformer预测 | Pytorch实现基于mmTransformer多模态运动预测(堆叠Transformer)

文章目录 文章概述程序设计参考资料文章概述 Transformer预测 | Pytorch实现基于mmTransformer多模态运动预测(堆叠Transformer) 程序设计 Initialize virtual environment: conda create -n mmTrans python=3.7# -*- coding: utf-8 -*- import argparse import os

Qt/C++原创推流工具/支持多种流媒体服务/ZLMediaKit/srs/mediamtx等

一、前言 1.1 功能特点 支持各种本地视频文件和网络视频文件。支持各种网络视频流&#xff0c;网络摄像头&#xff0c;协议包括rtsp、rtmp、http。支持将本地摄像头设备推流&#xff0c;可指定分辨率和帧率等。支持将本地桌面推流&#xff0c;可指定屏幕区域和帧率等。自动启…

【基于STM32OpenCV的车载机器人的抓取控制软件设计】

这里写自定义目录标题 本科优秀毕业论文《基于STM32&OpenCV的车载机器人的抓取控制软件设计》摘要:Abstract:前 言1方案设计与论证2机器人硬件电路设计3机器人软件设计4系统主要功能测试5 结 论参考文献本科优秀毕业论文《基于STM32&OpenCV的车载机器人的抓取控制软件…

关于深拷贝和浅拷贝你需要了解的内容

深拷贝&#xff08;Deep Copy&#xff09;和浅拷贝&#xff08;Shallow Copy&#xff09;是在复制对象或数据结构时使用的两种不同的策略&#xff0c;它们的主要区别在于复制后新旧对象之间的关系以及对嵌套对象的处理方式。 浅拷贝&#xff1a; 浅拷贝创建一个新对象&#xff…

Python视频剪辑-Moviepy视频尺寸和颜色调整技巧

在视频编辑中,尺寸和颜色是两个不能忽视的重要因素。本文将从专业角度深入探讨如何通过MoviePy进行视频尺寸和颜色的调整,以及遮罩透明度的应用。 文章目录 视频尺寸变换函数裁剪视频指定区域裁剪视频像素为偶数视频增加边框缩小、放大视频视频颜色变换函数blackwhite 视频变…

提高工作效率!本地部署Stackedit Markdown编辑器,并实现远程访问

文章目录 1. docker部署Stackedit2. 本地访问3. Linux 安装cpolar4. 配置Stackedit公网访问地址5. 公网远程访问Stackedit6. 固定Stackedit公网地址 StackEdit是一个受欢迎的Markdown编辑器&#xff0c;在GitHub上拥有20.7k Star&#xff01;&#xff0c;它支持将Markdown笔记保…