开放最短路径优先 - OSPF【LSA详细】
目录
LSA的头部结构
LSA类型
LSA数据包
LSA的主要作用是传递路由信息。
LSA的头部结构
共占20个字节,不同类型的LSA头部字段部分都是相同的。
-
链路状态老化时间(Link-State Age)
-
2个字节。指示该条LSA的老化时间,即它存在了多长时间,单位为秒。
-
正常情况下,一条LSA的存在时间为1800秒。计时达到1800秒时归零,开始重新计时。
-
最大老化时间为3600秒。当一条LSA计时达到3600秒时,会被认定为失效,将从本地LSDB中删除。
-
当网络拓扑变更时,有关的LSA不论计时多少,都将会立即更新。
-
-
可选项(Options)
-
1个字节。每一个比特位都对应了OSPF 所支持的某种特性。和hello包中的一样,包含特殊区域标记。
-
E:是否允许泛洪AS-External-LSA(5类LSA)。
-
MC:转发IP组播报文。
-
N/P:处理Type-7 LSA。
-
DC:处理按需链路。
-
-
-
链路状态类型(Link-State Type)
-
1个字节。指示本条LSA的类型。每种 LSA用于描述OSPF 网络的某个部分,所有的LSA类型都定义了相应的类型编号。
-
Type1:Router-LSA
-
Type2:Network-LSA
-
Type3:Network-summary-LSA
-
Type4:ASBR-summary-LSA
-
Type5:AS-External-LSA
-
Type7:NSSA-LSA
-
-
-
链路状态ID(Link-State ID)
-
4个字节。LSA的标识。不同的LSA类型,对该字段的定义是不同的。作用是与LSA数据包中的LS Type和LSA description一起描述一个LSA。
-
-
通告路由器(Advertising Router)
-
4个字节。始发路由器, 产生该LSA的路由器的Router-ID。
-
-
链路状态序列号(Link-Sate Sequence Number)
-
4个字节。该LSA的序列号,该字段用于判断LSA的新旧或是否存在重复。一般存储在LSDB中的LSA的序列号都是最新的。
-
-
链路状态校验和(Link-State Checksum)
-
2个字节。验证数据真实性。
-
校验和会参与LSA的新旧比较。当两条LSA三元组相同,并且序列号也相同时,则可以使用校验和比较,和大的认定为新。
-
-
长度(Length)
-
2个字节。一条LSA的总长度(包括包头)。
-
LSA类型
这里只介绍6种常用LSA。
-
Router-LSA(1类)
-
描述区域内部每一个路由器与其直连的路由器的链路信息(包括链路类型、开销值等)。
-
这类LSA仅在区域内传递。
-
每一台路由器都会产生这类LSA。
-
-
Network-LSA(2类)
-
描述区域内的MA网络(广播网络、NBMA网络)链路的路由器及掩码信息,仅在区域内部传输。
-
仅在区域内传输。
-
只由DR产生。
-
-
Summary-LSA(3类)
-
在整个OSPF区域内,描述其他区域的链路信息。
-
以子网形式传播,类似于转递路由信息。
-
只由ABR产生。
-
该类LSA跨区域传播时,因转发时的通告路由器不同,故与非跨区域传输情况下相比,虽然描述的是同样的信息,但不是同一条LSA。
-
-
Asbr-summary-LSA(4类)
-
描述到ASBR的信息。
-
只由ABR产生,且在ASBR本区域内的路由器不会产生到达该ASBR设备的4类LSA。
-
-
AS-extenal-LSA(5类)
-
传递域外路由信息。
-
描述AS外部引入的路由信息,会传播到AS内的所有区域(除特殊区域)。
-
只由ASBR产生。
-
5类LSA生成的路由信息标志为O_ASE,优先级为150。
-
-
NSSA-LSA(7类)
-
描述在NSSA区域引入的AS外部路由信息。
-
由NSSA区域的自治域边界路由器ASBR产生。
-
只出现在NSSA和Totally-NSSA区域,不进入区域0(骨干区域)。
-
7类LSA生成的路由信息标志为O_NSSA,优先级为150。
-
LSA数据包
1类LSA(Router-LSA)
该类型LSA头部中的链路状态ID(Link-State ID)为生成LSA的Router ID。
-
0(无含义)
-
标志位
-
V位(Virtual Link Endpoint Bit):如果该位置为1,表示该路由器为Virtual Link的端点。路由器启用虚链路功能,该位会被置为1。
-
E位(External Bit):该位置为1,则表示该路由器为自治系统边界路由器(ASBR)。
-
B位(Border Bit):该位置为1,则表示该路由器为区域边界路由器(ABR)。
-
-
0(无含义)
-
链路数量(links)
-
该条LSA描述的链路信息数量,包括路由器上处于某区域中的所有链路和接口。
-
-
链路ID(Link ID)
-
路由器所接入的目标,其值取决于连接的类型。
-
当链路类型为Trans net时
-
该字段为本网络的DR的IP地址。
-
-
当链路类型为P2P时
-
该字段为该网段对端的路由器的Router id。
-
-
当链路类型为末梢网络时
-
该字段为该网段的网络地址。
-
-
当链路类型为虚拟链路时
-
该字段为虚链路邻居的Router id。
-
-
-
链路数据(Link Data)
-
连接数据,其值取决于连接的类型。
-
当链路类型为Trans net时
-
该字段为本路由器在该网段的IP地址。
-
-
当链路类型为P2P时
-
该字段为本路由器在该网段的与对端路由器相连的接口IP地址。
-
-
当链路类型为末梢网络时
-
该字段为该网段的子网掩码。
-
-
当链路类型为虚拟链路时
-
该字段为去往该虚连接邻居的本地接口的IP地址。
-
-
-
链路类型(Type)
-
描述该接口的二层类型
-
值为1表示该路由器是点到点连接到另一台路由器,即P2P网络(PPP)。
-
值为2表示该路由器是连接到传输网络,即Trans net网络(NBMA或者广播网络)。
-
值为3表示该路由器是连接到stub网络,即末梢网络(P2P或者环回口,由Data中的子网掩码判断具体类型,只有环回口能有32位的掩码)。
-
值为4表示是虚拟链路(虚链路)。
-
-
-
TOS的数量
-
连接不同的TOS数量。
-
-
度量值(metric)
-
链路的开销值。
-
-
TOS
-
服务类型。
-
-
0(无含义)
-
TOS度量(TOS metric)
-
和指定TOS值相关联的度量。
-
-
链路ID、链路数据……
-
描述下一条链路信息。
-
2类LSA(Network-LSA)
该类型LSA头部中的链路状态ID(Link-State ID)为DR的接口IP地址。
-
网络掩码(Network Mask)
-
该MA网络中的网络地址掩码信息。
-
-
连接路由器(Attached Router)
-
连接在同一个网络上的所有路由器的Router ID。如果有多台路由器接入 MA 网络,就使用多个字段描述。
-
3类LSA(Summary-LSA)和4类LSA(Asbr-summary-LSA)
3类和4类LSA具有相同的格式,它们都是由ABR产生。
Summary-LSA中,LSA头部中的链路状态ID(Link-State ID)为通告的网络地址。
ASBR Summary LSA中,LSA头部中的链路状态ID(Link-State ID)表示ASBR的Router ID。
-
网络掩码(Network Mask)
-
Summary-LSA中,该MA网络中的网络地址掩码信息。
-
ASBR-Summary-LSA中,此字段无意义,设置为0.0.0.0(RFC规定)。
-
-
度量值(metric)
-
Summary-LSA中,为ABR到达目的地址的开销值。
-
ASBR-Summary-LSA中,为ABR 自己到达 ASBR 的开销值。
-
-
TOS
-
服务类型。
-
-
TOS metric
-
和指定TOS值相关联的度量。
-
-
注意
-
在通告缺省路由时,Link State ID和Network Mask都设置为0.0.0.0。
-
5类LSA(AS-External-LSA)
该类型LSA头部中的链路状态ID(Link-State ID)为通告的网络地址。
-
网络掩码(Network Mask)
-
通告的目的地址掩码信息。
-
-
E
-
外部度量值类型
-
0代表为第一类外部路由。
-
1代表为第二类外部路由。
-
-
-
度量值(metric)
-
到达目的地址的开销值。
-
-
转发地址(Forwarding Address)
-
到所通告的目的地址的报文将被转发到这个地址。
-
该字段如果非0,数据包直接发往FA地址(通常为ASBR的下游接口地址),如果为0,数据包发往ASBR的Router ID。
-
-
外部路由标签(External Route Tag)
-
添加到外部路由上的标记。OSPF本身并不使用这个字段,它可以用来对外部路由进行管理(如与路由策略配合等)。
-
-
TOS
-
服务类型。
-
-
TOS metric
-
TOS附加的距离信息。
-
-
注意
-
AS-External-LSA的LSA可以用来通告缺省路由,此时Link State ID和Network Mask都设置为0.0.0.0。
-
7类LSA(NSSA-LSA)
7类和5类LSA的报文格式基本一样。
-
需要要注意的是,NSSA-LSA数据包中具有一个传播位(P-bit),由ASBR设置,该字段置1时,ABR会将此7类LSA转换为5类LSA。为0时,则仅保留在NSSA内部,不转换。
相关文章:
开放最短路径优先 - OSPF【LSA详细】
目录 LSA的头部结构 LSA类型 LSA数据包 LSA的主要作用是传递路由信息。 LSA的头部结构 共占20个字节,不同类型的LSA头部字段部分都是相同的。 链路状态老化时间(Link-State Age) 2个字节。指示该条LSA的老化时间,即它存在了多长时间,单位…...
PyTorch:解锁AI新时代的钥匙
揭开PyTorch面纱 对于许多刚开始接触人工智能领域的朋友来说,PyTorch这个名字或许既熟悉又陌生。熟悉在于它频繁出现在各类技术论坛和新闻报道中;而陌生则源于对这样一个强大工具背后运作机制的好奇。简单来说,PyTorch是一个开源库ÿ…...
欧几里得算法求最大公约数、最小公倍数
这段代码就是不断用较小数和余数来更新 a 和 b,直到余数变为 0,最后返回的 a 就是最大公约数。 #include <iostream> using namespace std;//最大公约数 int gcd(int a, int b){//这个循环表示只要 b 不是 0,就继续进行。//因为当 b …...
QEMU源码全解析 —— 块设备虚拟化(14)
接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(13) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 特此致谢! 上一回开始解析VirtioDeviceClass的realize函数virtio_blk_device_realize(),再来回…...
深入理解AOP:面向切面编程的核心概念与实战应用
🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…...
3500 阶乘求和
3500 阶乘求和 ⭐️难度:中等 🌟考点:2023、思维、省赛 📖 📚 import java.util.Scanner;public class Main {public static void main(String[] args) {long sum 0;for(int i1;i<50;i) { // 之后取模都相等su…...
正则入门到精通
一、正则表达式入门 正则表达式本质上是一串字符序列,用于定义一个文本模式。通过这个模式,我们可以指定要匹配的文本特征。例如,如果你想匹配一个以 “abc” 开头的字符串,正则表达式可以写作 “^abc”,其中 …...
Mysql 行级锁在什么样的情况下会升级为表级锁?
在 MySQL 中,行级锁通常由 InnoDB 存储引擎使用,因为它支持高并发和细粒度的锁定。通常情况下,InnoDB 在执行诸如 UPDATE、DELETE 或 SELECT FOR UPDATE 等操作时,会为被修改的数据行加锁(行级锁)。但是&am…...
docker部署kkfileview
拉取 KKFileView 镜像 docker pull keking/kkfileview或指定版本 docker pull keking/kkfileview:4.1.0运行 KKFileView 容器 docker run -d \--name kkfileview \-p 8012:8012 \--restart always \keking/kkfileview-d:后台运行 -p 8012:8012:将容器…...
优选算法的妙思之流:分治——快排专题
专栏:算法的魔法世界 个人主页:手握风云 目录 一、快速排序 二、例题讲解 2.1. 颜色分类 2.2. 排序数组 2.3. 数组中的第K个最大元素 2.4. 库存管理 III 一、快速排序 分治,简单理解为“分而治之”,将一个大问题划分为若干个…...
蓝桥杯嵌入式第15届真题-个人理解+解析
个人吐槽 #因为最近蓝桥杯快要开始了,我舍不得米白费了,所以就认真刷刷模拟题,但是我感觉真题会更好,所以就看了一下上届的真题。不过它是真的长,我看着就头晕,但是还是把几个模块认真分析了一下就还是很容…...
数据库系统概述 | 第二章课后习题答案
本文为数据库系统概论(第五版)【高等教育出版社】部分课后答案 如有错误,望指正 👻 习题 👻 答案...
深入解析CPU主要参数:选购与性能评估指南
引言 中央处理器(CPU)作为计算机的"大脑",其性能直接决定了整机的运算能力和响应速度。无论是组装新电脑、升级旧系统还是选购笔记本电脑,理解CPU的关键参数都至关重要。本文将从技术角度全面解析CPU的各项主要参数&am…...
Lettuce与Springboot集成使用
一、Lettuce核心优势与Spring Boot集成背景 Lettuce特性 基于Netty的非阻塞I/O模型,支持同步/异步/响应式编程线程安全:共享单连接实现多线程并发操作,性能衰减低原生支持Redis集群、哨兵、主从架构,自动重连机制保障高可用Spring…...
【Kafka基础】ZooKeeper在Kafka中的核心作用:分布式系统中枢神经系统
在分布式系统的世界里,协调和管理多个节点间的状态是一项复杂而关键的任务。Apache Kafka作为一款高性能的分布式消息系统,其设计哲学是"专为单一目的而优化"——即高效处理消息流。为了实现这一目标,Kafka选择将集群协调管理的重任…...
专业的情商测评工具:EQ-i在线测评系统
专业的情商测评工具:EQ-i在线测评系统 基于巴昂情商量表的专业情商评估工具,帮助您更好地了解自己的情商水平。 什么是EQ-i? EQ-i(Emotional Quotient Inventory)是由Reuven Bar-On开发的情商量表,是国际上…...
Ubuntu安装Podman教程
1、先修改apt源为阿里源加速 备份原文件: sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup 修改源配置: vim sources.list删除里面全部内容后,粘贴阿里源: deb http://mirrors.aliyun.com/ubuntu/ focal main re…...
7.训练篇5-毕设
使用23w张数据集-vit-打算30轮-内存崩了-改为batch_size 8 我准备用23w张数据集,太大了,这个用不了,所以 是否保留 .stack() 加载所有图片?情况建议✅ 小数据集(<2w张,图像小)想加快速度可…...
java数据结构-哈希表
什么是哈希表 最理想的搜索方法 , 即就是在查找某元素时 , 不进行任何比较的操作 , 一次直接查找到需要搜索的元素 , 可以达到这种要求的方法就是哈希表. 哈希表就是通过构造一种存储结构 , 通过某种函数使元素存储的位置与其关键码位形成一 一映射的关系 , 这样在查找元素的时…...
Linux错误(6)X64向量指令访问地址未对齐引起SIGSEGV
Linux错误(6)X64向量指令访问地址未对齐引起SIGSEGV Author: Once Day Date: 2025年4月4日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: Linux实…...
SpringBoot配置文件多环境开发
目录 一、设置临时属性的几种方法 1.启动jar包时,设置临时属性 2.idea配置临时属性 3.启动类中创建数组指定临时属性 二、多环境开发 1.包含模式 2.分组模式 三、配置文件的优先级 1.bootstrap 文件优先: 2.特定配置文件优先 3.文件夹位置优…...
解锁健康密码:拥抱活力养生生活
在追求高品质生活的今天,健康养生成为了人们关注的焦点。它不仅关乎当下的生活质量,更是对未来的有力投资。 合理的饮食是健康养生的基石。一日三餐,应遵循 “五谷为养,五果为助,五畜为益,五菜为充” 的原则…...
手动将ModelScope的模型下载到本地
一、ModelScope 介绍 ModelScope 官网地址: https://www.modelscope.cn/home 模型库地址:https://www.modelscope.cn/models 文档中心:https://www.modelscope.cn/docs/home ModelScope旨在打造下一代开源的模型即服务共享平台,为…...
【Git】“warning: LF will be replaced by CRLF”的解决办法
一、原因分析 不同操作系统的换行符标准不同: • Windows:使用 CRLF(\r\n)表示换行; • Linux/Mac:使用 LF(\n)表示换行 Git 检测到本地文件的换行符与仓库设置或目标平台不兼容时…...
Linux常用基础命令应用
目录 一、文件与目录管理 1. 基础导航与查看 2. 文件操作核心命令 二、文本处理与日志分析 1. 查看与过滤 2. 组合命令与管道 三、系统管理与权限控制 1. 进程与资源监控 2. 权限与用户管理 四、网络与远程操作 1. …...
C++11可变参数模板单例模式
单例模式 该示例代码采用C11标准,解决以下问题: 通过类模板函数实现不同类型单例;单例类构造函数支持不同的个数;消除代码重复 示例代码 .h文件如下: //C11Singleton.h文件 #pragma oncetemplate <typename T&…...
JVM 有哪些垃圾回收器
垃圾收集算法 标记-复制算法(Copying): 将可用内存按容量划分为两个区域,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面, 然后再把已使用过的内存空间一次清理掉。 标记-清除算法(Mark-Sweep): 算法分为“标记” 和“清除”两个…...
6. 链式结构(Chain)的奥秘:从LLMChain到RouterChain
引言:从“单兵作战”到“流水线革命” 2023年某电商平台客服系统因处理复杂咨询需手动串联多个AI模块,平均响应时间长达12秒。引入LangChain链式架构后,工单处理速度提升8倍,错误率下降45%。本文将深入解析链式编程范式ÿ…...
TypeScript语言的操作系统原理
TypeScript语言的操作系统原理 引言 操作系统是计算机系统中最重要的组成部分之一,它为应用程序提供了一个运行环境,并管理着计算机硬件和软件资源。随着编程语言的发展,特别是TypeScript的流行,许多开发者开始探索将这种强类型…...
时间序列入门
时间序列入门 第一章 时间序列概述1.1 时间序列简介1.1.1 时间序列定义1.1.2 时间序列分量1.1.3 时间序列分类 第二章 时间序列绘图2.1 单变量时序绘制2.2 多变量时序绘制 第一章 时间序列概述 1.1 时间序列简介 1.1.1 时间序列定义 在进行时间序列之前,需要学习…...
VirtualBox安装FnOS
1.下载FnOS镜像 下载网址: https://www.fnnas.com/2.创建虚拟机 虚拟机配置如图所示(注意操作系统类型和网卡配置) (注意启动顺序) 3.启动虚拟机 网卡类型选择桥接的Virtual Adapter 如果没有IP地址或者IP地址无法…...
函数栈帧的创建与销毁
函数栈帧的创建与销毁 函数栈帧简介认识寄存器解析函数栈帧的创建与销毁 函数栈帧简介 我们在编程的过程中经常会听见函数栈帧这个词汇,那到底什么是函数栈帧呢?接下来就为大家解答一下,我们都知道,一个函数的创建是需要去开辟空…...
Scheme语言的算法
Scheme语言的算法探索 引言 Scheme是一种以表达式为基础的编程语言,属于Lisp家族,因其简洁、灵活的语法而受到广泛关注。Scheme不仅适合教学,还被用于实际应用开发和研究。本文将深入探讨Scheme语言的算法,包括其基本特性、常用…...
[C++面试] new、delete相关面试点
一、入门 1、说说new与malloc的基本用途 int* p1 (int*)malloc(sizeof(int)); // C风格 int* p2 new int(10); // C风格,初始化为10 new 是 C 中的运算符,用于在堆上动态分配内存并调用对象的构造函数,会自动计算所需内存…...
(回滚莫队)洛谷 P10268 符卡对决 题解
居然还没调出来?感觉是数据类型的问题,真是吓人。先把思路写一下吧。 题意 灵梦一共有 n n n 张符卡,每张卡都有一个能力值,对于第 i i i 张卡,它的能力值为 a i a_i ai,现在她想从中选出两张符卡并…...
C语言复习笔记--指针(3)
接上篇文章C语言复习笔记--指针(2)-CSDN博客我们继续进行指针的复习. 二级指针 指针变量也是变量,是变量就有地址,那指针变量的地址取出来后要存在在什么变量中呢?这就是⼆级指针. ⼆级指针的运算见下: 指针数组 指针数组概念 既然要联系数组和指针就涉…...
Fastjson 处理 JSON 生成与解析指南
Fastjson 是阿里巴巴开源的高性能 JSON 库,适用于 Java 对象的序列化(生成 JSON)和反序列化(解析 JSON)。以下是详细使用指南: 1. 添加依赖 <dependency><groupId>com.alibaba</groupId>…...
深度学习数据集划分比例多少合适
在机器学习和深度学习中,测试集的划分比例需要根据数据量、任务类型和领域需求灵活调整。 1. 常规划分比例 通用场景 训练集 : 验证集 : 测试集 60% : 20% : 20% 适用于大多数中等规模数据集(如数万到数十万样本),平衡了训练数…...
查询当前用户的购物车和清空购物车
业务需求: 在小程序用户端购物车页面能查到当前用户的所有菜品或者套餐 代码实现 controller层 GetMapping("/list")public Result<List<ShoppingCart>> list(){List<ShoppingCart> list shoppingCartService.shopShoppingCart();r…...
大模型如何引爆餐饮与电商行业变革
大模型如何引爆餐饮与电商行业变革? 一、时代背景:大模型重构产业逻辑的底层动力 1. 技术跃迁催生效率革命 2025年,大模型技术迎来"普惠临界点"。李开复在中关村论坛指出,大模型推理成本每年降低10倍,使得…...
【MySQL】01.MySQL环境安装
注意:在MYSQL的安装与卸载中,需要使用root用户进行。 一、卸载不必要的环境 • 查看是否有运行的服务 [rootVM-24-10-centos etc]# ps axj |grep mysql1 22030 22029 22029 ? -1 Sl 27 0:00 /usr/sbin/mysqld --daemonize --pid-fi…...
java 匿名内部类 和 Lambda 表达式
java 匿名内部类 和 Lambda 表达式 一、匿名内部类1.1说明1.2 匿名内部类的作用1.3 特点1.4 接口的正常使用情况(抽象类同理)1.5 通过局部内部类使用接口(抽象类同理)1.6 通过匿名内部类使用接口(抽象类同理࿰…...
Linux系统调用编程
进程和线程 进程是操作系统资源分配的基本单位,拥有独立的地址空间、内存、文件描述符等资源,进程间相互隔离。每个进程由程序代码、数据段和进程控制块(PCB)组成,PCB记录了进程状态、资源分配等信息。 线程是…...
Redis 数据类型详解
Redis 数据类型详解 Redis 是一个高性能的键值存储系统,支持多种数据类型,每种类型都有其特定的使用场景和操作命令。以下是 Redis 主要数据类型的详细介绍: 一、基本数据类型 1. String(字符串) 特点:…...
orangepi zero烧录及SSH联网
下载对应版本的armbian镜像 armbian的默认用户root,默认密码:1234 下载烧录工具win32diskimager https://sourceforge.net/projects/win32diskimager/files/Archive/ 插入16G以上TF卡,使用win32diskimager烧录armbian镜像 烧录完毕后用l…...
七均线策略思路
一种基于移动平均线的交易策略,具体如下: 1. 移动平均线计算: 计算了六个不同周期的收盘价移动平均值,分别为MA5、MA10、MA20、MA30、MA40和MA60。 2. 买入条件(BK): 当满足以下所有条件时执行买…...
【python脚本】基于pyautogui的python脚本
一、什么是自动化 自动化是指使用技术手段模拟人工,执行重复性任务。准确率100%,高于人工。 自动化应用场景: 自动化测试自动化运维自动化办公自动化游戏 二、pyautogui的使用 先使用 pip install pyautogui 指令安装这个第三方库 2.1 …...
人工智能时代人才培养的变革路径:模式创新、能力重塑与认证赋能
在科技日新月异的今天,人工智能(AI)已成为推动社会进步与经济发展的核心力量。从自动驾驶到医疗诊断,从金融分析到教育创新,AI的触角已延伸至人类生活的每一个角落。这一变革不仅重塑了产业格局,更对人才培养提出了前所未有的挑战与机遇。在人工智能时代,如何培养适应未…...
xpath定位
一、路径符号核心区别(表格速查) 符号名称作用范围典型使用场景性能影响/单斜杠./ 相对路径直接子级, /绝对路劲-根路径精确层级定位高效//双斜杠//当前元素下开始查找,可以跨嵌套层模糊层级/跨嵌套定位较低效 一、XPath基础定位类型&#…...
Python列表(List)深度解析
列表(List)是Python中最基础且强大的数据结构之一,但它的底层实现和特性远比表面看起来复杂。本文将深入探讨列表的各个方面。 1. 列表基础特性 1.1 可变序列类型 lst [1, 2, 3] lst[1] 20 # 可变性1.2 异构容器 mixed [1, "hello", 3.14, [1, 2]…...