当前位置: 首页 > news >正文

HCIA项目实践---OSPF的知识和原理总结

9.5 OSPF

9.5.1 从哪些角度评判一个动态路由协议的好坏?

(1)选路佳(是否会出环)

OSPF 协议采用链路状态算法,通过收集网络拓扑信息来计算最短路径,从根本上避免了路由环路的产生。

(2)收敛(速度)快 [跟计时器有关];

        (A)快速适应拓扑变化

        (B)减少路由震荡(在网络状态频繁变化的情况下,好的协议应能避免路由的频繁抖动,保持路由的相对稳定,以免影响网络的正常运行和数据传输的稳定性。)

(3)占用资源多少;

(4) 其次是安全性。

        (A)防攻击能力

                OSPF 协议提供了基于区间标识符的身份认证机制

      (B)数据保密性

9.5.2 OSPF协议比RIP协议好在什么地方?

(1)OSPF在进行选路时,是以带宽作为评判标准,并且,因为是链路状态型协议,所以,计算出来的路径不会出现环路。从选路的维度来比较,则优于RIP。

(2)因为OSPF的计时器时间短于RIP,则其收敛速度快于RIP;

(3)从单个数据包的角度,OSPF需要传递拓扑信息,所以,其资源占用量远大于RIP,但是,从整体角度看,OSPF并没有像RIP那样高频的周期更新,并且,设计者设计了很多减少资源占用的措施,所以,整体上资源占用略优于RIP。

9.5.3 OSPF的中文名称是什么?

OSPF --- 开放式最短路径优先协议

9.5.4 从版本的角度对OSPF和RIP进行比较:

RIPV1,RIPV2 --- IPV4

RIPNG --- IPV6

OSPFV1(在实验室阶段夭折),OSPFV2(在市场上经常见到这个) --- IPV4

OSPFV3 --- IPV6

9.5.5 对RIPV2和OSPFV2进行比较:
(1)RIPV2和OSPFV2相同点:

说明:RIP和OSPF俩协议:V1都是有类别的路由协议;V2都是无类别的路由协议。

无类别路由协议最本质的原因是:传递路由条目中是否携带子网掩码决定的。携带子网掩码就是无类别,因为是多少子网掩码就带多少。

(A) OSPFV2和RIPV2一样,都是无类别的路由协议。支持VLSM(可变长子网掩码)、CIDR(无类别域间路由,更有效分配IP地址并降低路由表大小)。

(B)OSPFV2和RIPV2一样,都是组播发送信息。(组播没有减少链路资源,可节省硬件设备资源,减小一些算力)

RIPV2的组播地址是224.0.0.9 ;

OSPFV2的组播地址是224.0.0.5和224.0.0.6

(C). OSPFV2和RIPV2一样,都支持等开销负载均衡。

(这种策略都确保每个服务器都能接收到数量大致相同的请求,从而实现负载的均匀分布)

(2)RIPV2和OSPFV2不同点:

A RIPV2只能应用在小型网络环境中(对其影响最大的因素是占用资源);但是OSPFV2可以应用在中大型网络环境中(结构化部署这个特点让OSPF更加适用于大型网络)。

结构化部署:是一种遵循规则流程的系统性技术设施部署方法。涵盖规划、实施与验收优化阶段,包括需求与架构设计、资源准备、硬件软件安装配置、系统集成测试及最终验收交付等环节,旨在提升部署的效率、可靠性与可维护性,保障系统成功上线与稳定运行。

注意:
(收敛速度 也影响协议是应用在中小型企业还是大型企业;

选路不佳也会影响因为选路不佳会让网络延迟比较高但是,最影响的还是占用资源)

结构化部署的优点?
  1. 结构清晰:结构化部署的设计使得整个系统结构清晰明了,便于管理和维护。

  2. 灵活性强:系统能够灵活适应各种不同的需求,方便进行扩展和升级。

  3. 材料统一:采用高品质的标准材料,确保系统的稳定性和可靠性。

  4. 节约成本:通过统一的规划设计和部署,可以有效节约费用,同时提高系统的整体效能。

9.5.6 区域划分

(1)划分区域 的目的:

让区域内部传递拓扑信息,区域之间传递路由信息。

(2)区域边界路由器(英文名ABR设备)

它的特点:同时属于多个区域,一个接口对应一个区域,一个接口属于区域0。

ABR可以连接多个区域,区域之间也可以存在多个ABR设备。

(3)区域划分的要求

(A)区域之间必须存在ABR设备;

 (B) 区域划分必须按照星型拓扑结构划分;(中间一个区域,其他区域连接在中间这个区域)

为了方便区分这些区域,我们可以用区域ID对其进行编号

其他区域 可用区域ID对其进行编号,它由32位二进制构成

可用 点分十进制和十进制两种表示方法进行表示。

其他区域的区域ID从区域1,区域2一直往后面排

中间区域:又被称为骨干区域,中间区域的区域ID必须是区域0

9.5.7在hello包中:什么是RID以及它的特点

        (在计算机网络中,RID通常指的是Router ID,即路由器ID的缩写。在OSPF(开放式最短路径优先)协议中,RID是一个非常重要的概念,用于在OSPF区域内唯一标识一台运行OSPF的路由器。每个运行OSPF的路由器都会有一个唯一的RID,用于在OSPF网络中确定其身份,以便其他路由器可以通过这个标识与之进行通信和路由选择。

(1)RID的特点

(1)全网唯一;

(2)格式统一 (一般使用IP地址的格式来表示),由32位二进制构成。

IP地址作为RID太合适了!!!

(2)配置RID的方法?
(A)手工配置RID

由网络管理员手动配置。

(B)自动生成

首先选择设备的环回接口的IP地址,如果存在多个环回接口,则选择其中数值最大(一位一位的比,单纯数字大)的作为RID。如果没有环回接口,则选择物理接口的IP地址作为RID,如果物理接口存在多个,则选 择数值最大的作为RID。

(比如192.168.3.1和193.168.4.1选后者,一位一位地区比较)

9.5.8 OSPF的数据包
(A)hello包

hello包:周期发现,建立以及保活邻居关系

周期时间又称hello时间 (周期一般是10S左右)

失效时间又称死亡时间 (dead time) -时长为 4倍的hello时间

(B)DBD包 (数据库描述报文 )
  • 传递的都是LSA(链路状态通告)

LSDB (链路状态数据库) --- 用来存储LSA信息的数据库。

数据库描述报文里面携带的是本地数据库中LSA信息的摘要信息 (目录,菜单)。

举个栗子理解:例如去乡厨家宴干饭,老板不可能把每一样菜炒一边端上来,因为会浪费,这时候DBD包就相当于一个菜单让顾客选,我的菜单里有那些LSA(菜品)。

(C)LSR包链路状态请求报文)

基于DBD包请求本地未知的LSA

(顾客选好的菜品)

(D)LSU包链路状态更新报文)

--- 真正携带LSA的数据包

(老板炒菜)

(E)LSACK包 ——(链路状态确认报文

 确认包(端上来的菜)

OSPF**存在周期更新,30min一次,只能说明设计者不自信,因为这个协议数据量比较大,因此害怕仅通过LSACK不能保证可靠性,设置一个兜底机制,同步数据,保证收敛的完成。但是也不能设计的太快,否则占用资源又会变多。

9.5.9 OSPF的状态机

(类似于生活中的理解:A进入交友平台,这时是Down State状态,A在交友平台上发布了求偶启示,一直会盯着屏幕看是否有人回复消息, 这时就是Init State初始化状态,以组播的形式,B看到回复A,这时候就建立Two-Way的关系,成为朋友关系)。

Two-Way --- 标志着邻居关系的建立。

(条件匹配) --- 如果满足匹配要求,则将进入到下一个状态;如果匹配失败,则停留在邻居关系,仅使用hello包进行周期保活即可。(对本句话的理解就是如果对方答应,变为情侣关系,如果拒绝,则维持普通的朋友关系)。

Exstart 状态 ---主从关系选举 --- 通过使用未携带数据的DBD包来比较RID,以RID大的为主,为主可以优先获取LSA的摘要信息。(可以理解为变成情侣之后,谁在家中的地位比较高,谁听谁的。)

使用DBD包进行主从关系选举主要是为了表示已经超越了邻居关系。(可以理解为:情侣之间可以做的事情比普通朋友之间做的事情更加亲密,体现身份的不一样)

上面图片的第一个LSACK是错误的

FULL State ——标志着邻接关系的建立。 --- 邻接状态主要为了和邻居状态进行区分。只有邻接状态可以交换LSA信息。邻居状态仅能使用Hello包进行周期保活。(这个状态指的是情侣之间可以做更加亲密的行为和举动)

9.5.10 对OSPF状态机发生变化的过程的总结

down状态 --- 发送完hello包之后进入到下一个状态

Init(初始化)状态 ---- 收到对方的Hello包中存在本地的RID进入下一个状态

Two-way(双向通信)状态 --- 标志着邻居关系的建立

(条件匹配) --- 匹配成功,则进入到下一个状态。失败则停留在邻居关系,仅使用hello包进行周期保活。

Exstart(预启动)状态 --- 使用未携带数据的DBD包进行主从关系选举,为主的可以优先获取LSA信息

Exchange(准交换)状态 --- 使用携带数据的DBD包交换LSDB的摘要信息。

Loading(加载)状态 --- 使用LSR/LSU/LSACK来交换LSA信息。

FULL(转发)状态 --- 标志着邻接关系的建立。

9.5.11 OSPF的工作过程

(1)启动配置完成后,OSPF会向本地所有运行协议的接口以组播(224.0.0.5)形式发送hello包;hello包中携带本地RID以及已知邻居的RID。之后,将收集到的邻居关系记录在本地的一张表中 --- 邻居表。

(2)邻居表建立完成后,进行条件匹配,匹配失败,则停留在邻居关系,仅使用hello包进行保活;匹配成功,则开始建立邻接关系。首先,使用未携带数据的DBD包进行主从关系选举之后,使用携带数据的DBD包共享数据库的目录。之后,本地使用LSR/LSU/LSACK来获取未知的LSA信息。完成本地数据库的建立,生成数据库表 --- LSDB表。

(3)最后,基于本地的链路状态数据库生成有向图,以及最短路径树,之后,计算出到达未知网段的路由信息。生成的路由添加到路由表中。

(4)收敛完成后,依然使用hello包10S周期保活;30min一次周期更新。

相关文章:

HCIA项目实践---OSPF的知识和原理总结

9.5 OSPF 9.5.1 从哪些角度评判一个动态路由协议的好坏? (1)选路佳(是否会出环) OSPF 协议采用链路状态算法,通过收集网络拓扑信息来计算最短路径,从根本上避免了路由环路的产生。 &#xff08…...

hexo 魔改 | 修改卡片透明度

hexo 魔改 | 修改卡片透明度 ** 博客食物用更佳 博客地址 ** 这是笔者自己瞎倒腾的。作为前端菜鸡一枚,大佬们随便看看就好~ 我用的主题是 butterfly 4.12.0 分析 通过开发者工具可以看出来卡片的背景和 --card-bg 变量有关 再在 sources 下的 css 文件夹下的…...

今日AI和商界事件(2025-02-13)

今日AI领域的主要事件包括: 一、OpenAI相关动态 取消独立发布o3模型计划: OpenAI首席执行官奥尔特曼宣布,公司取消独立发布o3模型的计划。未来几个月内,OpenAI将推出GPT-5,该模型将整合多项技术,并应用于C…...

38.日常算法

1.最短无序连续子数组 题目来源 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。 示例 1: 输入…...

如何构建有效的人工智能代理

目录 什么是 AI 代理? 何时应使用 AI 代理? 人工智能代理的构建模块 构建 AI 代理的常用方法 1. 提示链接(分步说明) 2.路由(将任务发送到正确的地方) 3.并行处理(同时做多件事) 4. 协调者和工作者 AI(团队合作) 5. 评估器和优化器(修复错误) 如何让人工…...

qt 事件的传递顺序

在 Qt 中,事件的传递顺序遵循以下基本规则: 事件的产生:当用户与界面交互时,操作(如鼠标点击、键盘输入等)会生成相应的事件(如 QMouseEvent、QKeyEvent 等)。 事件的传递顺序&…...

全面掌握Flutter开发:从核心原理到跨平台实战,构建高效应用

文章目录 引言 一、Flutter框架概述二、Flutter开发环境搭建三、Flutter核心技术解析1. **Widget树与状态管理**2. **路由与导航**3. **网络请求与数据解析**4. **本地存储与数据库**5. **包管理与依赖** 四、实战案例:开发跨平台新闻客户端五、Flutter开发工具与调…...

Flutter 添加 iOS widget 小组件

环境 macOS 15.1 Xcode16.1 Flutter 3.27.4 前言 本篇文章主要记录,在Flutter 项目中如何正确地添加iOS 小组件,iOS 小组件 相关的知识在另一篇文章有记录。 iOS 14 widget 添加小组件 WidgetExtension 打开Xcode New -> Target 选择 iOS -> 搜…...

2025年金三银四经典自动化测试面试题

概述 觉得自动化测试很难? 是的,它确实不简单。但是学会它,工资高啊! 担心面试的时候被问到自动化测试? 嗯,你担心的没错!确实会被经常问到! 现在应聘软件测试工程师的岗位&…...

C++17 中 std::lcm:从入门到精通

文章目录 一、引言二、std::lcm 的基本概念三、入门示例四、计算多个整数的最小公倍数五、std::lcm 的实现原理六、在实际项目中的应用七、注意事项八、总结 一、引言 在 C 编程中,处理数学运算时,计算最小公倍数(Least Common Multiple&…...

初阶c语言(循环语句习题,完结)

前言: c语言为b站鹏哥,嗯对应视频37集 昨天做的c语言,今天在来做一遍,发现做错了 今天改了平均值的计算, 就是说最大值加上最小值,如果说这个数值非常大的话,两个值加上会超过int类型的最大…...

本地Deepseek-r1:7b模型集成到Google网页中对话

本地Deepseek-r1:7b网页对话 基于上一篇本地部署的Deepseek-r1:7b,使用黑窗口对话不方便,现在将本地模型通过插件集成到Google浏览器中 安装Google插件 在Chrome应用商店中搜索page assis 直接添加至Chrome 修改一下语言 RAG设置本地运行的模型&#…...

SSM课设-学生选课系统

【课设者】SSM课设-学生选课系统 分为 管理员 和 老师 和 学生端 技术栈 前端: HtmlCssJavaScriptAjax 后端: Spring、Spring MVC、MyBatis、MySQL、JSP 学生端 --选课 选课 搜索 --查看选课结果 --退选 --查看已修课程 --管理个人信息 老师端 --添加教学课程 添加 …...

Windows中使用Docker安装Anythingllm,基于deepseek构建自己的本地知识库问答大模型,可局域网内多用户访问、离线运行

文章目录 Windows中使用Docker安装Anythingllm,基于deepseek构建自己的知识库问答大模型1. 安装 Docker Desktop2. 使用Docker拉取Anythingllm镜像2. 设置 STORAGE_LOCATION 路径3. 创建存储目录和 .env 文件.env 文件的作用关键配置项 4. 运行 Docker 命令docker r…...

AI前端开发技能提升与ScriptEcho:拥抱AI时代的前端开发新范式

随着人工智能技术的飞速发展,AI前端开发岗位对技能的要求也水涨船高。越来越多的企业需要具备AI相关知识和高级前端开发能力的工程师,这使得传统的前端开发模式面临着巨大的挑战。如何提升开发效率,降低人力成本,成为了摆在所有前…...

【Redis存在线程安全问题吗?】

Redis存在线程安全问题吗? Redis的线程安全性概述Redis线程安全性的挑战Redis线程安全性的示例示例1:客户端并发访问导致的问题示例2:分布式环境下的问题解决Redis线程安全问题的建议总结Redis的线程安全性概述 Redis本身是一个单线程的键值存储数据库,它使用单线程模型来…...

碎碎念,再聊HyperRAM(CrosslinkNX FPGA+HyperRAM)

作者:Hello,Panda HyperRAM其实熊猫君很久以前在用了,几年前也分享了一篇实现HyperRAM控制器的博文(博文《Lattice CrossLinkNx LIFCL-40应用连载7-使用HyperRAM存储器》。近期在后台收到好几位朋友咨询一些关于HyperRAM的问题&a…...

左移架构 -- 从攒批,湖仓到使用数据流的实时数据产品

编辑导读: 这篇文章翻译自 Kai Waehner的 《The Shift Left Architecture – From Batch and Lakehouse to Real-Time Data Products with Data Streaming》。文章通过数据产品的概念引出了如何创建可重复使用的数据产品使企业能够从当前和未来的数据中获得价值。基于构建数据产…...

多模态识别和自然语言处理有什么区别

在科技飞速发展的当下,人工智能(AI)已经渗透到我们生活的方方面面。不知道大家有没有这样的经历:早上醒来,对着智能音箱说 “播放今天的新闻”,音箱不仅能识别你的语音,还能在播放新闻的同时&am…...

进阶——第十六蓝桥杯嵌入式熟练度练习(串口的小BUG补充-字符接受不完整和字符接受错误)

1.解决接受不完整问题 假如没接受完成,执行函数,就可能会把count直接清零,就会重新接受\ while (1){if(rx_count!0){uint8_t temprx_count;HAL_Delay(1);if(temprx_count)uart_proc(); }key_proc();rxclear_proc();/* USER CODE END WHILE…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...

[USACO23FEB] Bakery S

题目描述 Bessie 开了一家面包店! 在她的面包店里&#xff0c;Bessie 有一个烤箱&#xff0c;可以在 t C t_C tC​ 的时间内生产一块饼干或在 t M t_M tM​ 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC​,tM​≤109)。由于空间…...

【java】【服务器】线程上下文丢失 是指什么

目录 ■前言 ■正文开始 线程上下文的核心组成部分 为什么会出现上下文丢失&#xff1f; 直观示例说明 为什么上下文如此重要&#xff1f; 解决上下文丢失的关键 总结 ■如果我想在servlet中使用线程&#xff0c;代码应该如何实现 推荐方案&#xff1a;使用 ManagedE…...