【网络通信安全】基于华为 eNSP 的链路聚合、手工负载分担模式与 LACP 扩展配置 全解析
目录
一、引言
二、链路聚合技术基础
2.1 链路聚合的定义与作用
2.2 链路聚合的工作原理
2.3 链路聚合的模式分类
三、华为 eNSP 简介
3.1 eNSP 的概述
3.2 eNSP 的安装与配置
3.2.1 安装环境要求
3.2.2 安装步骤
3.2.3 配置虚拟网卡
四、手工负载分担模式配置
4.1 手工负载分担模式的特点
4.2 手工负载分担模式的配置步骤
4.2.1 实验拓扑搭建
4.2.2 配置交换机 S1
4.2.3 配置交换机 S2
4.3 手工负载分担模式的验证
4.3.1 查看链路聚合组信息
4.3.2 测试连通性
五、LACP 扩展配置
5.1 LACP 的原理与优势
5.1.1 LACP 原理
5.1.2 LACP 优势
5.2 LACP 扩展的配置步骤
5.2.1 实验拓扑搭建
5.2.2 配置交换机 S1
5.2.3 配置交换机 S2
5.3 LACP 扩展的验证
5.3.1 查看链路聚合组信息
5.3.2 测试连通性
5.3.3 模拟链路故障
六、链路聚合的负载分担算法
6.1 负载分担算法的类型
6.2 负载分担算法的配置
6.3 负载分担算法的验证
七、链路聚合的故障排查
7.1 常见故障现象及原因
7.1.1 链路聚合组状态异常
7.1.2 流量无法正常转发
7.2 故障排查步骤
7.2.1 检查物理链路
7.2.2 检查端口配置
7.2.3 检查 LACP 协商状态
7.2.4 检查负载分担算法
7.2.5 检查 VLAN 配置
八、总结与展望
8.1 总结
8.2 展望
CSDN 原创主页:不羁
https://blog.csdn.net/2303_76492156?type=blog
一、引言
在当今数字化高速发展的时代,网络的性能和可靠性至关重要。无论是企业内部网络、数据中心,还是云计算环境,都对网络带宽和稳定性有着极高的要求。链路聚合技术作为一种能够有效提升网络性能的手段,在网络建设中得到了广泛应用。华为的 eNSP(Enterprise Network Simulation Platform)是一款功能强大的网络仿真软件,它可以帮助网络工程师和学习者在虚拟环境中模拟真实的网络场景,进行各种网络设备的配置和测试。本文将详细介绍基于华为 eNSP 的链路聚合技术,包括手工负载分担模式和 LACP(Link Aggregation Control Protocol)扩展的原理、配置方法、实例操作以及故障排查等内容。
二、链路聚合技术基础
2.1 链路聚合的定义与作用
链路聚合,也称为链路捆绑或端口聚合,是将多个物理链路捆绑成一个逻辑链路的技术。它的主要作用包括:
- 增加带宽:通过将多个物理链路合并为一个逻辑链路,链路聚合可以显著增加网络的总带宽。例如,将 4 条 1Gbps 的物理链路进行聚合,理论上可以获得 4Gbps 的带宽。
- 提高可靠性:当链路聚合组中的某一条物理链路出现故障时,流量可以自动切换到其他正常的物理链路上,从而保证网络的正常运行,提高了网络的可靠性。
- 负载分担:链路聚合可以将流量均匀地分配到链路聚合组中的各个物理链路上,实现负载分担,避免了单一链路的过载。
2.2 链路聚合的工作原理
链路聚合的工作原理基于 MAC 地址表和端口选择算法。当网络设备接收到一个数据包时,它会根据数据包的源 MAC 地址和目的 MAC 地址,通过一定的算法选择链路聚合组中的一个物理端口进行转发。常用的端口选择算法包括源 MAC 地址、目的 MAC 地址、源 IP 地址、目的 IP 地址等。
2.3 链路聚合的模式分类
链路聚合主要分为手工负载分担模式和 LACP 模式。
- 手工负载分担模式:在手工负载分担模式下,管理员需要手动配置参与链路聚合的物理端口,并且网络设备会按照一定的算法将流量分配到不同的物理链路上。这种模式没有链路聚合控制协议的参与,配置相对简单,但缺乏动态协商和链路故障检测功能。
- LACP 模式:LACP 模式是基于 IEEE 802.3ad 标准的链路聚合控制协议,它允许网络设备之间动态协商链路聚合的参数,如链路聚合组的编号、链路的优先级等。LACP 模式具有动态协商和链路故障检测功能,能够自动调整链路聚合组的成员,提高了网络的灵活性和可靠性。
三、华为 eNSP 简介
3.1 eNSP 的概述
华为 eNSP 是华为公司自主研发的一款免费的网络仿真软件,它可以模拟华为全系列的网络设备,如路由器、交换机、防火墙等。eNSP 提供了一个可视化的图形界面,用户可以通过拖拽的方式创建网络拓扑,并对网络设备进行配置和管理。eNSP 支持多种网络协议和技术,如路由协议、交换协议、VPN 等,是网络工程师和学习者进行网络实验和学习的理想工具。
3.2 eNSP 的安装与配置
3.2.1 安装环境要求
- 操作系统:Windows 7/8/10 或更高版本。
- 内存:至少 4GB。
- 硬盘空间:至少 10GB。
3.2.2 安装步骤
- 从华为官方网站下载 eNSP 安装包。
- 运行安装包,按照安装向导的提示完成安装。
- 安装完成后,启动 eNSP。
3.2.3 配置虚拟网卡
在使用 eNSP 之前,需要配置虚拟网卡。具体步骤如下:
- 打开 eNSP,点击 “工具” -> “虚拟网卡配置”。
- 点击 “添加” 按钮,添加虚拟网卡。
- 配置虚拟网卡的 IP 地址和子网掩码。
四、手工负载分担模式配置
4.1 手工负载分担模式的特点
- 配置简单:管理员只需要手动配置参与链路聚合的物理端口,不需要进行复杂的协议协商。
- 缺乏动态协商:手工负载分担模式没有链路聚合控制协议的参与,无法动态调整链路聚合组的成员。
- 故障检测能力弱:当物理链路出现故障时,需要管理员手动进行故障排查和处理。
4.2 手工负载分担模式的配置步骤
4.2.1 实验拓扑搭建
在 eNSP 中搭建一个简单的网络拓扑,包括两台交换机(S1 和 S2),每台交换机之间通过两条物理链路连接。具体步骤如下:
- 打开 eNSP,点击 “设备” -> “交换机”,选择华为 S5700 交换机,分别添加两台交换机 S1 和 S2。
- 点击 “链路” -> “以太网链路”,分别连接 S1 和 S2 的 GigabitEthernet 0/0/1 和 GigabitEthernet 0/0/2 端口。
4.2.2 配置交换机 S1
# 进入系统视图
<Huawei> system-view
# 创建一个链路聚合组,编号为 1
[Huawei] interface Eth-Trunk 1
# 配置链路聚合组的工作模式为手工负载分担模式
[Huawei-Eth-Trunk1] mode manual load-balance
# 配置链路聚合组的端口类型为 trunk 模式
[Huawei-Eth-Trunk1] port link-type trunk
# 允许所有 VLAN 通过链路聚合组
[Huawei-Eth-Trunk1] port trunk allow-pass vlan all
# 退出链路聚合组配置模式
[Huawei-Eth-Trunk1] quit
# 进入 GigabitEthernet 0/0/1 端口配置模式
[Huawei] interface GigabitEthernet 0/0/1
# 将该端口加入链路聚合组 1
[Huawei-GigabitEthernet0/0/1] eth-trunk 1
# 退出 GigabitEthernet 0/0/1 端口配置模式
[Huawei-GigabitEthernet0/0/1] quit
# 进入 GigabitEthernet 0/0/2 端口配置模式
[Huawei] interface GigabitEthernet 0/0/2
# 将该端口加入链路聚合组 1
[Huawei-GigabitEthernet0/0/2] eth-trunk 1
# 退出 GigabitEthernet 0/0/2 端口配置模式
[Huawei-GigabitEthernet0/0/2] quit
4.2.3 配置交换机 S2
# 进入系统视图
<Huawei> system-view
# 创建一个链路聚合组,编号为 1
[Huawei] interface Eth-Trunk 1
# 配置链路聚合组的工作模式为手工负载分担模式
[Huawei-Eth-Trunk1] mode manual load-balance
# 配置链路聚合组的端口类型为 trunk 模式
[Huawei-Eth-Trunk1] port link-type trunk
# 允许所有 VLAN 通过链路聚合组
[Huawei-Eth-Trunk1] port trunk allow-pass vlan all
# 退出链路聚合组配置模式
[Huawei-Eth-Trunk1] quit
# 进入 GigabitEthernet 0/0/1 端口配置模式
[Huawei] interface GigabitEthernet 0/0/1
# 将该端口加入链路聚合组 1
[Huawei-GigabitEthernet0/0/1] eth-trunk 1
# 退出 GigabitEthernet 0/0/1 端口配置模式
[Huawei-GigabitEthernet0/0/1] quit
# 进入 GigabitEthernet 0/0/2 端口配置模式
[Huawei] interface GigabitEthernet 0/0/2
# 将该端口加入链路聚合组 1
[Huawei-GigabitEthernet0/0/2] eth-trunk 1
# 退出 GigabitEthernet 0/0/2 端口配置模式
[Huawei-GigabitEthernet0/0/2] quit
4.3 手工负载分担模式的验证
4.3.1 查看链路聚合组信息
在交换机 S1 和 S2 上分别执行以下命令,查看链路聚合组的信息:
[Huawei] display eth-trunk 1
如果配置成功,输出信息中会显示链路聚合组的成员端口和状态。
4.3.2 测试连通性
在交换机 S1 和 S2 上分别连接一台 PC,配置 PC 的 IP 地址和子网掩码,然后在 PC 上互相 ping 对方的 IP 地址,如果能够 ping 通,说明链路聚合配置成功。
五、LACP 扩展配置
5.1 LACP 的原理与优势
5.1.1 LACP 原理
LACP 是基于 IEEE 802.3ad 标准的链路聚合控制协议,它通过在参与链路聚合的端口之间交换 LACP 协议数据单元(LACPDU)来协商链路聚合的参数。LACPDU 包含了设备的系统优先级、端口优先级、端口编号等信息,双方设备根据这些信息进行协商,决定是否将端口加入链路聚合组。
5.1.2 LACP 优势
- 动态协商:LACP 允许网络设备之间动态协商链路聚合的参数,自动调整链路聚合组的成员。
- 链路故障检测:LACP 能够实时检测链路的状态,当某条物理链路出现故障时,会自动将该链路从链路聚合组中移除,保证网络的正常运行。
- 提高网络可靠性:通过动态调整链路聚合组的成员,LACP 可以提高网络的可靠性和灵活性。
5.2 LACP 扩展的配置步骤
5.2.1 实验拓扑搭建
使用与手工负载分担模式相同的网络拓扑,即两台交换机(S1 和 S2),每台交换机之间通过两条物理链路连接。
5.2.2 配置交换机 S1
# 进入系统视图
<Huawei> system-view
# 创建一个链路聚合组,编号为 1
[Huawei] interface Eth-Trunk 1
# 配置链路聚合组的工作模式为 LACP 模式
[Huawei-Eth-Trunk1] mode lacp-static
# 配置链路聚合组的端口类型为 trunk 模式
[Huawei-Eth-Trunk1] port link-type trunk
# 允许所有 VLAN 通过链路聚合组
[Huawei-Eth-Trunk1] port trunk allow-pass vlan all
# 配置系统优先级,数值越小优先级越高
[Huawei-Eth-Trunk1] lacp system-priority 100
# 退出链路聚合组配置模式
[Huawei-Eth-Trunk1] quit
# 进入 GigabitEthernet 0/0/1 端口配置模式
[Huawei] interface GigabitEthernet 0/0/1
# 将该端口加入链路聚合组 1
[Huawei-GigabitEthernet0/0/1] eth-trunk 1
# 配置端口优先级,数值越小优先级越高
[Huawei-GigabitEthernet0/0/1] lacp priority 100
# 退出 GigabitEthernet 0/0/1 端口配置模式
[Huawei-GigabitEthernet0/0/1] quit
# 进入 GigabitEthernet 0/0/2 端口配置模式
[Huawei] interface GigabitEthernet 0/0/2
# 将该端口加入链路聚合组 1
[Huawei-GigabitEthernet0/0/2] eth-trunk 1
# 配置端口优先级,数值越小优先级越高
[Huawei-GigabitEthernet0/0/2] lacp priority 200
# 退出 GigabitEthernet 0/0/2 端口配置模式
[Huawei-GigabitEthernet0/0/2] quit
5.2.3 配置交换机 S2
# 进入系统视图
<Huawei> system-view
# 创建一个链路聚合组,编号为 1
[Huawei] interface Eth-Trunk 1
# 配置链路聚合组的工作模式为 LACP 模式
[Huawei-Eth-Trunk1] mode lacp-static
# 配置链路聚合组的端口类型为 trunk 模式
[Huawei-Eth-Trunk1] port link-type trunk
# 允许所有 VLAN 通过链路聚合组
[Huawei-Eth-Trunk1] port trunk allow-pass vlan all
# 配置系统优先级,数值越小优先级越高
[Huawei-Eth-Trunk1] lacp system-priority 200
# 退出链路聚合组配置模式
[Huawei-Eth-Trunk1] quit
# 进入 GigabitEthernet 0/0/1 端口配置模式
[Huawei] interface GigabitEthernet 0/0/1
# 将该端口加入链路聚合组 1
[Huawei-GigabitEthernet0/0/1] eth-trunk 1
# 配置端口优先级,数值越小优先级越高
[Huawei-GigabitEthernet0/0/1] lacp priority 200
# 退出 GigabitEthernet 0/0/1 端口配置模式
[Huawei-GigabitEthernet0/0/1] quit
# 进入 GigabitEthernet 0/0/2 端口配置模式
[Huawei] interface GigabitEthernet 0/0/2
# 将该端口加入链路聚合组 1
[Huawei-GigabitEthernet0/0/2] eth-trunk 1
# 配置端口优先级,数值越小优先级越高
[Huawei-GigabitEthernet0/0/2] lacp priority 100
# 退出 GigabitEthernet 0/0/2 端口配置模式
[Huawei-GigabitEthernet0/0/2] quit
5.3 LACP 扩展的验证
5.3.1 查看链路聚合组信息
在交换机 S1 和 S2 上分别执行以下命令,查看链路聚合组的信息:
[Huawei] display eth-trunk 1
如果配置成功,输出信息中会显示链路聚合组的成员端口、状态、系统优先级、端口优先级等信息。
5.3.2 测试连通性
在交换机 S1 和 S2 上分别连接一台 PC,配置 PC 的 IP 地址和子网掩码,然后在 PC 上互相 ping 对方的 IP 地址,如果能够 ping 通,说明链路聚合配置成功。
5.3.3 模拟链路故障
在交换机 S1 上,将 GigabitEthernet 0/0/1 端口关闭,然后查看链路聚合组的信息:
[Huawei] interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1] shutdown
[Huawei-GigabitEthernet0/0/1] quit
[Huawei] display eth-trunk 1
此时,输出信息中会显示 GigabitEthernet 0/0/1 端口已经从链路聚合组中移除,流量会自动切换到其他正常的物理链路上。
六、链路聚合的负载分担算法
6.1 负载分担算法的类型
链路聚合的负载分担算法主要有以下几种:
- 源 MAC 地址:根据数据包的源 MAC 地址进行负载分担,相同源 MAC 地址的数据包会被分配到同一条物理链路上。
- 目的 MAC 地址:根据数据包的目的 MAC 地址进行负载分担,相同目的 MAC 地址的数据包会被分配到同一条物理链路上。
- 源 IP 地址:根据数据包的源 IP 地址进行负载分担,相同源 IP 地址的数据包会被分配到同一条物理链路上。
- 目的 IP 地址:根据数据包的目的 IP 地址进行负载分担,相同目的 IP 地址的数据包会被分配到同一条物理链路上。
- 源 MAC 地址 + 目的 MAC 地址:根据数据包的源 MAC 地址和目的 MAC 地址进行负载分担,相同源 MAC 地址和目的 MAC 地址组合的数据包会被分配到同一条物理链路上。
- 源 IP 地址 + 目的 IP 地址:根据数据包的源 IP 地址和目的 IP 地址进行负载分担,相同源 IP 地址和目的 IP 地址组合的数据包会被分配到同一条物理链路上。
6.2 负载分担算法的配置
在华为交换机上,可以通过以下命令配置链路聚合的负载分担算法:
# 进入系统视图
<Huawei> system-view
# 进入链路聚合组配置模式
[Huawei] interface Eth-Trunk 1
# 配置负载分担算法为源 IP 地址 + 目的 IP 地址
[Huawei-Eth-Trunk1] load-balance src-dst-ip
# 退出链路聚合组配置模式
[Huawei-Eth-Trunk1] quit
6.3 负载分担算法的验证
可以通过以下命令查看链路聚合组的负载分担算法:
[Huawei] display eth-trunk 1
输出信息中会显示链路聚合组的负载分担算法。
七、链路聚合的故障排查
7.1 常见故障现象及原因
7.1.1 链路聚合组状态异常
- 原因:物理链路故障、端口配置不一致、LACP 协商失败等。
7.1.2 流量无法正常转发
- 原因:负载分担算法配置不合理、VLAN 配置错误、链路聚合组带宽不足等。
7.2 故障排查步骤
7.2.1 检查物理链路
使用 display interface 命令检查物理链路的状态,确保物理链路正常。
[Huawei] display interface GigabitEthernet 0/0/1
7.2.2 检查端口配置
使用 display current-configuration 命令检查参与链路聚合的端口配置,确保端口配置一致。
[Huawei] display current-configuration interface GigabitEthernet 0/0/1
7.2.3 检查 LACP 协商状态
使用 display eth-trunk 命令检查 LACP 协商状态,确保 LACP 协商成功。
[Huawei] display eth-trunk 1
7.2.4 检查负载分担算法
使用 display eth-trunk 命令检查链路聚合组的负载分担算法,确保负载分担算法配置合理。
[Huawei] display eth-trunk 1
7.2.5 检查 VLAN 配置
使用 display vlan 命令检查 VLAN 配置,确保 VLAN 配置正确。
[Huawei] display vlan
八、总结与展望
8.1 总结
本文详细介绍了基于华为 eNSP 的链路聚合技术,包括手工负载分担模式和 LACP 扩展的原理、配置方法、实例操作以及故障排查等内容。通过学习本文,你可以掌握链路聚合技术的基本原理和配置方法,能够在华为 eNSP 中进行链路聚合的实验和测试。
8.2 展望
随着网络技术的不断发展,链路聚合技术也在不断演进。未来,链路聚合技术将朝着更高带宽、更高可靠性、更智能化的方向发展。同时,链路聚合技术也将与其他网络技术,如软件定义网络(SDN)、网络功能虚拟化(NFV)等深度融合,为网络的发展带来新的机遇和挑战。
希望本文能够对你学习和掌握链路聚合技术有所帮助,如果你在学习过程中遇到问题,可以随时查阅华为官方文档或咨询华为技术支持人员。
相关文章:
【网络通信安全】基于华为 eNSP 的链路聚合、手工负载分担模式与 LACP 扩展配置 全解析
目录 一、引言 二、链路聚合技术基础 2.1 链路聚合的定义与作用 2.2 链路聚合的工作原理 2.3 链路聚合的模式分类 三、华为 eNSP 简介 3.1 eNSP 的概述 3.2 eNSP 的安装与配置 3.2.1 安装环境要求 3.2.2 安装步骤 3.2.3 配置虚拟网卡 四、手工负载分担模式配置 4.…...
RK3568笔记八十: Linux 小智AI环境搭建
若该文为原创文章,转载请注明原文出处。 最近小智AI火了,韦老师出了 Linux 小智 AI 聊天机器人 版本,想移植到 RK3568上, 由于和韦老师硬件不同,所以需要交叉编译一些库,为后续移植做准备。 一、环境 1、…...
Transformer 通关秘籍2:利用 BERT 将文本 token 化
前面两节分别通过两个代码示例展示了模型将文本转换为 token 之后是什么样的,希望你可以对此有一个感性的认识。 本节来简要介绍一下将一个连续的文本转换为 token 序列的大致过程,这个过程被称为分词,也叫 tokenization。 在你没了解这方面…...
Spring Boot分布式项目异常处理实战:从崩溃边缘到优雅恢复
当单体应用拆分成分布式系统,异常就像被打开的潘多拉魔盒:RPC调用超时、分布式事务雪崩、第三方接口突然罢工…在最近的电商大促中,我们的系统就经历了这样的至暗时刻。本文将用真实代码示例,展示如何构建分布式异常处理体系。 一…...
Vue3 中使用 Sortablejs 实现拖拽排序功能 序号不更新问题
Vue3 中使用 Sortablejs 实现拖拽排序功能 序号不更新问题 安装依赖 npm install sortablejs --save简单使用 <template><div class"app-container"><div class"table-header"><el-button type"primary" click"hand…...
网络运维学习笔记(DeepSeek优化版) 024 HCIP-Datacom OSPF域内路由计算
文章目录 OSPF域内路由计算:单区域的路由计算一、OSPF单区域路由计算原理二、1类LSA详解2.1 1类LSA的作用与结构2.2 1类LSA的四种链路类型 三、OSPF路由表生成验证3.1 查看LSDB3.2 查看OSPF路由表3.3 查看全局路由表 四、2类LSA详解4.1 2类LSA的作用与生成条件4.2 2…...
【云馨AI-大模型】自动化部署Dify 1.1.2,无需科学上网,Linux环境轻松实现,附Docker离线安装等
Dify介绍 官网:https://dify.ai/zh生成式 AI 应用创新引擎开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。 Dify安装脚本 目录创建 mkdir -p /data/yunxinai &&a…...
Android 简化图片加载与显示——使用Coil和Kotlin封装高效工具类
为了简化使用Coil加载网络图片和GIF的过程,我们可以封装一个工具类。这个工具类将包括初始化ImageLoader的方法、加载图片到ImageView的方法,以及可能的其他便捷方法,如加载圆形图片、设置占位图等。下面是一个示例: 首先&#x…...
CUDA 学习(2)——CUDA 介绍
GeForce 256 是英伟达 1999 年开发的第一个 GPU,最初用作显示器上渲染高端图形,只用于像素计算。 在早期,OpenGL 和 DirectX 等图形 API 是与 GPU 唯一的交互方式。后来,人们意识到 GPU 除了用于渲染图形图像外,还可以…...
棱镜七彩受邀出席“供应链安全国家标准贯标应用深度行”活动并做主题分享
近日,“供应链安全国家标准贯标应用深度行”活动在北京顺利举办,此次活动汇聚了行业内的众多专家和企业代表,深入探讨了供应链安全国家标准的制定与实施路径。棱镜七彩副总裁黄浩东受邀出席,并发表了题为《国家标准实施路径下的企…...
Vue3项目中的.vscode文件夹
.vscode 文件夹主要用于存放与 Visual Studio Code(VS Code)编辑器相关的项目配置文件,这些文件能让项目在 VS Code 里的开发体验更加个性化和高效。 extensions.json 在 .vscode 文件夹中,extensions.json 文件的作用是列出项目…...
系统转换、系统维护、净室软件工程、构件软件工程(高软51)
系列文章目录 系统转换、系统维护、净室软件工程、构件软件工程 文章目录 系列文章目录前言一、系统转换二、系统维护三、净室软件工程四、基于构件的软件工程总结 前言 本节讲明遗留系统的系统转换、系统维护、净室软件工程、基于构件软件工程相关知识。 一、系统转换 就是讲…...
K8S学习之基础四十四:k8s中部署Kibana
在Kubernetes集群中安装Kibana通常涉及使用Helm Chart或直接使用Kubernetes Manifest文件。以下是使用Helm Chart安装Kibana的步骤: 添加Elastic Helm仓库 首先,添加Elastic的Helm仓库: bash 复制 helm repo add elastic https://helm.ela…...
联核防爆无人叉车:高危环境中的安全搬运守护者
联核防爆AGV无人叉车是专为易燃易爆环境设计的智能搬运设备,其特点、功能与应用场景均围绕“安全”与“智能”核心展开:联核科技官网-AGV叉车十大品牌-无人叉车厂家-自动化叉车-智能搬运码垛机器人-智能叉车系统解决方案专家 一、核心特点 防爆设计电气…...
23种设计模式-责任链(Chain of Responsibility)设计模式
责任链设计模式 🚩什么是责任链设计模式?🚩责任链设计模式的特点🚩责任链设计模式的结构🚩责任链设计模式的优缺点🚩责任链设计模式的Java实现🚩代码总结🚩总结 🚩什么是…...
Linux使用集群服务器查看已安装conda环境,且环境名无显示、系统环境混乱等问题
一、问题 在使用集群服务器前可以查看导入,module load不需要安装。我都是自己重新下载Anaconda3-2024.10-1-Linux-x86_64.sh,然后安装,导致混乱。下面是情况 1.创建的环境名跑到目录下了 2.多个base,且有个base无显示 二、解决办法 1.删…...
python蓝桥杯刷题的重难点知识笔记
1、datetime模块 datetime.date:代表日期,包含年、月、日信息。datetime.time:代表时间,包含时、分、秒、微秒信息。datetime.datetime:结合了日期和时间,包含年、月、日、时、分、秒、微秒信息。datetime.…...
Android平台毫秒级低延迟HTTP-FLV直播播放器技术探究与实现
一、前言 在移动互联网蓬勃发展的今天,视频播放功能已成为众多Android应用的核心特性之一。面对多样化的视频格式和传输协议,开发一款高效、稳定的视频播放器是许多开发者追求的目标。FLV(Flash Video)格式,尽管随着H…...
Redmi Note 11 T pro + 刷入 LinegaOs 22.1 记录 手机已经解锁bl.
Redmi Note 11 T pro 刷入 LinegaOs 22.1 记录 手机已经解锁bl. 获取LIneagaOS源码, 以及https://github.com/xiaomi-mediatek-devs 这个组织提供的代码,非常感谢 环境要求: ubuntu 22.04 需要准备的依赖 sudo apt install git curl vim…...
《Operating System Concepts》阅读笔记:p483-p488
《Operating System Concepts》学习第 40 天,p483-p488 总结,总计 6 页。 一、技术总结 1.object storage (1)object storage 管理软件 Hadoop file system(HDFS)、Ceph。 二、英语总结(生词:1) 1.commodity (1)commodity: com-(“tog…...
极光优化PLO-Transformer-LSTM多变量时序
极光优化算法(PLO)于2024年8月发表于SCI期刊《Neurocomputing》,利用算法极光优化算法PLO优化Transformer-LSTM模型,同时提供与未优化模型的对比,包含柱状图、两张雷达图、二维散点图等等。 (一)LSTM模型LSTM是一种在时…...
Android开发:基于 Kotlin 协程的设备指令控制工具类设计与实现
在安卓开发中,设备控制是一个常见的需求。本文将介绍如何使用 Kotlin 协程实现一个高效、健壮的设备指令控制工具类。该工具类支持指令队列、重试机制、状态管理等功能,并适配安卓平台,确保生命周期管理和主线程安全性。通过本文,…...
SQL Server 中常见的数据类型及其详细解释、内存占用和适用场景
以下是 SQL Server 中常见的数据类型及其详细解释、内存占用和适用场景: 数据类型类别数据类型解释内存占用适用场景整数类型bigint用于存储范围较大的整数,范围是 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807)8 字节需要…...
Android Kotlin 权限工具类封装:简化动态权限管理
在 Android 开发中,动态权限管理是一个常见的需求,尤其是在高版本 Android 系统中,权限管理变得更加严格和复杂。为了简化权限申请的流程,减少重复代码,本文将介绍如何使用 Kotlin 封装一个高效、易用的权限工具类。 权…...
数据结构每日一题day3(顺序表)★★★★★
题目描述:顺序表L的元素递增有序排列,设计一个算法在插入元素x后保持该顺序表仍然递增有序排列,插入成功后返回插入元素所在位置,不成功返回-1 算法思想:在递增有序的顺序表中插入元素 x 并保持有序性,步骤如下: 合法…...
Git合并删除原理
如果有 A 分支,从 A 分支上新建 B 分支,B 分支做出修改合并到 A 分支,然后删除 B 分支,A 分支还有没有 B 分支修改的内容 关键原理: 合并的本质是提交历史的整合 1. 合并操作会将 B 的修改永久写入 A 的历史 当 …...
Git 是什么
第一步:想象一个场景——写作文的烦恼 假设你在电脑上写一篇作文,反复修改了好几次。突然发现 改错了 想回到之前的某版,但你已经覆盖保存了。这时候你可能会想: 😭 “要是能回到昨天的版本就好了!”&a…...
基于javaweb的SpringBoot智能无人仓库管理设计与实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...
python处理音频相关的库
1 音频信号采集与播放 pyaudio import sys import pyaudio import wave import timeCHUNK 1024 FORMAT pyaudio.paInt16 CHANNELS 1#仅支持单声道 RATE 16000 RECORD_SECONDS 3#更改录音时长#录音函数,生成wav文件 def record(file_name):try:os.close(file_…...
JNI 本地方法调用 Java 静态方法 和 实例方法对比;通过本地方法创建 Java 对象;本地方法访问 Java 数组元素;本地方法错误返回给 Java
以下是针对 Java JNI 的详细代码示例和对比分析: 一、调用 Java 静态方法 vs 实例方法 Java 示例类 public class JNIExample {public static void staticMethod(int value) {System.out.println("Static Method: " value);}public void instanceMetho…...
