HCIP【BGP协议(详解)】
目录
1 BGP协议产生背景
2 BGP协议特性
2.1 自治系统间路由传播
2.2 路由矢量协议
2.3 防环机制
2.4 基于TCP传输
2.5 路由更新机制
2.6 丰富的路由属性
2.7 支持CIDR和路由聚合
2.8 路由过滤和策略控制
2.9 动态对等体功能
3 BGP基本术语
4 BGP规划问题
4.1 路由黑洞解决方案
5 BGP环路问题
5.1 EBGP水平分割(通过AS_PATH)
5.2 IBGP水平分割
6 BGP消息种类
6.1 BGP头部信息
6.2 数据包种类
7 BGP状态机
7.1 Idle状态
7.2 Connect状态
7.3 Active状态
7.4 Opensent状态
7.5 OpenConfirm状态
7.6 Established状态
1 BGP协议产生背景
BGP(Border Gateway Protocol,边界网关协议)是一种用于自治系统间的动态路由协议,是一种外部网关协议。BGP的设计目标是提供一种可靠、稳定且灵活的路由信息交换机制,以适应复杂多变的网络环境。
自治系统AS:一组同一个管理机构进行管理,对外呈现统一选路策略的路由器的集合。随着互联网的复杂性增加,不同管理机构控制着各自的路由选择域,这些自治系统需要通过某种机制来交换路由信息,以确保数据能够高效、准确地在各个自治系统间传输。
自治系统编号:
2字节AS编号:取值范围0-65535,其中0和65535保留
公有AS:1-64511
私有AS:64512-65535
4字节AS编号:2的32次方的编号数量
2 BGP协议特性
2.1 自治系统间路由传播
[1]BGP专注于不同自治系统(AS)之间传递路由信息,确保跨AS的通信
[2]从其他AS接收的路由在本AS内部的扩散依赖于内部网关协议(IGP),如OSPF或者IS-IS
2.2 路由矢量协议
[1]作为路径矢量协议,BGP使用自治系统序列来衡量距离,每个AS在路由传播过程中添加自己的编号到AS_PATH属性中。
[2]路由的下一跳地址在进入AS时会更新为上一AS的出接口IP地址,而在AS内部传播时下一跳保持不变。
2.3 防环机制
BGP通过路径矢量机制避免环路。当路由器收到一条路由时,会检查AS_PATH属性中是否包含自己的AS编号,若存在则丢弃该路由。
2.4 基于TCP传输
[1]BGP使用TCP协议(端口179)进行通信,确保数据传输的可靠性和稳定性。
[2]需要手动配置BGP邻居关系,以建立稳定的会话。
2.5 路由更新机制
[1]初始建立邻居关系时,BGP会发送完整的路由表。
[2]后续通信中,BGP仅发送增量更新,减少带宽占用和处理负担。
2.6 丰富的路由属性
BGP拥有多种属性(如LocalPref、MED、AS_PATH等),用于控制路由选择和优化网络流量分布。这些属性使得网络管理员能够灵活地实施路由策略,满足不同的网络需求。
2.7 支持CIDR和路由聚合
[1]BGP支持CIDR(无类域间路由),允许更灵活的IP地址分配和路由聚合。
[2]路由聚合功能可以减少路由表的规模,提高网络效率。
2.8 路由过滤和策略控制
[1]BGP提供了强大的路由过滤和策略控制功能,允许网络管理员根据特定条件(如AS_PATH、前缀等)对路由进行过滤。
[2]通过路由策略,可以实现流量工程和负载均衡等高级网络管理功能。
2.9 动态对等体功能
BGP支持动态对等体功能,简化了配置和维护工作,能够自动接受来自指定网段内所有邻居的连接请求。
3 BGP基本术语
BGP Speaker:运行BGP协议的路由器称为BGP发言者
BGP Peer:相互之间存在TCP连接、相互交换路由信息的BGP发言者之间互称为BGP对等体
BGP对等体:BGP邻居可以直连,也可以非直连
【1】EBGP对等体:跨AS之间的邻居,一般情况下EBGP对等体是物理上直连的。 BGP发言者从EBGP对等体获得的路由会向它所有BGP对等体通告(包括EBGP和IBGP)
【2】 IBGP对等体:同一个AS内部的邻居
4 BGP规划问题
规划不当容易产生路由黑洞
BGP规划示意图
路由黑洞产生原因:由于IBGP邻居之间没有运行BGP协议的路由器,无法获得BGP的路由;从而导致的数据包进入路由器被丢弃。
R2:peer 5.5.5.5 next-hop-local :表示将下一跳地址设置为本地地址,即数据包将从本地设备发送到目标设备,而不是通过其他路由器转发。
4.1 路由黑洞解决方案
(1)BGP引入IGP(上图可以在R2和R5上把bgp引入ospf),这个方法有可能会造成引入BGP后,外部网络的路由太多了,内网的路由器承载不住。
(2)在黑洞路由器上配置目的网段的静态路由(不现实,比如:需要配置的目的网段太多的情况,累死网络管理员了)
(3)IBGP全连接 :IBGP防环机制:IBGP水平分割:从IBGP邻居学习到的路由不会传递给其他IBGP邻居
IBGP全连接(full-fresh)主要是邻居太多,手工配置邻居,会导致工作量比较大
(4)BGP路由反射器(无视IBGP的防环机制,可以减少邻居关系的数量)
以R2作为反射器:
(5)BGP联盟(完美的避开了IBGP全连接的坑------IBGP水平分割限制)
5 BGP环路问题
5.1 EBGP水平分割(通过AS_PATH)
通过AS_PATH属性防环,在学习到的路由中,若有本地AS号,则拒绝学习,防止环路
5.2 IBGP水平分割
当路由器从一个IBGP对等体学习到某条BGP路由时,它将不能再把这条路由通告给任何IBGP对等体。
造成问题:一些路由器无法学到去往其他AS的路由
解决方法:路由反射器和联盟
6 BGP消息种类
6.1 BGP头部信息
标记(Marker):该字段被保留下来用于解决协议兼容性问题,没有其他含义
长度(length):指示BGP报文的长度(字节数)
类型(Type):该字段指示了BGP报文的类型,BGP5种数据包类
6.2 数据包种类
(1) open:用于建立BGP对等体之间的连接关系,正常收发一次即可;携带route-id;
Hold time:保持时间,该字段表示路由器在收到Keepalive消息或者Update消息之前等待的最长时间,默认180s,如果邻居双方的保持时间不一致,将以较短的时间作为双方可接收的保持时间。
可选参数长度:指示了BGP报文中可选参数的长度
可选参数:Open包中包含多个可选参数,主要用于宣告及协商BGP对等体的某些能力特征
(2)Keepalive:周期性的向BGP对等体发出Keepalive(周期保活)消息,用于保持连接的有效性,在默认情况下每60秒发送一条Keepalive消息,或者以已协商一致的保持时间的1/3为周期发送Keepalive消息。默认60s,超时180s。
(3)Update:携带的是路由更新(删减、增加)信息
(4)notfication:当BGP检测到错误状态时,就向对等体发出notfication消息,之后BGP连接会立即被关闭(邻居关系结束了)用于通知对等体发生错误状态,并立即中断BGP连接。Notification消息会在检测到错误或异常情况时发送,如路由不一致、身份验证失败等。
(5)router-refresh:用于在改变路由策略后,要求对等体重新发送指定地址族的完整路由表信息;只有支持路由刷新能力的路由器才会响应router-refresh报文。
7 BGP状态机
7.1 Idle状态
-
描述:BGP的初始状态。路由器等待管理员的命令来启动BGP会话。
-
转换:当BGP进程启动后,路由器会尝试建立TCP连接,进入Connect状态。
7.2 Connect状态
-
描述:路由器尝试与对等体建立TCP连接。
-
转换:
-
如果TCP连接成功建立,路由器发送Open消息并进入Opensent状态。
-
如果TCP连接尝试失败,路由器进入Active状态。
-
7.3 Active状态
-
描述:路由器在多次尝试后未能成功建立TCP连接,会进入Active状态。
-
转换:
-
如果TCP连接成功建立,路由器发送Open消息并进入Opensent状态。
-
如果TCP连接尝试失败,路由器可能会重新进入Connect状态或保持在Active状态。
-
7.4 Opensent状态
-
描述:路由器已发送Open消息,并等待对等体的Open消息响应。
-
转换:
-
如果收到的Open消息没有错误,路由器发送Keepalive消息并进入Established状态。
-
如果收到的Open消息有错误,路由器发送Notification消息并返回Idle状态。
-
7.5 OpenConfirm状态
-
描述:当本地路由器收到对等体的Open消息后,进入OpenConfirm状态。路由器发送Keepalive消息以确认收到对等体的Open消息。
-
转换:收到对等体的Keepalive消息后,路由器进入Established状态。
7.6 Established状态
-
描述:BGP会话已成功建立,路由器可以交换Update、Keepalive和Notification消息。
-
转换:
-
如果收到Keepalive消息或Update消息,路由器保持在Established状态。
-
如果收到Notification消息或检测到错误,路由器返回Idle状态。
-
相关文章:
HCIP【BGP协议(详解)】
目录 1 BGP协议产生背景 2 BGP协议特性 2.1 自治系统间路由传播 2.2 路由矢量协议 2.3 防环机制 2.4 基于TCP传输 2.5 路由更新机制 2.6 丰富的路由属性 2.7 支持CIDR和路由聚合 2.8 路由过滤和策略控制 2.9 动态对等体功能 3 BGP基本术语 4 BGP规划问题 4.1 路…...
集合与容器:List、HashMap(II)
一、ArrayList 是集合框架中最核心的动态数组实现,高频使用的容器之一。 1. 核心数据结构 基于数组实现,维护elementData数组存储元素: transient修饰的elementData不会被默认序列化(通过自定义序列化逻辑优化存储)…...
mac 安装MySQL
1、打开官网,点击Downloads 2、在downloads页面选择MySQL Community Server 3、选择对应的设备和版本,点击下载 4、下载选择 5、下载完成后,点击安装 6、next 到Configguration 时要输入密码(千万别忘记) 7.最后输…...
Pascal语言的软件开发工具
使用Pascal语言的软件开发工具 引言 随着计算机科学的发展,编程语言层出不穷,程序员们在开发时可以选择多种多样的工具。而Pascal语言作为一种历史悠久的程序设计语言,尽管在当今编程语言的生态中已不再是主流,但其优雅的语法和…...
vue组件开发:什么是VUE组件?
什么是VUE组件 在我们实际开发过程中你也许会发现有很多代码是重复的,它们可能是一个按钮、一个表单、一个列表等等,其中最为显著的应该是列表。 以CSDN的首页为例: 上述截图中的文章列表可能会在多处出现,比如此截图是精选博客…...
如何在Springboot的Mapper中轻松添加新的SQL语句呀?
在如今的软件开发界,Spring Boot可是非常受欢迎的框架哦,尤其是在微服务和RESTful API的构建上,真的是让人爱不释手!今天,我们就来聊聊如何为Spring Boot项目中的Mapper添加新的SQL语句吧!说起来࿰…...
微服务架构: SpringCloud服务注册与发现详解
# 微服务架构: SpringCloud服务注册与发现详解 一、什么是微服务架构 微服务架构简介 微服务架构(Microservices Architecture)是一种以一组小型服务应用程序构建系统的软件架构风格。每个服务运行在自己的进程中,通过精简的HTTP API进行通信…...
现代简约杂志海报包装网页设计无衬线英文字体安装包 Seriusans – Condensed Sans Display Font
Seriusans 是一种 Condensed Sans Display 字体,将现代简约与大胆融为一体。其狭窄而醒目的字体营造出强大的存在感,使其成为有影响力设计的绝佳选择,例如海报、杂志标题、品牌、包装、网页设计、运动图形、社论布局、广告活动、企业演示&…...
C/C++的条件编译
一、什么是条件编译? 条件编译是指在编译阶段根据某些条件来决定是否编译某段代码。这通常通过预处理指令来实现,比如 #if、#ifdef、#ifndef、#else、#elif 和 #endif。 二、为什么使用条件编译? 跨平台开发:不同的操作…...
视野,,地面覆盖,重叠需求,FPS,飞行速度等的计算公式
一、计算相机视野与重叠需求 1. 相机参数 IDS UI-5280CP: 分辨率:2456x2054 像素。传感器:假设为 1/1.8" CMOS(常见型号),尺寸约 6.78 mm(宽) 5.67 mm(高…...
ARXML文件解析-1
目录 1 摘要2 ARXML文件2.1 作用及典型应用场景2.2 **ARXML文件的结构树**2.3 TAG(XML元素)2.4 ARXML文件关键元素解析2.4.1 XML声明与处理指令2.4.2 XML注释2.4.3 ADMIN-DATA元素2.4.3 语言相关元素2.4.5 AR-PACKAGE体系结构2.4.6. 数据转换框架2.4.7 S…...
传统开发者视角:智能合约与区块链数据库探秘
前言 在上一篇文章:探秘区块链开发:智能合约在 DApp 中的地位及与传统开发差异中我为大家从传统开发者的角度讲解了一下什么是智能合约。 简单的来说智能合约对于传统前端开发者可以说是API接口,而后端开发者则可以说是负责接口逻辑的程序。 然而从传统的开发意识跳跃到D…...
游戏引擎学习第204天
回顾并为今天的内容做铺垫 好,现在开始这一集。今天我们将进行一些用户界面编程,觉得这是一个展示如何编写这类代码的好时机。很多人对如何做用户界面代码都很好奇,所以展示一下如何编写是非常有意义的。 我之所以在现在的这个地方做这些工…...
蓝桥杯2024年第十五届省赛真题-R 格式
题目链接: 思路: 通过数组模拟d的每一位,逐位进行计算,从而实现对d的精确处理。 代码: #include<bits/stdc.h> #define int long long using namespace std; const int N 2020;int n; string s; vector<i…...
Haskell语言的区块链安全
Haskell语言在区块链安全中的应用 引言 随着区块链技术的发展,它已经成为金融、供应链管理、身份认证等多个领域的重要基础设施。然而,区块链的安全性问题一直是行业关注的焦点。为了确保区块链的安全性,开发者需要选择合适的编程语言来编写…...
BUUCTF-web刷题篇(11)
20.admin 这道题很可能用admin或者伪造admin进行登录,用admin进行登录,随便填写密码进不去,发现页面有register、login,用admin注册提示已经被注册。 方法一:(burp爆破) 进入登陆界面&#x…...
TensorFlow
TensorFlow 是一个由 Google 开发并开源的机器学习和深度学习库,被广泛应用于各类机器学习项目。以下为你详细介绍: 概述 TensorFlow 最初是为了满足 Google 内部大规模机器学习需求而研发,后于 2015 年开源。它提供了一个强大且灵活的生态…...
分子生成的深层次层次变分自编码器 - DrugHIVE 测评
一、背景介绍 DrugHIVE 来源于南加州大学定量与计算生物学系的 Remo Rohs 为通讯作者的文章:《Structure-Based Drug Design with a Deep Hierarchical Generative Model》。文章链接:https://pubs.acs.org/doi/10.1021/acs.jcim.4c01193。该文章在 202…...
54.大学生心理健康管理系统(基于springboot项目)
目录 1.系统的受众说明 2.相关技术 2.1 B/S结构 2.2 MySQL数据库 3.系统分析 3.1可行性分析 3.1.1时间可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.1.4 技术可行性 3.1.5 法律可行性 3.2系统流程分析 3.3系统功能需求分析 3.4 系统非功能需求分析 4.系统设计…...
Linux文件特殊权限管理及进程和线程
acl 权限优先级 拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他 mask阈值 mask是能够赋予指定用户权限的最大阀值 当设定完毕文件的acl列表之后用chmod缩小了文件拥有组的权力 mask会发生变化 恢复: setfacl -m m: 权限 :rwx 文件/…...
Vue2+Vue3 45-90集学习笔记
Vue2Vue3 45-90集学习笔记 小兔鲜首页 页面开发思路: 分析页面,按模块拆分组件,搭架子(局部注册或全局注册) 局部注册:App.js中 导入(import),注册(compon…...
【Web 服务器】的工作原理
🌐 Web 服务器的工作原理 Web 服务器的主要作用是 接收客户端请求(通常是浏览器发出的 HTTP/HTTPS 请求),处理请求,并返回相应的数据(如网页、图片、API 响应等)。 📌 工作流程 1️…...
LeetCode 5 -- 区间DP | 中心拓展算法
题目描述 最长回文子串 数据规模为 5e5,必须 manacher 算法 1. DP 由于 r e v e r s e ( ) reverse() reverse() 的时间复杂度是 O ( N ) O(N) O(N),因此暴力肯定是不行的。 d p dp dp 的思路:如果 s [ l . . r ] s[l..r] s[l..r] 是一个…...
IntelliJ IDEA中Spring Boot 3.4.x+集成Redis 7.x:最新配置与实战指南
前言 Spring Boot 3.4.x作为当前最新稳定版本,全面支持Java 17与Jakarta EE 10规范。本文以Spring Boot 3.4.1和Redis 7.x为例,详解如何在IDEA中快速接入Redis,涵盖最新依赖配置、数据序列化优化、缓存注解及高…...
数仓建模中计算累计销量
在数仓建模中计算累计销量,通常需要结合时间维度和业务逻辑设计合理的模型与计算逻辑。以下是分步骤的实现思路和示例: 1. 模型设计 累计销量的计算通常基于星型模型或雪花模型,核心结构包括: 事实表:记录每一笔销售…...
(多看) CExercise_05_1函数_1.2计算base的exponent次幂
题目: 键盘录入两个整数:底(base)和幂指数(exponent),计算base的exponent次幂,并打印输出对应的结果。(注意底和幂指数都可能是负数) 提示:求幂运算时,基础的思路就是先无脑把指数转…...
Pollard‘s Rho 算法
Pollard’s Rho 算法:一场数学与计算机科学的巧妙结合 在现代计算机科学中,素数分解、整数因子化问题有着广泛的应用,尤其是在密码学领域。然而,当面对一个大合数时,寻找其因子仍然是一个非常复杂的问题。我们常常依赖…...
8款分形长虹玻璃科幻渐变海报设计JPG背景素材 The Gradient Backgrounds Pack
天空从未如此美好 — 直到有人将日落洒在您的屏幕上。这些渐变是带有心跳的液体颜色,从熔化的金色转变为深紫色,就像地平线一样。 8 个背景中的每一个都以 45003000 像素和 300dpi 的速度脉冲,清晰到足以让您感觉自己可以直接踏入光芒中。但这…...
AIGC9——AIGC时代的用户体验革命:智能交互与隐私保护的平衡术
引言:当AI成为交互主角 2024年,淘宝AI客服"阿里小蜜"日均处理20亿次咨询,日本虚拟偶像"初音未来"演唱会门票3秒售罄——这些现象标志着AIGC已深度融入人机交互场景。但与此同时,过度个性化的推荐引发"信…...
vm虚拟机虚拟出网卡并ping通外网
在 Linux 和 Windows 系统中,即使不使用网络命名空间(namespace),也能实现虚拟网卡上网。以下是不同场景下的实现方法: 一、Linux 系统(不使用网络命名空间) 1. 直接创建虚拟网卡对(…...
基于时间卷积网络TCN实现电力负荷多变量时序预测(PyTorch版)
前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对…...
ESXi8的部署过程
目录 一、系统安装 二、ESXI8的序列号 三、挂载硬盘和新建VMFS数据分区 四、通过数据存储浏览器上传下载文件 五、Windows远程桌面端口隐射 六、导出虚机 一、系统安装 1、使用UtrIOS系统制作ESXI8的启动盘; 2、服务器启动F8按键进入Popup启动选项,选择U盘启动; 3、安…...
IntelliJ IDEA 2020~2024 创建SpringBoot项目编辑报错: 程序包org.springframework.boot不存在
目录 前奏解决结尾 前奏 哈!今天在处理我的SpringBoot项目时,突然遇到了一些让人摸不着头脑的错误提示: java: 程序包org.junit不存在 java: 程序包org.junit.runner不存在 java: 程序包org.springframework.boot.test.context不存在 java:…...
Windows 权限配置文件解析与安全分析(GPP,GPO,LSA)
在 Windows 网络环境中,权限配置文件用于管理用户权限、密码策略和访问控制,涵盖组策略首选项(GPP)、本地安全策略(LSA)、注册表以及 Active Directory 组策略(GPO) 等。这些配置文件…...
【微服务】基础概念
1.什么是微服务 微服务其实就是一种架构风格,他提倡我们在开发的时候,一个应用应该是一组小型服务而组成的,每一个服务都运行在自己的进程中,每一个小服务都通过HTTP的方式进行互通。他更加强调服务的彻底拆分。他并不是仅局限于…...
MYOJ_4342:(洛谷P1087)[NOIP 2004 普及组] FBI 树(二叉树实操,递归提高)
题目描述 我们可以把由 “0” 和 “1” 组成的字符串分为三类:全 “0” 串称为 B 串,全 “1” 串称为 I 串,既含 “0” 又含 “1” 的串则称为 F 串。 FBI 树是一种二叉树,它的结点类型也包括 F 结点,B 结点和 I 结点三…...
LLM(13):词编码后的位置
原则上,token 嵌入是大型语言模型(LLM)的合适输入。然而,LLM 的一个小缺点是它们的自注意力机制无法指导序列中 token 的位置或顺序。在前面介绍的嵌入层的工作方式中,无论 token ID 在输入序列中的位置如何࿰…...
MINIQMT学习课程Day4
聚宽的模拟/实盘跟单系统,已经全部介绍完毕,上传完毕了,相信大家已经可以进行聚宽的miniqmt的交易了。如果还有疑问,私信我进行沟通。 现在开始进入新的课题,如何学习python,我不教那些乱七八糟的ÿ…...
AWS云服务:大数据公司实现技术突破与商业价值的核心引擎
在数据驱动决策的时代,大数据公司面临着海量数据存储、实时计算、复杂分析及安全合规等核心挑战。如何高效构建弹性、可扩展且低成本的技术架构,成为企业能否在竞争中胜出的关键。亚马逊云科技(AWS)作为全球云计算领域的领导者&am…...
Openpyxl使用教程(包含处理大数据量案例)
文章目录 一、简介功能特性应用场景使用优势 二、常用方法1、工作簿wb2、工作表ws 三、案例1、创建新工作簿2、将Excel数据存入list中3、按行读取文件(适合大文件)4、按指定行读取文件(适合大文件) 一、简介 在 Python 数据处理领域,openpyxl 凭借其卓越的功能与易…...
蓝桥杯15届 宝石组合
问题描述 在一个神秘的森林里,住着一个小精灵名叫小蓝。有一天,他偶然发现了一个隐藏在树洞里的宝藏,里面装满了闪烁着美丽光芒的宝石。这些宝石都有着不同的颜色和形状,但最引人注目的是它们各自独特的 “闪亮度” 属性。每颗宝…...
THE UNIVERSITY OF MANCHESTER-NUMERICAL ANALYSIS 1-3.4数值积分-复合积分公式
3.4.1 复合梯形法则 梯形法则仅使用两个点来近似积分,显然对于大多数应用来说,这不足够。为了提高精度,有多种方法可以利用更多的点和函数值。正如我们刚才在Newton-Cotes方法和辛普森法则中所看到的,一种方法是使用更高阶的插值函数。另一种方法是将区间划分为更小的区间…...
嵌入式系统应用-拓展-相关开发软件说明
这里以STM32的系列产品为例子,利用MDK的集成开发平台进行开发过程中,所有相关软件安装说明。 1 集成开发环境安装 1.1 MDK 下载 1.1.1 官网下载 官方下载地址: https://www.keil.com/download/product/ 选择MDK-ARM ,填写一些…...
react实现上传图片到阿里云OSS以及问题解决(保姆级)
一、优势 提高上传速度:前端直传利用了浏览器与 OSS 之间的直接连接,能够充分利用用户的网络带宽。相比之下,后端传递文件时,文件需要经过后端服务器的中转,可能会受到后端服务器网络环境和处理能力的限制,…...
嵌入式学习笔记——ARM-中断与异常
文章目录 中断与异常的区别中断与 DMA 的区别中断能否睡眠?下半部能否睡眠?1. 中断处理程序不能睡眠2. 下半部(SoftIRQ、Tasklet、Workqueue) 中断处理注意点1. 快进快出2. 避免阻塞3. 正确返回值4. 如何处理大量任务5. 避免竞态问…...
OpenHarmony子系统开发 - 安全(十二)
OpenHarmony SELinux开发指导(五) 一、OpenHarmony SELinux常见问题 neverallow编译报错处理 现象描述 编译SELinux时会进行neverallow检查,当配置的策略不合理时,可能出现违反neverallow编译报错。 neverallow check failed…...
深入解析ARM与RISC-V架构的Bring-up核心流程
深入解析ARM与RISC-V架构的Bring-up核心流程 作者:嵌入式架构探索者 | 2023年10月 引言 在嵌入式开发中,处理器的Bring-up(启动初始化)是系统运行的第一道门槛。ARM和RISC-V作为两大主流架构,其Bring-up流程既有共性…...
【力扣hot100题】(054)全排列
挺经典的回溯题的。 class Solution { public:vector<vector<int>> result;void recursion(vector<int>& nums,vector<int>& now){if(nums.size()0){result.push_back(now);return ;}for(int i0;i<nums.size();i){now.push_back(nums[i]);…...
vue中如何动态的绑定图片
在项目中遇到需要动态的改变图片路径,图片路径并非是从后台获取过来的数据。 因此在data中必须用require加载,否则会当成字符串来处理。...
湖北师范大学计信学院研究生课程《工程伦理》12.6章节练习
1【单选题】下列哪个不是数字身份的特点? A. 多样性 B. 唯一性 C. 可变性 D. 允许匿名和假名 2【单选题】下列哪项不是现代国家的基本职能。 A. 保护政权统一 B. 保护本国面对其他国家侵犯 C. 保护国内每个人免受他人侵犯 D. 承担发展国民经济 3【单选题】哪个国家在全球率先发…...