IS-IS
二、IS-IS中的DIS与OSPF中的DR
Level-1和Level-2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级。DIS的选举规则如下:DIS优先级数值最大的被选为DIS。如果优先级数值最大的路由器有多台,则其中MAC地址最大的路由器会成为DIS。DIS发送Hello PDU的时间间隔是普通路由器的1/3,这样可以确保DIS出现故障时能够被更快速地被发现。IS-IS中DIS与OSPF协议中DR(Designated Router)的区别:在IS-IS广播网中,优先级为0的路由器也参与DIS的选举,而在OSPF中优先级为0的路由器则不参与DR的选举。在IS-IS广播网中,当有新的路由器加入,并符合成为DIS的条件时,这个路由器会被选中成为新的DIS,原有的伪节点被删除。此更改会引起一组新的LSP泛洪。而在OSPF中,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR。在IS-IS广播网中,同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系。而在OSPF中,路由器只与DR和BDR建立邻接关系。
伪节点ID:当该参数不为零时,表示该LSP为伪节点生成。
CSNP包含该设备LSDB中所有的LSP摘要,路由器通过交互 CSNP来判断是否需要同步LSDB。在广播网络上,CSNP由DIS定期发送(缺省的发送周期为10秒)。
三、实验配置
ISIS 刷新时间 15分钟
ISIS 老化时间 20分钟
level1路由计算:
R1是Level-1路由器,只维护Level-1 LSDB,该LSDB中包含同属一个区域的R2及R3以及R1自己产生的Level-1 LSP。
R1根据LSDB中的Level-1 LSP计算出Area 49.0123内的拓扑,以及到达区域内各个网段的路由信息。
R2及R3作为Area 49.0123内的Level-1-2路由器,会在它们向该区域下发的Level-1 LSP中设置ATT标志位,用于向区域内的Level-1路由器宣布可以通过自己到达其他区域。 R1作为Level-1路由器,会根据该ATT标志位,计算出指向R2或R3的默认路由。
[r1]isis 100
[r1-isis-100]network-entity 49.0123.0000.0000.0001.00
[r1-isis-100]is-level level-1
[r1-isis-100]q
[r1]int g0/0/0
[r1-GigabitEthernet0/0/0]isis enable 100
[r1-GigabitEthernet0/0/0]q
[r1]dis ip routing-table
[R2]isis 100
[R2-isis-100]network-entity 49.0123.0000.0000.0002.00
[R2-isis-100]is-level level-1-2
[R2-isis-100]q
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]isis enable 100
[R2-GigabitEthernet0/0/0]q
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]isis enable 100
[R2-GigabitEthernet0/0/1]q
[R3]isis 100
[R3-isis-100]network-entity 49.0123.0000.0000.0003.00
[R3-isis-100]is-level level-1-2
[R3-isis-100]q
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]isis enable 100
[R3-GigabitEthernet0/0/0]q
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]isis enable 100
[R3-GigabitEthernet0/0/1]q
[R4]isis 100
[R4-isis-100]network-entity 49.0045.0000.0000.0004.00
[R4-isis-100]is-level level-2
[R4-isis-100]q
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]isis enable 100
[R4-GigabitEthernet0/0/0]q
[R4]int g0/0/1
[R4-GigabitEthernet0/0/1]isis enable 100
[R4-GigabitEthernet0/0/1]q
[R4]int g0/0/2
[R4-GigabitEthernet0/0/2]isis enable 100
[R4-GigabitEthernet0/0/2]q
[R5]isis 100
[R5-isis-100]network-entity 49.0045.0000.0000.0005.00
[R5-isis-100]is-level level-2
[R5-isis-100]q
[R5]int g0/0/0
[R5-GigabitEthernet0/0/0]isis enable 100
[R5-GigabitEthernet0/0/0]q
[R5]isis 100
[R5-isis-100]import-route direct
[R4]int g0/0/1
[R4-GigabitEthernet0/0/1]isis cost 15 //修改接口cost值
[R4-GigabitEthernet0/0/1]q
[R4]dis ip routing-table
路由渗透:
缺省情况下,Level-1-2路由器不会将到达其他区域的路由通告本Level-1区域中。通过路由渗透,可以将区域间路由通过Leve-1-2路由器传递到Level-1区域,此时Leve-1路由器可以学习到其他区域的详细路由,从而计算出最优路径。
[R3]isis 100
[R3-isis-100]import-route isis level-2 into level-1 [r1]dis isis brief
ISIS Protocol Information for ISIS(100)
---------------------------------------
SystemId: 0000.0000.0001 System Level: L1
Area-Authentication-mode: NULL
Domain-Authentication-mode: NULL
Ipv6 is not enabled
ISIS is in invalid restart status
ISIS is in protocol hot standby state: Real-Time Backup
Interface: 192.168.123.1(GE0/0/0)
Cost: L1 10 L2 10 Ipv6 Cost: L1 10 L2 10
State: IPV4 Up IPV6 Down
Type: BROADCAST MTU: 1497
Priority: L1 64 L2 64
Timers: Csnp: L1 10 L2 10 ,Retransmit: L12 5 , Hello: L1 10 L2 10 ,
Hello Multiplier: L1 3 L2 3 , LSP-Throttle Timer: L12 50
[R2]dis isis peer
Peer information for ISIS(100)
System Id Interface Circuit Id State HoldTime Type PRI
0000.0000.0001 GE0/0/0 0000.0000.0003.01 Up 22s L1 64
0000.0000.0003 GE0/0/0 0000.0000.0003.01 Up 7s L1(L1L2) 64
0000.0000.0003 GE0/0/0 0000.0000.0003.01 Up 8s L2(L1L2) 64
0000.0000.0004 GE0/0/1 0000.0000.0004.01 Up 7s L2 64
备注:查看ISIS 邻居关系的时候,circuit .id 为当前邻居关系中 DIS
[r1]dis isis lsdb
Database information for ISIS(100)
----------------------------------
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
0000.0000.0001.00-00* 0x00000010 0xa07f 582 70 0/0/0
0000.0000.0002.00-00 0x00000013 0xafb8 959 112 1/0/0
0000.0000.0003.00-00 0x00000013 0xa1b7 879 86 1/0/0
0000.0000.0003.01-00 0x0000000d 0x5697 879 66 0/0/0
备注:systemID 后面的01 为非0时 ,表明此条LSP由 DIS产生 ,*表示当前设备自己产生的LSP
[R3]dis isis interface
Interface information for ISIS(100)
-----------------------------------
Interface Id IPV4.State IPV6.State MTU Type DIS
GE0/0/0 001 Up Down 1497 L1/L2 Yes/Yes
GE0/0/1 002 Up Down 1497 L1/L2 No/Yes
备注: 通过此条命令,能够看到当前接口在L1 邻居关系上是不是DIS ,以及当前接口在L2邻居关系上是不是DIS
配置DIS:
[r1]interface g0/0/0
[r1-GigabitEthernet0/0/0]isis dis-priority 127
[r1]dis isis interface
Interface information for ISIS(100)
-----------------------------------
Interface Id IPV4.State IPV6.State MTU Type DIS
GE0/0/0 001 Up Down 1497 L1/L2 Yes/No
修改网络类型:
[R4]int g0/0/2
[R4-GigabitEthernet0/0/2]isis circuit-type p2p
[R4-GigabitEthernet0/0/2]q
[R4]dis isis brief
ISIS Protocol Information for ISIS(100)
---------------------------------------
SystemId: 0000.0000.0004 System Level: L2
Area-Authentication-mode: NULL
Domain-Authentication-mode: NULL
Ipv6 is not enabled
ISIS is in invalid restart status
ISIS is in protocol hot standby state: Real-Time Backup
Interface: 192.168.45.4(GE0/0/2)
Cost: L1 10 L2 10 Ipv6 Cost: L1 10 L2 10
State: IPV4 Up IPV6 Down
Type: P2P MTU: 1497
接口修改邻居关系:
R2 和R3都是L1/2路由器类型,默认建立 L1/L2邻居关系 ,现在路由器类型不能表(因为为边界设备),R2和R3只想建立L1的邻居关系,可以修改接口的邻居关系
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]isis circuit-level level-1
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]isis circuit-level level-1
[R3]dis isis peer
Isis 认证:
接口认证:接口下做认证
Hello报文使用的认证密码保存在接口下,发送带认证TLV的认证报文,互相连接的路由器接口必须配置相同的口令。
区域认证:区域内所有L1 路由器做认证
区域内的每一台L1路由器都必须使用相同的认证模式和具有共同的钥匙串。
路由域认证:区域内所有L1/ L1/2路由器做认证
IS-IS域内的每一台L2和L1/L2类型的路由器都必须使用相同模式的认证,并使用共同的钥匙串。
对于区域和路由域认证,可以设置为SNP和LSP分开认证。
本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都进行认证检查。
本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文携带认证TLV,但不对收到的SNP报文进行检查。
本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文不携带认证TLV,也不对收到的SNP报文进行认证检查。
本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都不进行认证检查。
接口认证配置:
[R4]INT G0/0/2
[R4-GigabitEthernet0/0/2]isis authentication-mode simple plain huawei
[R4-GigabitEthernet0/0/2]q
[R4]dis isis peer //发现邻居关系没有啦
Peer information for ISIS(100)
System Id Interface Circuit Id State HoldTime Type PRI
0000.0000.0002 GE0/0/0 0000.0000.0004.01 Up 21s L2 64
[R4]dis isis error
Statistics of error packets for ISIS(100)
-----------------------------------------
LSP packet errors:
Longer LSP : 0 Smaller LSP : 0
Mismatched Level : 0 Invalid Sysid : 0
Zero Sequence Number : 0 Illegal IS Type : 0
Zero Checksum : 0 Incorrect Checksum : 0
Bad Authentication : 0 Bad Auth Count : 0
More Protocol TLV : 0 Bad Nbr TLV : 0
Bad Extended IS TLV : 0 Bad IF Addr TLV : 0
Bad Reach TLV : 0 Bad Inter Domain TLV : 0
Mismatched Area Id(L1) : 0 Bad TLV Length : 0
Bad Alias TLV : 0 Bad Area TLV : 0
Bad SRLG TLV : 0 Unknown Adjacency : 0
Bad Protocol ID : 0 Bad Version : 0
Zero Lifetime : 4 Bad Ext Reach TLV : 0
Bad TE Router ID TLV : 0 Bad TE Sub TLV : 0
Hello packet errors:
Bad Packet Length : 0 Reserved CircType : 0
Repeated System ID : 0 Bad Circuit Type : 0
Longer packet : 0 More Area Addr : 0
Longer Area Addr : 0 Bad Area Addr TLV : 0
More IF Addr : 0 Bad Formatted IF TLV : 0
More Nbr SNPA(LAN) : 0 Invalid Sysid : 0
Bad TLV Length : 0 Zero HoldingTime : 0
Unusable IP Addr : 0 Repeated IPv4 Addr : 0
Mismatched Area Addr(L1): 0 Mismatched Proto : 0
SNPA Conflicted(LAN) : 0 Mismatched Level : 0
Mismatched Max Area Addr: 0 Bad Authentication : 5
More Auth TLV : 0 3-Way Option Error(P2P) : 0
No Area Addr TLV : 0 Bad Protocol ID : 0
Bad Version : 0 Invalid IPv6 Addr : 0
More IPv6 IF Addr : 0 Duplicate IPv6 Addr : 0
More Optional Checksum : 0 Bad Optional Checksum : 0
[R5]int g0/0/0
[R5-GigabitEthernet0/0/0]isis authentication-mode simple plain huawei
备注:
数据传输:
simple 明文认证
MD5 密文认证
本地存储:
plain 明文
cipher 密文
**实验: ISIS 和OSPF 引入 **
整体思路:
1,配置ISIS
2, 配置OSPF
3, 配置OSPF 与ISIS 互相引入
拓扑1:
ISIS 配置:
**R1: **
isis 100
is-level level-1
network-entity 49.0123.0000.0000.0001.00
interface GigabitEthernet0/0/0
ip address 192.168.123.1 255.255.255.0
isis enable 100
isis dis-priority 127
R2配置:
isis 100
network-entity 49.0123.0000.0000.0002.00
is-level level-1-2
#
interface GigabitEthernet0/0/0
ip address 192.168.123.2 255.255.255.0
isis enable 100
isis circuit-level level-1
R4配置:
isis 100
is-level level-2
network-entity 49.0045.0000.0000.0004.00
#
interface GigabitEthernet0/0/0
ip address 192.168.24.4 255.255.255.0
isis enable 100
#
interface GigabitEthernet0/0/2
ip address 192.168.45.4 255.255.255.0
isis enable 100
isis circuit-type p2p
isis authentication-mode simple plain huawei
R5配置:
isis 100
is-level level-2
network-entity 49.0045.0000.0000.0005.00
#
interface GigabitEthernet0/0/0
ip address 192.168.45.5 255.255.255.0
isis enable 100
isis circuit-type p2p
isis authentication-mode simple plain huawei
OSPF 配置:
R6配置:
ospf 1 router-id 6.6.6.6
area 0.0.0.0
network 192.168.4.0 0.0.0.255
network 192.168.5.0 0.0.0.255
R1配置:
[r1]ospf 1 router-id 1.1.1.1
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]network 192.168.4.0 0.0.0.255
配置ISIS 与OSPF 互相引入:
[r1]ospf 1
[r1-ospf-1]default-route-advertise //将ISIS 里默认路由引进来
[r1-ospf-1]q
[r1]isis 100
[r1-isis-100]import-route ospf 1 level-1 //将OSPF 进程1 的路由引入到ISIS 的L1 路由表 (默认引入到L2)
[r1-isis-100]q
拓扑2:
ISIS 配置同上。
R7的OSPF 配置:
ospf 1 router-id 7.7.7.7
area 0.0.0.0
network 192.168.2.0 0.0.0.255
network 192.168.3.0 0.0.0.255
R5的OSPF配置:
ospf 1 router-id 5.5.5.5
import-route isis 100 //将 Isis 100 引入到 OSPF
area 0.0.0.0
network 192.168.2.0 0.0.0.255
[R5]isis 100
[R5-isis-100]import-route ospf 1 //将OSPF 1 路由引入到默认 ISIS L2 路由表
相关文章:

IS-IS
二、IS-IS中的DIS与OSPF中的DR Level-1和Level-2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级。DIS的选举规则如下:DIS优先级数值最大的被选为DIS。如果优先级数值最大的路由器有多台,则其中MAC地址最大的路由器会成为DI…...

【MySQL】为什么使用B+树做索引
MySQL的innoDB引擎使用的是B树的结构来存储索引的,那么为什么会使用B树呢?为什么不使用其他的结构?本篇我们深入MySQL底层来了解B树。本文中说到的MySQL都是InnoDB引擎的 在这之前,先了解一下InnoDB是如何存储数据的 MySQL是根据数据页的方式…...

php 安装mongodb扩展模块,rdkafka模块
mongodb mongodb扩展下载 选择php版本,根据报错提示,选择扩展对应的版本选择非安全进程将php_mongodb.dll放到php/ext目录下修改php.ini配置,添加extensionphp_mongodb.dll开启php_mongodb扩展,重启服务php -m 查看是否开启成功…...

【数据结构】初探时间与空间复杂度:算法评估与优化的基础
🚩纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:数据结构 🔥该文章主要了解算法的时间复杂度与空间复杂度等相关知识。 目录: 🌏 时间复杂度🔭…...

SpringCloud Alibaba - Sentinel 限流规则(案例 + JMeter 测试分析)
目录 一、Sentinel 限流规则 1.1、簇点链路 1.2、流控模式 1.2.1、直接流控模式 1.2.2、关联流控模式 a)在 OrderController 中新建两个端点. b)在 Sentinel 控制台中对订单查询端点进行流控 c)使用 JMeter 进行测试 d)分…...
uniapp 条件编译 APP 、 H5 、 小程序
一、#ifdef、#ifndef、 #endif三者的区别、 标识作用#ifdef仅在某个平台上使用#ifndef在除了这个平台的其他平台上使用(非此平台使用)#endif结束条件编译 二、平台标识 标识平台APP-PLUS5AppMP微信小程序/支付宝小程序/百度小程序/头条小程序/QQ小程序MP-WEIXIN微…...

深度学习——权重衰减(weight_decay)
深度学习——权重衰减(weight_decay) 文章目录 前言一、权重衰减1.1. 范数与权重衰减1.2. 高维线性回归1.3. 从零开始实现1.3.1.初始化模型参数1.3.2. 定义L₂范数惩罚1.3.3. 定义训练代码实现1.3.4. 不管正则化直接训练1.3.5. 使用权重衰减 1.4. 简洁实现 总结 前言…...
nignx如何部署让前端不用清缓存就可以部署
在Nginx中,可以使用以下方法来部署前端应用程序,使前端用户无需清空缓存即可进行部署: 1、使用版本号:在前端应用程序的构建过程中,可以添加一个独特的版本号到应用程序的名称中。每次部署时,将版本号更新…...

CSS3实现动画加载效果
<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>加载效果</title><link rel"style…...
springboot定时任务Scheduled使用和弊端分析
1.springboot定时任务Scheduled使用说明: (1)创建定时任务类 import com.one.utils.DateUtil; import org.springframework.beans.factory.annotation.Autowired; import...

openGauss学习笔记-93 openGauss 数据库管理-访问外部数据库-oracle_fdw
文章目录 openGauss学习笔记-93 openGauss 数据库管理-访问外部数据库-oracle_fdw93.1 编译oracle_fdw93.2 使用oracle_fdw93.3 常见问题93.4 注意事项 openGauss学习笔记-93 openGauss 数据库管理-访问外部数据库-oracle_fdw openGauss的fdw实现的功能是各个openGauss数据库及…...

【Git】Git下载安装环境配置 下载速度慢的解决方案
这里写自定义目录标题 介绍一、下载官网下载镜像站 二、安装安装成功 三、Git三种界面介绍Git cmd界面展示git bash界面展示git GUI界面展示 四、环境配置配置流程1、打开环境变量界面2、添加环境变量 /删除环境变量3、在变量中找到Git\cmd的值就表示配置成功4、没有找到点击新…...

常见源协议介绍
开源协议(Open Source License)是一种法律文档,用于规定如何使用、修改和分发开源软件和其他开源项目的规则和条件。这些协议允许创作者或组织将其创造的代码或作品以开放源代码的形式共享给他人,以促进协作、创新和知识共享。常见…...

大数据概述(林子雨慕课课程)
文章目录 1. 大数据概述1.1 大数据概念和影响1.2 大数据的应用1.3 大数据的关键技术1.4 大数据与云计算和物联网的关系云计算物联网 1. 大数据概述 大数据的四大特点:大量化、快速化、多样化、价值密度低 1.1 大数据概念和影响 大数据摩尔定律 大数据由结构化和非…...

ES6 class类关键字super
super关键字 在 JavaSCript 中,能通过 extends 关键字去继承父类 super 关键字在子类中有以下用法: 当成函数调用 super() 作为 "属性查询" super.prop 和 super[expr] super() super 作为函数调用时,代表父类的构造函数。 ES6 要求…...

C++并发与多线程(4) | 传递临时对象作为线程参数的一些问题Ⅰ
一、陷阱1 写一个传递临时对象作为线程参数的示例: #include <iostream> #include <vector> #include <thread> using namespace std;void myprint(const int& i, char* pmybuf) {cout << i << endl;cout << pmybuf << endl;r…...

CentOS Integration SIG 正式成立
导读CentOS 董事会已批准成立 CentOS Integration Special Interest Group (SIG)。该小组旨在帮助那些在 Red Hat Enterprise Linux (RHEL) 或特别是其上游 CentOS Stream 上构建产品和服务的人员,验证其能否在未来版本中继续运行。 红帽 RHEL CI 工程师 Aleksandr…...

智能AI系统源码ChatGPT系统源码+详细搭建部署教程+AI绘画系统+已支持OpenAI GPT全模型+国内AI全模型
一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Chat…...

软考程序员考试大纲(2023)
文章目录 前言一、考试说明1.考试目标2.考试要求3.考试科目设置 二、考试范围考试科目1:计算机与软件工程基本知识1.计算机科学基础2.计算机系统基础知识3.系统开发和运行知识4.网络与信息安全基础知识5&am…...

【重拾C语言】七、指针(一)指针与变量、指针操作、指向指针的指针
目录 前言 七、指针 7.1 指针与变量 7.1.1 指针类型和指针变量 7.1.2 指针所指变量 7.1.3 空指针、无效指针 7.2 指针操作 7.2.1 指针的算术运算 7.2.2 指针的比较 7.2.3 指针的递增和递减 7.3 指向指针的指针 前言 指针是C语言中一个重要的概念正确灵活运用指针 可…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...

JDK 17 序列化是怎么回事
如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...