小结:ipsec-ike
IPSec 手动配置与自动配置(IKE动态协商)
手动配置IPSec 逻辑图
关键逻辑:
- 无协商过程:所有参数(SPI、密钥)预先静态配置
- 对称配置:两端必须镜像设置SPI(入/出方向相反)
- 密钥固定:无自动更新机制,安全性较低
自动配置(IKE动态协商)逻辑图
关键逻辑:
- 两阶段协商:
- 阶段1:建立管理通道(IKE SA),使用UDP 500/4500端口
- 阶段2:建立数据通道(IPSec SA),生成动态SPI和密钥
- 动态密钥:支持PFS(完美前向保密),定期更新密钥
- 自动恢复:网络中断后自动重新协商
核心区别对比图
阶段 | 手动配置 | 自动配置(IKE) |
---|---|---|
参数定义 | 管理员静态指定 | IKE协议动态协商 |
密钥管理 | 固定不变 | 定期自动更新 |
SPI生成 | 手动配置 | 系统自动分配 |
加密算法 | 预定义 | 两端协商最优算法 |
适用场景 | 测试/简单环境 | 生产环境/复杂网络 |
协议依赖 | 仅需ESP/AH | 依赖IKE(UDP 500+4500) |
配置复杂度 | 简单但易错 | 复杂但灵活 |
手动IPSec 协议交互流程图
关键配置指令对应点:
-
SPI同步:
- R1出方向SPI 1002 = R3入方向SPI 1002
! R1配置 ipsec sa manual sa-to-r3 10outbound esp spi 1002 ! R3配置 ipsec sa manual sa-to-r1 10inbound esp spi 1002
-
加密过程:
- 出站数据匹配ACL 3001后,使用SPI 1002的密钥加密
display ipsec sa brief # 查看加密计数
自动IPSec (IKEv1)协议交互流程图
配置指令与协议交互对照:
-
阶段1配置:
! 两端必须匹配的IKE参数 ike proposal 10encryption-algorithm aes-256authentication-algorithm sha2-256dh group14 ike peer R3pre-shared-key cipher Huawei@123remote-address 23.0.0.3
-
阶段2配置:
ipsec proposal tosHesp encryption-algorithm aes-256esp authentication-algorithm sha2-256 ipsec policy POLICY1 10 isakmpike-peer R3proposal tosH
-
动态SPI查看:
display ipsec sa # 输出示例: SPI: 0x12345678 (动态生成) Encrypt algorithm: AES-256
关键配置与协议字段映射表
协议字段 | 华为配置指令 | 作用说明 |
---|---|---|
IKE SA_i/SA_r | ike proposal 10 | 协商加密算法/DH组 |
KE (Key Exchange) | dh group14 | 决定密钥交换强度 |
Hash Payload | pre-shared-key cipher | 身份认证凭证 |
IPSec SPI | 自动生成(手动配置则固定) | 唯一标识安全关联 |
ESP Encryption | esp encryption-algorithm aes-256 | 数据加密算法 |
-
现象:
display ike sa
无输出 -
排查步骤:
- 检查UDP 500可达性:
ping -c 1 -p 500 23.0.0.3
- 验证提议匹配:
display ike proposal # 确认两端aes-256/sha2-256一致
- 检查UDP 500可达性:
-
现象:
display ipsec statistics
无计数增长 -
排查步骤:
- 检查ACL匹配:
display acl 3001 # 确认规则命中测试流量
- 验证策略应用:
display ipsec policy # 查看接口绑定状态
- 检查ACL匹配:
-
启用NAT穿透(适用于中间有NAT设备):
ike peer R3nat-traversal enable # 自动使用UDP 4500封装
-
配置PFS增强安全:
ipsec policy POLICY1 10 isakmppfs dh-group14 # 每次重协商使用新DH密钥
-
设置SA生存时间:
ipsec policy POLICY1 10 isakmpsa duration time-based 86400 # 24小时后自动重协商
示例
[PC1] --- (Ethernet0/0/1) --- [AR1] --- (GE0/0/1: 2.2.2.1/24) --- [AR2 (ISP)] --- (GE0/0/0: 2.2.2.3/24) --- [AR3] --- (Ethernet0/0/1) --- [PC2]| | || IP: 192.168.10.0/24 | GE0/0/0: 192.168.10.254/24 | GE0/0/0: 192.168.20.254/24 | IP: 192.168.20.0/24| | | |
[Headquarters] [IPSec Tunnel] [Shangrao Branch]
一、基础网络配置(R1和R3必须先完成)
R1配置(总部)
sysname R1
# 配置内网接口(连接总部PC)
interface GigabitEthernet0/0/0ip address 192.168.10.1 255.255.255.0dhcp select interface # 可选:为PC分配IP
# 配置公网接口(连接ISP)
interface GigabitEthernet0/0/1ip address 2.2.2.1 255.255.255.0
# 配置默认路由指向ISP
ip route-static 0.0.0.0 0.0.0.0 2.2.2.2
R3配置(分部)
sysname R3
# 配置内网接口(连接分部PC)
interface GigabitEthernet0/0/0ip address 192.168.20.1 255.255.255.0dhcp select interface
# 配置公网接口
interface GigabitEthernet0/0/1ip address 2.2.2.3 255.255.255.0
# 默认路由
ip route-static 0.0.0.0 0.0.0.0 2.2.2.2
二、手动配置IPSec (静态密钥)
R1配置
# 定义需要加密的流量(总部→分部)
acl number 3000rule 5 permit ip source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255# 1. 定义IPSec提案(加密/认证算法)
ipsec proposal aesp authentication-algorithm sha2-256 # ESP认证算法(完整性保护)esp encryption-algorithm aes-256 # ESP加密算法(数据加密)# 2. 创建手动IPSec策略
ipsec policy a 1 manual # 策略名HF,序号1,手动模式security acl 3000 # 绑定ACL 3000(定义感兴趣流)proposal a # 引用上述提案tunnel local 12.0.0.1 # 本端隧道源IPtunnel remote 23.0.0.3 # 对端隧道目的IP# 3. 配置安全关联 Security Association(SA)参数sa spi inbound esp 12345 # 入方向SPI值(对端出方向需匹配)sa string-key inbound esp cipher aaa # 入方向密钥(cipher表示加密存储)sa spi outbound esp 54321 # 出方向SPI值(对端入方向需匹配)sa string-key outbound esp cipher aaa # 出方向密钥# 4. 应用到物理接口
interface GigabitEthernet0/0/1 # 公网接口ipsec policy a # 应用名为a 的IPSec策略
R3配置
acl number 3000rule 5 permit ip source 192.168.20.0 0.0.0.255 destination 192.168.10.0 0.0.0.255
ipsec proposal besp authentication-algorithm sha2-256esp encryption-algorithm aes-256ipsec policy b 1 manualsecurity acl 3000proposal btunnel local 23.0.0.3 # 本端IP与R1的remote IP对应tunnel remote 12.0.0.1 # 对端IP与R1的local IP对应# 注意SPI和密钥与R1相反!sa spi inbound esp 54321 # 对应R1的outbound spisa string-key inbound esp cipher 123456sa spi outbound esp 12345 # 对应R1的inbound spisa string-key outbound esp cipher 123456interface GigabitEthernet0/0/1ipsec policy b
三、自动配置IPSec (IKE动态协商)
R1配置
# 阶段1:IKE提议(加密管理通道)
ike proposal 10encryption-algorithm aes-256 # 加密算法dh group14 # 密钥交换组authentication-algorithm sha2-256 # 完整性校验authentication-method pre-share # 认证方式sa duration 86400000# 阶段1:IKE对等体
ike peer R3ike-proposal 10pre-shared-key cipher Huawei@123 # 预共享密钥remote-address 2.2.2.3 # 对端IP# 阶段2:IPSec提案(加密数据通道)
ipsec proposal r3-propesp encryption-algorithm aes-256 # 数据加密esp authentication-algorithm sha2-256 # 数据完整性# 绑定策略
ipsec policy policy-to-r3 10 isakmpsecurity acl 3001 # 匹配加密流量ike-peer R3 # 引用IKE对等体proposal r3-prop # 引用IPSec提案# 应用到接口
interface GigabitEthernet0/0/1ipsec policy policy-to-r3
R3配置
ike proposal 10 # 参数必须与R1完全一致!encryption-algorithm aes-256dh group14authentication-algorithm sha2-256authentication-method pre-share
ike peer R1ike-proposal 10pre-shared-key cipher Huawei@123remote-address 2.2.2.1 # 指向R1的IP
ipsec proposal r1-propesp encryption-algorithm aes-256esp authentication-algorithm sha2-256
ipsec policy policy-to-r1 10 isakmpsecurity acl 3001ike-peer R1proposal r1-prop
interface GigabitEthernet0/0/1ipsec policy policy-to-r1
四、NAT豁免配置(防止IPSec流量被NAT干扰)
R1和R3均需配置
acl number 2000 # 创建NAT豁免ACLrule 5 deny ip source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 # 阻止总部→分部NATrule 10 permit ip # 允许其他流量NAT
# 应用到公网接口
interface GigabitEthernet0/0/1nat outbound 2000
五、验证命令
# 查看IKE SA(阶段1)
display ike sa
# 预期结果:State字段为"RD"(已建立)# 查看IPSec SA(阶段2)
display ipsec sa brief
# 预期结果:有inbound/outbound ESP记录# 测试连通性
ping -a 192.168.10.1 192.168.20.1 # 从总部PC ping分部PC
关键问题排查表
现象 | 可能原因 | 解决方法 |
---|---|---|
IKE SA无法建立 | 预共享密钥不匹配/UDP 500被阻断 | 检查密钥/抓包确认UDP 500可达性 |
IPSec SA无流量 | ACL未匹配测试流量 | 使用ping -a 指定源IP或调整ACL规则 |
能ping通但数据未加密 | NAT未豁免流量 | 检查ACL 2000规则和nat outbound绑定 |
相关文章:
小结:ipsec-ike
IPSec 手动配置与自动配置(IKE动态协商) 手动配置IPSec 逻辑图 #mermaid-svg-eNMnNEwnoTjF8fkV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-eNMnNEwnoTjF8fkV .error-icon{fill:#552222;}…...
基于大模型预测的输尿管癌诊疗全流程研究报告
目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、大模型预测输尿管癌的原理与方法 2.1 大模型技术概述 2.2 用于输尿管癌预测的大模型选择 2.3 数据收集与处理 2.4 模型训练与优化 三、术前风险预测与手术方案制定 3.1 术前风险预测指标 3.2 大模型预测…...
Python Cookbook-6.14 实现状态设计模式
任务 你希望你程序中的某个对象能在不同的“状态”之间切换,而且该对象的行为方式也能随着状态的变化而变化。 解决方案 状态设计模式的关键思路是将“状态”(带有它自身的行为方式)对象化,使其成为一个类实例(带有一些方法)。在Python中,…...
2025智能体的发展趋势
以下是2025年智能体的一些主要发展趋势: 技术能力提升 多模态融合深化:智能体将能够更加自然地处理和理解多种模态的数据,如文本、图像、语音、视频等,实现跨模态的感知、理解和生成。这将使智能体在复杂场景下的应用更加广泛和…...
PCA主成分分析法(最大投影方差,最小重构距离,SVD角度)
统计分析中,数据的变量之间可能存在相关性,以致增加了分析的难度。于是,考虑由少数不相关的变量来代替相关的变量,用来表示数据,并且要求能够保留数据中的大部分信息。 在信号处理领域,信号具有较大方差,噪声具有较小…...
《数据结构初阶》【顺序表/链表 精选15道OJ练习】
《数据结构初阶》【顺序表/链表 精选15道OJ练习】 前言:---------------顺序表OJ练习---------------[26. 删除有序数组中的重复项](https://leetcode.cn/problems/remove-duplicates-from-sorted-array/)题目介绍方法一: [27. 移除元素](https://leetco…...
Python协程入门指北
一、什么是协程? 协程(Coroutine)就像可以暂停执行的函数,能够在执行过程中主动让出控制权,等准备好后再继续执行。 生活小例子 想象你在咖啡店排队: 普通函数:必须一直排到取餐(…...
Nginx 核心功能02
目录 一、引言 二、正向代理 (一)正向代理基础概念 (二)Nginx 正向代理安装配置 (三)正向代理配置与验证 三、反向代理 (一)反向代理原理与应用场景 (二…...
c++题目_P1027 [NOIP 2001 提高组] Car 的旅行路线
P1027 [NOIP 2001 提高组] Car 的旅行路线 - 洛谷 # P1027 [NOIP 2001 提高组] Car 的旅行路线 ## 题目描述 又到暑假了,住在城市 A 的 Car 想和朋友一起去城市旅游。 她知道每个城市都有 $4$ 个飞机场,分别位于一个矩形的 $4$ 个顶点上,…...
【playwright】内网离线部署playwright
背景:安装好python3.9后,由于内网无法使用pip安装playwright,多方收集资料,终于部署完成,现汇总如下: 1、playwright需要python3.7以上的版本,如果低于这个版本先要将python解释器升级 2、在可…...
前端面经-webpack篇--定义、配置、构建流程、 Loader、Tree Shaking、懒加载与预加载、代码分割、 Plugin 机制
看完本篇你将基本了解webpack!!! 目录 一、Webpack 的作用 1、基本配置结构 2、配置项详解 1. entry —— 构建入口 2. output —— 输出配置 3. mode:模式设置 4. module:模块规则 5. plugins:插件机制 6. resolve:模块解析配置(可选) 7. devServer:开发服务器…...
ES6函数、对象和面向对象扩展
函数扩展 默认参数 通用的写法: function func(a, b, ..., c 默认值c, d 默认值d, ...) {... }其中,需要注意的是,有默认值的尽量写在后面并且所有形参参数不允许重复申明。具体例子: function test() {return 13 }// 函数可…...
航空客户价值分析阶段性测验
航空公司客户价值分析 学习目标 学会怎么进行数据分析。掌握hive的使用方法。学会数据清洗和K-Means聚类算法。 了解航空公司现状与客户价值分析 任务描述 面对激烈的市场竞争,各个航空公司都推出了更多的优惠来吸引客户。国内某航空公司面临着常旅客流失,竞争…...
纯html实现的json数据转csv文件
代码如下: <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>JSON转CSV转换器</tit…...
Windows 查看电脑是否插拔过U盘
1、按 “WinR” 组合键打开 “运行” 对话框,输入 “regedit” 并回车,打开注册表编辑器。 2、依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR注册表项,这里记录了所有已连接过的 USB 设备信息,包括 U 盘&am…...
VB.net序列化和反序列化的使用方法和实用场景
引言 相信很多初学编程的人都会提出过这个疑问:“既然我的变量可以存在内存之中,那么是否也可以存在硬盘之中呢” 其实我想回答的是,完全可以而且方法不止一种,而今天讲的是序列化最经典的——二进制序列化 由于序列化的部分已…...
kafka学习笔记(四、生产者(客户端)深入研究(二)——消费者协调器与_consumer_offsets剖析)
1.消费者协调器和组协调器 如果消费者客户端中配置了多个分配策略,则多消费者的分区分配交由消费者协调器和组协调器来完成,他们之间使用一套组协调协议进行交互。 1.1.在均衡原理 将全部消费者分成多个子集,每个消费者组的子集在服务中对…...
stm32基础001(串口)
文章目录 通信的基本概念串行通信和并行通信单工,半双工和全双工串口的硬件连接 stm32的串口原理图CPU的芯片手册stm32串口的库函数实现通过串口实现printf函数使用中断实现串口的接收 通信的基本概念 串行通信和并行通信 串行通信一个方向只有一个数据通道&#x…...
5G技术如何提升智能家居体验:让家更聪明,生活更智能
5G技术如何提升智能家居体验:让家更聪明,生活更智能 一、引言:智能家居的新纪元 近年来,智能家居已经逐渐走入我们的生活,家电、照明、安全设备、环境监控等产品,都在逐步实现智能化,让我们可以…...
在项目中如何对Map List等对象序列化及反序列化
我们知道,在自定义类中,若想完成序列化必须要实现Serializable接口。 那么在实现后如何进行序列化呢? 一.普通对象 序列化: 1.首先我们要定义一个 序列化所需要的工具类 ObjectMapper //定义序列化所需要的工具类 转化机器…...
指针与算法的双人舞:蓝桥杯两道趣味题的降维打击
蓝桥杯奇趣挑战:如何用指针和算法“驯服”无序数组与环形迷宫? 🎩 博客引言 "你是否有过这样的体验?面对一段看似混乱的数组,像解开一团纠缠的耳机线,想用最优雅的方式让它乖乖听话?又或者…...
C语言 指针(2)
目录 1.指针运算 2.const修饰指针 3.野指针 我们在上篇文章中初步了解了关于指针的基础内容,包括内存地址以及指针变量类型。这篇我们来 讲关于指针的运算以及const修饰指针和野指针相关内容。 1. 指针运算 指针的基本运算有三种,分别是: - 指针-…...
使用Python和Pandas实现的Azure Synapse Dedicated SQL pool权限检查与SQL生成用于IT审计
下面是使用 Python Pandas 来提取和展示 Azure Synapse Dedicated SQL Pool 中权限信息的完整过程,同时将其功能以自然语言描述,并自动构造所有权限设置的 SQL 语句: ✅ 步骤 1:从数据库读取权限信息 我们从数据库中提取与用户、…...
Python基本语法(控制语句)
#控制语句 Python语言的控制语句和其他编程语言类似,常用的有if…else、while、for语句。 案例2一7控制语句 第1组代码,说明if-else语句: #1 print(\n1,if) x,y,z10,20,5 if x>y:print(x>y) else:print(x<y)输出结果: 1,if x<…...
Linux btop 使用教程
简介 btop 是一个基于终端的现代系统资源监控器,具有美观的图形界面、响应快、功能丰富等特点。它支持查看 CPU、内存、磁盘、网络、进程,并可以方便地筛选和管理进程。 功能总览 启动命令: btop界面分为以下几部分: CPU 区域…...
高并发场景下的MySQL生存指南
引言 在2025年全球数字经济峰会上,阿里云披露其核心交易系统单日处理请求量突破万亿次,其中MySQL集群承载了78%的OLTP业务。这标志着数据库系统已进入百万级QPS时代,传统优化手段面临三大挑战: 一、硬件与架构优化:构…...
Ethan独立开发产品日报 | 2025-04-30
1. Daytona 安全且灵活的基础设施,用于运行你的人工智能生成代码。 Daytona Cloud重新定义了AI代理的基础设施,具备低于90毫秒的启动时间、原生性能和有状态执行能力,这些是传统云服务无法比拟的。您可以以前所未有的速度和灵活性来创建、管…...
Mysql常用函数解析
字符串函数 CONCAT(str1, str2, …) 将多个字符串连接成一个字符串。 SELECT CONCAT(Hello, , World); -- 输出: Hello WorldSUBSTRING(str, start, length) 截取字符串的子串(起始位置从1开始)。 SELECT SUBSTRING(MySQL, 3, 2); -- 输出: SQ…...
donet使用指定版本sdk
ps:来自微软官方方案,实测可行,就是在项目任意目录下在新建 global.json,并配置sdk版本 SDK 使用最新安装的版本 SDK 命令包括 dotnet new 和 dotnet run。 .NET CLI 必须为每个 dotnet 命令选择一个 SDK 版本。 即使在以下情况下,它也会默认使用计算机上安装的最新…...
Android短信监控技术实现:合法合规的远程采集方案
一年经验的全栈程序员,目前头发健在,但不知道能撑多久。 该项目已成功部署并稳定运行于企业生产环境,如需个性化定制方案,欢迎联系作者进行深度合作。 文章目录 前言 一、页面设计 1.页面显示 2.代码实现 二、具体代码实现 1.添加…...
前端项目实践:打造响应式个人简历与实时天气预报应用
在当今前端开发领域,构建实际项目是提升技能的最佳方式。本文将带你完成两个极具实用价值的前端项目:响应式个人简历页面和天气预报Web应用。这两个项目不仅能够丰富你的作品集,还能帮助你掌握现代前端开发的核心技术。 一、响应式个人简历页…...
【C++】extern
本文介绍一些extern在C中的用法 声明与定义分离 C程序员应该都知道单一定义规则ODR 在任何一个翻译单元中,只允许存在任何变量、函数、类类型、枚举类型 、概念 (自 C20 起) 或模板的一个定义(其中一些可能具有多个声明,但只允许一个定义&a…...
力扣——23合并升序链表
目录 1:题目描述: 2.算法思想: 3.代码展示: 1:题目描述: 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入ÿ…...
Java 泛型参数问题:‘ResponseData.this‘ cannot be referenced from a static contex
问题与处理策略 问题描述 Data AllArgsConstructor NoArgsConstructor public class ResponseData<T> {private Integer code;private String msg;private T data;public static final int CODE_SUCCESS 2001;public static final int CODE_FAIL 3001;public static …...
21 课时精通生成式 AI:微软官方入门指南详解
21课时精通生成式AI:微软官方入门指南详解 引言项目概述分析基本信息项目定位与目标 核心功能详解1. 全面的课程结构2. 多样化的学习内容3. 技术亮点与创新点 安装和使用教程环境要求安装步骤基本使用方法示例代码 应用场景和实际价值适用业务场景实际应用价值效益可…...
WPF嵌入webapi服务器,充当微服务角色
WPF嵌入WebAPI服务器实现微服务角色 一、方案概述 在WPF应用程序中嵌入WebAPI服务器,使其能够同时作为桌面客户端和微服务提供者。这种架构允许WPF应用既作为用户界面,又作为后端服务,适合需要本地处理能力同时又能提供API接口的场景。 二、技术选型 WebAPI框架:…...
构建现代分布式云架构的三大支柱:服务化、Service Mesh 与 Serverless
目录 前言1. 服务化架构模式:构建可扩展的基础单元1.1 服务化的定义与演进1.2 在分布式云中的价值1.3 面临的挑战 2. Service Mesh 架构:服务通信的治理中枢2.1 什么是 Service Mesh?2.2 功能与优势2.3 在分布式云中的角色2.4 落地难点 3. Se…...
2025华东杯数学建模B题完整分析论文(共36页)(含模型、代码、数据)
2025华东杯数学建模B题完整分析论文 摘要 一、问题重述 二、问题分析 三、模型假设 四、 模型建立与求解 4.1问题1 4.1.1问题1思路分析 4.1.2问题1模型建立 4.1.3问题1代码 4.1.4问题1求解结果 4.2问题2 4.2.1问题2思路分析 4.2.2问题2模型建立 4.2…...
K8S - 零基础掌握 RBAC - 命名空间安全实战
一、为什么需要 RBAC 权限管理? 真实场景 在企业级 K8S 集群中,不同团队共享同一集群,容易发生权限管理问题,例如: 测试人员误删了生产数据库。 实习生看到了财务系统的敏感配置。 核心需求 确保不同用户 只能在自…...
OpenGL-ES 学习(13) ---- Shader 编译和程序对象
目录 概述创建和编译Shader链接程序对象绘制一个最简单的三角形示例代码 概述 在本节中,我们提供创建 Shader对象,并且编译链接到一个程序对象的完整流程,主要内容如下: Shader 和程序对象概述创建和编译Shader创建和链接程序对…...
今天的python练习题
目录 一、每日一言 二、练习题 三、效果展示 四、下次题目 五、总结 一、每日一言 晚上8点到的,还是会被感动到,有一位列车员同志在检票期间,叫我到列车员专座位上去坐,我很感激他,温暖人心,所以人间填我…...
HarmonyOS应用开发中实现本地化存储的几种方式
Preferences 存储 适用于存储简单的键值对数据,如用户设置、配置信息等。其特点是轻量级、使用简单,适合频繁读取和少量更新的场景,数据存储在本地沙盒中,应用重启后数据保持不变。 获取 Preferences 实例 :使用 data…...
【C++指南】vector(三):迭代器失效问题详解
. 💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C指南》 期待您的关注 文章目录 一、引言二、reserve 扩容引发的迭代器失效2.1 问题现象2.2 正确实现 三、insert 插入引发的…...
Android面试总结之GC算法篇
一、GC 机制核心原理与算法 面试题 1:Android 中为什么采用分代回收?分代策略如何优化 GC 效率? 标准答案: 分代回收基于对象生命周期的差异,将堆分为年轻代(Young Gen)和老年代(Ol…...
驱动开发系列55 - Linux Graphics QXL显卡驱动代码分析(二)显存管理
一:概述 前面介绍了当内核检测到匹配的PCI设备后,会调用 qxl_pci_probe 初始化设备,其中会调用qxl_device_init 来初始化设备,为QXL设备进行内存映射,资源分配,环形缓冲区初始化,IRQ注册等操作,本文展开说说这些细节,以及介绍下QXL的显存管理。 二:QXL设备初始化细节…...
javaScript——DOM续(六)
滚轮事件 在 Web 开发中监听鼠标滚轮事件时,不同浏览器存在差异。下面是对 onmousewheel、DOMMouseScroll 和标准 wheel 事件的完整说明和兼容写法。 🌀 onmousewheel 事件概览 onmousewheel 是早期浏览器(如 IE 和 Chrome)支持…...
MySQL 服务搭建
💢欢迎来到张翊尘的开源技术站 💥开源如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 在线安装Ubuntu/Debian更新系统包索引安装 MySQL …...
Eigen的使用
https://github.com/PX4/eigen Eigen在Qt中的配置(博主亲测) 1、Qt中调用 //.pro中-------- INCLUDEPATH \$$PWD/eigen-master//.cpp中------- #include <Eigen/Dense> using namespace Eigen;Matrix2d a; MatrixXd b(2,2); Vector3d v(1,2,3);…...
【云原生】基于Centos7 搭建Redis 6.2 操作实战详解
目录 一、前言 二、Redis 6.2 安装过程 2.1 下载安装包 2.2 安装包解压 2.3 安装包编译 2.3 安装 2.4 启动redis 2.4.1 前台启动(不推荐) 2.4.2 后启动(推荐) 2.4.3 关闭redis服务 2.4.4 设置客户端连接 三、写在最后 …...
《TCP/IP详解 卷1:协议》之第九章:IP选路
目录 一、IP选路之IP层工作流程 二、选路原理 三、路由表中的五种不同的标志(flag) 四、路由表的初始化 1、静态路由表初始化 ①、手动配置 ②、默认网关配置 2、动态路由表初始化 ①、路由协议的作用 ②、直接连接网络的自动发现 五、没有到达…...