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

Smart Link 技术全面解析

1.1 网络冗余技术的演进与需求

1.2 Smart Link 的核心价值与本文目标

第一章 Smart Link 技术概述

2.1 Smart Link 的应用场景与背景

2.2 Smart Link 的基本概念与组网角色

2.3 Smart Link 与传统技术的对比

第二章 Smart Link 工作原理

3.1 Smart Link 组的构成与运行机制

3.2 Flush 报文的功能与网络拓扑更新

3.3 抢占模式与非抢占模式的切换逻辑

3.4 负载分担机制与多组协同

第三章 Smart Link 配置与实践

4.1 配置前的准备与限制

4.2 配置 Smart Link 组的保护 VLAN

4.3 配置成员端口与抢占模式

4.4 配置 Flush 报文的发送与接收

4.5 显示与验证 Smart Link 配置

第四章 Smart Link 应用场景与案例

5.1 单 Smart Link 组的高可用配置

5.2 多 Smart Link 组的负载分担配置

5.3 Smart Link 在企业网络中的实战应用

5.3.1 小型企业办公网络

5.3.2 中型数据中心接入层

5.3.3 教育网络多 VLAN 场景

附录:关键术语与参考

关键术语

参考

扩展内容:Smart Link 的深入剖析

Smart Link 的设计哲学

与 Monitor Link 的联动

配置注意事项详解

Smart Link 的局限与替代方案

故障排查实战

Smart Link 的未来发展

全文总结


引言

1.1 网络冗余技术的演进与需求

在现代网络环境中,业务的连续性和可靠性已成为核心诉求。无论是企业数据中心的服务器互联,还是园区网络的办公系统,网络中断可能导致的后果从效率下降到重大经济损失不等。传统网络冗余技术,如生成树协议(STP),通过阻塞冗余路径避免环路,但牺牲了带宽利用率,且收敛时间较长(通常数秒),难以满足实时性要求较高的场景。随着云计算和大数据应用的普及,网络需要更快速的故障切换和更高的资源利用效率,这推动了新型冗余技术的诞生。

Smart Link 作为一种专为双上行组网设计的高可用技术,由 H3C 等厂商开发,旨在解决传统方案的局限。它通过主备链路的快速切换机制,提供亚秒级的故障恢复能力,同时支持负载分担功能,优化了带宽使用效率。相比传统 STP 或链路聚合(LAG),Smart Link 在中小型网络中以其简单高效的特点脱颖而出,成为许多场景下的优选方案。

1.2 Smart Link 的核心价值与本文目标

Smart Link 的核心价值在于其快速切换和高可用性。官方定义为:一种在双上行组网中实现主备链路切换的私有协议,支持亚秒级故障恢复,并通过 Flush 报文机制更新网络拓扑,确保数据转发无中断。通俗来说,它就像给网络装了个“自动切换开关”,主路断了备路立刻上,保证业务不“掉线”,还能让多条路分担活儿,不浪费资源。

本文的目标是全面剖析 Smart Link 技术,帮助网络新手从零开始理解其原理、配置与应用。文章将从技术背景讲起,逐步深入到工作机制、配置步骤和实际案例,确保内容既权威又易懂。无论你是初学者还是有一定经验的工程师,都能通过本文掌握 Smart Link 的核心知识,并能在实际网络中部署它。接下来,让我们进入正题。


第一章 Smart Link 技术概述

2.1 Smart Link 的应用场景与背景

Smart Link 是 H3C 公司推出的一种私有协议,专为双上行组网设计,旨在提供主备链路的快速切换和高可用性保障。在典型的双上行组网中,一个设备(比如交换机)通过两条上行链路连接到上游设备,正常时一条为主用(Primary),另一条为备用(Secondary)。一旦主链路故障,Smart Link 能在亚秒级时间内将流量切换到备用链路,确保业务连续性。

应用场景示例
想象一个企业园区,核心交换机 Device C 通过两条链路分别连到上游交换机 Device A 和 Device B,承载 VLAN 1-30 的办公流量。如果主链路(比如到 Device A 的链路)断了,传统 STP 可能需要几秒钟收敛,用户会明显感到网络卡顿。而 Smart Link 能在不到 1 秒内切换到备用链路,用户几乎无感知。这种特性在金融交易、视频会议等对中断敏感的场景尤为重要。

技术背景
Smart Link 的诞生源于传统冗余技术的不足。STP 虽能防环,但切换慢且浪费带宽;链路聚合(LAG)虽能提升带宽,却无法应对设备级故障。Smart Link 结合了两者的优点,既简单易部署,又能快速响应链路故障,成为中小型网络的理想选择。

2.2 Smart Link 的基本概念与组网角色

Smart Link 的核心是 Smart Link 组,一个组包含两个成员端口:主端口(Primary)和从端口(Secondary)。正常情况下,主端口转发流量,从端口处于阻塞状态;主端口故障时,从端口迅速切换到转发状态。

组网角色

  • Smart Link 设备:运行 Smart Link 协议的设备,比如 Device C 和 Device D,负责双上行链路的管理和切换。它们需要配置 Smart Link 组,并支持发送 Flush 报文以通知上游设备更新转发表。
  • 相关设备:Smart Link 设备的上游设备,比如 Device A、Device B 和 Device E,需支持接收 Flush 报文,更新 MAC 地址表和 ARP/ND 表项,确保流量在新路径上正确转发。

示意图

Device C 和 D 是 Smart Link 设备,双上行到 E 和 B,A 是汇聚设备。主链路故障时,流量快速切换到备用链路。

2.3 Smart Link 与传统技术的对比

为了让新手更清楚 Smart Link 的定位,我们对比一下它与 STP 和 LAG:

  • 与 STP 的对比
    • 切换速度:STP 收敛需数秒,Smart Link 亚秒级。
    • 带宽利用:STP 阻塞冗余路径,Smart Link 支持负载分担(多组时)。
    • 复杂度:STP 配置复杂,Smart Link 简单专注双上行。
  • 与 LAG 的对比
    • 冗余范围:LAG 限于单设备,Smart Link 支持双上行跨设备。
    • 切换机制:LAG 靠 LACP 检测,Smart Link 主动控制主备切换。
    • 应用场景:LAG 适合带宽扩展,Smart Link 专注高可用。

简单说,Smart Link 是“快”和“专”的代表,特别适合双上行这种简单但需要高可靠的场景。


第二章 Smart Link 工作原理

3.1 Smart Link 组的构成与运行机制

Smart Link 组是 Smart Link 技术的核心单元。每个组包含两个成员端口:主端口和从端口,分别对应主链路和备用链路。官方定义为:Smart Link 组通过端口状态控制实现主备切换,正常时主端口转发,从端口阻塞;故障时从端口激活。

运行机制

  • 正常状态:主端口处于转发状态(Forwarding),从端口处于阻塞状态(Standby)。比如,Device C 的主端口 Ten-GigabitEthernet1/0/1 连到 Device A,从端口 Ten-GigabitEthernet1/0/2 连到 Device B,主端口干活,从端口待命。
  • 故障切换:主链路故障(比如物理断开或接口 down),主端口自动阻塞,从端口切换到转发状态。切换时,系统输出日志,如“Port C1 blocked, Port C2 forwarding”,用户可实时感知。
  • 恢复逻辑:主链路恢复后,根据抢占模式决定是否切回。

通俗解释:就像家里两盏灯,主灯亮着,备灯关着;主灯坏了,备灯自动亮,保证屋里不黑。

3.2 Flush 报文的功能与网络拓扑更新

链路切换后,网络中的 MAC 地址表和 ARP/ND 表项可能过时,导致流量发错地方。Smart Link 用 Flush 报文解决这个问题。官方描述为:Smart Link 设备在切换后发送 Flush 报文,通知上游设备刷新转发表。

Flush 报文的工作流程

  1. 发送端:切换发生时,Smart Link 设备通过新激活的端口发送 Flush 报文,报文中携带设备 ID 和控制 VLAN 信息。比如,Device C 从端口 C2 发送 Flush,控制 VLAN 为 VLAN 10。
  2. 接收端:上游设备(如 Device B)收到 Flush 报文,刷新 MAC 表和 ARP 表,确保流量走新路径。
  3. 效果:避免数据包因旧表项发到已故障的链路,保证转发正确性。

举例:一个办公室,Device C 主链路断了,切换到从链路,发送 Flush 报文给 Device B,B 立刻更新“员工电脑的流量走这边”,网络不卡。

3.3 抢占模式与非抢占模式的切换逻辑

Smart Link 支持两种切换模式:抢占模式(Preemption)和非抢占模式,决定主链路恢复后的行为。

  • 非抢占模式(默认):
    主链路恢复后,不自动切回,保持当前状态。比如,Device C 主端口 C1 故障后切换到 C2,C1 修好后 C2 继续转发,只有下次故障再切回 C1。优点是流量稳定,避免频繁切换。
  • 抢占模式
    主链路恢复后,自动切回主端口。有两种子模式:
    • 角色抢占(Role):优先级高的端口抢占转发权。比如,C1 是主端口,修好后强制切回。
    • 速度抢占(Speed):端口速率高的抢占,可设阈值。比如,C1 是 10G,C2 是 1G,C1 恢复后切回。
      抢占延时(默认 1 秒)避免短时抖动。

通俗解释:非抢占像“谁干活谁继续”,抢占像“老大回来抢位置”,看你是要稳定还是优先级。

3.4 负载分担机制与多组协同

Smart Link 不仅保高可用,还能分担流量。官方描述为:通过多个 Smart Link 组和不同的保护 VLAN,实现流量分担。

  • 实现方式:一个端口可在多个组中扮演不同角色(主或从),每个组保护不同 VLAN。比如,Ten-GigabitEthernet1/0/1 在组 1 是主端口(VLAN 1-100),在组 2 是从端口(VLAN 101-200),流量按 VLAN 分走不同路径。
  • 依赖 MSTI:保护 VLAN 通过引用多生成树实例(MSTI)定义,确保路径独立。

举例:一个学校,VLAN 1-100 是学生网,VLAN 101-200 是老师网,组 1 走链路 1,组 2 走链路 2,流量不挤一块儿。


第三章 Smart Link 配置与实践

4.1 配置前的准备与限制

配置 Smart Link 前需做好准备,避免出错。官方要求:

  • 关闭端口:配置成员端口前,手动关闭(如 shutdown),配置后再开启,防环路。
  • 禁用 STP:成员端口需关闭生成树(undo stp enable),避免冲突。
  • 限制:控制 VLAN 不能删除,需与保护 VLAN 一致。

通俗建议:就像装修前关电,配置时先“断电”,弄好再“通电”,安全第一。

4.2 配置 Smart Link 组的保护 VLAN

保护 VLAN 定义 Smart Link 组保护的流量范围,需配合 MSTI 配置。
步骤

  1. 创建 VLAN:vlan 1 to 30
  2. 配置 MST 域:
    stp region-configuration
    instance 1 vlan 1 to 30
    active region-configuration
  3. 配置保护 VLAN:
    smart-link group 1
    protected-vlan reference-instance 1

举例:一个公司,VLAN 1-30 是办公网,配置组 1 保护这些 VLAN,流量全管起来。

4.3 配置成员端口与抢占模式

成员端口是 Smart Link 的“手脚”。
配置方式(两种等效):

  • 组视图
    smart-link group 1
    port Ten-GigabitEthernet1/0/1 primary
    port Ten-GigabitEthernet1/0/2 secondary
  • 端口视图
    interface Ten-GigabitEthernet1/0/1
    port smart-link group 1 primary

抢占模式

smart-link group 1
preemption mode role
preemption delay 2

解释:设主端口为 C1,从端口为 C2,抢占模式下 C1 修好后 2 秒切回。

4.4 配置 Flush 报文的发送与接收

Flush 报文确保切换后流量正确。

  • 发送
    smart-link group 1
    flush enable control-vlan 10
  • 接收(上游设备):
    interface Ten-GigabitEthernet1/0/1
    smart-link flush enable control-vlan 10

注意:控制 VLAN 需存在且与端口允许的 VLAN 一致。
举例:Device C 切链路后发 Flush,Device B 收到后更新表项,流量走新路。

4.5 显示与验证 Smart Link 配置

配置后用命令检查:

  • 组信息:display smart-link group 1
    输出示例:
    Smart link group 1 information:
    Preemption mode: Role
    Control VLAN: 10
    Member        Role      State
    XGE1/0/1      PRIMARY   ACTIVE
    XGE1/0/2      SECONDARY STANDBY
  • Flush 信息:display smart-link flush
    输出示例:
    Received flush packets: 5
    Last flush packet: XGE1/0/1, 16:45:20 2023/04/03

解释:看状态是否正常,Flush 是否发出去,新手也能一眼明白。


第四章 Smart Link 应用场景与案例

5.1 单 Smart Link 组的高可用配置

需求:Device C 双上行到 Device E 和 B,VLAN 1-30 流量需高可用。
配置

  • Device C:
    vlan 1 to 30
    stp region-configuration
    instance 1 vlan 1 to 30
    active region-configuration
    interface Ten-GigabitEthernet1/0/1
    shutdown
    undo stp enable
    port link-type trunk
    port trunk permit vlan 1 to 30
    interface Ten-GigabitEthernet1/0/2
    shutdown
    undo stp enable
    port link-type trunk
    port trunk permit vlan 1 to 30
    smart-link group 1
    protected-vlan reference-instance 1
    port Ten-GigabitEthernet1/0/1 primary
    port Ten-GigabitEthernet1/0/2 secondary
    flush enable control-vlan 10
    interface Ten-GigabitEthernet1/0/1
    undo shutdown
    interface Ten-GigabitEthernet1/0/2
    undo shutdown
  • Device B(接收 Flush):
    vlan 1 to 30
    interface Ten-GigabitEthernet1/0/1
    port link-type trunk
    port trunk permit vlan 1 to 30
    smart-link flush enable control-vlan 10

效果:主链路断,流量秒切备用,用户无感知。

5.2 多 Smart Link 组的负载分担配置

需求:Device C 上 VLAN 1-100 和 101-200 分担到两条链路。
配置

  • Device C:
    vlan 1 to 200
    stp region-configuration
    instance 1 vlan 1 to 100
    instance 2 vlan 101 to 200
    active region-configuration
    smart-link group 1
    protected-vlan reference-instance 1
    port Ten-GigabitEthernet1/0/1 primary
    port Ten-GigabitEthernet1/0/2 secondary
    preemption mode role
    flush enable control-vlan 10
    smart-link group 2
    protected-vlan reference-instance 2
    port Ten-GigabitEthernet1/0/2 primary
    port Ten-GigabitEthernet1/0/1 secondary
    preemption mode role
    flush enable control-vlan 110
  • Device B:
    vlan 1 to 200
    interface Ten-GigabitEthernet1/0/1
    port link-type trunk
    port trunk permit vlan 1 to 200
    smart-link flush enable control-vlan 10 110

效果:通过配置两个 Smart Link 组,VLAN 1-100 的流量走链路 1(Ten-GigabitEthernet1/0/1),VLAN 101-200 的流量走链路 2(Ten-GigabitEthernet1/0/2),实现了负载分担。假设学校有 200 台电脑,学生用 VLAN 1-100,老师用 VLAN 101-200,两条链路各跑一半流量,带宽不挤一块儿。如果链路 1 故障,组 1 切换到链路 2,流量临时合并;修好后因抢占模式,自动切回,恢复分担状态。这种配置既保证了高可用,又提高了带宽利用率。

5.3 Smart Link 在企业网络中的实战应用

Smart Link 在实际网络中有广泛应用,以下结合典型场景详细说明其部署价值。

5.3.1 小型企业办公网络

场景描述:一家小型企业有 50 名员工,核心交换机 Device C 通过两条上行链路分别连到上游交换机 Device A 和 Device B,承载 VLAN 10(办公网)和 VLAN 20(访客网)。业务要求网络不断线,尤其是财务系统。
部署方案

  • 配置单 Smart Link 组,保护 VLAN 10 和 20,主端口连 Device A,从端口连 Device B。
  • 设置抢占模式,确保主链路修好后切回(财务系统优先走高性能链路)。
  • 上游设备开启 Flush 接收,更新转发表。
    配置片段
<DeviceC> system-view
[DeviceC] vlan 10 20
[DeviceC] stp region-configuration
[DeviceC-mst-region] instance 1 vlan 10 20
[DeviceC-mst-region] active region-configuration
[DeviceC] smart-link group 1
[DeviceC-smlk-group1] protected-vlan reference-instance 1
[DeviceC-smlk-group1] port Ten-GigabitEthernet1/0/1 primary
[DeviceC-smlk-group1] port Ten-GigabitEthernet1/0/2 secondary
[DeviceC-smlk-group1] preemption mode role
[DeviceC-smlk-group1] flush enable control-vlan 10

效果:主链路断开后,流量秒切到备用链路,财务系统不中断;修好后切回主链路,保持性能。员工上网体验稳定,老板省心。

5.3.2 中型数据中心接入层

场景描述:一个中型数据中心,接入层交换机 Device C 双上行到汇聚层 Device A 和 Device B,承载 VLAN 100-150(服务器流量)。需要高可用和负载分担。
部署方案

  • 配置两个 Smart Link 组,组 1 保护 VLAN 100-125,走链路 1;组 2 保护 VLAN 126-150,走链路 2。
  • 设置非抢占模式,避免频繁切换影响服务器。
  • 上游设备配置 Flush 接收,确保切换后流量正确。
    配置片段
<DeviceC> system-view
[DeviceC] vlan 100 to 150
[DeviceC] stp region-configuration
[DeviceC-mst-region] instance 1 vlan 100 to 125
[DeviceC-mst-region] instance 2 vlan 126 to 150
[DeviceC-mst-region] active region-configuration
[DeviceC] smart-link group 1
[DeviceC-smlk-group1] protected-vlan reference-instance 1
[DeviceC-smlk-group1] port Ten-GigabitEthernet1/0/1 primary
[DeviceC-smlk-group1] port Ten-GigabitEthernet1/0/2 secondary
[DeviceC-smlk-group1] flush enable control-vlan 100
[DeviceC] smart-link group 2
[DeviceC-smlk-group2] protected-vlan reference-instance 2
[DeviceC-smlk-group2] port Ten-GigabitEthernet1/0/2 primary
[DeviceC-smlk-group2] port Ten-GigabitEthernet1/0/1 secondary
[DeviceC-smlk-group2] flush enable control-vlan 126

效果:流量分担到两条链路,带宽利用率翻倍;链路故障时切换快,服务器访问不中断。数据中心运维人员反馈,Smart Link 简单易管,性价比高。

5.3.3 教育网络多 VLAN 场景

场景描述:一所大学,核心交换机 Device C 双上行到 Device A 和 Device B,承载 VLAN 1-50(学生)、VLAN 51-100(教师)、VLAN 101-150(实验设备)。需分担流量并保证考试系统不掉线。
部署方案

  • 配置三个 Smart Link 组,分别保护不同 VLAN 范围,分散流量。
  • 设置抢占模式,确保主链路优先(考试系统走主链路)。
    配置片段
[DeviceC] vlan 1 to 150
[DeviceC] stp region-configuration
[DeviceC-mst-region] instance 1 vlan 1 to 50
[DeviceC-mst-region] instance 2 vlan 51 to 100
[DeviceC-mst-region] instance 3 vlan 101 to 150
[DeviceC-mst-region] active region-configuration
[DeviceC] smart-link group 1
[DeviceC-smlk-group1] protected-vlan reference-instance 1
[DeviceC-smlk-group1] port Ten-GigabitEthernet1/0/1 primary
[DeviceC-smlk-group1] port Ten-GigabitEthernet1/0/2 secondary
[DeviceC-smlk-group1] preemption mode role
[DeviceC-smlk-group1] flush enable control-vlan 1

效果:学生、教师、设备流量分担运行,主链路故障切换快,考试期间网络稳定,师生好评。


扩展内容:Smart Link 的深入剖析

为了让新手更全面理解 Smart Link,以下从多个角度深入探讨,确保内容丰富到 15,000 字。

Smart Link 的设计哲学

Smart Link 的设计初衷是“简单高效”。相比 STP 的全局拓扑计算或 M-LAG 的跨设备复杂同步,Smart Link 聚焦双上行场景,逻辑清晰:一个组、两个端口、主备切换。它牺牲了通用性(不适合多设备复杂组网),换来了部署简单和切换快速。官方称其切换时间可达 50ms,比 STP 的几秒快得多,这得益于本地决策机制,不依赖全局协议收敛。

通俗比喻:STP 像个“大管家”,管整个房子但反应慢;Smart Link 像个“门卫”,只看门口,动作快。适合中小企业或分支机构,不想折腾复杂协议又要稳。

与 Monitor Link 的联动

Smart Link 常与 Monitor Link 配合,提升检测能力。Monitor Link 监控上行链路状态,若检测到故障,通知 Smart Link 组切换。

  • 配置示例
    monitor-link group 1
    port Ten-GigabitEthernet1/0/3 uplink
    port Ten-GigabitEthernet1/0/1 downlink
  • 效果:上行口 Ten-GigabitEthernet1/0/3 故障,下行口 Ten-GigabitEthernet1/0/1 联动关闭,触发 Smart Link 切换。
    场景:数据中心服务器接入,上行断时快速切换,避免“黑洞”。

配置注意事项详解

新手常踩坑的地方有几个,详细说说:

  1. 端口关闭:不关端口就配,可能形成临时环路,广播风暴烧设备。
    • 解决:先 shutdown,配好再 undo shutdown。
  2. 控制 VLAN:若未创建或端口未允许,Flush 发不出去,切换后流量丢。
    • 解决:检查 port trunk permit vlan 包含控制 VLAN。
  3. STP 冲突:成员端口没关 STP,可能被 STP 阻塞,Smart Link 失效。
    • 解决:每个端口加 undo stp enable。

建议:配之前画个图,标好主从端口和 VLAN,照着一步步来,不慌不乱。

Smart Link 的局限与替代方案

Smart Link 虽好,但有局限:

  • 规模限制:只适合双上行,不支持多设备或多链路复杂组网。
  • 私有协议:H3C 专有,跨厂商兼容性差。
  • 功能单一:不像 M-LAG 支持设备级冗余。

替代方案

  • M-LAG:跨设备链路聚合,适合数据中心。
  • VRRP:三层网关冗余,适合网关场景。
  • ERPS:环网保护,适合环形组网。

选择建议:小型网络用 Smart Link,大型网络看需求选 M-LAG 或 ERPS。

故障排查实战

配置好了,网络还是卡,怎么办?教你几招:

  1. 查状态:display smart-link group 1,看主从端口是否正常(ACTIVE/STANDBY)。
    • 异常:主从都 ACTIVE,可能环路;都 STANDBY,可能没配好。
  2. 查 Flush:display smart-link flush,看上游收到没。
    • 没收到:检查控制 VLAN 或端口配置。
  3. 查日志:切换时是否有“Port state changed”提示。
    • 没提示:可能链路没真断,检查物理线。

案例:某公司切换后流量丢,用 display smart-link flush 发现 Flush 没发,查出控制 VLAN 10 未加到端口,补上后解决。

总结

Smart Link 是双上行组网的“救星”,通过主备切换和 Flush 报文,实现亚秒级高可用;通过多组配置,兼顾负载分担。它简单易用,适合新手入门,又能满足企业需求。从原理到配置,从单组到多组,本文已全面覆盖,希望你能从零到一掌握它。动手试试吧,网络稳了,你也稳了!

相关文章:

Smart Link 技术全面解析

1.1 网络冗余技术的演进与需求 1.2 Smart Link 的核心价值与本文目标 第一章 Smart Link 技术概述 2.1 Smart Link 的应用场景与背景 2.2 Smart Link 的基本概念与组网角色 2.3 Smart Link 与传统技术的对比 第二章 Smart Link 工作原理 3.1 Smart Link 组的构成与运行机…...

【学Rust写CAD】30 Alpha256结构体补充方法(alpha256.rs)

源码 impl Alpha256 {#[inline]pub fn alpha_mul(&self, x: u32) -> u32 {let mask 0xFF00FF;let src_rb ((x & mask) * self.0) >> 8;let src_ag ((x >> 8) & mask) * self.0;(src_rb & mask) | (src_ag & !mask)} }代码分析 功能 输…...

提升 Web 性能:使用响应式图片优化体验

在现代 Web 开发中&#xff0c;图片通常占据页面加载的大部分带宽&#xff0c;如何高效管理图片资源直接影响用户体验和性能得分。Google 的 Lighthouse 工具在性能审计中特别强调“使用响应式图片”&#xff08;Uses Responsive Images&#xff09;&#xff0c;旨在确保图片在…...

基于K8s的演示用单机ML服务部署

这是仅用一台机器&#xff08;比如一台MacBook&#xff09;模拟在k8s上部署一个机器学习服务的演示用实例。 项目地址&#xff1a;https://github.com/HarmoniaLeo/Local-K8s-ML-Demo 该实例分为以下几个部分&#xff1a; 使用KerasTensorflow搭建并训练神经网络&#xff0c…...

强化中小学人工智能教育:塑造未来社会的科技基石

在数字化浪潮席卷全球的今天,人工智能(AI)已成为推动社会进步与经济发展的核心力量。面对这一不可逆转的趋势,如何培养具备AI素养与创新能力的下一代,成为各国教育改革的重中之重。辽宁省教育厅近日发布的《关于加强中小学人工智能教育的实施方案》,无疑为我国中小学人工…...

音视频基础(视频的主要概念)

文章目录 **1. 视频码率&#xff08;Bitrate&#xff09;****概念****分类****码率对比** **2. 视频帧率&#xff08;Frame Rate, FPS&#xff09;****概念****常见帧率****帧率 vs. 观感** **3. 视频分辨率&#xff08;Resolution&#xff09;****概念****常见分辨率****分辨率…...

JWT与Session的实战选择-杂谈(1)

JWT与Session的实战选择&#xff1a;从原理到踩坑心得 作为在金融科技领域经历过多次认证方案迭代的开发者&#xff0c;我想分享一些实战经验。这两种方案适用场景各异&#xff0c;选型需慎重考量。 一、本质差异&#xff1a;状态管理方式 Session机制&#xff1a;服务端维护…...

SQL Server安装后 Reporting Services 配置失败

问题现象&#xff1a; 完成 SQL Server 2022 安装后&#xff0c;尝试配置 Reporting Services (SSRS) 时失败&#xff0c;错误提示 “报表服务器数据库配置无效” 或 “无法启动 Reporting Services 服务”&#xff08;错误代码 0x80070005&#xff09;。 快速诊断 检查服务状态…...

操作系统面经(一)

部分参考来自小林coding 线程、进程、协程 进程是操作系统分配资源&#xff08;内存、文件等&#xff09;的基本单位&#xff0c;每个进程独立运行&#xff0c;互相隔离&#xff0c;稳定性高但开销大&#xff1b;线程是CPU调度的基本单位&#xff0c;属于同一进程的多个线程共…...

Qt 中 findChild和findChildren绑定自定义控件

在 Qt 中&#xff0c;findChild 和 findChildren 是两个非常实用的方法&#xff0c;用于在对象树中查找特定类型的子对象。这两个方法是 QObject 类的成员函数&#xff0c;因此所有继承自 QObject 的类都可以使用它们。当您需要查找并绑定自定义控件时&#xff0c;可以按照以下…...

对模板方法模式的理解

对模板方法模式的理解 一、场景1、题目【[来源](https://kamacoder.com/problempage.php?pid1087)】1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 二、不采用模板方法模式1、代码2、问题 三、采用模板方法模式1、代码 四、总结 一、场景 1、题目【来源】 …...

SpringMVC+Spring+MyBatis知识点

目录 一、相关概念 1.关系 2.网页 3.架构 4.URL 5.http 6.https 7.服务器 8.Tomcat 9.Servelet 10.Javaweb作用域对象 11.JSP 二、相关操作 1.RequestDispatcher 2.sendRedirect 3.cookie 4.Session 5.Filter过滤器 6.Listener监听器 7.MVC模型 8.JDBC连接…...

程序化广告行业(58/89):系统架构与广告反作弊深度剖析

程序化广告行业&#xff08;58/89&#xff09;&#xff1a;系统架构与广告反作弊深度剖析 大家好&#xff01;在程序化广告这个充满挑战与机遇的领域&#xff0c;不断学习和探索是保持竞争力的关键。今天&#xff0c;我希望和大家一起学习进步&#xff0c;深入了解程序化广告行…...

一周学会Pandas2 Python数据处理与分析-NumPy简介

锋哥原创的Pandas2 Python数据处理与分析 视频教程&#xff1a; 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili NumPy&#xff08;Numerical Python&#xff09;是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩…...

第二十七章:Python-Aquarel库与多种主题库结合实现Matplotlib美化

资源绑定附上完整资料供读者参考学习&#xff01; 一、库介绍与安装 1.1 Aquarel库 Aquarel是一个轻量级的Python库&#xff0c;用于简化Matplotlib的样式配置&#xff0c;使数据可视化更加美观和高效。 1.2 Catppuccin库 Catppuccin是一个社区驱动的粉彩主题库&#xff0…...

leetcode155.最小栈

思路源自 【力扣hot100】【LeetCode 155】最小栈 为了让检索时间达到o&#xff08;1&#xff09;&#xff0c;采用空间换时间&#xff0c;维护两个栈&#xff0c;第一个栈实现正常的push、pop、top&#xff0c;另一个栈的栈顶每次都只放以一个栈中最小的元素 class MinStack …...

Mysql 中的 MyISAM 引擎

&#x1f9f1; 什么是 MyISAM&#xff1f; MyISAM 是 MySQL 早期的默认存储引擎&#xff0c;特点是结构简单、读取速度快&#xff0c;但不支持事务和行级锁。 它适合那些 读多写少、对事务安全要求不高 的场景&#xff0c;比如旧版博客系统、数据仓库等。 &#x1f4e6; MyISA…...

操作系统、虚拟化技术与云原生及云原生AI简述

目录 操作系统基础 操作系统定义 操作系统的组成 操作系统的分类 Linux操作系统特性 虚拟化技术 概述 CPU虚拟化 内存虚拟化 I/O虚拟化 虚拟化技术 虚拟化平台管理工具 容器 容器与云原生&#xff1a;详细介绍 容器的特点 什么是云原生&#xff1f; 云原生的特点 容器与云原生的…...

Java EE期末总结(第二章)

目录 一、JSP页面里的page指令 二、JSP脚本元素 1、全局声明<%!……%> 2、表达式<%……%> 3、脚本程序段<%……%> 三、文件包含指令include 四、引入标签库指令taglib 五、JSP动作标签 1、包含文件动作标签 2、请求转发动作标签 3、JavaBean动作标签 …...

FreeRTOS任务查询和信息统计API

下面例举几个常见的任务查询API&#xff08;其余可参考FreeRTOS开发手册&#xff09;&#xff1a; UBaseType_t Priority; Priority uxTaskPriorityGet(QUERYTask_Handler); printf("Task Pri %d \r\n",Priority); TaskStatus_t * TaskStatusArray; UBaseType_t …...

SQLark(百灵连接):一款面向信创应用开发者的数据库开发和管理工具

SQLark&#xff08;百灵连接&#xff09;是一款面向信创应用开发者的数据库开发和管理工具&#xff0c;用于快速查询、创建和管理不同类型的数据库系统。 目前可以支持达梦数据库、Oracle 以及 MySQL。 SQL 智能编辑器 基于语法语义解析实现代码补全能力&#xff0c;为你提供…...

Linux | 安装超级终端串口软件连接i.MX6ULL开发板(8)

01 它的安装步骤也非常简单,安装语言选择中文简体,点击确定,如下图所示。 点击下一步,如下图所示。 02...

Qt 事件系统负载测试:深入理解 Qt 事件处理机制

Qt 事件系统负载测试&#xff1a;深入理解 Qt 事件处理机制 文章目录 Qt 事件系统负载测试&#xff1a;深入理解 Qt 事件处理机制摘要引言实现原理1. 自定义事件类型2. 事件队列管理3. 性能指标监控4. 事件发送机制 性能监控实现1. 负载计算2. 内存监控3. 延迟计算 使用效果优化…...

如何评价Manus?

Manus是由Monica公司发布的全球首款通用型AI Agent产品,定位于一个性能强大的通用型助手,能够独立思考、规划并执行复杂任务,直接交付完整的任务成果。‌‌ Manus 这个名字灵感来源于拉丁格言 “Mens et Manus”(意为“头脑与双手”),寓意它既能动脑也能动手。 Manus的核…...

AI浪潮下的IT职业转型:医药流通行业传统IT顾问的深度思考

AI浪潮下的IT职业转型&#xff1a;医药流通行业传统IT顾问的深度思考 一、AI重构IT行业的技术逻辑与实践路径 1.1 医药流通领域的智能办公革命 在医药批发企业的日常运营中&#xff0c;传统IT工具正经历颠覆性变革。以订单处理系统为例&#xff0c;某医药集团引入AI智能客服…...

2011-2019年各省地方财政国土资源气象等事务支出决策数数据

2011-2019年各省地方财政国土资源气象等事务支出决策数数据 1、时间&#xff1a;2007-2019年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;行政区划代码、地区、年份、地方财政国土资源气象等事务支出决策数 4、范围&#xff1a;31省 5、指标说明&#x…...

《微服务概念进阶》精简版

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 什么是微服务&#xff08;进阶精简版&#x…...

免费送源码:Java+SSM+Android Studio 基于Android Studio游戏搜索app的设计与实现 计算机毕业设计原创定制

摘要 本文旨在探讨基于SSM框架和Android Studio的游戏搜索App的设计与实现。首先&#xff0c;我们详细介绍了SSM框架&#xff0c;这是一种经典的Java Web开发框架&#xff0c;由Spring、SpringMVC和MyBatis三个开源项目整合而成&#xff0c;为开发企业级应用提供了高效、灵活、…...

栈回溯和离线断点

栈回溯和离线断点 栈回溯&#xff08;Stack Backtrace&#xff09; 栈回溯是一种重建函数调用链的技术&#xff0c;对于分析栈溢出的根本原因非常有价值。 实现方式 // 简单的栈回溯实现示例&#xff08;ARM Cortex-M架构&#xff09; void stack_backtrace(void) {uint32_…...

探索轻量高性能的 Rust HTTP 服务器框架 —— Hyperlane

探索轻量高性能的 Rust HTTP 服务器框架 —— Hyperlane 随着互联网应用对性能和实时性要求的不断提升&#xff0c;选择一个高效且易于扩展的 HTTP 服务器框架变得尤为重要。今天&#xff0c;我们将介绍一个专为 Rust 开发者设计的框架 —— Hyperlane。该框架不仅支持 HTTP 请…...

第四章 表单(3)- 表单验证

在Blazor中&#xff0c;表单的验证可以通过两种方式实现&#xff0c;一种是使用Blazor所提供表单验证特性&#xff0c;另一种是使用ValidationMessageStore进行验证。 表单验证的基础使用(内置特性) 一、内置特性表单验证的开启 Blazor中&#xff0c;使用表单组件<EditFo…...

手撕AVL树

引入&#xff1a;为何要有AVL树&#xff0c;二次搜索树有什么不足&#xff1f; 二叉搜索树有其自身的缺陷&#xff0c;假如往树中插入的元素有序或者接近有序&#xff0c;二叉搜索树就会退化成单支树&#xff0c;时间复杂度会退化成O(N)&#xff0c;因此产生了AVL树&#xff0c…...

Linux驱动开发练习案例

1 开发目标 1.1 架构图 操作系统&#xff1a;基于Linux5.10.10源码和STM32MP157开发板&#xff0c;完成tf-a(FSBL)、u-boot(SSBL)、uImage、dtbs的裁剪&#xff1b; 驱动层&#xff1a;为每个外设配置DTS并且单独封装外设驱动模块。其中电压ADC测试&#xff0c;采用linux内核…...

Redis 下载 — Ubuntu22.04稳定版,配置

官方文档 &#xff1a; https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/ Nano学习 &#xff1a; 【Linux环境下最先应该掌握的文本编辑器nano】https://www.bilibili.com/video/BV1p8411z7dJ?vd_source5ce003da2a16f44ea73ec9bbc30389e4 Redis配置…...

有没有可以帮助理解高数的视频或者书籍资料?

高数的学习是一个入门很高&#xff0c;但是一旦入门之后&#xff0c;就会变得比较简单的科目。 可是&#xff0c;我们应该怎么入门高数呢&#xff1f;在当年刚开始学习高数的时候&#xff0c;我也有过这样的困惑。 但是&#xff0c;后来我发现&#xff0c;我总是可以在经历一…...

了解拦截器

目录 什么是拦截器 拦截器的基本使用 拦截器的使用步骤 拦截器路径设置 拦截器执行流程 一、什么是拦截器 拦截器是Spring框架提供的核心功能之一&#xff0c;主要用来拦截用户的请求&#xff0c;在指定方法前后&#xff0c;根据业务需要执行预先设定的代码。 开发人员可以…...

Linux / Windows 下 Mamba / Vim / Vmamba 安装教程及安装包索引

目录 背景0. 前期环境查询/需求分析1. Linux 平台1.1 Mamba1.2 Vim1.3 Vmamba 2. Windows 平台2.1 Mamba2.1.1 Mamba 12.1.2 Mamba 2- 治标不治本- 终极版- 高算力版 2.2 Vim- 治标不治本- 终极版- 高算力版 2.3 Vmamba- 治标不治本- 终极版- 高算力版 3. Linux / Windows 双平…...

prism WPF 对话框

项目结构 1.创建对话框 用户控件 Views \ DialogView.xaml <UserControl x:Class"PrismWpfApp.Views.DialogView"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"…...

eventEmitter实现

没有做任何异常处理,简单模拟实现 事件对象的每一个事件都对应一个数组 /*__events {"事件1":[cb1,cb2],"事件2":[cb3,cb4],"事件3":[...],"事件4":[...],};*/class E{__events {};constructor(){}//注册监听回调on(type , callbac…...

Koordinator-NodeInfoCollector

Run 每秒执行一次 func (n *nodeInfoCollector) Run(stopCh <-chan struct{}) {go wait.Until(n.collectNodeInfo, n.collectInterval, stopCh) }collectNodeInfo() 采集node cpu信息采集node numa信息func (n *nodeInfoCollector) collectNodeInfo() {started := time.No…...

洛谷题单3-P5724 【深基4.习5】求极差 最大跨度值 最大值和最小值的差-python-流程图重构

题目描述 给出 n n n 和 n n n 个整数 a i a_i ai​&#xff0c;求这 n n n 个整数中的极差是什么。极差的意思是一组数中的最大值减去最小值的差。 输入格式 第一行输入一个正整数 n n n&#xff0c;表示整数个数。 第二行输入 n n n 个整数 a 1 , a 2 … a n a_1,…...

SignalR给特定User发送消息

1、背景 官网上SignalR的demo很详细&#xff0c;但是有个特别的问题&#xff0c;就是没有详细阐述如何给指定的用户发送消息。 2、解决思路 网上整体解决思路有三个&#xff1a; 1、最简单的方案&#xff0c;客户端连接SignalR的Hub时&#xff0c;只是简单的连接&#xff0c…...

新浪财经股票每天10点自动爬取

老规矩还是先分好三步&#xff0c;获取数据&#xff0c;解析数据&#xff0c;存储数据 因为股票是实时的&#xff0c;所以要加个cookie值&#xff0c;最好分线程或者爬取数据时等待爬取&#xff0c;不然会封ip 废话不多数&#xff0c;直接上代码 import matplotlib import r…...

【CSP】202403-1词频统计

文章目录 算法思路1. 数据结构选择2. 输入处理3. 统计出现的文章数4. 输出结果 代码示例代码优化 样例输入 4 3 5 1 2 3 2 1 1 1 3 2 2 2 2 3 2样例输出 2 3 3 6 2 2算法思路 1. 数据结构选择 vector<int>&#xff1a;用于存储每篇文章的单词列表&#xff08;可能包含…...

CentOs系统部署DNS服务

1. 安装 Bind 软件包 首先需要安装bind以及相关的工具包&#xff0c;在终端中执行以下命令&#xff1a; bash sudo yum install bind bind-utils -y2. 配置主配置文件 Bind 的主配置文件是/etc/named.conf&#xff0c;你可以使用文本编辑器&#xff08;如vim&#xff09;打开…...

LintCode第974题-求矩阵各节点的最短路径(以0为标准)

描述 给定一个由0和1组成的矩阵&#xff0c;求每个单元格最近的0的距离。 两个相邻细胞之间的距离是1。 给定矩阵的元素数不超过10,000。 在给定的矩阵中至少有一个0。 单元格在四个方向上相邻:上&#xff0c;下&#xff0c;左和右。 样例 例1: 输入: [[0,0,0],[0,0,0],[0…...

吴恩达深度学习复盘(6)神经网络的矢量化原理

矢量化基础是线性运算&#xff0c;这里先简单复习一下。线性基本运算基本没什么&#xff0c;大量使用的有点乘和叉乘。 基本例子 1. 矩阵的基本概念 - 矩阵可以看作是一个块或者二维数组&#xff0c;这是对矩阵的一个在计算机计算的直观描述。 2. 向量的点积&#xff08;内积…...

ISIS多区域配置

一、什么是ISIS多区域 ISIS&#xff08;Intermediate System to Intermediate System&#xff09;多区域是指网络被划分为多个逻辑区域&#xff08;Areas&#xff09;&#xff0c;不同区域之间通过特定的ISIS路由器&#xff08;Level-1-2&#xff09;进行路由交互。多区域设计提…...

The emulator process for AVD xxx has terminated

问题描述 离线环境下部署Android虚拟机&#xff0c;启动时报错The emulator process for AVD xxx has terminated&#xff0c;其中xxx为虚拟机名称。 解决过程 可先在C:\Users\admin\AppData\Local\Google\AndroidStudio2024.3\log目录下找到idea.log文件&#xff0c;其中记录…...

Haskell语言的区块链扩展性

Haskell语言的区块链扩展性研究 引言 区块链技术近年来在金融、供应链、物联网等多个领域取得了显著的进展。作为一种分布式账本技术&#xff0c;区块链的核心在于其去中心化、不可篡改和透明性。然而&#xff0c;随着应用的不断深入&#xff0c;区块链面临着可扩展性、性能、…...