Smart Link 技术全面解析

news2025/4/5 9:00:09

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 报文,实现亚秒级高可用;通过多组配置,兼顾负载分担。它简单易用,适合新手入门,又能满足企业需求。从原理到配置,从单组到多组,本文已全面覆盖,希望你能从零到一掌握它。动手试试吧,网络稳了,你也稳了!

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

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

相关文章

Roo Code(前身为 Roo Cline)一个 AI 驱动的自主编码代理

Roo Code&#xff08;前身为 Roo Cline&#xff09; Roo Code 是一个 AI 驱动的自主编码代理&#xff0c;它存在于您的编辑器中。它可以&#xff1a; 用自然语言沟通直接在您的工作区读写文件运行终端命令自动化浏览器操作与任何 OpenAI 兼容或自定义的 API/模型集成通过自定…

数字化三维实训室:无穿戴动作捕捉技术如何赋能体育与舞蹈

在高校体育与舞蹈教学中&#xff0c;精准的动作训练至关重要。传统训练方式依赖教练的肉眼观察与手动记录&#xff0c;存在效率低下、误差较大的情况。尤其在快速连续动作或复杂肢体形态的捕捉中&#xff0c;人工判读易受主观经验限制&#xff0c;难以实现标准化评估。面对传统…

leetcode51-N皇后

leetcode 51 思路 本题可以使用回溯算法来解决。回溯算法通过尝试所有可能的解决方案来找到问题的解的算法&#xff0c;当发现当前的选择无法得到有效的解决方案时&#xff0c;就回溯到上一步&#xff0c;尝试其他的选择。对于 N 皇后问题&#xff0c;我们可以逐行放置皇后&…

linux 命令 awk

awk 是 Linux/Unix 系统中一个强大的文本处理工具&#xff0c;尤其擅长处理结构化文本数据&#xff08;如日志、表格数据&#xff09;。它不仅是命令行工具&#xff0c;还是一种脚本语言&#xff0c;支持变量、条件、循环等编程特性 1. 基本语法 awk [选项] 模式 {动作} 文件名…

R语言——获取数据1

参考资料&#xff1a;学习R 数据的来源可以由很多。R内置有许多数据集&#xff0c;而在其他的附件包中能找到更多的数据。R能从各式各样的来源中读取&#xff0c;且支持大量的文件格式。 1、内置的数据集 R的基本分发包有一个datasets&#xff0c;里面全是示例数据集。很多其他…

从零开始打造HTML5拼图游戏:一个Canvas实战项目

从零开始打造HTML5拼图游戏&#xff1a;一个Canvas实战项目 先看效果&#xff1a; 你是否曾经被那些精美的网页拼图游戏所吸引&#xff1f;用 HTML5 的 Canvas 技术&#xff0c;从零开始&#xff0c;教你怎么画图、处理鼠标事件&#xff0c;还有游戏的核心逻辑&#xff0c…

每日一题洛谷P8649 [蓝桥杯 2017 省 B] k 倍区间c++

P8649 [蓝桥杯 2017 省 B] k 倍区间 - 洛谷 (luogu.com.cn) #include <iostream> #include <vector> using namespace std; #define int long long signed main() {int n, k;cin >> n >> k;vector<int> a(n 1);vector<int> sum(n 1);vec…

Linux(十二)信号

今天我们就要来一起学习信号啦&#xff01;&#xff01;&#xff01;还记得小编在之前的文章中说过的ctrlc吗&#xff1f;之前小编没有详细介绍过&#xff0c;现在我们就要来学习啦&#xff01;&#xff01;&#xff01; 一、信号的基本介绍 首先&#xff0c;小编带领大家先一…

LeetCode算法题(Go语言实现)_30

题目 给定单链表的头节点 head &#xff0c;将所有索引为奇数的节点和索引为偶数的节点分别组合在一起&#xff0c;然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 &#xff0c; 第二个节点的索引为 偶数 &#xff0c;以此类推。 请注意&#xff0c;偶数组和奇数组内…

【读书笔记·VLSI电路设计方法解密】问题61:扫描插入的目的是什么

如问题60所述,要构建可测试电路,必须确保电路中每个节点都具有可控性和可观测性。但对于包含时序元件(如触发器、锁存器等存储元件)的电路,若不采取特殊设计则难以实现这两项特性。这是因为时序元件关联节点的逻辑状态不仅取决于当前输入,还受其先前存储状态影响——它们…

VirtualBox安装FnOS

1.下载FnOS镜像 下载网址&#xff1a; https://www.fnnas.com/2.创建虚拟机 虚拟机配置如图所示&#xff08;注意操作系统类型和网卡配置&#xff09; &#xff08;注意启动顺序&#xff09; 3.启动虚拟机 网卡类型选择桥接的Virtual Adapter 如果没有IP地址或者IP地址无法…

Pycharm(十二)列表练习题

一、门和钥匙 小X在一片大陆上探险&#xff0c;有一天他发现了一个洞穴&#xff0c;洞穴里面有n道门&#xff0c; 打开每道门都需要对应的钥匙&#xff0c;编号为i的钥匙能用于打开第i道门&#xff0c; 而且只有在打开了第i(i>1)道门之后&#xff0c;才能打开第i1道门&#…

集合与容器:List、HashMap(II)

一、ArrayList 是集合框架中最核心的动态数组实现&#xff0c;高频使用的容器之一。 1. 核心数据结构 基于数组实现&#xff0c;维护elementData数组存储元素&#xff1a; transient修饰的elementData不会被默认序列化&#xff08;通过自定义序列化逻辑优化存储&#xff09;…

《AI大模型应知应会100篇》第3篇:大模型的能力边界:它能做什么,不能做什么

第3篇&#xff1a;大模型的能力边界&#xff1a;它能做什么&#xff0c;不能做什么 摘要 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;LLM&#xff09;已经成为许多领域的核心技术。然而&#xff0c;尽管它们展现出了惊人的能力&#xff0c;但也有明显的局限性…

小程序API —— 58 自定义组件 - 创建 - 注册 - 使用组件

目录 1. 基本介绍2. 全局组件3. 页面组件 1. 基本介绍 小程序目前已经支持组件化开发&#xff0c;可以将页面中的功能模块抽取成自定义组件&#xff0c;以便在不同的页面中重复使用&#xff1b;也可以将复杂的页面拆分成多个低耦合的模块&#xff0c;有助于代码维护&#xff1…

前端页面鼠标移动监控(鼠标运动、鼠标监控)鼠标节流处理、throttle、限制触发频率(setTimeout、clearInterval)

文章目录 使用lodashjs库手动实现节流&#xff08;通过判断之前设定的定时器setTimeout是否存在&#xff09; 使用lodashjs库 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Com…

在 Android Studio 中运行安卓应用到 MuMu 模拟器

一、准备工作 1、​​确保 MuMu 模拟器已正确安装并启动​​ 从官网下载安装最新版 MuMu 模拟器。启动后&#xff0c;建议在设置中调整性能参数&#xff08;如 CPU 核心数和内存分配&#xff09;&#xff0c;以保证流畅运行。 2、​​配置 Android Studio 环境​&#xff08;按…

【JavaEE】网络原理详解

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

NOIP2013提高组.华容道

题目 509. 华容道 算法标签: 搜索, b f s bfs bfs, s p f a spfa spfa 思路 不难发现, 在人移动的过程中, 箱子是不动的, 从当前位置到下一个箱子旁边的位置不会移动箱子, 可以预处理出人在每个位置到其他位置的距离预处理, 从某一个状态出发, 走到另一个状态的最短路使…

政安晨【超级AI工作流】—— 基于COZE探索有趣的主题互动问答工作流(同宇宙儿童提问机)

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本例&#xff0c;我们将从零展示如何创建一款专门针对儿童对某项主题进行问答的对话流智能体…