OSPF链路状态数据库

原理概述

OSPF是一种基于链路状态的动态路由协议,每台OSPF路由器都会生成相关的LSA,并将这些LSA通告出去。路由器收到LSA后,会将它们存放在链路状态数据库LSDB中。

LSA有多种不同的类型,不同类型的LSA的功能和作用是不同的,下面介绍几种常见的LSA。

Type-1 LSA(Router LSA):每台路由器都会产生,用来描述路由器的直连链路状态和开销值。Type-1 LSA 只能在所属区域内部泛洪,不能泛洪到其他区域。

Type-2 LSA(Network LSA):它是由DR产生的,主要用来描述该DR所在网段的网络掩码以及该网段内有哪些路由器。Type-2 LSA只能在所属区域内部泛洪,不能泛洪到其他区域。

Type -3 LSA ( Network Summary LSA ):它是由 ABR ( Area Boundary Router )产生的, ABR 路由器将所连区域的 Type-1和 Type-2 LSA 转换为 Type-3 LSA ,用来描述区域间的路由信息。 Type-3 LSA 可以泛洪到整个 AS ( Autonomous System ,自治域)内部,但不能泛洪到 Totally Stub 区域和 Totally NSSA ( Not-So-Stubby Area )区域。

Type -4 LSA ( ASBR Summary LSA ):它是由 ASBR ( Autonomous System Boundary Router )所在区域的 ABR 产生的,用来描述到 ASBR 的路由。 Type -4 LSA 可以泛洪到整个 AS 内部,但不能泛洪到 Stub 区域、 Totally Stub 区域、 NSSA 区域和 Totally NSSA 区域中。

Type -5 LSA ( AS External LSA ):它是由 ASBR 产生的,用来描述到 AS 外部网络的路由。 Type -5 LSA 可以泛洪到整个 AS 内部,但不能泛洪到 Stub区域、 Totally Stub 区域、 NSSA 区域和 Totally NSSA 区域中

 Type-6 LSA :用于 OSPF 组播。

 Type-7 LSA ( NSSA LSA ):它是由 NSSA 区域或 Totally NSSA 区域的 NSSA ASBR 产生的,用来描述到 AS 外部的路由。 Type-7 LSA 只能出现在所属 NSSA 区域或 Totally NSSA 区域内部

实验目的

理解 OSPF 中不同类型的 LSA 的作用
熟悉 OSPF 中不同类型的 LSA 的泛洪范围
熟悉 LSA 中重要字段的含义 

实验内容

实验拓扑如图所示。本实验模拟了一个企业总部与两个分支机构的网络场景,R2、R3、R5之间的链路属于区域0,R1与R2之间的链路属于区域1,R3与R4之间的链路属于区域2,R1和R4的 Loopback 1接口用来表示以后有合作伙伴加入时的网络。区域1为普通区域,区域2为 NSSA 区域。在区域0中,R5为 DR ,R2为 BDR ,R3为 DRother 。实验过程中会大量地展示和分析链路状态数据库,以加深对不同类型 LSA 的认识和理解。 

实验拓扑 

 

1.基本配置

根据拓扑图进行相应的基本配置,并使用ping命令检测R1与R2之间的连通性。 

 其余直连网段的连通性测试过程在此省略。

2.配置OSPF路由协议

在每台路由器上配置OSPF路由协议,R1与R2之间的链路属于区域1,R3与R4之间的链路属于区域2,R2、R3、R5之间的链路属于区域0,区域2是NSSA区域。

[R1]router id 10.0.1.1

[R1]ospf 10
[R1-ospf-10]area 1
[R1-ospf-10-area-0.0.0.1]net 10.0.12.0 0.0.0.255
[R1-ospf-10-area-0.0.0.1]net 10.0.1.1 0.0.0.0

 

[R2]router id 10.0.2.2
[R2]ospf 10
[R2-ospf-10]area 1
[R2-ospf-10-area-0.0.0.1]net 10.0.12.0 0.0.0.255
[R2-ospf-10-area-0.0.0.1]net 10.0.2.2 0.0.0.0
[R2-ospf-10-area-0.0.0.1]area 0
[R2-ospf-10-area-0.0.0.0]net 10.0.235.0 0.0.0.255

 

[R3]router id 10.0.3.3
[R3]ospf 10
[R3-ospf-10]area 2
[R3-ospf-10-area-0.0.0.2]nssa
[R3-ospf-10-area-0.0.0.2]net 10.0.34.0 0.0.0.255
[R3-ospf-10-area-0.0.0.2]net 10.0.3.3 0.0.0.0
[R3-ospf-10-area-0.0.0.2]area 0
[R3-ospf-10-area-0.0.0.0]net 10.0.235.0 0.0.0.255

 

[R4]router id 10.0.4.4
[R4]ospf 10
[R4-ospf-10]area 2
[R4-ospf-10-area-0.0.0.2]nssa 
[R4-ospf-10-area-0.0.0.2]net 10.0.34.0 0.0.0.255
[R4-ospf-10-area-0.0.0.2]net 10.0.4.4 0.0.0.0

 

[R5]router id 10.0.5.5
[R5]ospf 10

[R5-ospf-10]area 0
[R5-ospf-10-area-0.0.0.0]net 10.0.235.0 0.0.0.255
[R5-ospf-10-area-0.0.0.0]net 10.0.5.5 0.0.0.0

配置完成后,在R2、R5的G0/0/0接口上修改接口优先级的值,使R5成为DR,R2成为BDR。 

[R2-ospf-10]int g0/0/0
[R2-GigabitEthernet0/0/0]ospf dr-priority 50

[R5]int g0/0/0
[R5-GigabitEthernet0/0/0]ospf dr-priority 100 

在R2、R3、R5上重启OSPF进程,下面仅示意了R5的重启方法。

<R5>reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y 

在R3上查看DR与BDR的选举情况。

 

可以看到,在R1、R3、R5组成的广播网络中,目前R5是DR,R2是BDR。接下来查看每台路由器上的路由表。

 

可以看到,每台路由器都已获得了非直连网络的路由条目。接下来使用ping命令检测连通性 。

 

可以看到,各个网段之间的通信是正常的。 

区域1是普通区域,区域2是NSSA区域,区域1的R1和区域2的R4都需要引入Loopback1接口所连接的外部网络路由。在R1和R4上使用Route-Policy精确匹配Loopback1接口的直连路由并引入OSPF进程。

[R1]acl 2000
[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[R1-acl-basic-2000]route-policy 10 permit node 1
[R1-route-policy]if-match acl 2000
[R1-route-policy]ospf 10
[R1-ospf-10]import-route direct route-policy 10

 

[R4]acl 2000
[R4-acl-basic-2000]rule permit source 172.16.1.0 0.0.0.255
[R4-acl-basic-2000]route-policy 10 permit node 1
[R4-route-policy]if-match acl 2000
[R4-route-policy]ospf 10
[R4-ospf-10]import-route direct route-policy 10

 配置完成后,在R5上查看由R1和R4引入的两条路由。

可以看到,在R5的路由表中,这两条路由都显示为O_ASE,且优先级与开销也都相同,不同之处是这两条路由的下一跳,因为它们是由不同的路由器发送给R5的。

3.查看Type-1 LSA, Type-2 LSA,Type-3 LSA

在区域0的R5上查看LSDB

可以看到,R5的 LSDB 中共有5种 LSA ,它们分别是 Router LSA (或称 Type-1 LSA )、 Network LSA (或称 Type-2 LSA )、Sum-Net LSA (或称 Type-3 LSA , Network Summary LSA )、 Sum- Asbr LSA (或称 Type-4 LSA , ASBR Summary LSA )和 External LSA (或称 Type-5 LSA , AS External LSA )。 

在R5上查看 Router-ID 为10.0.2.2产生的 Router LSA 的详细信息。

 下面解释一下显示信息中的部分参数的含义。
 ①Type :显示信息中, Type 表示了 LSA 的类型,这里表示的是 Router LSA 。不同类型的 LSA 的作用和泛洪范围是不相同的。 Router LSA 描述了路由器的直连链路或接口,泛洪范围为所在区域的内部,以使本区域的其他路由器了解其直连链路或接口的状态信息。
 ②Ls id :对于 Router LSA , Ls id 就是产生该 Router LSA 的路由器的 Router-ID 。
 Adv rtr : Adv rtr 描述了 LSA 是由哪台路由器产生的。对于 Router LSA 来讲, Adv rtr 就是产生该 Router LSA 的路由器的 Router-ID 。
 ④Seq #:每一条 LSA 都会维护一个 Seq #(序列号),产生这条 LSA 的路由器默认会以30s的周期泛洪这条 LSA ,每次泛洪时,序列号就加1LSA 的序列号越大,表明这条 LSA 越新。
 ⑤Chksum : chksum (校验和)用来校验 LSA 的完整性。所有的 LSA 都保存在路由器的 LSDB 中,每5min会计算一次。如果路由器收到了同一条 LSA ,且序列号相同,则会比较它们的校验和,校验和越大就被认为相应的 LSA 越新
 Ls age : Ls age 是指 LSA 的老化时间,用来表示 LSA 已经存活了多长时间,最大值为3600s。当一台路由器产生一条 LSA 的时候,路由器会将 LSA 的老化时间设置为0。 LSA 在产生之后,无论是停留在路由器的 LSDB 内,还是在传递过程之中,老化时间都会不断增加。为了防止因 LSA 的过期而造成路由回馈,路由器会每隔30min泛洪自己产生的 LSA 。若序列号与校验和的比较都不能确定出最新的 LSA 时,则会比较老化时间。在 LSDB 中,如果老化时间相差大于15min以上,则 Ls age 的值越小,说明 LSA 越新;如果相差在15min内,则认为两条 LSA 是一样的

在上面的显示信息中, Link count 以上的参数信息通常被称为 LSA 头部信息 Link count 及以下部分为具体的链路描述信息。 Link count 标识了这条 LSA 描述的链路信息的数量,对于 P-2-P 链路类型, Link ID 是指链路上邻居接口的 IP 地址;对于 TransNet 链路类型, Link ID 是指 DR 接口的 IP 地址。 Data 是指自身接口的 IP 地址, Link Type 是指接口的链路类型, Metric 是指路由器自己到达这条链路的 Cost 值。需要说明的是, OSPF 协议会把 Broadcast 和 NBMA 这两种具有多路访问能力的网络都认为是 TransNet 网络。

从上得知,R2的 Router LSA 描述了自己连接到了某个 TransNet 网络,网络的 DR 接口的 IP 地址为10.0.235.5(R5),自己使用10.0.235.2连接到该网络中,且到达这个网络的 Cost 值为1

Network LSA 是由 DR 产生的,它的主要作用是描述 TransNet 网络的掩码信息和连接到 TransNet 网络的路由器的信息。在多路访问网络中,每台路由器都产生 Network LSA 是没有必要的,因为这会导致 Network LSA 的重复。
R5是 TransNet 网络的 DR ,在R5上查看它产生和发送的 Network LSA 的详细信息。 

可以看到,这条 Network LSA 说明了 TransNet 网络的掩码为255.255.255.0,连接到这个 TransNet 网络的路由器有10.0.5.5(R5)、10.0.2.2(R2)、10.0.3.3(R3)。 Network LSA 中没有携带路径的开销,原因是 Router LSA 已经描述了自己到 TransNet 网络的 Cost 值。

在R2、R3、R5上查看区域0的 LSDB 。

 

可以发现,R2、R3、R5的 LSDB 中区域0的 Router LSA 和 Network LSA 是完全一样的。

Router LSA 和 Network LSA 可以完全描述本区域的网络拓扑,但这些 LSA 不能泛洪到其他区域。当 OSPF 网络包含多个区域时,通过 Router LSA 和 Network LSA 就无法进行区域间路由的计算了。区域间路由的计算需要利用 Sum-Net LSA 来实现, ABR 路由器会将自己相连区域的 Router LSA 和 Network LSA 转换为 Sum-Net LSA ,然后泛洪到其他区域。

R2同时连接了区域0和区域1,所以是一台 ABR 路由器。查看R2的 LSDB 。

可以看到,R2的区域0中有一条 LinkState ID 为10.0.12.0的 Sum-Net LSA ,它的 AdvRouter 为10.0.2.2。网段10.0.12.0/24本是属于区域1的网络,现在被 ABR 路由器R2转换为 Sum-Net LSA 并泛洪到了区域0中。10.0.235.0/24本是属于区域0的网络,现在被 ABR 路由器R2转换为 Sum- Net LSA 并泛洪到了区域1中。实际上, Sum-Net LSA 是 ABR 利用自己相连区域的 Router-LSA 和 Network-LSA 来计算得到的路由信息的。

在R2上查看 LinkState ID 为10.0.12.0的这条 Sum-Net LSA 的详细信息。

可以看到,这条 LSA 的 Type 为 Sum-Net , Ls id 表明了目的网络地址为10.0.12.0,Net mask 表明了目的网络的掩码为255.255.255.0, Metric 表明了 ABR 路由器R2去往目的网络的 Cost 值为1。

在R5上查看 LSDB ,并查看路由表中关于10.0.12.0/24的路由信息。 

可以看到, R5 的 LSDB 中存在10.0.12.0这条 Sum-Net LSA ,R5的路由表中关于10.0.12.0/24的这条路由信息表明R5去往10.0.12.0/24Cost 为2。R5通过这条 Sum-Net LSA 得知网络中存在10.0.12.0/24网段,这个网段的 AdvRouter 为10.0.2.2(R2),R2自已到达10.0.12.0/24 Cost 为1。R5和R2同属于区域0,所以R5可以通过 Router LSA 和 Nerwork LSA 计算出自己到R2Cost 为1,因此,R5可以计算出自己到10.0.12.0/24 Cost 值为1+1=2。

区域间的路由是根据 Sum-Net LSA 并结合 Router LSA 及 Network-LSA 计算出来的。对于某个区域的一台 OSPF 路由器来说,它无需了解其他区域的链路状态信息,但可以通过 Sum-Net LSA 并结合 Router LSA 及 Network-LSA 计算出区域间路由;计算区域间路由时,采用的不再是链路状态算法,而是距离矢量算法。 

在R2上查看 LinkStateID 为10.0.34.0/24这条 LSA 的信息。 

可以看到,10.0.34.0/24是属于区域2的网络, ABR 路由器R3将关于10.0.34.0/24的路由信息以 Sum-Net LSA 的方式通告进了区域0, Cost 为1。然后, ABR 路由器R2又继续将此信息以 Sum- Net LSA 的方式通告进了区域0。
对于 ABR 来说,如果在自己相连的某个区域的 LSDB 中存在某条 Sum-Net LSA ,并且该 Sum-Net LSA 的 AdvRouter 不是自己的 Router-ID 时,就会将这条 Sum-Net LSA 的 AdvRouter 修改为自己的 Router-ID ,并重新计算自己到达这条 Sum-Net LSA 的 Cost 值,然后将之泛洪到与自己相连的其他区域中。

4.查看 Type-4 LSA 和 Type-5 LSA 

路由器可以通过 Router LSA 和 Network LSA 计算区域内的路由,可以通过 Sum-Net LSA 并结合 Router LSA 和 Network LSA 计算区域间的路由,可以通过 Sum-Asbr LSA 和 External LSA 计算 AS 外部的路由

R1的 Loopback 1是外部路由,被 ASBR 路由器R1引入到了 OSPF 网络中。查看R1的 LSDB 。

 可以看到,R1的 LSDB 中存在一条 Type 为 External , LinkState ID 为192.168.1.0,
 AdvRouter 为10.0.1.1的 LSA 。在R1上查看这条 LSA 的具体信息。

可以看到,这条 LSA 的 Type 是 External , AdvRouter 为10.0.1.1(R1),这条 LSA 实际上是一条目的网络为192.168.1.0/24的 AS 外部路由,显示信息中的 E Type ( External Type )的值为2
 External LSA 可以在整个 AS 内部泛洪(但不能泛洪到 Stub 区域、 Totally Stub 区域、 NSSA 区域和 Totally NSSA 区域中),在泛洪过程中其各个参数不会被改变。

查看R2、R3、R4、R5的 LSDB 中是否也存在这条 LSA 。

 

 

从上面的显示信息可以看到,R2、R3、R5的 LSDB 中都存在这条 External LSA ,而且 AdvRouter (10.0.1.1)等参数信息没有任何变化。需要注意的是,R4的 LSDB 中没有这条 External LSA ,这是因为R4处于 NSSA 区域中而 External LSA 是不允许进入 NSSA 区域的

R5通过 Link id 为192.168.1.0的 External LSA 得知,从自己去往192.168.1.0/24是可以通过10.0.1.1(R1)到达的,并且知道从R1去往192.168.1.0/24的 Cost 为1。然而,R5并不知道从自己去往 ASBR 路由器R1的路由及 Cost ,所以R5还无法计算出从自己到达外部网络192.168.1.0/24的路由及 Cost 。在 OSPF 协议中, Sum - Asbr LSA 是用来描述去往 ASBR 的路由信息的
查看R5的 LSDB 中 LinkState ID 为10.0.1.1的 Sum- Asbr LSA 的具体信息。 

可以看到,这条 Sum - Asbr LSA 的 AdvRouter 是 ABR 路由器R2(10.0.2.2),并且表明了从 ABR 路由器R2到 ASBR 路由器R1(10.0.1.1)的 Cost 值为1。

在R5上使用 display ospf abr-asbr 命令查看到达 ABR 和 ASBR 的 Cost 值。 

可以看到,从R5到达 ABR 路由器R2的 Cost 值为1,从R5到达 ASBR 路由器R1的 Cost 值为2。由此可见,R5其实是通过 Router LSA 和 Network LSA 先计算出到达 ABR 路由器R2的 Cost 值,然后加上 Sum-Asbr LSA 所表示的从 ABR 路由器R2到达 ASBR 路由器 RI 的 Cost 值,最终得出从自己到达 ASBR 路由器R1的 Cost 值。 

Sum-Net LSA 和 Sum-Asbr LSA 的相同点是它们都由 ABR 产生,并且其 AdvRouter 在泛洪过程中会作相应的改变,不同点在于 Sum-Net LSA 是用来计算区域间的路由的,而 Sum-Asbr LSA 是用来计算到达 ASBR 的路由的。如果网络中不存在 ASBR ,那就不会产生 Sum- Asbr LSA ,这也说明有 External LSA 存在时,才会有 Sum- Asbr LSA
 

在 RI 上使用 undo import-route 取消路由的引入。 

[R1]ospf 10
[R1-ospf-10]undo import-route direct

在R5上查看 LSDB 。 

可以看到, LinkStateID 为192.168.1.0的 External LSA 消失了, LinkState ID 为10.0.1.1的 Sum- Asbr LSA 也随之消失了。

5.查看Type-7 LSA

NSSA 区域是不允许 External LSA 存在的,但 NSSA 区域允许通过 import - route 命令引入外部路由,那么如何来描述在 NSSA 区域中的 AS 外部路由呢? NSSA 区域引入的外部路由不能以 External LSA 的形式出现,取而代之的是使用 NSSA LSA 来描述 NSSA 区域中的 AS 外部路由,且 NSSA LSA 只能出现在 NSSA 区域中。 NSSA LSA 由 NSSA 区域的 NSSA ASBR 产生。

R4为 NSSA 区域的 ASBR ,查看R4的 LSDB 。

可以看到,R4为外部路由172.16.1.0产生了相应的 NSSA LSA 。

在R4上查看这条LSA 的详细信息。

可以注意到, NSSA LSA 的参数信息基本上和 External LSA 相同。
NSSA  LSA是特殊类型的 LSA ,只会出现在 NSSA 区域中,不能泛洪到其他任何区域,那么其他区域的路由器又是如何计算去往 NSSA LSA 所表示的外部网络的路由呢?原来, NSSA 区域的 ABR 会将 NSSA LSA 转换为 External LSA ,并泛洪到其他区域。
R3为 NSSA 区域的 ABR 路由器,在R3上查看 LSDB 信息。

可以看到,由10.0.4.4产生的 NSSA LSA 被R3转换成了 External LSA ,并泛洪到其他区域。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/9873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【智能优化算法】金豺狼优化算法(Golden jackal optimization,GJO)

金豺狼优化(Golden jackal optimization,GJO)是期刊“Expert Systems with Applications”&#xff08;中科院一区IF 8.3&#xff09;的2022年智能优化算法 01.引言 金豺狼优化(Golden jackal optimization,GJO)旨在为解决实际工程问题提供一种替代的优化方法。GJO的灵感来自金…

【智能优化算法】卷尾猴搜索算法(Capuchin search algorithm,CapSA)

【智能优化算法】卷尾猴搜索算法(Capuchin search algorithm,CapSA)是期刊“NEURAL COMPUTING & APPLICATIONS”&#xff08;IF 6.0&#xff09;的2021年智能优化算法 01.引言 【智能优化算法】卷尾猴搜索算法(Capuchin search algorithm,CapSA)用于解决约束和全局优化问…

VMware Workstation 17 Player 创建虚拟机教程

本教程是以windows server 2012物理机服务器安装好的VMware Workstation 17 Player为例进行演示&#xff0c;安装VMware Workstation 17 Player大家可以自行网上搜索安装。 1、新建虚拟机 双击安装好的VMvare图标&#xff0c;点击创建虚拟机。 2、选择是否安装系统 本步骤选…

【静态分析】软件分析课程实验A4-类层次结构分析与过程间常量传播

官网&#xff1a;作业 4&#xff1a;类层次结构分析与过程间常量传播 | Tai-e 参考&#xff1a;https://www.cnblogs.com/gonghr/p/17984124 ----------------------------------------------------------------------- 1 作业导览 为 Java 实现一个类层次结构分析&#xf…

shiro-quickstart启动报错

说明&#xff1a;最近在学登录框架&#xff0c;记录一下学习刚shiro框架&#xff0c;启动快速入门样例的错误&#xff1b; 场景 把shiro代码download下来&#xff0c;打开samples&#xff08;样例&#xff09;包&#xff0c;打开快速入门&#xff0c;启动&#xff0c;报错&am…

聊天室项目思路

发起群聊&#xff1a; 从好友表选取人发送到服务器&#xff0c;服务器随机生成不重复的群号&#xff0c;存储在数据库&#xff0c;同时建立中间表&#xff0c;处理用户与群聊的关系 申请入群&#xff1a; 输入群号&#xff0c;发消息给服务器&#xff0c;服务器查询是否存在…

06-xss攻防于绕过

xss的攻击于防御 攻击的利用方式 1&#xff09;获取cookie&#xff0c;实现越权&#xff0c;如果是获取到网站管理员的cookie&#xff0c;也可以叫提权。注意尽量尽快退出账号&#xff0c;删除session&#xff0c;让session失效 2&#xff09;钓鱼网站&#xff0c;模拟真实的…

Android 按钮Button点击音效

一、新建工程 编译运行&#xff0c;确保工程无误&#xff0c;这里不过多赘述。 二、UI布局 添加两个播放音效Button <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"…

leetcode-括号生成-101

题目要求 思路 1.左括号的数量等于右括号的数量等于n作为判出条件&#xff0c;将结果存到res中 2.递归有两种&#xff0c;一种是增加左括号&#xff0c;一种是增加右括号&#xff0c;只要左括号的数量不超过n&#xff0c;就走增加左括号的递归&#xff0c;右括号的数量只要小于…

element ui的table多选

使用el-table的selection-change事件来获取选中的值&#xff1b; 例&#xff1a; html代码&#xff1a; <el-button type"primary" click"openTableSet">列表设置</el-button><!-- 列表设置弹框 --> <el-dialog :close-on-click-mo…

【文化课学习笔记】【物理】功与能

【物理】功与能 功 基础概念 定义 一个物体在力的作用下&#xff0c;沿力的方向&#xff0c;通过一段距离(位移)&#xff0c;则称这个力做了功。 公式 功的定义式&#xff1a; \[W Fx \] 这里的 \(x\) 指的是物体沿力的方向上发生的位移。由于力 \(F\) 和位移 \(x\) 都是矢量&…

[笔试训练](十八)

目录 052:字符串压缩 053:chika和蜜柑 054:01背包 052:字符串压缩 压缩字符串(一)_牛客题霸_牛客网 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 双指针模拟 class Solution { public:string compressString(string param) {int nparam.size();string ret;int num…

Linux-基础命令第三天

1、命令&#xff1a;wc 作用&#xff1a;统计行数、单词数、字符数 格式&#xff1a;wc 选项 文件名 例&#xff1a; 统计文件中的行数、单词数、字符数 说明&#xff1a;59代表行数&#xff0c;111代表单词数&#xff0c;2713代表字符数&#xff0c;a.txt代表文件名 选项…

【Java代码审计】代码审计的方法及常用工具

【Java代码审计】代码审计的方法及常用工具 代码审计的常用思路代码审计辅助工具代码编辑器测试工具反编译工具Java 代码静态扫描工具 代码审计的常用思路 1、接口排查&#xff08;“正向追踪”&#xff09;&#xff1a;先找出从外部接口接收的参数&#xff0c;并跟踪其传递过…

【MySQL基本查询(下)】

文章目录 一、update案例 二、Delete案例注意&#xff1a;delete 全表数据的行为慎用&#xff01;truncate 三、插入查询结果案例 四、了解一些函数1.count函数2.sum函数3. avg函数4.max函数5. min函数 五、group by子句的使用案例having和where 一、update 该关键字的功能就是…

如何在40分钟之内,又快又准完成四六级阅读柯桥考级英语培训

答题步骤和技巧 1 选词填空 选词填空部分字数在200~300之间&#xff0c;设有10个空&#xff0c;提供15个备选项&#xff0c;从中选出最合适答案。选词填空题相对于普通的完型题简单&#xff0c;但是考察内容基本一致。集中考察的点有语法现象&#xff0c;逻辑衔接和搭配。每空…

纯血鸿蒙APP实战开发——数字滚动动效实现

介绍 本示例主要介绍了数字滚动动效的实现方案。 该方案多用于数字刷新&#xff0c;例如页面刷新抢票数量等场景。 效果图预览 使用说明&#xff1a; 下拉页面刷新&#xff0c;数字进行刷新。 实现思路 通过双重ForEach循环分别横向、纵向渲染数字。 Row() {ForEach(this…

Day 29 MySQL的主从复制集群

一&#xff1a;主从复制 1.主从复制概念 什么是主从复制&#xff1a; ​ 主从复制&#xff0c;是用来建立一个和主数据库完全一样的数据库环境&#xff0c;称为从数据库&#xff1b;主数据库一般是准实时的业务数据库 主从复制的作用&#xff1a; ​ 做数据的热备&#xf…

GPU云渲染平台选择应该看什么?瑞云渲染带你了解

在选择GPU云渲染平台时&#xff0c;关键的考量因素包括渲染速度、支持的软件兼容性、价格性价比以及用户服务质量。了解这些指标将帮助用户在众多选项中做出明智的选择&#xff0c;以优化渲染效率和成本效益。 一、GPU与渲染有什么关系 GPU与渲染有着密切的关系&#xff0c;在…

springboot增删改查

我的记录 RestController RequestMapping("/user") public class UserController {Autowiredprivate UserService userService;GetMapping("/list")public List<User> list(){return userService.list();}//新增PostMapping("/save")publi…