【HCIP]——OSPF综合实验
题目
实验需求
根据上图可得,实验需求为:
1.R5作为ISP:其上只能配置IP地址;R4作为企业边界路由器,出口公网地址需要通过PPP协议获取,并进行CHAP认证。(PS:因PPP协议尚未学习,在此次实验中不使用)
2.每个OSPF邻居ID 基于IP地址172.16.0.0/16划分;
3.所有设备均可访问R5的环回;
4.减少LSA的数量,加快收敛,保障更新安全;
5.全网可达。
实验思路
1.首先确定网络拓扑结构,根据实验需求搭建网络拓扑图,确定每台路由器的接口以及互联关系。
2.子网划分与OSPF配置
基于IP地址划分OSPF邻居ID:
根据IP地址172.16.0.8/16划分OSPF区域,确保每个邻居ID唯一。
配置OSPF路由协议,并在每个路由器上配置相应的网络命令。
3.配置R5作为ISP
4.网络优化
减少LSA数量:
通过合理规划OSPF区域,使用区域划分来减少LSA的数量。
使用路由汇总来减少LSA的数量。
加快收敛:
配置OSPF的快速收敛特性,如调整Hello和Dead间隔。
确保网络中无环路,避免不必要的路由更新。
保障更新安全:
使用OSPF的认证功能,如明文认证或MD5认证,来保障路由更新安全。
5.配置NAT保证私网能正常访问公网
6.确保全网可达
测试连通性:
使用Ping命令测试网络中每个设备之间的连通性。
确认所有设备均能访问R5的环回接口。
实验步骤
子网划分与OSPF配置
子网划分
——对五个区域基于IP地址172.16.0.0进行划分,再对各个区域内进行详细的IP地址划分。
如图:
具体划分如下所示:
172.16.0.0/16
172.16.0.0/19 ----area0
172.16.0.0/24----骨干
172.16.0.0/30----R3-R4
172.16.0.4/30----R4-R6
172.16.0.8/30----R4-R7
45.0.0.0/30----R4-R5
100.1.1.0/24----R5环回
172.16.32.0/19----area1
172.16.32.0/24----R1
172.16.33.0/24----R2
172.16.34.0/24----R3
172.16.35.0/24----骨干
172.16.35.0/29
172.16.64.0/19----area2
172.16.64.0/24----R6环回
172.16.66.0/30----R6-R11
172.16.65.0/24----R11环回
172.16.66.4/30----R11-R12
172.16.96.0/19----area3
172.16.96.0/24----R7环回
172.16.98.0/30----R7-R8
172.16.97.0/24----R8环回
172.16.98.4/30----R8-R9
172.16.128.0/19----area4
172.16.128.0/24----R9环回
172.16.130.0/30----R9-R10
172.16.129.0/24----R10环回
rip
10.1.1.0/24
10.1.2.0/24
配置IP地址同时进行OSPF宣告
PS:R4的S接口是连接公网的,不可宣告!
R1
R2
R3
R4
ISP
R6
R7
R8
R9
R10
R11
R12
OSPF配置
在各个路由器上进行OSPF配置,由于area 4 是远离骨干的特殊区域所以不能直接进行宣告,且由于area 3需要进行优化,所以让R9成为ASBR设备进行双向重发布(不使用Vink是因为使用Vink可能会产生换路问题,且area 3需要优化),在配置R12时顺便将RIP同时进行配置与宣告。
R1
[r1]ospf 1 router-id 1.1.1.1
[r1-ospf-1]a 1
[r1-ospf-1-area-0.0.0.1]network 172.16.32.1 0.0.0.0[r1-ospf-1-area-0.0.0.1]network 172.16.35.1 0.0.0.0
R2
[r2]ospf 1 rou
[r2]ospf 1 router-id 2.2.2.2
[r2-ospf-1]a 1
[r2-ospf-1-area-0.0.0.1]network 172.16.33.1 0.0.0.0
[r2-ospf-1-area-0.0.0.1]network 172.16.35.2 0.0.0.0
R3
[r3]ospf 1 rou
[r3]ospf 1 router-id 3.3.3.3
[r3-ospf-1]a 1
[r3-ospf-1-area-0.0.0.1]network 172.16.35.3 0.0.0.0
[r3-ospf-1-area-0.0.0.1]network 172.16.34.1 0.0.0.0[r3-ospf-1-area-0.0.0.0]network 172.16.0.1 0.0.0.0
R4
[r4]ospf 1 router-id 4.4.4.4
[r4-ospf-1]a 0
[r4-ospf-1-area-0.0.0.0]network 172.16.0.2 0.0.0.0
[r4-ospf-1-area-0.0.0.0]network 172.16.0.5 0.0.0.0[r4-ospf-1-area-0.0.0.0]network 172.16.0.9 0.0.0.0
R6
[r6]ospf 1 router-id 6.6.6.6
[r6-ospf-1]a 0
[r6-ospf-1-area-0.0.0.0]network 172.16.0.6 0.0.0.0
[r6-ospf-1-area-0.0.0.2]network 172.16.66.1 0.0.0.0[r6-ospf-1-area-0.0.0.2]network 172.16.64.1 0.0.0.0
R7
[r7]ospf 1 router-id 7.7.7.7
[r7-ospf-1]a 0
[r7-ospf-1-area-0.0.0.0]network 172.16.0.10 0.0.0.0
[r7-ospf-1]a 3[r7-ospf-1-area-0.0.0.3]network 172.16.96.1 0.0.0.0
[r7-ospf-1-area-0.0.0.3]network 172.16.98.1 0.0.0.0
R8
[r8]ospf 1 router-id 8.8.8.8
[r8-ospf-1]a 3[r8-ospf-1-area-0.0.0.3]network 172.16.98.2 0.0.0.0
[r8-ospf-1-area-0.0.0.3]network 172.16.97.1 0.0.0.0
[r8-ospf-1-area-0.0.0.3]network 172.16.98.5 0.0.0.0
R9
[r9]ospf 2 router-id 9.9.9.9
[r9-ospf-2]area 4
[r9-ospf-2-area-0.0.0.4]network 172.16.128.1 0.0.0.0
[r9-ospf-2-area-0.0.0.4]network 172.16.130.1 0.0.0.0
R10
[r10]ospf 1 router-id 10.10.10.10
[r10-ospf-1]a 4
[r10-ospf-1-area-0.0.0.4]network 172.16.129.1 0.0.0.0
[r10-ospf-1-area-0.0.0.4]network 172.16.130.2 0.0.0.0
R11
[r11]ospf 1 router-id 11.11.11.11
[r11-ospf-1]a 2
[r11-ospf-1-area-0.0.0.2]network 172.16.65.1 0.0.0.0
[r11-ospf-1-area-0.0.0.2]network 172.16.66.5 0.0.0.0
R12
[r12]ospf 1 router-id 12.12.12.12
[r12-ospf-1]a 2
[r12-ospf-1-area-0.0.0.2]network 172.16.66.6 0.0.0.0
[r12-rip-1]ver 2
[r12-rip-1]network 10.0.0.0
检查OSPF邻居
R1
R2
R3
R4
R6
R7
R8
R9
R10
R11
R12
连通性测试
由于该实验设备太多,故我们举例测试,不展示所有设备的测试
R1pingR3的环回
R3pingR6的环回
配置缺省路由
R4
在R4上配置一条0.0.0.0的缺省路由指向R5的 4/0/0方向
[R4]ip route-static 0.0.0.0 0 45.0.0.2
通过pingR5的环回检测是否可通,可通则没问题
PS:当前不用急着去下放R4的缺省路由,因为下放路由操作是在私网全部做完(优化后)时再去下放
OSPF优化部分
路由汇总
域间路由汇总
因为域间路由汇总是针对骨干区域(area 0)的优化,所以配置域间路由汇总的应该是与area 0直连(直接相连的)的区域,即区域1、2、3;那么则在这三个区域的ABR上进行配置:
Area 1的ABR
[r3]ospf 1
[r3-ospf-1]a 1 ---配置路由汇总在区域1做的原因是因为R3上的明细路由是通过区域1的1/2类LSA学到的
[r3-ospf-1-area-0.0.0.1]abr-summary 172.16.64.0 255.255.224.0
Area 2的ABR
[r6]ospf 1
[r6-ospf-1]a 2
[r6-ospf-1-area-0.0.0.2]abr-summary 172.16.64.0 255.255.224.0
Area 3的ABR
[r7]ospf 1
[r7-ospf-1]a 3
[r7-ospf-1-area-0.0.0.3]abr-summary 172.16.96.0 255.255.224.0
查表
在R4上查OSPF表,发现三个区域已经汇总
域外路由汇总
非直连的远离骨干区域则为域外路由汇总
RIP区域的ASBR
[r12]ospf 1
[r12-ospf-1]asbr-summary 10.1.0.0 255.255.252.0
OSPF 2区域的ASBR
[r9]ospf 1
[r9-ospf-1]asbr-summary 172.16.128.0 255.255.224.0
查表
在R4上查OSPF表,发现RIP区域和OSPF 2区域都已汇总
做特殊区域
区域1可以做成完全末梢区域、区域2可以做成完全NSSA区域、区域3也可以做成完全NSSA区域、区域4则不能做特殊区域(因为区域4上ospf 2的骨干区域!骨干区域不能做成特殊区域!!!)
Area 1
----- R1 -----
[r1]ospf 1
[r1-ospf-1]a 1
[r1-ospf-1-area-0.0.0.1]stub
----- R2 -----
[r2]ospf 1
[r2-ospf-1]a 1
[r2-ospf-1-area-0.0.0.1]stub
----- R3 -----
[r3]ospf 1
[r3-ospf-1]a 1
[r3-ospf-1-area-0.0.0.1]stub no-summary
Area 2
----- R6 -----
[r6]ospf 1
[r6-ospf-1]a 2
[r6-ospf-1-area-0.0.0.2]nssa no-summary
----- R11 -----
[r11]ospf 1
[r11-ospf-1]a 2
[r11-ospf-1-area-0.0.0.2]nssa
----- R12 -----
[r12]ospf 1
[r12-ospf-1]a 2
[r12-ospf-1-area-0.0.0.2]nssa
Area 3
----- R7 -----
[r7]ospf 1
[r7-ospf-1]a 3
[r7-ospf-1-area-0.0.0.3]nssa no-summary
----- R8 -----
[r8]ospf 1
[r8-ospf-1]a 3
[r8-ospf-1-area-0.0.0.3]nssa
----- R9 -----
[r9]ospf 1
[r9-ospf-1]a 3
[r9-ospf-1-area-0.0.0.3]nssa
查表
在R2/12/9上
做完特殊区域后的缺省下放
在R9上下放缺省(OSPF 2)
----- R9 -----
[r9]ospf 2
[r9-ospf-2]default-route-advertise
下放完毕,我们在R10上查看是否有缺省路由
有,则下方成功
但因为有了缺省,R10能通过缺省获取R9的所有路由,所以R9上的一个重发布就不用执行了,故我们undo一下
[r9-ospf-2]undo import-route ospf 1
在R4上下放缺省
目前我们做完了私网的所有包括优化,所以我们可以正式下放缺省路由了
[r4]ospf 1
[r4-ospf-1]default-route-advertise
那么这样对于与R4直连的区域而言,就有了缺省,下面举例R3的查表:
加快收敛配置
修改network-type类型
加快收敛操作即把此图的多个两个端点链路修改成P2P类型,如遇一点对多点,则修改为P2MP类型即可,因为P2P不需要选举DR和BDR,这样即可加快收敛
----- R3-R1/2 -----
[r3]int g0/0/0
[r3-GigabitEthernet0/0/0]ospf network-type p2mp
[r1]int g0/0/0
[r1-GigabitEthernet0/0/0]ospf network-type p2mp
[r2]int g0/0/0
[r2-GigabitEthernet0/0/0]ospf network-type p2mp
----- R3-R4 -----
[r3]int g0/0/1
[r3-GigabitEthernet0/0/1]ospf network-type p2p
[r4]int g0/0/1
[r4-GigabitEthernet0/0/1]ospf network-type p2p
----- R4-R6 -----
[r4]int g0/0/2
[r4-GigabitEthernet0/0/2]ospf network-type p2p
[r6]int g0/0/1
[r6-GigabitEthernet0/0/1]ospf network-type p2p
----- R4-R7 -----
[r4]int g0/0/0
[r4-GigabitEthernet0/0/0]ospf network-type p2p
[r7]int g0/0/0
[r7-GigabitEthernet0/0/0]ospf network-type p2p
----- R6-R11 -----
[r6]int g0/0/0
[r6-GigabitEthernet0/0/0]ospf network-type p2p
[r11]int g0/0/0
[r11-GigabitEthernet0/0/0]ospf network-type p2p
----- R11-R12 -----
[r11-GigabitEthernet0/0/0]int g0/0/1
[r11-GigabitEthernet0/0/1]ospf network-type p2p
[r12]int g0/0/0
[r12-GigabitEthernet0/0/0]ospf network-type p2p
----- R7-R8 -----
[r7]int g0/0/1
[r7-GigabitEthernet0/0/1]ospf network-type p2p
[r8]int g0/0/0
[r8-GigabitEthernet0/0/0]ospf network-type p2p
----- R8-R9 -----
[r8-GigabitEthernet0/0/0]int g0/0/1
[r8-GigabitEthernet0/0/1]ospf network-type p2p
[r9]int g0/0/0
[r9-GigabitEthernet0/0/0]ospf network-type p2p
----- R9-R10 -----
[r9]int g0/0/1
[r9-GigabitEthernet0/0/1]ospf network-type p2p
[r10]int g0/0/0
[r10-GigabitEthernet0/0/0]ospf network-type p2p
修改hello时间
改完network-type后确实加快了收敛,但是P2P和P2MP类型的hello时间和dead时间是比ospf原本的要长的,所以为了完成加快收敛的要求,我们还要修改其hello与dead时间(但修改只用改hello时间,因为dead时间随hello时间变化,无需修改)
由于修改hello时间的配置思路与上面的“修改network-type类型”思路类似,所以这里就只展示R3-R1/2区域的修改配置指令,其余路由器配置同理,不做赘述
----- R3-R1/2 -----
[r1]int g0/0/0
[r1-GigabitEthernet0/0/0]ospf timer hello 10 -- hello时间统一修改成10s,如还想再快,缩短时间即可
[r2]int g0/0/0
[r2-GigabitEthernet0/0/0]ospf timer hello 10
[r3]int g0/0/0
[r3-GigabitEthernet0/0/0]ospf timer hello 10
配置OSPF认证
一般情况下,ospf的认证只在骨干区域0配置即可,故我们在此只配置区域0的
----- Area 0 -----
[r4]ospf 1
[r4-ospf-1]a 0
[r4-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456
[r3]ospf 1
[r3-ospf-1]a 0
[r3-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456
[r6]ospf 1
[r6-ospf-1]a 0
[r6-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456
[r7]ospf 1
[r7-ospf-1]a 0
[r7-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456
保障更新安全
通过设置密码来保障更新安全
配置NAT
配置NAT来访问外网环境
[r4]acl 2000
[r4-acl-basic-2000]rule permit source 172.16.0.0 0.0.255.255
[r4]int s4/0/1
[r4-Serial4/0/1]nat outbound 2000
R1pingISP
R10的环回上进行ping测试
都可通,则配置无误
至此,整个OSPF综合实验配置完毕。
如有错误,请多指正。
相关文章:
【HCIP]——OSPF综合实验
题目 实验需求 根据上图可得,实验需求为: 1.R5作为ISP:其上只能配置IP地址;R4作为企业边界路由器,出口公网地址需要通过PPP协议获取,并进行CHAP认证。(PS:因PPP协议尚未学习&#…...
PW系列工控电脑复制机:效率与精度双重提升
工控电脑复制应用:效率与精度的双重提升 随着现代企业对大数据、数据备份、和跨平台兼容性需求的快速增长,工控电脑已成为数据密集型产业的核心设备。针对工控环境中大量数据复制的特殊需求,PW系列NVMe/SATA PCIe SSD复制机(如PW…...
学习QT第二天
QT6示例运行 运行一个Widgets程序运行一个QT Quick示例 工作太忙了,难得抽空学点东西。-_-||| 博客中有错误的地方,请各位道友及时指正,感谢! 运行一个Widgets程序 在QT Creator的欢迎界面中,点击左侧的示例…...
11.20作业
题目一: 题目: // 数组的行列转置 代码: // 数组的行列转置 #include <stdio.h> int main() {int a[2][3], i, j, b[3][2];printf("输入一个两行三列的数组a:\n");for (i 0; i < 2; i)for (j 0; j < 3; j){scanf…...
Ubuntu Linux使用前准备动作_使用root登录图形化界面
Ubuntu默认是不允许使用 root 登录图形化界面的。这是出于安全考虑的设置。但如果有需要,可以通过以下步骤来实现使用 root 登录: 1、设置 root 密码 打开终端,使用当前的管理员账户登录系统。在终端中输入命令sudo passwd root,…...
DICOM核心概念:显式 VR(Explicit VR)与隐式 VR(Implicit VR)在DICOM中的定义与区别
在DICOM(Digital Imaging and Communications in Medicine)标准中,VR(Value Representation) 表示数据元素的值的类型和格式。理解显式 VR(Explicit VR)与隐式 VR(Implicit VR&#…...
源码分析Spring Boot (v3.3.0)
. ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | _ | _| | _ \/ _ | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) ) |____| .__|_| |_|_| |_\__, | / / / /|_||___//_/_/_/:: Spring Boot :: (v3.3.0)//笔记背…...
IPv6 NDP 记录
NDP(Neighbor Discovery Protocol,邻居发现协议) 是 IPv6 的一个关键协议,它组合了 IPv4 中的 ARP、ICMP 路由器发现和 ICMP 重定向等协议,并对它们作出了改进。该协议使用 ICMPv6 协议实现,作为 IPv6 的基…...
linux常用命令(文件操作)
目录 1. ls - 列出目录内容 2. cd - 更改目录 3. pwd - 打印当前工作目录 4. mkdir - 创建目录 5. rm - 删除文件或目录 6. cp - 复制文件或目录 7. mv - 移动或重命名文件 8. touch - 更新文件访问和修改时间 9. cat - 显示文件内容 10. grep - 搜索文本 11. chmod…...
内存管理 I(内存管理的基本原理和要求、连续分配管理方式)
一、内存管理的基本原理和要求 内存管理(Memory Management)是操作系统设计中最重要和最复杂的内容之一。虽然计算机硬件技术一直在飞速发展,内存容量也在不断增大,但仍然不可能将所有用户进程和系统所需要的全部程序与数据放入主…...
【Redis】基于Redis实现秒杀功能
业务的流程大概就是,先判断优惠卷是否过期,然后判断是否有库存,最好进行扣减库存,加入全局唯一id,然后生成订单。 一、超卖问题 真是的场景下可能会有超卖问题,比如开200个线程进行抢购,抢100个…...
Hadoop 使用过程中 15 个常见问题的详细描述、解决方案
目录 问题 1:配置文件路径错误问题描述解决方案Python 实现 问题 2:YARN 资源配置不足问题描述解决方案Python 实现 问题 3:DataNode 无法启动问题描述解决方案Python 实现 问题 4:NameNode 格式化失败问题描述解决方案Python 实现…...
【Flutter 问题系列第 84 篇】如何清除指定网络图片的缓存
这是【Flutter 问题系列第 84 篇】,如果觉得有用的话,欢迎关注专栏。 博文当前所用 Flutter SDK:3.24.3、Dart SDK:3.5.3,网络图片缓存用的插件 cached_network_image: 3.4.1,缓存的网络图像的存储和检索用…...
【UE5】使用基元数据对材质传参,从而避免新建材质实例
在项目中,经常会遇到这样的需求:多个模型(例如 100 个)使用相同的材质,但每个模型需要不同的参数设置,比如不同的颜色或随机种子等。 在这种情况下,创建 100 个实例材质不是最佳选择。正确的做…...
鸿蒙动画开发07——粒子动画
1、概 述 粒子动画是在一定范围内随机生成的大量粒子产生运动而组成的动画。 动画元素是一个个粒子,这些粒子可以是圆点、图片。我们可以通过对粒子在颜色、透明度、大小、速度、加速度、自旋角度等维度变化做动画,来营造一种氛围感,比如下…...
IDEA2023 创建SpringBoot项目(一)
一、Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 二、快速开发 1.打开IDEA选择 File->New->Project 2、…...
VSCode:终端打开一片空白,无cmd
第一步:找到右下角设置图标 第二步:找到 Terminal - Integrated - Default Profile: Windows: 选择一个本地存在的命令方式,重启即可 也可以直接在右下角直接选择...
Zea maize GO
1.涉及到新旧基因组的转化 B73v4_to_B73v5 (davidbioinformatics只支持新版基因组) MaizeGDB Map文件下载https://download.maizegdb.org/Pan-genes/B73_gene_xref/小处理脚本(制作map文件) import pandas as pd# 读取CSV文件 …...
Android开发实战班 - 数据持久化 - 数据加密与安全
在 Android 应用开发中,数据安全至关重要,尤其是在处理敏感信息(如用户密码、支付信息、个人隐私数据等)时。数据加密是保护数据安全的重要手段,可以有效防止数据泄露、篡改和未经授权的访问。本章节将介绍 Android 开…...
EDA实验设计-led灯管动态显示;VHDL;Quartus编程
EDA实验设计-led灯管动态显示;VHDL;Quartus编程 引脚配置实现代码RTL引脚展示现象记录效果展示 引脚配置 #------------------GLOBAL--------------------# set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED" set_…...
Eclipse 查找功能深度解析
Eclipse 查找功能深度解析 Eclipse 是一款广受欢迎的集成开发环境(IDE),它为各种编程语言提供了强大的开发工具。在本文中,我们将深入探讨 Eclipse 的查找功能,这是开发者日常工作中不可或缺的一部分。无论是查找代码中的特定字符串,还是进行更复杂的搜索,如正则表达式…...
第三百二十九节 Java网络教程 - Java网络UDP套接字
Java网络教程 - Java网络UDP套接字 TCP套接字是面向连接的,基于流。基于UDP的套接字是无连接的,基于数据报。 使用UDP发送的数据块称为数据报或UDP数据包。每个UDP分组具有数据,目的地IP地址和目的地端口号。 无连接套接字在通信之前不建立…...
Leetcode215. 数组中的第K个最大元素(HOT100)
链接 第一次: class Solution { public:int findKthLargest(vector<int>& nums, int k) {sort(nums.begin(),nums.end());int n nums.size();return nums[n-k];} }; 这显然不能出现在面试中,因为面试官考察的不是这个。 正确的代码&#…...
QT与嵌入式——搭建串口
1、源码 由于我需要不止一个串口来进行数据交互,所以简单的封装了一下 void Usb_Init(QString portName, QSerialPort *Port) {Port->setPortName(portName);Port->setBaudRate(QSerialPort::Baud115200); // 设置波特率,根据你的开发板配置修改…...
Shell编程-6
声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址:shell(6)if条件判断与for循环结构_哔哩哔哩_bilibili 一、if条件判断 在Shell脚本中,if语句用于基于条件的评估来执行不同的代码块。…...
使用 Postman 设置 Bearer Token 进行身份验证
学习笔记 1. 打开 Postman 并创建新请求 打开 Postman。 在左上角点击 按钮,创建一个新的请求。 2. 选择 HTTP 方法 在请求类型(默认为 GET)旁边的下拉菜单中,选择你需要的 HTTP 方法,如 POST、GET、PUT 等。 3…...
现在转前端怎么样?
互联网技术日新月异,软件开发者追逐技术浪潮的脚步从未停歇。在这个快速发展的行业中,如何规划自己的职业道路,选择合适的技术方向,成为了许多开发者面临的重要抉择。本文将围绕技术选择这个话题,分享一些深入的思考和…...
【算法一周目】滑动窗口(1)
目录 长度最小的子数组 解题思路 代码实现 无重复字符的最大字串 解题思路 代码实现 最大连续1的个数l l l 解题思路 代码实现 将x减到0的最小操作数 解题思路 代码实现 长度最小的子数组 题目链接:209. 长度最小的子数组题目描述: 给定一个…...
React Native 基础
React 的核心概念 定义函数式组件 import组件 要定义一个Cat组件,第一步要使用 import 语句来引入React以及React Native的 Text 组件: import React from react; import { Text } from react-native; 定义函数作为组件 const CatApp = () => {}; 渲染Text组件...
【C++笔记】list使用详解及模拟实现
前言 各位读者朋友们大家好!上期我们讲了vector的使用以及底层的模拟实现,这期我们来讲list。 目录 前言一. list的介绍及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity1.2.4 list element access1.…...
站长工具网站备案查询/百度云网盘官网
在开始理解Linux文件管理和目录类命令之前,有必要先说一下,关于操作系统在计算机中都做了哪些工作。0、操作系统的工作1、文件管理,增删改查2、目录管理3、进程管理4、软件安装5、运行程序6、网络管理7、设备管理本次笔记介绍的是文件管理和目…...
怎么了解百度蜘蛛到哪个网站/seo外链发布平台
概念分析 简单时间轮算法是时间轮算法的入门内容。笔者暂时研究到这块,下面做下详细的分享。 时间轮算法:是指有一条时间闭环履带,每一节代表等长时间,假想有一个指针在这条履带圆心转动,转动速度恒定。当转到某一节时…...
灰色行业网站/湖南竞价优化专业公司
Java之Map对象复制小例子 标签: java2016-05-19 22:34 73人阅读 评论(0) 收藏 举报分类:一步一步学Java(23) 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[] 开心一笑 提出问题 Map对象的…...
阿雷网站建设公司/百度数据平台
在前后端完全分离的情况下,Vue项目中实现token验证大致思路如下: 1、第一次登录的时候,前端调后端的登陆接口,发送用户名和密码 2、后端收到请求,验证用户名和密码,验证成功,就给前端返回一个…...
wordpress反爬虫/西安网站建设排名
目录快速答案详细讲解举个例子方法 及 代码参考资料快速答案 使用星号占位符(*) printf("%*d", -4, "12"); // 或 printf("%-*d", 4, "12"); // 得到的输出:"12 " (12后面有两个空格)详…...
怎么来自己做网站优化/百度手机app
DRM实例教程DRM是一个显示驱动框架,也就是把功能封装成 open/close/ioctl 等标准接口,应用程序调用这些接口来驱动设备,显示数据。我们这里将从使用的角度来看看,怎么验证和使用DRM驱动。DRM设备节点DRM驱动会在/dev/dri下创建3个…...