OSPF ROUTER-ID-新版(15)
目录
整体拓扑
操作步骤
1.INT 验证Router-ID选举规则
1.1 查看路由器Router-ID
1.2 配置R1地址
1.3 查看R1接口信息
1.4 查看R1Router-ID
1.5 删除接口IP并查看Router-ID
1.6 手工配置Router-ID
2.基本配置
2.1 配置R1的IP
2.2 配置R2的IP
2.3 配置R3的IP
2.4 配置R4的IP
2.5 配置PC-1的IP地址
2.6 配置PC-2的IP地址
2.7 配置PC-3的IP地址
2.8 检测R1与PC1连通性
2.9 检测R3与PC2连通性
2.10 检测R4与PC3连通性
3.理解OSPF的Router-ID
3.1 配置R1的OSPF
3.2 配置R2的OSPF
3.3 配置R3的OPSF
3.4 配置R4的OSPF
3.5 测试PC-1和PC-2的连通性
3.6 测试PC-1和PC-3的连通性
3.7 修改R2的Router-ID
3.8 再次查看R2 的OSPF邻居信息
3.9 测试PC-1与PC-2的连通性
3.10 还原R2之前配置
3.11 修改R4的Router-ID
3.12 查看R2的OSPF邻居状态
3.13 查看R2的路由表
3.14 测试PC-1与PC-3的连通性
4.保存数据
4.1保存R1数据
4.2保存R2数据
4.3保存R3数据
4.4保存R4数据
本实验模拟企业网络环境,R1为部门A的网关设备,R3为部门B的网关设备,R4为部门C的网关设备,R2为企业核心路由器。现网络中运行OSPF协议实现全网互通,所有路由器运行在区域0内。网络管理员需要正确配置Router-ID以避免产生不必要的问题。
整体拓扑
操作步骤
1.INT 验证Router-ID选举规则
1.1 查看路由器Router-ID
在进行基本配置之前,在R1上使用命令display route id来查看当前设备上的Router-ID。
<Huawei>system-view
[Huawei]sysname R1
[R1]display router id
Router-ID:0.0.0.0
可以观察到,在设备没有配置任何接口时,Router-ID为0.0.0.0。
system-view
sysname R1
display router id
1.2 配置R1地址
根据实验编址表,在R1的GE 0/0/1接口上配置IP地址10.0.12.1,GE 0/0/0接口配置IP地址10.0.1.254,配置环回接口0的地址1.1.1.1。
[R1]interface gigabitethernet 0/0/1
[R1-GigabitEthernet0/0/1]ip addres 10.0.12.1 24
[R1-GigabitEthernet0/0/1]interface gigabitethernet 0/0/0
[R1-GigabitEthernet0/0/0]ip addres 10.0.1.254 24
[R1-GigabitEthernet0/0/0]interface loopback 0
[R1-LoopBack0]ip addres 1.1.1.1 32
[R1-LoopBack0]quit
interface gigabitethernet 0/0/1
ip addres 10.0.12.1 24
interface gigabitethernet 0/0/0
ip addres 10.0.1.254 24
interface loopback 0
ip addres 1.1.1.1 32
quit
1.3 查看R1接口信息
配置完成后,在R1上查看所有接口信息。
<R1>display ip interface brief
可以观察到,目前所配置的接口及IP地址信息。
display ip interface brief
1.4 查看R1Router-ID
查看当前设备上的Router-ID。
[R1]display router id
可以观察到当前设备上的全局Router-ID为10.0.12.1,而不是环回接口地址1.1.1.1,这是为什么?
原因是接口配置顺序会影响Router-ID的选举,因为设备上第一次配置的是物理接口的地址,该动作便会触发Router-ID的选举。而此刻,设备上也有且仅有该物理地址,所以该地址便会被Router-ID所使用,后续即使再配置了环回接口地址也不会使用。同理,如果第一次配置的是其他物理接口的地址,或者是环回接口的地址,都会被Router-ID所使用。
display router id
1.5 删除接口IP并查看Router-ID
在R1上删除接口GE 0/0/1的IP地址,并再次查看此时设备的Router-ID。
[R1]interface gigabitethernet 0/0/1
[R1-GigabitEthernet0/0/1]undo ip address
UNDO
[R1]display router id
Router-ID:1.1.1.1
可以观察到,当删除当前Router-ID所使用的IP地址时,便会触发重新选举,按照环回接口优先的规则选择使用1.1.1.1作为Router-ID。
interface gigabitethernet 0/0/1
undo ip address
display router id
1.6 手工配置Router-ID
可以采用手动配置的方式强制指定R1的Router-ID为1.1.1.1。这样配置的优点是,即使该地址现在已经不是R1的任何接口的地址,也可以修改成为Router-ID(删除该环回接口也不会触发重新选举)。
<R1>system-view
[R1]router id 1.1.1.1
配置完成后,马上弹出以下信息。
Info: Router-ID has been modified, please reset the relative protocols manually to update the Router-ID.
该信息表示Router-ID已经被修改,请重启相应的路由协议进行更新。即当前全局配置的Router-ID已经被更新,如果目前设备上已经运行了OSPF协议,需要重置OSPF协议进程或者重启整台路由器才可以使得OSPF协议中的Router-ID也同步更新使用该新的全局Router-ID。需要使用命令reset ospf process来重置OSPF协议进程
return
system-view
router id 1.1.1.1
2.基本配置
根据实验编址表进行完成剩余基本配置。
2.1 配置R1的IP
再次在R1的GE 0/0/1接口上配置IP地址10.0.12.1
[R1]interface gigabitethernet 0/0/1
[R1-GigabitEthernet0/0/1]ip addres 10.0.12.1 24
interface gigabitethernet 0/0/1
ip addres 10.0.12.1 24
2.2 配置R2的IP
根据实验编址表配置路由器R2的接口IP地址。
<Huawei>system-view
[Huawei]sysname R2
[R2]interface Loopback 0
[R2-loopback0]ip address 2.2.2.2 32
[R2-loopback0]quit
[R2]interface GigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0]ip address 10.0.12.2 24
[R2-GigabitEthernet0/0/0]quit
[R2]interface GigabitEthernet0/0/1
[R2-GigabitEthernet0/0/1]ip address 10.0.23.2 24
[R2-GigabitEthernet0/0/1]quit
[R2]interface GigabitEthernet0/0/2
[R2-GigabitEthernet0/0/2]ip address 10.0.24.2 24
[R2-GigabitEthernet0/0/2]quit
system-view
sysname R2
interface Loopback 0
ip address 2.2.2.2 32
quit
interface GigabitEthernet0/0/0
ip address 10.0.12.2 24
quit
interface GigabitEthernet0/0/1
ip address 10.0.23.2 24
quit
interface GigabitEthernet0/0/2
ip address 10.0.24.2 24
quit
2.3 配置R3的IP
根据实验编址表配置路由器R3的接口IP地址。
<Huawei>system-view
[Huawei]sysname R3
[R3]interface Loopback 0
[R3-loopback0]ip address 3.3.3.3 32
[R3-loopback0]quit
[R3]interface GigabitEthernet0/0/0
[R3-GigabitEthernet0/0/0]ip address 10.0.23.3 24
[R3-GigabitEthernet0/0/0]quit
[R3]interface GigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1]ip address 10.0.2.254 24
[R3-GigabitEthernet0/0/1]quit
system-view
sysname R3
interface Loopback 0
ip address 3.3.3.3 32
quit
interface GigabitEthernet0/0/0
ip address 10.0.23.3 24
quit
interface GigabitEthernet0/0/1
ip address 10.0.2.254 24
quit
2.4 配置R4的IP
根据实验编址表配置路由器R4的接口IP地址,掩码长度为24。
<Huawei>system-view
[Huawei]sysname R4
[R4]interface Loopback 0
[R4-loopback0]ip address 4.4.4.4 32
[R4-loopback0]quit
[R4]interface GigabitEthernet0/0/0
[R4-GigabitEthernet0/0/0]ip address 10.0.24.4 24
[R4-GigabitEthernet0/0/0]quit
[R4]interface GigabitEthernet0/0/1
[R4-GigabitEthernet0/0/1]ip address 10.0.3.254 24
[R4-GigabitEthernet0/0/1]quit
system-view
sysname R4
interface Loopback 0
ip address 4.4.4.4 32
quit
interface GigabitEthernet0/0/0
ip address 10.0.24.4 24
quit
interface GigabitEthernet0/0/1
ip address 10.0.3.254 24
quit
2.5 配置PC-1的IP地址
双点击PC图标,即可出现配置界面,配置完成后点击应用。
根据实验编制表配置PC-1的IP地址为:10.0.1.1,对应的子网掩码为255.255.255.0,默认网关为10.0.1.254。
2.6 配置PC-2的IP地址
双点击PC图标,即可出现配置界面,配置完成后点击应用。
根据实验编制表配置PC-2的IP地址为:10.0.2.1,对应的子网掩码为255.255.255.0,默认网关为10.0.2.254。
2.7 配置PC-3的IP地址
双点击PC图标,即可出现配置界面,配置完成后点击应用。
根据实验编制表配置PC-3的IP地址为:10.0.3.1,对应的子网掩码为255.255.255.0,默认网关为10.0.3.254。
2.8 检测R1与PC1连通性
并使用ping命令检测R1与PC1直连链路的连通性。
<R1>ping 10.0.1.1
测试完成,通信正常。
ping 10.0.1.1
2.9 检测R3与PC2连通性
并使用ping命令检测R3与PC2直连链路的连通性。
<R3>ping 10.0.2.1
测试完成,通信正常。
ping 10.0.2.1
2.10 检测R4与PC3连通性
并使用ping命令检测R4与PC3直连链路的连通性。
<R4>ping 10.0.3.1
测试完成,通信正常。
ping 10.0.3.1
3.理解OSPF的Router-ID
在所有路由器上配置OSPF协议,并都运行在区域0内。使用ospf router-id命令来配置OSPF协议的私有Router-ID,如果不配置,则默认使用全局下的Router-ID。
注意区分设备全局下的Router-ID和路由协议的Router-ID的概念。如果在路由协议中没有配置Router-ID,就会默认使用路由器的全局Router-ID。如果配置,则可以和全局Router-ID不一致。
一般建议采用环回接口地址作为路由协议的Router-ID,优点为环回接口是逻辑接口,比物理接口更加稳定。在对网络操作时,网络管理员有可能误操作导致物理接口地址删除,或者改动,而环回接口则一般不会去改动。
3.1 配置R1的OSPF
在R1上做OSPF基础配置。
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.0.1.0 0.0.0.255
return
system-view
ospf 1 router-id 1.1.1.1
area 0
network 10.0.12.0 0.0.0.255
network 10.0.1.0 0.0.0.255
3.2 配置R2的OSPF
在R2上做OSPF基础配置。
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 10.0.23.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 10.0.24.0 0.0.0.255
ospf 1 router-id 2.2.2.2
area 0
network 10.0.12.0 0.0.0.255
network 10.0.23.0 0.0.0.255
network 10.0.24.0 0.0.0.255
3.3 配置R3的OPSF
在R3上做OSPF基础配置。
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 10.0.23.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 10.0.2.0 0.0.0.255
拷贝代码
ospf 1 router-id 3.3.3.3
area 0
network 10.0.23.0 0.0.0.255
network 10.0.2.0 0.0.0.255
3.4 配置R4的OSPF
在R4上做OSPF基础配置。
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 10.0.24.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 10.0.3.0 0.0.0.255
ospf 1 router-id 4.4.4.4
area 0
network 10.0.24.0 0.0.0.255
network 10.0.3.0 0.0.0.255
3.5 测试PC-1和PC-2的连通性
配置完成后测试PC-1和PC-2间的连通性。
PC1>ping 10.0.2.1
ping 10.0.2.1
3.6 测试PC-1和PC-3的连通性
配置完成后测试PC-1和PC-3间的连通性。
PC1>ping 10.0.3.1
ping 10.0.3.1
3.7 修改R2的Router-ID
现在修改R2的Router-ID为3.3.3.3,即R3的Router-ID,使R3和R2的Router-ID重叠,并重置协议进程使该配置生效。(重置进程时,输入‘y’进行确认)
[R2]ospf 1 router-id 3.3.3.3
<R2>reset ospf process
return
system-view
ospf 1 router-id 3.3.3.3
return
reset ospf process
3.8 再次查看R2 的OSPF邻居信息
待协议收敛后,再次查看R2 的OSPF邻居信息。
<R2>display ospf peer
可以观察到到R2与R3的邻居关系消失。
display ospf peer
3.9 测试PC-1与PC-2的连通性
测试PC-1与PC-2的连通性。
PC>ping 10.0.2.1
网络已经发生故障,无法正常通信。验证了OSPF建立直连邻居关系时,Router-ID一定不能重叠。那么如果OSPF非直连邻居的Router-ID重叠会产生什么现象?
ping 10.0.2.1
3.10 还原R2之前配置
还原R2之前的配置。
[R2]ospf 1 router-id 2.2.2.2
<R2>reset ospf process
system-view
ospf 1 router-id 2.2.2.2
return
reset ospf process
3.11 修改R4的Router-ID
调整R4的Router-ID为3.3.3.3,与R3重叠。
[R4]ospf 1 router-id 3.3.3.3
<R4>reset ospf process
return
system-view
ospf 1 router-id 3.3.3.3
return
reset ospf process
3.12 查看R2的OSPF邻居状态
调整R4的Router-ID配置完成后,查看R2的OSPF邻居状态。
<R2>display ospf peer brief
发现R2有两个3.3.3.3的邻居。
display ospf peer brief
3.13 查看R2的路由表
查看R2的路由表。
<R2>display ip routing-table protocol ospf
可以观察到,此时R2没有接收到R4上10.0.3.0/24网段的路由条目,即使路由器邻居关系建立正常,但也无法正常获取路由条目。
display ip routing-table protocol ospf
3.14 测试PC-1与PC-3的连通性
测试PC-1与PC-3的连通性。
PC1>ping 10.0.3.1
可以观察到,通信无法正常进行。这是因为R2认为是同一个OSPF邻居,但是LSA又不一致,造成链路状态数据库发送错误,无法计算出正确的路由信息。
综上所述,OSPF协议的Router-ID务必要在整个路由选择域内保持唯一。
ping 10.0.3.1
4.保存数据
4.1保存R1数据
在R1上保存数据。
<R1>save
save
4.2保存R2数据
在R2上保存数据。
<R2>save
save
4.3保存R3数据
在R3上保存数据。
<R3>save
save
4.4保存R4数据
在R4上保存数据。
<R4>save
save
相关文章:

OSPF ROUTER-ID-新版(15)
目录 整体拓扑 操作步骤 1.INT 验证Router-ID选举规则 1.1 查看路由器Router-ID 1.2 配置R1地址 1.3 查看R1接口信息 1.4 查看R1Router-ID 1.5 删除接口IP并查看Router-ID 1.6 手工配置Router-ID 2.基本配置 2.1 配置R1的IP 2.2 配置R2的IP 2.3 配置R3的IP 2.4 配…...

阿里开源大模型 Qwen-72B 私有化部署
近期大家都知道阿里推出了自己的开源的大模型千问72B,据说对于中文非常友好,在开源模型里面,可谓是名列前茅。 千问拥有有强大的基础语言模型,已经针对多达 3 万亿个 token 的多语言数据进行了稳定的预训练,覆盖领域、…...

ubuntu下编译obs-studio遇到的问题记录
参考的是这篇文档:Build Instructions For Linux obsproject/obs-studio Wiki GitHub 在安装OBS dependencies时, sudo apt install libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libswresample-dev libswscale-d…...
C++的一些知识
一. 语法 move怎么用 https://blog.csdn.net/zhangmiaoping23/article/details/126051520 这个文章讲的很好,其中有一些疑惑的点 (1) 左值引用不能接右值 class T1{int a; }; int main(){T1 t1 T1();T1 && t1_temp T1(); //T1()是一个临时对象…...

大数据 - 大数据入门第一篇 | 关于大数据你了解多少?
🐶1.1 概述 大数据(BigData):指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 大数据主要解决、海量数据的采…...

C语言——扫雷
扫雷是一款经典的小游戏,那如何使用C语言实现一个扫雷游戏呢? 一、全部源码 直接把全部源码放在开头,如有需要,直接拿走。 源码分为三个文件: test.cpp/c 主函数的位置 #include "game.h"int main() {…...

计算机网络【DNS】
DNS 基本概述 与 HTTP、FTP 和 SMTP 一样,DNS 协议也是应用层的协议,DNS 使用客户-服务器模式运行在通信的端系统之间,在通信的端系统之间通过下面的端到端运输协议来传送 DNS 报文。但是 DNS 不是一个直接和用户打交道的应用。DNS 是为因特…...

Windows实现MySQL5.7主从复制(详细版)
使用免安装版本(官网下载地址) 在Windows上安装两种MySQL服务并同时开启服务 1.下载配置 打开解压文件所在位置,就新建一个配置文件my.ini。 2.主库安装 主库的my.ini配置文件如下: [mysqld] #设置主库端口,注意须是…...
AI 绘画 | Stable Diffusion 视频生成重绘
前言 本篇文章教会你如何使用Stable Diffusion WEB UI,实现视频的人物,或是动物重绘,可以更换人物或者动物,也可以有真实变为二次元。 视频展示 左边是原视频,右边是重绘视频原视频和Ai视频画面合并 教程 这里需要用到Stable Diffusion WEB UI的扩展插件ebsynth_utility…...
使用easyexcel对导出表格添加合计行
文章目录 一、背景二、实现1、写法一2、写法二 三、遇到的问题四、参考 一、背景 近期开发的一个新功能需要导出和前端展示样式一致的统计表格,而前端使用的elementui的table组件,show-summary属性选择后可以自动计算。后端导出时其他单元格与返回前端展…...

Springcloud Alibaba使用Canal将Mysql数据实时同步到Redis保证缓存的一致性
目录 1. 背景 2. Windows系统安装canal 3.Mysql准备工作 4. 公共依赖包 5. Redis缓存设计 6. mall-canal-service 1. 背景 canal [kənl] ,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。其诞…...

Python入门学习篇(十四)——模块文件操作
1 模块 1.1 理解 包: python中带有__init__.py文件的文件夹 模块: 文件名(不包含.py后缀),如python官方的time.py中time就是模块1.2 示例代码 import datetime# 调用datetime模块中的datetime类的now()方法 t datetime.datetime.now() # 格式化输出日期和时间 strftime(&qu…...

【数据结构】排序之交换排序(冒泡 | 快排)
交换目录 1. 前言2. 交换排序3. 冒泡排序3.1 分析3.2 代码实现 4. 快速排序4.1 hoare版本4.1.1 分析4.1.2 hoare版本代码 4.2 挖坑法4.2.1 分析4.2.2 挖坑法代码实现 4.3 前后指针版本4.3.1 分析4.3.2 前后指针版本代码实现 1. 前言 在之前的博客中介绍了插入排序,…...

AI电商时代开始:阿里能否反杀拼多多
“AI电商时代刚刚开始,对谁都是机会,也是挑战。” 针对阿里员工对于拼多多财报和电商等的讨论,马云在阿里内网罕见地参与了谈论并发言。 阿里巴巴一向雷厉风行,已打响了AI电商的“第一炮”。 根据《晚点LatePost》报道ÿ…...

STC8H系列单片机入门教程之NVC系列语音播报模块(九)
一、模块简述 ● 模组支持3.3V和5V单片机供电系统 ● 标准2.54MM间距排针与外部连接 ● 支持喇叭0.5W/8欧 ● 适合用于超声波距离、电子秤重量、时钟时间、温度、球赛比分等语音播报 二、引脚说明 序号 名称 说明 1 VCC 电源正(3.3V-5V&#…...

认识计算机网络——计算机网络的组成
计算机网络是由多个计算机和网络设备组成的系统,通过通信协议实现数据传输和信息交换。它是现代社会信息技术的重要支撑,广泛应用于各个领域。本文将介绍计算机网络的主要组成部分,包括硬件设备、软件协议和网络服务。 一、硬件设备 计算机网…...

数据的复制
基本概念 数据的复制指的是通过网络链接的多台机器保留相同的副本 为什么要进行数据的复制 使得用户和数据在地理上比较接近,因为大数据要求我们将计算安排在数据存放的位置和我们基本的内存模型不是很一样 ,比如磁盘调入内存之类的。即使系统的一部分…...

【辐射场】3D Gaussian Splatting
三维高斯…喷喷 \, 3D Gaussian Splatting,下文简称3DGS,是好一段时间以来在三维内容创作和三维重建领域比较有热度的一项技术。 它属于基于图像的三维重建方法,意思就是你对现实物体或者场景拍照片,就能给你训练成一个场景模型&a…...

冒泡排序--------(C每日一题)
冒泡排序: 每次将相邻的两个数比较,将小的调到前头--升序 冒泡排序一个结论: n个数要进行n-1轮比较,第j轮要进行n-j次两两比较 循环体代码: int main() {int i, j,n,a[10],t;//n是几个数比较for(j1;j<n-1;j)//控制轮次for…...
每日一练:LeeCode-347. 前 K 个高频元素(中) - 【优先级队列】
本文是力扣LeeCode-347. 前 K 个高频元素 学习与理解过程,本文仅做学习之用,对本题感兴趣的小伙伴可以出门左拐LeeCode。 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

FFmpeg avformat_open_input函数分析
函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...