05.动态协议OSPF基础

news2024/11/25 3:57:50

文章目录

  • **OSPF简介**
    • **OSPF和RIP的区别**
      • **RIPV2和OSPFV2相同点**
      • **不同点**
  • OSPF基础概念
    • OSPF区域
    • OSPF路由类型
      • 区域划分的要求
      • **OSPF多区域**
      • **Router ID**
        • **Router ID选取规则**
        • **度量值**
    • OSPF数据包
    • OSPF状态机
      • 条件匹配
    • OSPF的工作过程
    • OSPF基本配置
    • **OSPF的拓展配置**

OSPF简介

OSPF(Open Shortest Path First开放式最短路径优先)是一个IGP(Interior Gateway Protocol,内部网关协议),用于在单一自治系统(autonomous system,AS)内决策路由。OSPF有三个版本,分别是OSPFv1、OSPFv2和OSPFv3,其中OSPFv1在实验室阶段就已摒弃,而OSPFv3用于IPv6,所以我们这里只介绍OSPFv2。

(OSPF也有三个版本 — OSPFV1(实验室阶段夭折),

​ — OSPFV2 — IPV4

​ — OSPFV3— IPV6

)

OSPF和RIP的区别

RIP协议只适用于中小型网路环境中,而OSPF可以适用于中大型网路当中----结构化部署(区域划分)

区域划分的目的 — 区域内部传递拓扑信息,区域之间传递路由信息 — 链路状态型协议的距离矢量特征

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0GJuYe45-1688482661494)(C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20230129142517158.png)]

RIPV2和OSPFV2相同点

1.RIPV2是无类别的路由协议,OSPFV2也是无类别的路由协议;

2.RIPV2是以组播的形式传递信息,OSPFV2也是以组播的形式传递信息;

RIPV2组播224.0.0.9

OSPFV2组播224.0.0.5/224.0.0.6

3.RIPV2和OSPFV2都支持等开销负载均衡

不同点

由于rip自身的劣势:只有一种包,选路不佳,收敛慢,导致rip只适用于中小型的网络环境中。而ospf有5种数据包,分工明确;通过spf算法保证选路无环;有触发更新,收敛块,加上ospf其他各种减少占用资源的措施使ospf可以应用于中大型的网络环境中。

OSPF基础概念

OSPF区域

在这里插入图片描述

  • 为了适应大型的网路,OSPF在AS内划分多个区域
  • 每个OSPF路由器只维护所在区域的完整链路状态信息

区域ID

​ 为了方便对不同的区域进行管理,所以,给每个区域设置了一个区域ID : area

​ 区分和标定不同的区域(32位二进制构成)

​ 1.点分十进制.

​ 2.十进制表达

​ 骨干区域的区域ID为区域0

      • 区域ID可以表示成一个十进制的数字
      • 也可以表示成一个IP

骨干区域Area 0

​ 负责区域间路由信息传播

非骨干区域

​ 非晋干区域相互通信必须通过骨干区域

​ 标准区域

​ 末梢区域stub

​ 完全末梢区域total stub

​ 非纯末悄区域nssa

OSPF路由类型

区域之间路由器: ABR

自制系统边界路由器:ASBR

区域划分的要求

1.区域之间必须存在ABR设备

2.区域划分必须遵循星型拓扑结构划分(星型拓扑划分中中间区域被称为骨干区域)

OSPF多区域

如果网路规模不大,不需要进行OSPF的区域划分,则这样的网路我们称为单区域OSPF网络;如果需要进行区域划分,则这样2的网络称为多区域OSPF网络.

原因

  • 改善网络的可扩展性
  • 快速收敛

Router ID

OSPF区域内唯一标识路由器的IP地址

Router ID选取规则

  1. 选取路由器loopback接口上数值最高的IP地址
  2. 如果没有loopback接口,在物理端口中选取IP地址最高的
  3. 也可以使用router-id命令指定Router ID
  4. DR和BDR的选举方法

度量值

  • OSPF度量值 cost(开销)=10OM/BW(端口带宽)

– 最短路径是基于接口指定的代(cost路径成本)计算的

  • RIP是跳数

OSPF数据包

协议号为:89

OSPF包类型描述
Hello包用于发现和维持邻居关系,选举DR和BDR
DBD(数据库描述包)用于向邻居发送摘要信息以同步链路状态数据库
LSR(链路状态请求包)在路由器收到包含新信息的DBD后发送,用于请求更详细的信息
LSU(链路状态更新包)收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含几个LSA
LSACK(链路状态确认包)确认已经收到DBD/LSU,每个LSA需要被分别确认

详情:

hello包 — 周期发现,建立和保活邻居关系

​ hello时间 — 10s(在以太网中默认时间),30s(NBMA网络)

​ Dead time — 4倍的HELLO时间

​ RID – 用来区分和标定OSPF网络中不同路由器

​ 1.全网唯一;

​ 2.格式统一 — 所有RID的格式按照IP地址的格式配置 — 32位二进制构成 — 点分十进制表示

​ RID的生成方式

​ 1.手工配置

​ 2.自动生成— 1.先在环回接口的IP地址选择,选择环回接口中数值最大的IP地址作为RID使用;

​  2.如果没有环回接口,则在物理接口中选择数据最大的IP地址作为RID使用.

Hello包中会携带这个RID

DBD包 — 数据库描述报文 – 携带的是路径信息摘要

​ 数据库 — LSDB — 链路状态数据库 — LSA — 链路状态通告

LSR包 — 链路状态请求报文 — 基于本地未知LSA信息进行请求

LSU包 — 链路状态更新报文 — 真正携带LSA信息的数据包

LSAck包 — 链路状态确定报文 — 确定包

​ OPSF也存在周期更新(30min)

OSPF状态机

Down状态 —启动OSPF,发送hello包进入到下一个状态

Init (初始化)状态—收到的hello包中包含本地的RID,才能进入到下一个状态;

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

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

Exstart(预启动)状态—使用未携带数据的DBD包进行主从关系选举,RID大的为主,则可以优先进入到下一个状态

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

Loading(加载)状态—查看对端的DBD包与本端的LSDB信息进行对比,之后,基于未知的LSA信息发送LSR包进行请求,对方使用LSU包携带LSA信息进行回复,需要ACK确认。

FULL状态 — 标志着邻接关系的建立

状态机过程:

1.OSPF启动的第一个阶段是使用Hello报文建立双向通信的过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N6ld38Zo-1688482661497)(C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20230130005136046.png)]

Two -way—双向通讯—标志着邻居关系的建立

​ (条件匹配)—条件匹配成功,则将进入到下一个状态,如果条件

​ 匹配失败,则将停留在邻居关系,仅依靠hello包进行周期保活。

2,OSPF启动的第二阶段是建立完成邻接关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AJ3tg9Vo-1688482661497)(C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20230130005214334.png)]

Exstart状态 —通过比较RID来进行主从关系的选举,RID大的为主,可以优先进入到下一个阶段。

​ 这里使用DBD包来完成主从关系选举,主要是为了和之前的邻居关系进行区分。

FULL状态—标志着邻接关系的建立。

​ 邻接关系—主要是和邻居关系进行区分,邻居关系只能通过周期性发送hello包进行保活,而邻接关系才可以真正的收发LSA的信息。

条件匹配

指定路由器 — DR —一个MA网络当中和所有其他路由之间建立邻接关系

备份指定路由器— BDR —一个MA网络当中和所有其他路由器直接按建立邻接关系

1,在一个MA网络当中,在DR和BDR都存在的情况下,至少需要4台设备才能看到邻居关系。

2,DR和BDR都是针对在同一个MA网络当中选的,所以,其实是接口的概念。

条件匹配 —在MA网络当中,若所有设备都为邻接状态,则将出现大量的重复更新的情况,所以,需要进行DR/BDR的选举;所有非DR/BDR设备(DROther)之间仅保持邻居关系即可

DR和BDR的选举规则:

​ 1,先比较优先级,优先级最大的为DR,次大大为BDR

​ 优先级默认情况下为1

[r1-GigabitEthernet0/0/0]ospf dr-priority ?

INTEGER<0-255> Router priority value

​ 如果将一个接口的优先级调整为0,则代表该接口放弃DR/BDR选举

​ 2,如果优先级相同,则将比较RID。RID大的路由器对应的接口为DR,次大的为BDR.

DR/BDR的选举是非抢占模式的 ---- 选举时间和死亡时间等同reset ospf 1 process 重启进程可以重新进行选举Waming: The OSPF process will be reset. Continue? [Y/N]:

  • 一个MA网络中,在DR和BDR都存在的情况下,至少需要4台设备才能看到邻居关系。
  • DR/BDR虽然名字叫做指定路由器/备份指定路由器,但一定注意,他其实是一个接口的概念。是路由器在该网段的接口参加选举。
  • DR/BDR的选举是非抢占模式的,一旦DR和BDR选定,则将无法被替换,邻居间如果一台路由器宣称自己是DR,则该路由为DR。
  • DR/BDR的选举时间为死亡时间(只是时间相同,并不是由同一个计时器计时,这个时间仅是选举的一个上限时间,选举可以在短时间内完成,只是完成后则将不能抢占),如果一台路由器自发送hello包至死亡时间,没有收到其他hello包,则认为自己是DR,如果邻居都认为自己是DR,则比较优先级和RID.

OSPF的工作过程

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

​ 邻居表建立完成后,将进行条件匹配;失败则停留在邻居关系,仅使用Hello包进行周期保活。

​ 成功则开始建立邻接关系,首先,使用未携带数据的DBD包进行主从关系选举。之后使用携带信息的DBD包来共享数据库目录。之后,本地使用LSR/LSU/LSACK来获取未知的LSA信息。完成本地数据库的建立,生成数据库表—LSDB。

​ 最后,基于本地的链路状态数据库生成有向图,再通过SPF算法,将图形结构转换成最短路径树,之后,根据树形结构计算出到达未知网段的路由信息。之后将路由信息添加到路由表中。

​ 收敛完成后,依然每10S(30S)使用Hello包进行周期保活,没30Min进行一次周期更新。

结构突变

​ 1,突然新增一个网段—触发更新,直接将变更信息通过LSU包进行传递,需要ACK确认。

​ 2,突然断开一个网段— 触发更新,直接将变更信息通过LSU包进行传递,需要ACK确认。

​ 3,无法通信— dead time

OSPF基本配置

通用配置

启动OSPF进程
[R1]ospf 1 router-id 1.1.1.1     ###创建OSPF进程,配置路由ID
[R1-ospf-1]area 1     ###进入区域1,区域ID可以用数字表示,也可以用IP表示,若区域o则是骨干区域

宣告
    1,激活接口---只有激活的接口才能收发OSPF数据包
    2,发布路由 ---只有激活的接口对应的直连网段的信息才能发布出去
[R1-ospf-1-area-0.0.0.1]network 12.0.0.0 0.255.255.255   ## 宣告直连
[R1-ospf-1-area-0.0.0.1]network 1.1.1.1 0.0.0.0    ##宣告oSPF区域内的直连网段,使用反掩码
------------------------------------------------------------

<Huawei>reset ospf process    ###重置oSPF进程
[r1]display ospf peer --- 查看邻居表
[r1]display ospf peer brief--- 查看邻居表简表
[r1]display ospf Isdb---查看数据库表
[r1]display ospf Isdb router 2.2.2.2 ---展开一条LSA信息

华为设备默认设置OSPF的优先级为10。

OSPF的开销值 — 带宽

COST=参考带宽/真实带宽—华为设备默认的参考带宽为100Mbps

(算出来的开销值如果是大于1的小数,则将直接取整数部分;如果是小于1的小数,则将直接取1。)

[r1-ospf-1]bandwidth-reference 1000

只要网络中有一台设备修改了参考带宽,则所有设备必须将参考带宽都改为一样的。

OSPF的拓展配置

简化

1,手工认证
    [r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1cipher 123456
2,手工汇总---区域汇总
    [r2-ospf-1-area-0.0.0.0Jabr-summary 192.168.0.0 255.255.254.0
3,沉默接口
    只接受不发送路由信息
    [r1-ospf-1]silent-interface GigabitEthernet 0/0/1
4,加快收敛 --- 减少计时器时间
    [r1-GigabitEthernet0/0/0]ospf timer hello 5 --- 邻居之间Hello时间必须一致,否则将导致邻居关系断开
    hello时间修改后,死亡时间将自动按照四倍关系进行匹配[r1-GigabitEthernet0/0/0]ospf timer dead?
    INTEGER<1-235926000> Second(s)
5,缺省路由
    [r3-ospf-1]default-route-advertise--- 下发缺省的前提是边界设备本身得具有缺省信息才行
    [r3-ospf-1]default-route-advertise always --- 如果需要强制下发则可以使用这个命令

详细

1,手工认证 --- 认证就是在OSPF邻居间交互的所有数据包中,携带口令。口令相同,则身份合法。
AA
    OSPF的认证方式分为3种:
    1,接口认证 -- 在邻居通信的接口上配置
        [r5-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
        注意:两边配置的key id必须相同,否则邻居关系将认证失败。
    2,区域认证 --- 其实质还是接口认证,相当于一次性将在某个区域激活的所有接口配置接口认证。
        [r3-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456
    3虚链路认证 ---虚链路建立阶段增加认证。其本质也是接口认证。
        [r4-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3 md5 1 cipher 123456
2加快收敛减少计时器时间
    修改hello时间
    [r5-GigabitEthernet0/0/0]ospf timer hello 5
    注意:Hello时间修改,死亡时间将自动按照4倍关系进行匹配
    [r1-GigabitEthernet0/0/0]ospf timer dead 20
    注意:dead时间修改,Hello时间不会自动变化
  
    Waiting time ---等待计时器---DR和BDR选举时的选举时间,时间长短等同于死亡时间,死亡时间一旦修改,等待时间会同步变更。
    
    POLL ---轮询时间 --- 120S---与状态为down的邻居关系发送hello包的间隔时间。在NBMA网络环境下,如果一方指定了邻居关系,
    则将会将邻居的状态改为过度状态,期间会按照默认30S一次发送Hello包,但是,如果对方一直没有指定,经过一个等待时间(120S等同于死亡时间),
    将会将邻居的状态置为down状态。之后,将按照120S的间隔发送hello包。
    [r5-GigabitEthernet0/0/0]ospf timer poll ?
    INTEGER<1-3600> Second(s)
    Retransmit --- 重传时间 --- 默认5s--- 发送信息需要进行确认如果重传时间内没有收到对方的确认,则将重传。
    [r5-GigabitEthernet0/0/0Jospf timer retransmit ?
    INTEGER<1-3600> Second(s)
    
    Transmit Delay --- 传输延时 --- 1s ---这个时间是附加在LSA老化时间上的,因为LSA在传输过程中,时间不会发生变化,所以,需要通过这个时间来补偿传输过程中消耗的时间。
    [r5-GigabitEthernet0/0/0]ospf trans-delay 2
3,沉默接口 --- 将一个接口配置成为沉默接口,则这个接口将只接受不发送ospf的数据包
    [r5-ospf-1]silent-interface GigabitEthernet 0/0/2 --- 在ospf中,沉默接口将针对单播和组播包生效。
4,缺省路由
        3类缺省,5类缺省,7类缺省
        3类缺省 --- 只能通过特殊区域来自动生成,普通末梢区域,完全末梢区域,完全的非完全末梢区域特点 --- 标记为ospf,默认优先级为10
        
        5类缺省- 通过手工配置生成的缺省
        [r2-ospf-1]default-route-advertise -相当于将本设备上通过其他方式学到的缺省路由重发布到OSPF网络当中
        特点 --- 标记为O_ASE,默认优先级为150
        [r2-ospf-1]default-route-advertise always --- 在设备上没有其他网络学来缺省信息时,可以强制下发一条5类缺省。
        
        7类缺省 --- 可以通过配置特殊区域自动下发,也可以使用手工命令下发7类缺省
            自动下发是在普通的NSSA区域中。
            [r4-ospf-1-area-0.0.0.1]nssa default-route-advertise 手工下发一条7类的缺省信息。
5,路由过滤
            指的是OSPF中针对3类,5类和7类LSA进行过滤。
            [r1-ospf-1-area-0.0.0.2]abr-summary 192.168.0.0 255.255.252.0 not- advertise --- 过滤3类LSA
            
            [r4-ospf-1]asbr-summary 172.16,0.0 255.255.252.0 not-advertise过滤5类/7类LSA

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

番外12:获取晶体管漏极电流源平面的仿真波形

番外12&#xff1a;获取晶体管漏极电流源平面的仿真波形 老是有同学反应&#xff0c;仿真中无法获取漏极电流源平面的仿真波形&#xff0c;在此给出解释与解决办法。 1、ADS能够访问到部分器件的电流源平面波形 对于某些器件&#xff0c;比如说CGH40010F&#xff0c;可以在仿…

硬核了解一下内核链表

一&#xff0c;内核链表定义 言以蔽之&#xff0c;内核链表就是个带头结点的循环双链表。 普通的链表是将next指针定义成为与该结构体一样的类型&#xff0c;这样做通用性不好。与普通的链表的定义和使用方式不一样&#xff0c;内核的链表定义成为了一种通用的结构&#xff1a…

vue打包到生产环境

1.进入到项目根目录执行 npm run build此时会自动打包在dist目录下 2.安装服务 npm install -g serve3.启动 serve dist以上是生产环境打包的过程。 npm run dev 是开发环境, npm run build 是生产环境

Springboot 错用list.stream , 遭遇list浅拷贝偷袭,实战图解

前言 相信很多看客都听闻过深拷贝、浅拷贝 &#xff0c; 但是在日常使用的过程中&#xff0c;是否真的有关心过或者遭遇过呢&#xff1f; 不啰嗦&#xff0c;一起来看看。 正文 接下来我通过示例&#xff0c;来复现一下 list.stream浅拷贝 这个事 &#xff1a; 首先是一个对象…

Nacos服务注册成功,RestTemplate调用服务提供者时空指针异常(已解决)

发现问题并进行记录 目录 项目场景&#xff1a;问题描述原因分析解决 项目场景&#xff1a; RestTemplate也可以做服务调用(进行测试) 目的:解决该问题,不考虑其他远程调用方式(Fegin,Dubbo) 项目Pom文件 Spring Boot ----2.6.3 Spring Cloud------2021.0.1 Spring Cloud Al…

Elasticsearch介绍和安装

ELK简介 Elastic Stack核心产品包括Elasticsearch、Logstash、Kibana&#xff08;也称为ELK&#xff09;和Beats等等。能够安全可靠地获取任何来源、任何格式的数据&#xff0c;然后实时地对数据进行搜索、分析和可视化 Kibana是一个免费且开放的用户界面&#xff0c;能…

Apikit 自学日记:可以对 API 发评论

该功能仅供API研发管理企业版 您可以直接在API文档上发布评论&#xff0c;所有的沟通内容都会跟随API文档保留下来并且按照版本分类好&#xff0c;而不是零散地存在各种聊天工具中。 发表评论 在API详情页&#xff0c;点击 评论 按钮&#xff0c;在弹窗中可以输入评论信息并点…

FPGA实验一:层次法设计组合电路(加法器)

目录 一、实验目的 二、实验要求 三、实验代码 四、实验结果及分析 1、引脚锁定 2、仿真波形及分析 3、下载测试结果及分析 五、实验心得 一、实验目的 &#xff08;1&#xff09;掌握基本组合逻辑电路的 FPGA实现&#xff1b; &#xff08;2&#xff09;学习 Verilo…

使用安装器安装windows gcc— MinGW及让windows像Linux一样的MSYS

这里使用installer进行安装GCC&#xff0c;主要是installer安装其它依赖&#xff0c;如MSYS&#xff0c;autoconf,automake&#xff0c;libtool&#xff0c;vim,perl,mingw-developer-toolkit等&#xff0c;mingw下载地址&#xff0c;如图download链接的mingw-get-setup.exe文件…

高级端口扫描工具

高级端口扫描程序可查看哪些服务在哪个端口上运行、开放端口数量、连接的交换机&#xff0c;并帮助保护网络免受未经授权的访问。作为网络管理员&#xff0c;扫描网络中的开放端口、这些端口已连接到的交换机以及在其上运行的服务&#xff0c;并将已知服务与已识别的服务与高级…

迁移学习入门,新手该如何下手?

推荐迁移学习技术的实用入门图书:《自然语言处理迁移学习实战》 [加纳] 保罗阿祖雷&#xff08;Paul Azunre&#xff09; 著&#xff0c;李想&#xff0c;朱仲书&#xff0c;张世武 译 一本书带你读懂ChatGPT背后的技术&#xff0c;自然语言处理迁移学习&#xff0c;解锁机器学…

Xcode Build System

Xcode Build System iOS开发者都使用Xcode来开发、编译程序&#xff0c;但是我们真正了解xcode是怎样编译我们的程序到手机上的么&#xff0c;下面我们主要看看xcode的编译系统内容 一、Preprocessor 预处理&#xff1a;在此步骤中xcode会处理代码中的宏&#xff0c;将其展开…

19k字图文讲解Vision科研常用的系统环境配置和工具(附详细命令行)

猛码Memmat | 转载请注明来源 最近作者有了新设备,趁更新系统写一篇博客为小白讲解这一入门过程 目录 ArchLinux 安装指南(新手向)前言准备工作检查网络通过 SSH 远程连接(可选)硬盘分区格式化并挂载分区设置中国镜像源(推荐)安装系统系统初始化设置进阶设置设置交换空…

VScode中的插件

开启VScode中最简单的内部浏览器 - 可以访问外网 - Browser Preview 插件安装&#xff1a; 插件使用&#xff1a;由下角 - 状态栏 - VS Browser按钮 live sass compiler-vscode插件将scss编译为css live sass compiler是VSCode扩展&#xff0c;可以实时地将SASS / SCSS文件…

基于Spring Boot的智慧社区系统设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频&#xff1a; https://www.bilibili.com/video/BV1kF411R7Tp/?vd_sourced8d0eebf6c94c5aa49fe3f992c8887b0使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 后端&#xff1a;Java springboot框架 myba…

Django搭建图书管理系统01

Django框架 Django是一个使用Python编写的开源Web应用程序框架。它采用了MVC&#xff08;Model-View-Controller&#xff09;的软件设计模式&#xff0c;旨在简化开发复杂的Web应用程序。 以下是Django框架的一些主要特点&#xff1a; 强大的开发工具&#xff1a;Django提供了…

计算机毕业论文内容参考|基于Python的入侵检测系统的设计与实现

文章目录 导文摘要前言绪论课题背景国内外现状与趋势课题内容相关技术与方法介绍系统分析系统设计系统实现系统测试总结与展望导文 计算机毕业论文内容参考|基于Python的入侵检测系统的设计与实现 摘要 本文介绍了基于Python的入侵检测系统的设计与实现。首先,简要概述了入侵…

ubuntu中使用docker部署mysql

docker images&#xff1a;查看已有镜像docker pull mysql&#xff1a;拉取镜像docker ps -a&#xff1a;查看已有容器docker -o mysql8.0.33.tar&#xff08;保存镜像使用的名称&#xff09; mysql&#xff08;被保存的镜像&#xff09;&#xff1a;避免重复下载&#xff0c;可…

CMU 15-445 -- Tree Indexes - 05

CMU 15-445 -- Tree Indexes - 05 引言Table IndexB TreeB-Tree FamilyB TreeB Tree NodesB Tree OperationsIn Practice Clustered IndexesCompound IndexB Tree Design ChoicesNode SizeMerge ThresholdVariable Length KeysNon-unique IndexesIntra-node Search Optimizatio…

Nginx配置图片服务器

Nginx配置图片服务器 背景请求示例Nginx配置图片服务器问题存在 背景 在我们日常做项目的时候&#xff0c;我们有时候会经常碰到图片需要放到哪&#xff1f;有时候会用第三方的图片存储&#xff0c;比如腾讯云的COS&#xff0c;阿里云的OOS。当然有时候我们也是需要放到Linux的…