专题二十:路由策略与策略路由
一、路由策略
1.1 路由策略的概念
路由策略是通过修改路由表的路由条目来控制数据流量的可达性。即对接受和发布的路由进过滤。这种方式称为路由策略
路由策略功能 | 相关作用 |
控制路由的发布 | 可通过路由策略对所要发布的路由信息进行过滤,只允许发布满足条件的路由信息。 |
控制路由的接收 | 可通过路由策略对所要接收的路由信息进行过滤,只允许接收满足条件的路由信息。这样可以控制路由条目的数量,提高网络的路由效率。 |
控制路由的引入 | 可通过路由策略只引入满足条件的路由信息,并控制所引入的路由信息的某些属性,使其满足本路由协议的路由属性要求。 |
设罟路由的属性 | 修改通过路由策略过滤的路由的属性,满足自身需要 |
对于路由策略的实现中,首先要进行路由信息特征的提取,可以使用过滤去进行数据的过滤,当然过滤的属性可以是各种属性,例如源目地址等等,然后根据这些属性进行数据的分流后,应用于路由的发布、接受、引入。
1.2 路由信息特征提取工具
1.2.1 访问控制列表
访问控制列表(ACL)由permit或deny语句组成的一系列有顺序规则的集合,它通过匹配报文的信息实现对报文的分类。
ACL的分类
ACL类别 | 规则定义描述 | 编号范围 |
基本ACL | 仅使用报文的源IP地址、分片标记和时间段信息来定义规则。 | 2000~2999 |
高级ACL | 既可使用报文的源IP地址,也可使用目的地址、IP优先级、ToS、DSCP、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则 | 3000~3999 |
二层ACL | 可根据报文的以太网帧头信息来定义规则,如根据源MAC地址、目的MAC地址、以太帧协议类型等。 | 4000~4999 |
用户自定义ACL | 可根据报文偏移位置和偏移量来定义规则。 | 5000~5999 |
用户ACL | 既可使用IPv4报文的源IP地址或源UCL(User Control List)组,也可使用目的地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。 | 6000~9999 |
一个ACL可以由多条“deny | permit”语句组成,每一条语句描述了一条规则。设备收到数据流量后,会逐条匹配ACL规则,看其是否匹配。如果不匹配,则继续匹配下一条。
一旦找到一条匹配的规则,就会执行规则中定义的动作,且不再继续与后续规则进行匹配;如果找不到匹配的规则,则设备会对报文直接进行转发。
ACL的匹配机制
需要注意的是,ACL中定义的这些规则可能存在重复或矛盾的地方。规则的匹配顺序决定了规则的优先级,ACL通过设置规则的优先级来处理规则之间重复或矛盾的情形
1.2.2 地址前缀列表
IP前缀列表(IP-Prefix List)是将路由条目的网络地址、掩码长度作为匹配条件的过滤器,可在各路由协议发布和接收路由时使用。
不同于ACL,IP-Prefix List能够同时匹配IP地址前缀长度以及掩码长度,增强了匹配的精确度。
1、ip-prefix-name:地址前缀列表名称
2、序号:本匹配项在地址前缀列表中的序号,匹配时根据序号从小到大进行顺序匹配
3、动作:permit/deny,地址前缀列表的匹配模式为允许/拒绝,表示匹配/不匹配
4、IP网段与掩码:匹配路由的网络地址,以及限定网络地址的前多少位需严格匹配
5、掩码范围:匹配路由前缀长度,掩码长度的匹配范围 mask-length<=greater-equal-value<=less-equal-value<=32
前缀列表的组成及匹配规则:
前缀过滤列表由IP地址和掩码组成,IP地址可以是网段地址或者主机地址,掩码长度的配置范围为0~32。
IP-Prefix List中的每一条IP-Prefix都有一个序列号index,匹配的时候将根据序列号从小到大进行匹配。
如果不配置IP-Prefix的index,那么对应的index在上次配置的同名IP-Prefix的index的基础上,以步长为10进行增长。如果配置的IP-Prefix的名字与index都和已经配置了的一项IP-Prefix List的相同,仅仅只是匹配的内容不同,则该IP-Prefix List将覆盖原有的IP-Prefix List。
当所有前缀过滤列表均未匹配时,缺省情况下,存在最后一条默认匹配模式为deny。当引用的前缀过滤列表不存在时,则默认匹配模式为permit。
前缀掩码长度范围:
前缀过滤列表可以进行精确匹配或者在一定掩码长度范围内匹配,并通过配置关键字greater-equal和less-equal来指定待匹配的前缀掩码长度范围。如果没有配置关键字greater-equal或less-equal,前缀过滤列表会进行精确匹配,即只匹配掩码长度为与前缀过滤列表掩码长度相同的IP地址路由;
如果只配置了关键字greater-equal,则待匹配的掩码长度范围为从greater-equal指定值到32位的长度;如果只匹配了关键字less-equal,则待匹配的掩码长度范围为从指定的掩码到关键字less-equal的指定值。
IP-Prefix的匹配机制
1.2.2.1 IP-Prefix的基础配置命令
1.创建IPv4地址前缀列表
[Huawei] ip ip-prefix ip-prefix-name [ index index-number ] { permit | deny }
ipv4-address mask-length [ match-network ] [ greater-equal greater-equal-value ]
[ less-equal less-equal-value ]
ip-prefix-name:指定地址前缀列表的名称。(指定地址前缀列表的名称。字符串形式,长度范围是1~169,不支持空格,区分大小写。)
index index-number:指定本匹配项在地址前缀列表中的序号。(指定本匹配项在地址前缀列表中的序号。整数形式,取值范围是1~4294967295。缺省情况下,该序号值按照配置先后顺序依次递增,每次加10,第一个序号值为10。)
permit:指定地址前缀列表的匹配模式为允许。
deny:指定地址前缀列表的匹配模式为拒绝。
ipv4-address mask-length:指定IP地址和指定掩码长度。
greater-equal greater-equal-value:指定掩码长度匹配范围的下限。
less-equal less-equal-value:指定掩码长度匹配范围的上限。
1.3 路由策略工具
1.3.1 Route-Policy
Route-Policy是一种功能非常强大的路由策略工具,它可以灵活地与ACL、IP-Prefix List、As-Path-Filter等其它工具配合使用,Route-Policy的每个node都有相应的permit模式或deny模式。
一个Route-Policy由一个或多个节点(Node)构成,每个节点都可以是一系列条件语句(匹配条件)以及执行语句(执行动作)的集合,这些集合按照编号从小到大的顺序排列。
1.3.1.1 Route-Policy的组成
一个Route-Policy由一个或多个节点构成,每个节点包括多个if-match和apply子句。
permit或deny:指定Route-Policy节点的匹配模式为允许或拒绝。
node:指定Route-Policy的节点号。整数形式,取值范围是0~65535。
if-match子句:定义该节点的匹配条件。
apply子句:定义针对被匹配路由执行的操作。
注:如果是permit模式,则当路由项满足该node的所有if-match子句时,就被允许通过该node的过滤并执行该node的apply子句,且不再进入下一个node;如果路由项没有满足该node的所有if-match子句,则会进入下一个node继续进行过滤。如果是deny模式,则当路由项满足该node的所有if-match子句时,就被拒绝通过该node的过滤,这时apply子句不会被执行,并且不进入下一个node;否则就进入下一个node继续进行过滤。
1.3.1.2 Route-Policy的匹配顺序
路由策略使用不同的匹配条件和匹配模式选择路由和改变路由属性。
1.3.1.3 Route-Policy的基础配置
1.创建Route-Policy
[Huawei] route-policy route-policy-name { permit | deny } node node
创建路由策略并进入Route-Policy视图。
2.(可选)配置if-match子句
[Huawei-route-policy] if-match ?acl 匹配基本ACLcost 匹配路由信息的costinterface 匹配路由信息的出接口ip-prefix 匹配前缀列表……
3.(可选)配置apply子句
[Huawei-route-policy] apply ?cost 设置路由的costcost-type {type-1 | type-2} 设置OSPF的开销类型ip-address next-hop 设置IPv4路由信息的下一跳地址preference 设置路由协议的优先级tag 设置路由信息的标记域……
1.3.2 Filter-Policy
Filter-Policy能够对接收或发布的路由进行过滤,可应用于ISIS、OSPF、BGP等协议。应用各协议中的Filter-Policy工具可通过引用ACL或地址前缀列表,对接收、发布和引入的路由进行过滤。
如图所示,R1、R2、R3之间运行BGP路由协议,路由在各个设备之间传递,当需要根据实际需求过滤某些路由信息的时候可以使用Filter-Policy实现。
1.3.2.1 Filter-Policy在距离矢量路由协议中的应用
对于距离矢量协议和链路状态协议,Filter-Policy工具的操作过程是不同的:
距离矢量协议是基于路由表生成路由的,因此过滤器会影响从邻居接收的路由和向邻居发布的路由。
在距离矢量路由协议中,设备之间传递的是路由信息,如果需要对这种路由信息进行某种过滤,可以使用Filter-Policy实现,出方向和入方向的生效位置如图所示。
1.3.2.2 Filter-Policy在链路状态路由协议中的应用
链路状态路由协议是基于链路状态数据库来生成路由的,且路由信息隐藏在链路状态LSA中,但Filter-Policy不能对发布和接收的LSA进行过滤,故Filter-Policy不影响链路状态通告或链路状态数据库的完整性以及协议路由表,而只会影响本地路由表,且只有通过过滤的路由才被添加到路由表中,没有通过过滤的路由不会被添加进路由表。
在链路状态路由协议中,各路由设备之间传递的是LSA信息,然后设备根据LSA汇总成的LSDB信息计算出路由表。但是Filter-Policy只能过滤路由信息,无法过滤LSA。
不同协议应用filter-policy export命令对待发布路由的影响范围不同:
对于距离矢量协议,会对引入的路由信息、本协议发现的路由信息进行过滤。
对于链路状态协议,只对引入的路由信息进行过滤。
1.3.2.3 Filter-Policy的基础配置
1.在OSPF中的应用
[Huawei-ospf-100] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route-policy route-policy-name [ secondary ] } import
按照过滤策略,设置OSPF对接收的路由进行过滤。
[Huawei-ospf-100] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route-policy route-policy-name } export [ protocol [ process-id ] ]
按照过滤策略,设置对引入的路由在向外发布时进行过滤。
2.在IS-IS中的应用
[Huawei-isis-1] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route-policy route-policy-name } import
配置IS-IS路由加入IP路由表时的过滤策略。
[Huawei-isis-1] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route-policy route-policy-name } export [ protocol [ process-id ] ]
配置IS-IS对已引入的路由在向外发布时进行过滤的过滤策略。
3.在BGP中的应用
[Huawei-bgp-af-ipv4] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name } import
配置对接收的路由信息进行过滤。
[Huawei-bgp-af-ipv4] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name } export [ protocol [ process-id ] ]
配置对发布的路由进行过滤,只有通过过滤的路由才被BGP发布。
[Huawei-bgp-af-ipv4] peer { group-name | ipv4-address } filter-policy { acl-number | acl-name acl-name } { import | export }
配置向对等体(组)发布或从对等体(组)接收路由时的过滤策略。
二、策略路由
2.1 策略路由的概念
策略路由是一种基于策略的路由选择方法,通过根据特定的策略或条件来决定数据包的转发路径。与传统的基于目的地地址的路由选择不同,策略路由可以根据源IP地址、目的IP地址、服务类型等多个因素进行灵活的决策。其目标是根据网络管理员定义的策略,实现网络流量的优化和管理。
2.2 策略路由的工作原理
-
策略定义:管理员定义一组策略,这些策略可以基于多个因素,如源IP地址、目的IP地址、服务类型等。
-
条件匹配:当数据包到达路由器时,它会被与策略中定义的条件进行匹配。如果数据包符合某个策略的条件,那么该策略将被触发。
-
路径选择:策略触发后,根据策略中定义的规则和动作,路由器会选择最佳的路径来转发数据包。这可以是固定的下一跳路径,也可以是负载均衡的多个路径之一。
-
转发处理:根据选择的路径,路由器将数据包转发到目标地址。
策略路由的选路参数:源目IP址、协议字段,甚至于TCP、UDP的源目的端口等多种组合进行选路,较为灵活。
策略路由进行数据包的转发时,不是简单根据目的IP地址而定,而是综合考虑多种因素,例如源目端口号、IP地址等参数进行流量工程制定,能够满足不同业务走不同链路的需求,基于流量进行分配。
2.3 策略路由优势
①不同的用户可以分配不同的链路(例如存在多个ISP)
②设置IPP或者TOS字段来实现QoS
③实现负载均衡
2.4 策略路由的处理流程
①流模式
第一个包查路由转发表,如果存在路由,将该路由项以source、dest、tos、入接口等索引放置到cache中,以后同样的流就可以直接查cache
对于低端路由器,所有操作由CPU+内存处理
对于中高端设备,一般由NP 和Asic芯片完成处理
②逐包模式
每个包都进行查表后才进行转发
2.5 策略路由PBR
本地策略路由:对本设备发送的报文实现策略路由,比如本机下发的ICMP、BGP等协议报文。
当用户需要实现不同源地址的报文或者不同长度的报文通过不同的方式进行发送时,可以配置本地策略路由。
常用Policy-Based-Route工具来实现。
接口策略路由:对本设备转发的报文生效,对本机下发的报文不生效。
当用户需要将收到的某些报文通过特定的下一跳地址进行转发时,需要配置接口策略路由。使匹配重定向规则的报文通过特定的下一跳出口进行转发,不匹配重定向规则的报文则根据路由表直接转发。接口策略路由多应用于负载分担和安全监控。
常用Traffic-Policy工具来实现。
智能策略路由:基于链路质量信息为业务数据流选择最佳链路。
当用户需要为不同业务选择不同质量的链路时,可以配置智能策略路由。
2.6 路由策略以及策略路由区别
路由策略 | 策略路由 |
基于控制平面,会影响路由表表项。 | 基于转发平面,不会影响路由表表项且设备收到报文后,会先查找策略路由进行匹配转发,若匹配失败,则再查找路由表进行转发。 |
只能基于目的地址进行策略制定。 | 可基于源地址、目的地址、协议类型报文大小等进行策略制定。 |
与路由协议结合使用。 | 需手工逐跳配置,以保证报文按策略进行转发。 |
常用工具:Route-PolicyFilter-Policy等。 | 常用工具:Traffic-Filter、Traffic-Policy, Policy-Based-Route |
相关文章:
专题二十:路由策略与策略路由
一、路由策略 1.1 路由策略的概念 路由策略是通过修改路由表的路由条目来控制数据流量的可达性。即对接受和发布的路由进过滤。这种方式称为路由策略 路由策略功能相关作用控制路由的发布可通过路由策略对所要发布的路由信息进行过滤,只允许发布满足条件的路由信…...
Git 远程操作全攻略:从基础到实战
🌈 个人主页:Zfox_ 🔥 系列专栏:Git 企业级应用 目录 一:🔥 理解分布式版本控制系统 二:🔥 远程仓库 🦋 新建远程仓库🦋 克隆远程仓库🦋 向远程仓…...
VUE自动定义控件SwitchButton
<switch-button style"margin-left: 20rpx;" :buttons["一键打分", "快捷打分"] select"快捷打分" ButtonClick"SwitchButnClick"></switch-button> SwitchButton.vue <template><view class"Di…...
【数据可视化-24】巧克力销售数据的多维度可视化分析
🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...
STM32---串口通信USART
目录 一、串口通信协议 二、USART模块介绍 (1)移位寄存器 (2)控制电路 (3)波特率 (4)C语言接口 三、串口的引脚初始化 (1)引脚分布表 &…...
YOLO11改进-Backbone-引入TransXNet替换YOLO backbone 学习全局和局部动态信息,提高检测精度
Vision Transformer 的缺陷:Vision Transformer(ViT)运用多头自注意力机制在计算机视觉领域取得进展,但它缺乏卷积神经网络(CNNs)所具有的归纳偏差,导致泛化能力相对较弱。像 Swin Transformer …...
SQL 多表查询:数据整合与分析的强大工具
SQL 多表查询:数据整合与分析的强大工具 在关系型数据库中,数据通常被组织在多个表中。这种表的分离有助于减少冗余并提高数据的管理效率。然而,在实际应用中,往往需要对多个表中的数据进行整合查询,来获得更完整的信…...
MCU开发学习记录11 - ADC学习与实践(HAL库) - 单通道ADC采集、多通道ADC采集、定时器触发连续ADC采集 - STM32CubeMX
名词解释: ADC: Analog-to-Digital SAR:Successive Approximation Register 本文将介绍ADC的概念、相关函数以及STM32CubeMX生成ADC的配置函数。针对于ADC实践:单通道采集芯片内部温度传感器(ADC1_ch16)&a…...
MacOS中安装Python(homebrew,pyenv)
前言 由于MacOS中自带Python,而自带的Python关联到许多系统组件,不推荐 禁止使用自带Python 安装homebrew包管理器 homebrew官网 打开终端(terminal)输入以下命令 /bin/bash -c "$(curl -fsSL https://raw.githubusercon…...
从物理到预测:数据驱动的深度学习的结构化探索及AI推理
在当今科学探索的时代,理解的前沿不再仅仅存在于我们书写的方程式中,也存在于我们收集的数据和构建的模型中。在物理学和机器学习的交汇处,一个快速发展的领域正在兴起,它不仅观察宇宙,更是在学习宇宙。 AI推理 我们…...
新书速览|Hadoop与Spark大数据全景解析(视频教学版)
《Hadoop与Spark大数据全景解析:视频教学版》 01 本书内容 《Hadoop与Spark大数据全景解析:视频教学版》结合作者多年在大数据领域的开发实践经验,采用“理论实战”的形式,以大量实例全面介绍Hadoop和Spark的基础知识及其高级应用。作者将丰富的教学经…...
Linux:42线程控制lesson30
代码1:验证join可以去的线程执行完后的退出码/返回值 #include<iostream> #include<unistd.h> #include<pthread.h> #include<string> using namespace std;void* routine(void* arg){string name static_cast<const char*>(arg);i…...
配置 Apache 的 HTTPS
证书文件 文件名 作用 来源 example.com.key 服务器的私钥,用于加密和解密数据。 本地生成 -----BEGIN PRIVATE KEY----- MIIEowIBAAKCAQEAqp5c... -----END PRIVATE KEY----- example.com.csr Certificate Signing Request 证书签名请求文件,包…...
【Flutter高效开发】GetX指南:一文学会状态管理、路由与依赖注入
GetX是Flutter生态中最受欢迎的轻量级全能框架,以其简洁的API设计和卓越的性能著称。本文将带你全面掌握GetX的核心功能和使用技巧,提升你的Flutter开发效率。 一、GetX框架核心优势 1. 三位一体架构设计 模块功能传统方案对比状态管理响应式状态控制…...
第四节:核心概念高频题-Vue生命周期钩子变化
重命名:beforeDestroy→beforeUnmount,destroyed→unmounted 新增:onServerPrefetch(SSR场景) Vue 生命周期钩子变化详解(Vue2 → Vue3) 一、核心钩子重命名与语义优化 销毁阶段语义化升级 • …...
安全邮件系统的Maple实现详解
代码改进版: # # 安全邮件系统实现 - 结合DES和RSA加密 # 功能:实现安全的消息加密、签名和传输 # # -------------------------- # 第一部分:消息准备和加密 # --------------------------# 原始消息内容 message : "This is an atte…...
VTK-8.2.0源码编译(Cmake+VS2022+Qt5.12.12)
参考: 安装VTK 详细图文讲解CMake编译VTK,包含详细的编译环境版本 Visual Studio 2022 配置VTK9.3.0 VTK-8.2.0源码编译和初步使用(CmakeVS2015Qt5.14.2) 文章目录 下载编译编译环境介绍配置CMake信息BUILD_SHARED_LIBS控制生成的库是动态链接库…...
【playwright】学习--持续汇总
seleniumplaywrightselenium 需要结合其他自动化框架,比如pytest之后才能支持web自动化测试playwright 不需要其他自动化框架selenium库》webdriver》浏览器驱动playwright库》playwright driver》浏览器驱动 目录 安装playwright通过pip安装通过VScode安装 安装pla…...
深度解析算法之模拟
39.替换所有的问号 题目链接 给你一个仅包含小写英文字母和 ? 字符的字符串 s,请你将所有的 ? 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。 注意:你 不能 修改非 ? 字符。 题目测试用例保证 除 ? 字符 之外&#…...
leetcode刷题日记——插入区间
[ 题目描述 ]: [ 思路 ]: intervals 有序,需要将一个新的范围插入,然后进行整合方法一,将新的范围插入原 intervals 区间,然后使用 56 题的合并区间函数直接解决方法二, 找出能够包容 newInte…...
gbase8s存储学习一 rootdbs存储结构以及寻址分析
主要层次自下而上为 最小物理存储单元page ,多个page 组成逻辑存储单元extent,多个extent 组成物理存储单元chunk ,而多个chunk组成逻辑存储单元dbspace,多个dbspace 组成一个数据库实例 在数据库初始化阶段会生成一个rootdbs表空间,该表空…...
学习设计模式《五》——工厂方法模式
一、基础概念 工厂方法模式的本质是【延迟到子类来选择实现】; 工厂方法模式的定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,FactoryMethod使一个类的实例化延迟到其子类 。 工厂方法模式的功能 序号说明0工厂方法模…...
如何将 Azure Active Directory (Azure AD) 作为 SAML IdP 对接到 Keycloak
✅ 一、在 Azure AD 创建 SAML 应用 🔧 1. 登录 Azure 门户 前往 https://portal.azure.com,使用管理员账号登录。 📌 2. 创建企业应用(Enterprise Application) 左侧菜单进入 “企业应用程序”。点击 “新建应用程…...
OCR之身份证识别
前言 OCR身份证识别是光学字符识别技术在身份证领域的应用。通过扫描或拍照获取身份证图像,利用图像处理、深度学习等技术,自动提取姓名、性别、民族、出生日期、地址、身份证号等信息,可大幅提升信息录入效率,广泛应用于政务、金…...
JavaScript 渲染内容爬取:Puppeteer 高级技巧与实践
在现代网络应用中,动态网页内容的爬取一直是开发者面临的挑战之一。Puppeteer 作为一种强大的浏览器自动化工具,为这一问题提供了优雅的解决方案。本文将深入探讨 Puppeteer 的高级技巧,包括动态内容抓取、性能优化、反检测与伪装、复杂自动化…...
组织级项目管理OPM
组织级项目管理(Organizational Project Management, OPM)是一种系统化的管理方法,旨在通过整合项目组合、项目集和项目管理,确保组织的战略目标与项目执行的一致性,提升资源利用效率和项目成功率。以下是其核心内容与框架的详述: 一、组织级项目管理的定义与目标 定义 组…...
HTML与Web 性能优化:构建高速响应的现代网站
HTML 与 Web 性能优化:构建高速响应的现代网站 引言 随着互联网用户对网站加载速度期望的不断提高,前端性能优化已经成为现代 Web 开发的核心竞争力。据 Google 研究表明,页面加载时间每增加 1 秒,用户跳出率就会增加 32%。用户…...
模型 观测者效应
系列文章分享模型,了解更多👉 模型_思维模型目录。观察即影响,存在因注视而变。 1 观测者效应的应用 1.1 工业心理学—霍桑实验中的生产效率谜题 行业背景:20世纪20年代西方电气公司霍桑工厂,研究者试图通过优化照明…...
Ubuntu启动SMB(Samba)服务步骤
目录 1.基本的Samba服务器搭建流程主要分为四个步骤。 2.Samba工作流程: 3.解读主要配置文件smb.conf 4.开始安装Samba 5.检查Samba服务状态 6.创建Samba共享文件夹 7.配置Samba文件以及设置Samba用户密码 8.重启Samba服务器 9.关闭防火墙 10.Linux客户端…...
使用react的ant-design-pro框架写一个地图组件,可以搜索地图,可以点击地图获取点击的位置及经纬度
首先,先创建一个地图页面,用于显示地图组件,我是在pages文件中创建了一个mapSearch组件。 然后在routes.ts中注册页面。 {path: /mapSearch,name: mapSearch,icon: smile,component: ./mapSearch,}, 第三步就是使用高德地图来创建地图。 关键…...
【每日八股】复习计算机网络 Day4:TCP 协议的其他相关问题
文章目录 昨日内容复习已经建立了 TCP 连接,客户端突然出现故障怎么办?什么时候用长连接?短连接?TCP 的半连接队列与全连接队列?什么是 SYN 攻击?如何避免?TIME_WAIT 的作用?过多如何…...
Git远程操作与标签管理
目录 1.理解分布式版本控制系统 2.远程仓库 3.新建远程仓库 4.克隆远程仓库 5.向远程仓库推送 6.拉取远程仓库 7.配置Git 7.1.忽略特殊文件 7.2.给命令配置别名 8.标签管理 8.1.理解标签 8.2.创建标签 8.3.操作标签 1.理解分布式版本控制系统 Git是目前世界上…...
Element Plus消息通知体系深度解析:从基础到企业级实践
一、核心组件与技术定位 Element Plus的消息通知体系由三个核心组件构成:ElMessage(全局提示)、ElNotification(通知弹窗)和ElMessageBox(交互式对话框)。这套体系的设计目标是为开发者提供轻量…...
SpringCloud组件——Eureka
一.背景 1.问题提出 我们在一个父项目下写了两个子项目,需要两个子项目之间相互调用。我们可以发送HTTP请求来获取我们想要的资源,具体实现的方法有很多,可以用HttpURLConnection、HttpClient、Okhttp、 RestTemplate等。 举个例子&#x…...
[Godot] C#2D平台游戏基础移动和进阶跳跃代码
本文章给大家分享一下如何实现基本的移动和进阶的跳跃(跳跃缓冲、可变跳跃、土狼时间)以及相对应的重力代码,大家可以根据自己的需要自行修改 实现效果 场景搭建 因为Godot不像Unity,一个节点只能绑定一个脚本,所以我…...
C语言对n进制的处理
先看一道题目: 从键盘获取一个正整数,如果把它转为16进制的数字,那么它是一个几位数呢?如果把它转为28进制又是一个几位数呢? 在讲这个题目之前,我们先要了解进制转换 什么是进制转换? 简单来说,进制就是数位的表示方法。 十进制(常用&am…...
rk3568main.cc解析
rk3568main.cc解析 前言解析总结前言 正点原子rk3568学习,rk官方RKNN_MODEL_ZOO文件中 rknn_model_zoo-main/examples/mobilenet/cpp/main.cc 从执行命令:./build-linux.sh -t rk3568 -a aarch64 -d mobilenet 到: cmake ../../examples/mobilenet/cpp \-DTARGET_SOC=rk3…...
【白雪讲堂】[特殊字符]内容战略地图|GEO优化框架下的内容全景布局
📍内容战略地图|GEO优化框架下的内容全景布局 1️⃣ 顶层目标:GEO优化战略 目标关键词: 被AI理解(AEO) 被AI优先推荐(GEO) 在关键场景中被AI复读引用 2️⃣ 三大引擎逻辑&#x…...
S32K144学习(16)-Bootloader
1.什么是bootloader Bootloader(引导加载程序) 是存储在设备非易失性存储器(如 ROM、Flash)中的一段特殊程序,负责在设备上电后初始化硬件、加载操作系统(OS)或用户应用程序,并最终…...
反素数c++
先上代码 #include<bits/stdc.h> using namespace std; typedef long long ll; ll n; ll p[]{2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53}; int maxd,maxval; void dfs(int pl,ll tmp,int num,int up){ if((num>maxd)||(nummaxd&&maxval>tmp)){ …...
C++ linux打包运行方案(cmake)
文章目录 背景动态库打包方案动态库转静态库动态库打到软件包中 运行 背景 使用C编写的一个小项目,需要打包成ubuntu下的可执行文件,方便分发给其他ubuntu执行,因为docker镜像方案过于臃肿,所以需要把项目的动态库都打在软件包中…...
JavaScript 渲染内容爬取实践:Puppeteer 进阶技巧
进一步探讨如何使用 Puppeteer 进行动态网页爬取,特别是如何等待页面元素加载完成、处理无限滚动加载、单页应用的路由变化以及监听接口等常见场景。 一、等待页面元素加载完成 在爬取动态网页时,确保页面元素完全加载是获取完整数据的关键。Puppeteer…...
AI数字人:元宇宙舞台上的闪耀新星(7/10)
摘要:AI数字人作为元宇宙核心角色,提升交互体验,推动内容生产变革,助力产业数字化转型。其应用场景涵盖虚拟社交、智能客服、教育、商业营销等,面临技术瓶颈与行业规范缺失等挑战,未来有望突破技术限制&…...
测试基础笔记第九天
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、数据类型和约束1.数据类型2.约束3.主键4.不为空5.唯一6.默认值 二、数据库操作1.创建数据库2.使用数据库3.修改数据库4.删除数据库和查看所有数据库5.重点&…...
C++抽象基类定义与使用
在 C 中,抽象基类(Abstract Base Class, ABC) 是一种特殊的类,用于定义接口规范和约束派生类的行为。它通过纯虚函数(Pure Virtual Function)强制要求派生类实现特定功能,自身不能被实例化。以下…...
20.4 显示数据库数据
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的 20.4.1 设计时进行简单绑定 【例 20.22】【项目:code20-022】设计时关联数据库。 设计时设置DataGridView的DataSource属…...
PyTorch 多 GPU 入门:深入解析 nn.DataParallel 的工作原理与局限
当你发现单个 GPU 已经无法满足你训练庞大模型或处理海量数据的需求时,利用多 GPU 进行并行训练就成了自然的选择。PyTorch 提供了几种实现方式,其中 torch.nn.DataParallel (简称 DP) 因其使用的便捷性,常常是初学者接触多 GPU 训练的第一站…...
UDP协议理解
文章目录 UDP协议理解UDP 协议的特点:UDP协议图示UDP 的头部结构:UDP数据传输图示 UDP 的应用场景:TCP 与UDP对比UDP的传输丢包和顺序错乱问题(了解)丢包的解决方法:顺序错乱的解决方法:综合应用…...
微信小程序拖拽排序有效果图
效果图 .wxml <view class"container" style"--w:{{w}}px;" wx:if"{{location.length}}"><view class"container-item" wx:for"{{list}}" wx:key"index" data-index"{{index}}"style"--…...
算力网络的早期有关论文——自用笔记
2023年底至2024年初阅读有关论文的自用笔记,作为参考。 算力网络架构 https://baijiahao.baidu.com/s?id1727377583404975414&wfrspider&forpc think¬e 是否可以和cpu进程调度联系。 目前:看一些综述深一步了解背景和发展现状,完善认…...