计算机网络——网络层——OSPF协议的介绍

什么是 OSPF ?

OSPF 是一个基于链路状态的自治系统内部路由协议,在 TCP/IP 的网络层中进行路由选择,常用于构建大型企业网络或者服务上的骨干网络。在互联网核心路由器之间也可以使用。

OSPF 概述

OSPF 使用的是 Dijkstra(最短路径算法)来计算路径,从而构建网络拓扑图。是一种开放性协议,规范公开,允许不同厂商的设备之间实现兼容。
在网络拓扑发生变化时,OSPF 能够迅速适应,通过更新路由表实现快速收敛,确保数据按最短路径传输。
OSPF 将网络划分为区域(Area),每个区域都有自己的数据库,区域之间通过边界路由器连接。 OSPF 将网络划分为区域,其中 Backbone Area(区域0)是所有其他区域的中心,提高了可扩展性。
OSPF 使用链路成本作为度量单位,用于计算路径开销。成本越小,路径的优先级越高。
OSPF 能够适应网络拓扑的变化,比如链路的添加、删除或者变化。它可以快速适应网络的变化并更新路由信息。

文章目录

    • 什么是 OSPF ?
  • OSPF 概述
    • 为什么要使用 OSPF 协议
    • OSPF 的不足
    • OSPF 协议与其他链路状态协议的比较:
    • OSPF 的三张表
    • OSPF 建立邻居关系
    • OSPF 使用的分层结构
    • OSPF 的邻居关系
    • 链路状态数据库(LSDB)的同步
    • 最短路径计算
  • OSPF 的运行过程
  • 总结

为什么要使用 OSPF 协议

OSPF在设计上具有高度的可扩展性、灵活性和快速收敛的特点,适用于构建复杂网络环境。从而为许多的企业和厂商提供了选择。以下是OSPF的优点:

  1. 快速收敛: OSPF具有快速的网络收敛能力。当网络拓扑发生变化时,OSPF能够迅速适应,并在相对较短的时间内更新路由表,确保数据包能够按最优路径传输。

  2. 支持分层设计: OSPF的设计允许将网络划分为多个区域,其中Backbone Area(区域0)是所有其他区域的中心。这种分层设计提高了网络的可扩展性。

  3. 开放性和厂商中立性: OSPF是一种开放协议,其规范公开可用,使得不同厂商的设备能够实现兼容的OSPF协议。这种开放性有助于确保多样性和互操作性。

  4. 支持VLSM(Variable Length Subnet Masking): OSPF支持可变长度子网掩码(VLSM),允许网络管理员更有效地分配IP地址,提高地址利用率。

  5. 灵活的策略控制: OSPF允许管理员通过区域设计、路由汇总和过滤等方式对路由信息进行精确的控制。这使得网络管理员能够更好地适应特定的网络需求和策略。

  6. 适应多样化网络环境: OSPF适用于多样化的网络环境,包括企业内部网络、服务提供商的骨干网络以及互联网核心路由器之间的连接。其灵活性使得它能够适应不同规模和类型的网络。

  7. 支持IPv4和IPv6: OSPF可以同时支持IPv4和IPv6,使得在网络过渡期或者纯IPv6环境中都能够灵活使用。

  8. 强大的安全特性: OSPF支持加密和身份验证机制,如MD5认证,以确保路由器之间的通信的安全性。

OSPF 的不足

OSPF 是一种强大而灵活的路由协议,但它也有一些缺点。在选择使用 OSPF 的时候,最好是先权衡其优点和缺点,考虑网络环境的部署和需求。

  1. 复杂性:
    OSPF的配置和管理相对较复杂,尤其是在大型网络中。需要经验丰富的管理员来正确配置和维护OSPF。
  2. 资源消耗:
    OSPF需要较多的计算和内存资源来维护链路状态数据库。在大型网络中,可能会导致路由器资源的过度消耗。
  3. 收敛时间:
    尽管OSPF相对于某些距离矢量协议有更快的收敛时间,但在某些情况下,特别是在网络拓扑发生较大变化时,仍可能出现较长的收敛时间。
  4. 区域设计复杂性:
    OSPF的区域设计需要谨慎考虑,不当的设计可能导致网络不稳定。这增加了配置的复杂性。

OSPF 协议与其他链路状态协议的比较:

  1. OSPF vs. RIP(Routing Information Protocol):
    OSPF更适用于大型、复杂的网络,而RIP通常用于小型网络。OSPF有更好的可扩展性和更快的收敛时间,但RIP更简单,易于配置。
  2. OSPF vs. IS-IS(Intermediate System to Intermediate System):
    IS-IS是一种类似于OSPF的链路状态协议,但通常在ISP网络中使用。IS-IS在某些方面可能更为灵活,但配置和管理可能较为复杂。
  3. OSPF vs. EIGRP(Enhanced Interior Gateway Routing Protocol):
    EIGRP是一种混合型协议,结合了链路状态和距离矢量的优点。在某些情况下,EIGRP可能更容易配置,但它是Cisco专有协议,不具备OSPF的厂商中立性。
  4. OSPF vs. BGP(Border Gateway Protocol):
    BGP通常用于互联网核心路由器之间,而OSPF通常用于内部网络。BGP更强调策略和自治系统之间的路由选择。

OSPF 的三张表

三张表在 OSPF 中相互关联,协同工作,确保 OSPF 路由器能够有效地计算最短路径,并维护邻居关系。它们是 OSPF 协议正常运行和数据包转发的关键组成部分。邻居表,链路状态数据库,路由表。

  1. 邻居表
    邻居表是 OSPF 协议中的一张表格,用于存储 OSPF 路由器与其直接相邻的其他路由器的信息。邻居表是 OSPF 路由器在邻居关系建立和维护过程中的一种数据结构,其中记录了关于邻居路由器的重要信息。

    • 邻居路由器的Router ID: 用于唯一标识邻居路由器的标识符。
    • 邻居状态(Neighbor State): 记录了邻居路由器的状态,包括Init、Two-way、Exstart、Exchange、Loading和Full等状态。这些状态是通过 OSPF 邻居状态机的状态转换而改变的。
    • 邻居路由器的IP地址: 记录了邻居路由器的IP地址。
    • Hello计时器(Hello Timer): 记录了下一次发送 Hello 消息的计时器。
    • DR(Designated Router)和BDR(Backup Designated Router)信息: 记录了邻居路由器所选举的 DR 和 BDR。
    • 邻居表的维护是通过 OSPF 路由器之间的 Hello 消息的交换来实现的。Hello 消息包含了有关发送路由器的信息,包括 Router ID、优先级、Hello 间隔等。通过 Hello 消息的交换,路由器能够建立邻居关系,并将邻居的信息记录在邻居表中。

  2. 链路状态数据表
    在 OSPF 协议中,链路状态数据库是一张表格,用于存储网络中所有路由器和链路的状态信息。LSDB 是 OSPF 路由器用于计算最短路径的基础,其中包含了网络拓扑的关键信息。

    • LSA(链路状态通告): LSDB 中包含各种类型的 LSA,每个 LSA 描述了网络拓扑中的不同方面。常见的 LSA 类型包括:
      • Type 1 LSA(Router LSA): 描述单个路由器的连接信息。
      • Type 2 LSA(Network LSA): 描述多个路由器连接到同一网络的信息。
      • Type 3 LSA(Summary LSA): 描述区域之间的汇总信息。
      • Type 4 LSA(ASBR Summary LSA): 描述用于到达 ASBR(Autonomous System Border Router)的路径。
      • Type 5 LSA(AS External LSA): 描述来自其他AS的外部路由信息。
    • Router ID: 每个 LSA 都与发布它的路由器相关联,并使用 Router ID 进行唯一标识。
    • 序列号(Sequence Number): 每个 LSA 都有一个序列号,用于跟踪 LSA 的更新和变化。
    • 链路状态数据库的同步: OSPF 路由器通过交换 Database Description(DBD)消息和链路状态更新(Link State Update,LSU)消息来同步各自的 LSDB。这确保所有路由器对网络拓扑具有相同的视图。
    • 最短路径树计算: OSPF 使用 Dijkstra 算法基于 LSDB 中的信息计算最短路径,构建最短路径树。
    • 定期刷新: LSDB 中的 LSA 在其生命周期内会定期刷新,以确保信息的实时性。
    • 链路状态数据库是 OSPF 运作的核心,为 OSPF 路由器提供了构建和维护网络拓扑的关键信息。通过 LSDB,路由器能够动态地计算到达网络中所有目的地的最短路径。

  3. 路由表
    路由表是路由器上的一张表格,用于存储路由器在转发数据包时使用的路由信息。路由表包含了路由器所知的目的地网络以及到达这些网络的下一跳路由器和出接口等信息。在 OSPF 协议中,路由表是通过最短路径计算构建的,基于链路状态数据库(LSDB)中的信息。

    • 目的地网络(Destination Network): 表示数据包要达到的目标网络地址。
    • 下一跳路由器(Next Hop Router): 表示数据包离开当前路由器后,下一个负责将数据包转发到目标网络的路由器的IP地址。
    • 出接口(Outgoing Interface): 表示数据包离开路由器的接口,通过这个接口将数据包发送到下一跳路由器。
    • 度量值(Metric): 表示到达目的地网络的路径的度量,可以是跳数、带宽、延迟等,具体取决于路由协议。
    • 优先级(Priority): 有时路由表中可能包含优先级信息,用于指示某个路由的优先级,常见于一些策略路由的情况。
    • 在 OSPF 中,路由表是通过计算最短路径树而生成的。最短路径树是基于 OSPF 路由器维护的链路状态数据库(LSDB)中的链路状态信息计算得到的,它反映了到达网络中所有目的地的最短路径。

    • 维护和更新路由表是路由器的核心功能之一。当网络拓扑发生变化时,路由器会相应地更新路由表,以确保它反映了最新的网络状态。这样,路由器就能够有效地转发数据包,选择最短路径来达到目的地。

OSPF 建立邻居关系

OSPF 路由器通过交换 Hello 消息来建立邻接关系。以下是 OSPF 建立邻居关系的基本过程:

  1. Hello 消息发送:
    • OSPF 路由器通过在其连接的网络上周期性地发送 Hello 消息来通告自己的存在。这些 Hello 消息用于探测相邻的 OSPF 路由器。
  2. Hello 消息的内容:
    • Hello 消息包含了路由器的一些基本信息,如Router ID、Area ID、网络掩码等。其中,Router ID 是 OSPF 中唯一标识路由器的值。
  3. Hello 消息的接收:
    • 当一个 OSPF 路由器收到另一个路由器发送的 Hello 消息时,它会检查 Hello 消息中的信息,以判断两者是否能够建立邻接关系。
  4. 邻居条件的满足:
    • 在 Hello 消息中,路由器会指定 Hello 消息的发送间隔、Router Dead Interval(路由器失效时间)等参数。
    • 两个路由器能够建立邻接关系的条件包括:

Hello 消息的参数匹配。
双方在各自的 Hello 消息中都能检测到对方。

假设有两个 OSPF 路由器,分别连接到同一网络,路由器A和路由器B都在连接的网络上发送 Hello 消息。消息中包含了Router ID,Area ID,Router Priority等。如果 Hello 消息中的满足了建立邻接关系的条件,满足参数比配,且双方都能检测到对方,那么就满足了建立邻居的条件,则进行邻居状态的转换。
在这里插入图片描述
在这里插入图片描述

邻居状态的转换:

  • 如果两个 OSPF 路由器满足邻居条件,它们会进入邻居状态。邻居状态的转换包括以下几个阶段:

Down: 路由器尚未检测到邻居。
Init:发送了 Hello 消息,但尚未收到对方的 Hello 消息。
Two-way: 双方都收到了对方的 Hello消息,但还未建立完全的邻接关系。
ExStart: 在这个阶段,路由器交换 Master/Slave 信息,以决定 DBD(Database Description)包的发送顺序。
Exchange: 路由器交换 DBD 包,其中包含链路状态数据库的摘要信息。
Loading:接收到摘要信息后,开始请求缺失的链路状态信息。
Full: 完成链路状态数据库的同步,邻居状态转为 Full,表示邻接已建立。

一旦邻接关系建立,路由器之间就可以交换链路状态信息,构建链路状态数据库,进而进行最短路径计算。 Hello 消息的周期性发送和邻接状态的监测保证了 OSPF 网络能够动态适应拓扑的变化。

OSPF 使用的分层结构

OSPF 采用了分层的结构,将网络划分为不同的区域,这种分层有助于提高网络的可扩展性和管理效率。为构建复杂而庞大的网络提供了灵活性和性能的优势。 以下列出了 OSPF 的分层结构:

  1. 区域(Area):
    OSPF网络被划分为一个或多个区域,每个区域由一个32位的标识符(Area ID)唯一标识。所有的 OSPF路由器都必须属于至少一个区域,而且有些路由器可能同时属于多个区域。
  2. 骨干区域(Backbone Area):
    骨干区域是所有其他区域的中心,它有一个特殊的标识符,称为骨干区域的标识符(Backbone Area ID),通常为0.0.0.0。所有的非骨干区域都必须连接到骨干区域,这种连接通常是通过位于骨干区域的一个或多个路由器实现的。
  3. 非骨干区域(Non-Backbone Area):
    除了骨干区域外,所有其他的区域都是非骨干区域。这些区域可以被划分为更小的区域,以进一步提高网络的可扩展性。
  4. 区域边界路由器(Area Border Router,ABR):
    区域边界路由器是连接两个或多个区域的路由器,它位于至少两个区域的交界处。ABR 负责在相邻的区域之间交换路由信息,并确保区域之间的通信。
  5. 自治系统边界路由器(Autonomous System Border Router,ASBR):
    ASBR 是连接 OSPF 域和其他自治系统(AS)的路由器,负责在 OSPF 网络和其他自治系统之间进行路由信息的交换。

在这里插入图片描述
骨干必须在所有其他区域的中心,其他区域必须连接到骨干。主要原因是OSPF希望所有区域都将路由信息注人到骨干区域,再由骨干把信息分布到其他区域。骨干区域的另一个重要要求是它必须是连续的。话句话说,不允许分割区域0

分层结构的优点包括:

  • 可扩展性: 将网络划分为区域允许更好地管理大规模的网络,减少了每个路由器需要维护的信息量。

  • 管理简便: 区域的分离简化了路由器的配置和管理,提高了网络的可维护性。

  • 快速收敛: 分层结构使得 OSPF 能够更快速地适应网络拓扑的变化,实现快速的网络收敛。

OSPF 的邻居关系

OSPF 的邻居关系建立是协议正常运行的关键部分,确保路由器能够相互通信、同步链路状态数据库(LSDB)并计算最短路径。以下是 OSPF 邻居关系的主要特点和步骤:

  1. Hello 消息交换:
  • OSPF 路由器通过发送 Hello 消息来发现周围的 OSPF 邻居。Hello 消息包含了路由器的标识符、Hello 间隔、Dead 间隔等信息。
  • Hello 消息的发送和接收是邻居关系建立的起点。
  1. 邻居状态机的变化:
  • 邻居关系的建立过程中,路由器的邻居状态机可能会发生变化。邻居状态机定义了邻居关系的不同状态,包括 Down(停机状态)、Attempt(尝试状态)、Init(初始化状态)、2-Way(两向状态)、ExStart(交换起始状态)、Exchange(交换状态)、Loading(加载状态)和 Full(完全状态)等。
  • Hello 消息的接收和邻居状态机的状态变化是邻居关系建立的核心。
  1. 邻居状态机的状态变化导致邻居关系的建立:
  • 当邻居状态机的状态达到 Full 状态时,表示邻居关系建立成功。
  • 在 Full 状态下,路由器之间开始进行链路状态数据库(LSDB)的同步,交换数据库描述消息(DBD)以及链路状态更新消息(LSU)。
  1. DBD 消息的交换:
  • 一旦邻居关系建立,路由器之间开始交换 DBD 消息,其中包含了 LSDB 的摘要信息。
  1. LSDB 同步:
  • 在 DBD 消息交换的基础上,链路状态请求消息(LSR)和链路状态更新消息(LSU)的传递,实现了 LSDB 的同步。邻居路由器通过 LSR 请求需要的链路状态信息,然后通过 LSU 响应提供详细的信息。
  • 邻居关系的建立确保了 OSPF 网络中相邻的路由器能够相互了解并共享链路状态信息,从而构建一个动态的拓扑图。这使得 OSPF 路由器能够计算到达网络中所有目的地的最短路径,并维护更新的路由表,以支持高效的数据包转发。

邻居关系的建立确保了 OSPF 网络中相邻的路由器能够相互了解并共享链路状态信息,从而构建一个动态的拓扑图。这使得 OSPF 路由器能够计算到达网络中所有目的地的最短路径,并维护更新的路由表,以支持高效的数据包转发。

链路状态数据库(LSDB)的同步

链路状态数据库(LSDB)的同步是 OSPF(Open Shortest Path First)协议中的一个关键过程,它确保在 OSPF 网络中的路由器之间保持相同的链路状态信息。LSDB 包含了网络中所有路由器和链路的状态信息,是 OSPF 路由器用于计算最短路径的基础。

以下是链路状态数据库同步的主要步骤:

  1. Hello 消息交换:
  • OSPF 路由器使用 Hello 消息进行邻居关系的建立。当两个相邻的路由器建立了邻居关系,它们开始进行链路状态数据库的同步。
  1. 数据库描述消息(DBD)的交换:
  • 在邻居关系建立后,路由器之间开始交换 DBD 消息。DBD 消息包含了发送路由器的 LSDB 的摘要信息。
  • DBD 消息交换的目的是确定哪些 LSA(链路状态通告)需要传输。
  1. 链路状态请求消息(LSR)的传递:
  • 如果某个路由器在 LSDB 中缺少特定的 LSA,它可以发送链路状态请求消息(LSR)请求邻居路由器提供该 LSA。
  • LSR 消息携带了请求的 LSA 类型和标识符。
  1. 链路状态更新消息(LSU)的传递:
  • 邻居路由器收到 LSR 请求后,会回应相应的链路状态更新消息(LSU),其中包含了被请求的 LSA 的详细信息。
  • LSU 消息的传递实现了对缺失 LSA 的请求响应,并完成了对 LSDB 的同步。
  1. 链路状态确认消息(LSAck)的交换:
  • 收到链路状态更新消息后,路由器发送链路状态确认消息(LSAck)以确认接收到的链路状态信息。这有助于确保链路状态信息的正确传递。

整个过程确保了 OSPF 路由器之间的链路状态数据库保持同步。链路状态的变化(如链路的增加、删除或状态的改变)会触发这个同步过程,以确保所有路由器在 LSDB 中具有相同的视图,从而能够计算相同的最短路径。这种动态的同步机制使得 OSPF 能够适应网络拓扑的变化。
这是收到LSR后回复的LSU报文,LSR请求了11条,LSU把这11条链路状态的详细信息回复给对方。比如LSR请求的第1条链路状态详细信息,LSU回复的是这样:
请添加图片描述

最短路径计算

OSPF(Open Shortest Path First)协议使用最短路径优先(Shortest Path First, SPF)算法来计算网络中的最短路径。这一算法的核心是根据链路状态数据库(LSDB)中的信息构建最短路径树,以确定到达网络中所有目的地的最短路径。以下是 OSPF 最短路径计算的主要步骤:

  1. 链路状态数据库(LSDB)的构建:
    • OSPF 路由器维护一个链路状态数据库(LSDB),其中包含了网络中所有路由器和链路的状态信息。这些信息是通过邻居路由器之间的 Hello 消息交换和链路状态更新消息(LSU)传递而来的。
  2. 最短路径树的构建:
    • OSPF 使用 Dijkstra 最短路径优先算法来构建最短路径树。该算法从一个起点(通常是本地路由器)开始,逐步扩展树的边,选择当前距离最短的边并添加相应的节点到树中,直到所有的节点都被包含在最短路径树中。
    • 最短路径树的根节点是起点,每个节点表示一个路由器,边表示网络中的链路。通过该树,可以找到到达网络中任何目的地的最短路径。
  3. 计算最短路径:
    • 最短路径计算考虑了链路的权重,权重通常是与链路的带宽相关。 OSPF 使用链路的带宽作为默认的权重,但管理员可以配置其他参数来影响权重计算。
    • 路由器在计算最短路径时,选择具有最小累积权重的路径。累积权重是路径上所有链路的权重之和。
  4. 路由表的更新:
    • 最短路径计算完成后,路由器将最短路径信息转化为路由表的形式,以便在转发数据包时进行快速查找。路由表包含了到达目的地的最短路径信息,以及下一跳路由器的标识符。
  5. 定期更新和响应拓扑变化:
    • OSPF 路由器会定期发送 Hello 消息以保持邻居关系,并根据链路状态的变化更新链路状态数据库和最短路径树。

最短路径计算使得 OSPF 能够动态地适应网络拓扑的变化,确保始终选择最短路径来转发数据包。这有助于提高网络的性能和稳定性。
我们要寻找从a点到f点的最短路径,下面图上的数字表示权重,代表每经过一个节点要付出的代价。请添加图片描述经过最短路径计算最后得到在这里插入图片描述

OSPF 的运行过程

OSPF 协议的运行过程可以分为以下几个阶段,从开始到完成涵盖了路由器的相互发现、邻居关系的建立、链路状态数据库(LSDB)的同步和最短路径计算。以下是一般情况下的 OSPF 运行过程:

  1. Hello 消息交换:
  • 发现相邻路由器: 路由器通过发送 Hello 消息来发现周围的 OSPF 路由器。Hello 消息包含了路由器的标识符、Hello 间隔、Dead 间隔等信息。
  • 邻居关系建立: 如果两个路由器能够相互接收对方的 Hello 消息,它们就建立了邻居关系。这标志着 OSPF 的邻居关系建立阶段的开始。
  1. 邻居关系建立和状态机:
  • Hello 消息的接收和检查: 接收到 Hello 消息的路由器检查其中的信息,包括发送方的标识符等。
  • 邻居状态机的变化: 根据 Hello 消息,邻居状态机的状态可能会发生变化。邻居状态机包括 Down、Attempt、Init、2-Way、ExStart、Exchange、Loading 和 Full 等状态。
  1. DBD 消息的交换:
  • 数据库描述消息(DBD): 在邻居关系建立后,路由器之间开始交换 DBD 消息,这些消息携带了 LSDB 的摘要信息。
  1. LSDB 同步:
  • 链路状态请求消息(LSR): 如果某个路由器在 LSDB 中缺少信息,它可以发送 LSR 消息请求邻居路由器提供特定的 LSA。
  • 链路状态更新消息(LSU): 在 DBD 交换和 LSR 请求的基础上,路由器通过 LSU 消息向邻居路由器传递链路状态信息的详细内容,以便更新邻居的 LSDB。
  • 链路状态确认消息(LSAck): 路由器发送 LSAck 消息以确认接收到的链路状态信息。
  1. 最短路径计算:
  • 最短路径树的构建: 路由器使用链路状态数据库中的信息构建最短路径树,计算到达网络中所有目的地的最短路径。
  • 路由表更新: 最短路径计算完成后,路由器更新其路由表,将最短路径信息存储在路由表中。

整个过程确保了 OSPF 网络中路由器具有相同的链路状态数据库,能够计算最短路径,并通过路由表更新实现高效的数据包转发。这种动态的协议允许 OSPF 网络在拓扑发生变化时适应并重新计算最短路径,保证网络的稳定性和高效性。

总结

这篇文章主要是讲了 OSPF 的概述,OSPF 路由器之间的互相发现;LSA和LSDB;LSDB的同步;最短路径的计算;OSPF的优点和应用;OSPF 的消息类型。

在 OSPF 的学习过程中需要注意以下的重点:

层级结构理解: 掌握 OSPF 的分层设计,包括区域、邻居关系、最短路径计算等。理解 OSPF 的层级结构有助于建立对其工作原理的整体认识。

邻居关系的重要性: 掌握 OSPF 中邻居关系的建立,以及 DR 和 BDR 的选举过程。这对于理解 OSPF 在广播网络和非广播网络中的运作至关重要。

LSA 和 LSDB 的角色: 解释 LSA(链路状态通告)的作用,以及每个 OSPF 路由器维护的 LSDB(链路状态数据库)。强调 LSDB 的同步过程,确保所有路由器对网络拓扑具有相同的视图。

最短路径计算原理: 详细学习 OSPF 如何使用 Dijkstra 算法进行最短路径计算。这包括 LSDB 的构建和最短路径树的生成。

Hello 消息的作用: 掌握 Hello 消息的重要性,它不仅用于路由器之间的相互发现,还触发了邻居关系的建立和维护。

DR 和 BDR 的用途: 学习 DR 和 BDR 在 OSPF 网络中的重要作用,包括负责生成和分发 LSA,以及在 DR 失效时,BDR 接管 DR 的角色。

调整参数的影响: 掌握 OSPF 中参数的调整对网络行为的影响,如 Router Priority 和权重(Cost)的调整。

实际应用和场景: 将理论知识与实际应用相结合,介绍 OSPF 在实际网络环境中的应用和配置。

网络稳定性和收敛速度: 着重强调 OSPF 在网络稳定性和收敛速度方面的优势,以及它是大型企业和互联网骨干网络中常用的协议。

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

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

相关文章

Vue 实现一个弹出框,允许用户输入信息,并在确认时将输入的信息进行输出到控制台

父组件用来点击按钮弹出弹出框 <!--ParentComponent.vue--> <template><div><button click"showPopupV">点我会有个弹出框&#xff01;&#xff01;&#xff01;</button><PopupComponent v-if"showPopup" :data"p…

【退订】阿里云产品

之前因为学习需要使用了阿里云上的产品服务&#xff0c;项目结束后给忘记了&#xff0c;直到最近阿里云发短信我才知道&#xff1a; 我使用的是datawork的服务&#xff0c;现在先登录阿里云官网&#xff1a; 阿里云-计算&#xff0c;为了无法计算的价值 (aliyun.com) 之后点…

【毕业设计】基于STM32的智能衣柜设计

1、功能说明 功能如下: 1、用stm32控制ds18b20采集温度 2、然后按键可以设置上下限温度&#xff0c; 3、采集的温度低于下限温度时候 打开加热片开始加热&#xff0c; 4、加热到上限温度关闭加热片停止加热&#xff0c; 5、采集的温度可以在oled显示&#xff0c; 6、然后弄个按…

MySQL增量备份与恢复

实验环境 某学校近期在进行期中考试&#xff0c;要求数据库管理员负责一班&#xff0c;二班学生的考试成绩录入&#xff0c;为保证数据的可靠性&#xff0c;数据库管理员在录入学生成绩后均要做数据库备份&#xff0c;并且为了测试备份数据是否可 用&#xff0c;模拟数据丢失故…

MySQL数据库,视图、存储过程与存储函数

数据库对象&#xff1a; 常见的数据库对象&#xff1a; 视图&#xff1a; 视图是一种虚拟表&#xff0c;本身是不具有数据的占用很少的内存空间。 视图建立在已有表的基础上&#xff0c;视图赖以建立的这些表称为基表。 视图的创建和删除只影响视图本身&#xff0c;不影响对…

多云网络互通问题怎么解决——SD-WAN

随着业务的扩张&#xff0c;企业对云资源的用量也越来越大&#xff0c;逐渐形成了混合云架构。要解决多云网络互通的问题&#xff0c;其中一种常见的组网方案是云专线。然而&#xff0c;这种方式也带来了一系列问题&#xff0c;包括&#xff1a; 1、受服务商约束&#xff0c;需…

Docker真的好难用啊,为什么说它移植性好啊?

看起来你对Docker有点困惑和挑战呀。Docker刚开始确实有点难以入门&#xff0c;但是一旦掌握了它的核心概念和操作&#xff0c;你会发现它其实非常强大和便利。 接下来我会根据你提出的问题和场景&#xff0c;详细地解答。 关于你的实际问题&#xff1a; 刚接触时的困难是正。…

【机器学习 | 假设检验系列】假设检验系列—卡方检验(详细案例,数学公式原理推导),最常被忽视得假设检验确定不来看看?

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

【开源软件】最好的开源软件-2023-第17名 Gravite

自我介绍 做一个简单介绍&#xff0c;酒架年近48 &#xff0c;有20多年IT工作经历&#xff0c;目前在一家500强做企业架构&#xff0e;因为工作需要&#xff0c;另外也因为兴趣涉猎比较广&#xff0c;为了自己学习建立了三个博客&#xff0c;分别是【全球IT瞭望】&#xff0c;【…

骨灰级程序员那些年曾经告诉我们的高效学习的态度

一、背景 以前阅读陈皓老师的左耳听风专栏中关于如何高效学习的总结让我收货颇丰&#xff0c;今天总结了一下&#xff0c;分享给大家 老师说&#xff1a; 学习是一件“逆人性”的事&#xff0c;就像锻炼身体一样&#xff0c;需要人持续付出&#xff0c;会让人感到痛苦&#…

【Jenkins】节点 node、凭据 credentials、任务 job

一、节点 node Jenkins在安装并初始化完成后&#xff0c;会有一个主节点&#xff08;Master Node&#xff09;&#xff0c;默认情况下主节点可以同时运行的任务数是2&#xff0c;可以在节点配置中修改&#xff08;系统管理/节点和云管理&#xff09;。 Jenkins中的节点&#…

第十二章 React 路由配置,路由参数获取

一、专栏介绍 &#x1f436;&#x1f436; 欢迎加入本专栏&#xff01;本专栏将引领您快速上手React&#xff0c;让我们一起放弃放弃的念头&#xff0c;开始学习之旅吧&#xff01;我们将从搭建React项目开始&#xff0c;逐步深入讲解最核心的hooks&#xff0c;以及React路由、…

shell实战-批量修改主机密码

1.编写执行脚本 vim host-pass.sh #!/bin/bash#配置旧的密码文件 cat >old_pass.txt <<EOF 10.36.192.182 root 123 22 10.36.192.184 root 123 22 EOF[ -f /etc/init.d/functions ] && . /etc/init.d/functions OLD_INFOold_pass.txt NEW_INFOnew_pass.txt…

QT----第二天QMainWindow,各种控件

目录 第二天1 QMainWindow1.1 菜单栏1.2工具栏1.3 状态栏1.4 铆接&#xff08;浮动窗口&#xff09;和中心部件&#xff08;只能由一个&#xff09;2 资源文件添加 3、对话框Qdialog3.2 模态和非模态对话框3.2 消息对话框3.3 其他对话框 4 登陆界面5 按钮组控件5.1QToolButton5…

Amazon Q:对话智能赋能企业发展

授权说明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 。 在最近举办的亚马逊云科技大会上&#xff0c;引人瞩目的消息是A…

【Linux API 揭秘】container_of函数详解

我的圈子&#xff1a; 高级工程师聚集地 我是董哥&#xff0c;高级嵌入式软件开发工程师&#xff0c;从事嵌入式Linux驱动开发和系统开发&#xff0c;曾就职于世界500强企业&#xff01; 创作理念&#xff1a;专注分享高质量嵌入式文章&#xff0c;让大家读有所得&#xff01; …

uniapp+vue3使用canvas保存海报的使用示例,各种奇奇怪怪的问题解决办法

我们这里这里有一个需求&#xff0c;是将当前页面保存为海报分享给朋友或者保存到本地相册&#xff0c;因为是在小程序端开发的&#xff0c;所以不能使用html2canvas这个库&#xff0c;而且微信官方新推出Snapshot.takeSnapshot这个api还不是很完善&#xff0c;如果你是纯小程序…

基于SpringBoot+Thymeleaf+Mybatis学生信息管理系统(源码+数据库)

一、项目简介 本项目是一套基于SpringBootThymeleafMybatis学生信息管理系统&#xff0c;主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目可以直接作为bishe使用。 项目都经过严格调试…

Linux上的MAC地址欺骗

Linux上的MAC地址欺骗 1、查看mac地址法1&#xff1a;ifconfig法2&#xff1a;ip link show 2、临时性改变 MAC 地址法1&#xff1a;使用iproute2工具包法2&#xff1a;使用macchanger工具 3、永久性改变 MAC 地址3.1 在 Fedora、RHEL下实践3.2 在 Debian、Ubuntu、Linux Mint下…

循环验证表单信息

1.需求 要求在提交申请时校验每个地址使用信息的必填项是否填写完整 2.最终效果 3.具体操作 <el-dialog v-model"data.applyVisible" title"申请地址" center destroy-on-close><el-button type"primary" click"handleTabsAdd&…