生成树基础实验

以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及 MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。

为解决交换网络中的环路问题,提出了生成树协议STP(Spanning Tree Protocol)。

与众多协议的发展过程一样,生成树协议也是随着网络的发展而不断更新的,从最初的IEEE802.1D 中定义的 STP 到 IEEE 802.1W 中定义的快速生成树协议 RSTP(Rapid Spanning TreeProtocol),再到最新的IEEE 802.1S 中定义的多生成树协议 MSTP(Multiple Spanning TreeProtocol )

本实验将通过完成 STP 的基本配置,帮助学员掌握 STP 的配置和原理,以及部分 RSTP 特性。

一、实验目的

  • 掌握启用和禁用 STP/RSTP 的方法
  • 掌握修改交换机 STP 模式的方法
  • 掌握修改桥优先级,控制根桥选举的方法
  • 掌握修改端口优先级,控制根端口和指定端口选举的方法
  • 掌握修改端口开销,控制根端口和指定端口选举的方法
  • 掌握边缘端口的配置方法
  • 掌握启用和禁用 RSTP 的配置方法

二、实验拓扑结构

交换机S1-S4统一采用S3700交换机,连接线两端的接口编号相同。

三、实验背景

某公司的二层交换网络中,为了提高网络可靠性,故在二层交换网络中增加冗余链路。为了阻止冗余链路可能带来的广播风暴,MAC 地址漂移等负面影响,需要在交换机之间部署生成树协议。

四、实验内容

4.1 实验配置思路

  • 使能设备上的 STP 功能
  • 修改桥优先级来控制根桥的选举
  • 修改接口参数来控制端口角色
  • 修改设备运行 RSTP 协议
  • 配置 RSTP 边缘端口

4.2 实验配置步骤

4.2.1 设备基础配置

(1)S1设备命名并关闭信息中心

<Huawei>system-view [Huawei]undo info-center enable [Huawei]sysname S1

(2)S2设备命名并关闭信息中心

<Huawei>system-view [Huawei]undo info-center enable [Huawei]sysname S2

(3)S3设备命名并关闭信息中心

<Huawei>system-view [Huawei]undo info-center enable [Huawei]sysname S3

(4)S4设备命名并关闭信息中心

<Huawei>system-view [Huawei]undo info-center enable [Huawei]sysname S4

4.2.2 配置设备运行 STP

(1)全局使能STP功能

全局使能交换设备或端口上的STP/RSTP/MSTP 功能的命令为stp enable 。默认情况下,交换设备上的 STP/RSTP/MSTP 功能处于启用状态,故该过程可以直接跳过。作为演示,以使能S1交换机的STP/RSTP/MSTP为例。

[S1]stp enable

(2)修改生成树的工作模式

默认情况下,设备的生成树协议工作模式为 MSTP 模式。修改生成树工作模式的命令格式如下:

stp mode 工作模式

其中:工作模式可从stp、rstp和mstp中选择。

对四个交换机的工作模式进行修改如下:

[S1]stp mode stp
[S2]stp mode stp
[S3]stp mode stp
[S4]stp mode stp

(3)查看生成树的状态

[S1]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge         :32768.4c1f-cc4b-051e  # 自身的桥 ID
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :32768.4c1f-cc32-6930 / 200000  # 根桥 ID 和 RPC
CIST RegRoot/IRPC   :32768.4c1f-cc4b-051e / 0
CIST RootPortId     :128.3
BPDU-Protection     :Disabled
TC or TCN received  :67
TC count per hello  :0
STP Converge Mode   :Normal 
Time since last TC  :0 days 0h:1m:7s
Number of TC        :13
Last TC occurred    :Ethernet0/0/3
----[Port1(Ethernet0/0/1)][FORWARDING]----   # 接口状态,下面内容为具体信息Port Protocol       :EnabledPort Role           :Designated PortPort Priority       :128Port Cost(Dot1T )   :Config=auto / Active=200000Designated Bridge/Port   :32768.4c1f-cc4b-051e / 128.1Port Edged          :Config=default / Active=disabledPoint-to-point      :Config=auto / Active=trueTransit Limit       :147 packets/hello-timeProtection Type     :NonePort STP Mode       :MSTP Port Protocol Type  :Config=auto / Active=dot1sBPDU Encapsulation  :Config=stp / Active=stpPortTimes           :Hello 2s MaxAge 20s FwDly 15s RemHop 20TC or TCN send      :3TC or TCN received  :0BPDU Sent           :53             TCN: 0, Config: 0, RST: 0, MST: 53BPDU Received       :1             TCN: 0, Config: 0, RST: 0, MST: 1

从S1的 生成树的状态信息可以看出,自身的桥ID与根桥ID不相同,表明S1不是根桥。

经查,S3的桥ID与根桥ID相同,即表示S3为根桥。

[S3]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge         :32768.4c1f-cc32-6930   # 自身桥ID
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :32768.4c1f-cc32-6930 / 0   # 根桥ID及RPC
CIST RegRoot/IRPC   :32768.4c1f-cc32-6930 / 0
CIST RootPortId     :0.0
BPDU-Protection     :Disabled
TC or TCN received  :12
TC count per hello  :0
STP Converge Mode   :Normal 
Time since last TC  :0 days 3h:17m:5s
Number of TC        :11
Last TC occurred    :Ethernet0/0/3

 注:按空格键翻页查看后续输出,按Ctrl+C 可结束显示。

(4)查看各交换机上生成树的状态信息摘要

[S1]display stp brief MSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               DESI  FORWARDING      NONE0    Ethernet0/0/2               DESI  FORWARDING      NONE0    Ethernet0/0/3               ROOT  FORWARDING      NONE0    Ethernet0/0/4               DESI  FORWARDING      NONE
[S2]display stp brief MSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               ALTE  DISCARDING      NONE0    Ethernet0/0/2               ALTE  DISCARDING      NONE0    Ethernet0/0/3               DESI  FORWARDING      NONE0    Ethernet0/0/4               ROOT  FORWARDING      NONE
[S3]display stp brief MSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               DESI  FORWARDING      NONE0    Ethernet0/0/3               DESI  FORWARDING      NONE0    Ethernet0/0/4               DESI  FORWARDING      NONE
[S4]display stp brief MSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               ROOT  FORWARDING      NONE0    Ethernet0/0/3               ALTE  DISCARDING      NONE0    Ethernet0/0/4               ALTE  DISCARDING      NONE

根据各设备连接接口的STP State(FORWARDING表示接口可以转发业务数据,DISCARDING表示不转发,即接口被阻塞),结合拓扑结构,可得到如下所示的有效拓扑结构,图中红色标识的接口表示此接口被阻塞,不转发业务数据,从而保障了从任一设备出发到达任意其它设备,均有路径可达,且不存在环路。

 注:该拓扑仅供参考,每个人的实验环境中的生成树拓扑不一定相同。

 4.2.3 手动配置根桥和备份根桥

由于根桥在网络中的重要性,在根桥选举过程中,通常希望性能高、网络层次高的交换设备会被选举为根桥。

但是,性能高、网络层次高的交换设备其优先级不一定高,因此需要通过执行相应命令配置其为根桥,以保证该设备成为根桥。

配置当前交换设备为指定生成树的根桥或备份根桥的命令为stp root。

执行【stp root primary】命令指定当前交换设备为根交换设备,即表示该设备在指定生成树中的优先级为0,且优先级不能修改。
执行【stp root secondary】命令指定当前交换设备在指定生成树中为备份根桥,则表示该设备的优先级数值为 4096,且优先级不能修改。

现要求修改设备参数,使得 S2 成为根桥,S1 成为备份根桥。

(1)配置S2为根桥

# 配置当前交换机为根桥
[S2]stp root primary # 查看stp详情
[S2]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge         :0    .4c1f-cca5-07c7   # 自身桥ID
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :0    .4c1f-cca5-07c7 / 0   # 根桥ID及到根桥的路径开销RPC
CIST RegRoot/IRPC   :0    .4c1f-cca5-07c7 / 0
CIST RootPortId     :0.0
BPDU-Protection     :Disabled
CIST Root Type      :Primary root  # 根桥
……此处省略后续输出……

注:因自身桥 ID 与根桥 ID 相同,且根路径开销为 0,说明 S2 是当前网络的根桥。 

(2)配置S1为备用根桥

# 配置当前交换机为备用根桥
[S1]stp root secondary # 查看当前STP详情
[S1]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge         :4096 .4c1f-cc4b-051e  # 自身桥ID
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :0    .4c1f-cca5-07c7 / 200000  # 根桥ID及到根桥的路径开销RPC
CIST RegRoot/IRPC   :4096 .4c1f-cc4b-051e / 0
CIST RootPortId     :128.1
BPDU-Protection     :Disabled
CIST Root Type      :Secondary root  # 备用根桥
……此处省略后续输出……

 (3)再次查看所有设备的STP状态摘要

[S1]display stp brief MSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               ROOT  FORWARDING      NONE0    Ethernet0/0/2               ALTE  DISCARDING      NONE0    Ethernet0/0/3               DESI  FORWARDING      NONE0    Ethernet0/0/4               DESI  FORWARDING      NONE
[S2]display stp brief MSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               DESI  FORWARDING      NONE0    Ethernet0/0/2               DESI  FORWARDING      NONE0    Ethernet0/0/3               DESI  FORWARDING      NONE0    Ethernet0/0/4               DESI  FORWARDING      NONE
[S3]display stp brief MSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               DESI  FORWARDING      NONE0    Ethernet0/0/3               ALTE  DISCARDING      NONE0    Ethernet0/0/4               ROOT  FORWARDING      NONE
[S4]display stp brief MSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               ALTE  DISCARDING      NONE0    Ethernet0/0/3               ROOT  FORWARDING      NONE0    Ethernet0/0/4               ALTE  DISCARDING      NONE

根据各设备连接接口的STP State(FORWARDING表示接口可以转发业务数据,DISCARDING表示不转发,即接口被阻塞),结合实验拓扑结构,可得到如下所示的有效拓扑结构,图中红色标识的接口表示此接口被阻断,不转发业务数据,从而保障了从任一设备出发到达任意其它设备,均有路径可达,且不存在环路。

 

4.2.4 配置根端口

现假定需要将S4 的Eth 0/0/4接口配置成为根端口。

(1)查看S4的STP状态信息

[S4]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge         :32768.4c1f-ccf3-6b1b
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :0    .4c1f-cca5-07c7 / 200000  # 根桥ID及RPC
CIST RegRoot/IRPC   :32768.4c1f-ccf3-6b1b / 0
CIST RootPortId     :128.3    # 根端口ID(即Eth 0/0/3)
BPDU-Protection     :Disabled
TC or TCN received  :32
TC count per hello  :0
STP Converge Mode   :Normal 
Time since last TC  :0 days 0h:24m:5s
Number of TC        :8
Last TC occurred    :Ethernet0/0/3

从S4的STP状态信息可以看出,S4到根桥S2的路径开销RPC为200000,本设备的根端口为Eth 0/0/3。

(2)修改RPC

现将S4到根桥S2的路径开销RPC为500000,命令如下所示。

[S4]interface Ethernet0/0/3# 指定从此接口到根桥的路径开销
[S4-Ethernet0/0/3]stp cost 500000
[S4-Ethernet0/0/3]quit

(3)查看当前 STP 状态信息

[S4]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge         :32768.4c1f-ccf3-6b1b
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :0    .4c1f-cca5-07c7 / 400000  # RPC变为400000
CIST RegRoot/IRPC   :32768.4c1f-ccf3-6b1b / 0
CIST RootPortId     :128.4   # 根端口变为Eth 0/0/4
BPDU-Protection     :Disabled
TC or TCN received  :38
TC count per hello  :0
STP Converge Mode   :Normal 
Time since last TC  :0 days 0h:1m:44s
Number of TC        :9
Last TC occurred    :Ethernet0/0/4

从图中可以看出,此时S4到根桥S2的路径开销RPC变成了400000,根端口变成了Eth 0/0/4,也就是Eth0/0/3被阻塞了,从而有效的网络拓扑变成了如下图所示的样子。

4.2.5 修改当前生成树工作模式为 RSTP

(1)修改所有设备的生成树工作模式

[S1]stp mode rstp
[S2]stp mode rstp
[S3]stp mode rstp
[S4]stp mode rstp

 (2)查看设备上的生成树状态,仅以S1为例

[S1]display stp
-------[CIST Global Info][Mode RSTP]-------
……此处省略后续输出……

 从输出的首行可以看出,S1此时的生成树工作模式为RSTP。

注:模式修改后,对生成树的整体拓扑无影响。

4.2.6 配置边缘端口

(1)S3 的 Eth 0/0/5-0/0/22确认只会连接终端设备,需要被配置为边缘端口。

配置当前端口为边缘端口的命令为【stp edged-port enable】

# 将Ethernet0/0/5配置为边缘端口
[S3]interface Ethernet0/0/5 
[S3-Ethernet0/0/5]stp edged-port enable 
[S3-Ethernet0/0/5]quit# 将Ethernet0/0/6配置为边缘端口
[S3]interface Ethernet0/0/6
[S3-Ethernet0/0/6]stp edged-port enable
[S3-Ethernet0/0/6]quit……其它端口类似操作,此处省略……

通常,设备的以太网接口数比较多,并且在很多以太网接口下有相同的配置。如果对这些以太网接口进行逐个配置会较为繁琐,且容易输入错误。因此,将需要执行相同配置命令的以太网接口加入到一个临时端口组,在临时端口组配置命令时,系统会自动到临时端口组绑定的所有成员接口下执行这些命令行,完成以太网接口批量配置。

注:某些产品上可能不支持临时接口组,需要对接口做单独配置。本实验中的交换机就需要单独配置。

当前端口配置成边缘端口后,如果收到 BPDU(Bridge Protocol Data Unit,桥协议数据单元)报文,交换设备会自动将边缘端口设置为非边缘端口,并重新进行生成树计算。

4.3 结果验证

(1)请根据实际收敛情况,标识和说明当前实验环境中的根桥以及端口角色。

以S1为例

[S1]display stp
-------[CIST Global Info][Mode RSTP]-------   # 工作模式为RSTP
CIST Bridge         :4096 .4c1f-cc4b-051e     # 自身桥ID
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20   # 配置时间参数
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20   # 生效的时间参数
CIST Root/ERPC      :0    .4c1f-cca5-07c7 / 200000  # 根桥ID / RPC
CIST RegRoot/IRPC   :4096 .4c1f-cc4b-051e / 0       # 备用根桥ID / RPC
CIST RootPortId     :128.1    # 根端口
BPDU-Protection     :Disabled  # BPDU保护(未启用,若启用,收到BPDU的边缘端口会被关闭)
CIST Root Type      :Secondary root  # 根桥类型(备用根桥)
TC or TCN received  :100   # 收到的拓扑变更(TC/TCM)BPDU 数量
TC count per hello  :0    # 每个 Hello 时间内的 TC 计数
STP Converge Mode   :Normal   # 生成树收敛模式为普通模式(非快速收敛)。
Time since last TC  :0 days 0h:24m:40s # 上次发生 TC 的时间(24分40秒前)
Number of TC        :27  # 累计 TC 事件次数
Last TC occurred    :Ethernet0/0/1  # 最后一次 TC 事件发生的端口
----[Port1(Ethernet0/0/1)][FORWARDING]----  # 端口工作状态为转发Port Protocol       :EnabledPort Role           :Root Port   # 端口角色为根端口Port Priority       :128  # 端口优先级Port Cost(Dot1T )   :Config=auto / Active=200000   # 端口开销Designated Bridge/Port   :0.4c1f-cca5-07c7 / 128.1  # 指派桥/端口的地址/接口Port Edged          :Config=default / Active=disabled # 边缘端口(默认即未配置)Point-to-point      :Config=auto / Active=true  # 链路类型自动检测为 点对点(P2P)Transit Limit       :147 packets/hello-time # 每个Hello时间内允许传输的BPDU包数量上限为147Protection Type     :None # 未启用任何保护功能Port STP Mode       :RSTP  # 端口运行模式为RSTPPort Protocol Type  :Config=auto / Active=dot1s # 端口协议类型IEEE 802.1sBPDU Encapsulation  :Config=stp / Active=stp # BPDU 封装格式为标准的 STP 格式PortTimes           :Hello 2s MaxAge 20s FwDly 15s RemHop 0 # 端口的时间参数与全局一致TC or TCN send      :3TC or TCN received  :4BPDU Sent           :5             TCN: 0, Config: 0, RST: 5, MST: 0BPDU Received       :702             TCN: 0, Config: 0, RST: 702, MST: 0
----[Port2(Ethernet0/0/2)][DISCARDING]----  # 端口工作状态为丢弃Port Protocol       :EnabledPort Role           :Alternate Port  # 端口角色为备用端口Port Priority       :128Port Cost(Dot1T )   :Config=auto / Active=200000Designated Bridge/Port   :0.4c1f-cca5-07c7 / 128.2Port Edged          :Config=default / Active=disabledPoint-to-point      :Config=auto / Active=trueTransit Limit       :147 packets/hello-timeProtection Type     :NonePort STP Mode       :RSTP Port Protocol Type  :Config=auto / Active=dot1sBPDU Encapsulation  :Config=stp / Active=stpPortTimes           :Hello 2s MaxAge 20s FwDly 15s RemHop 0TC or TCN send      :0TC or TCN received  :3BPDU Sent           :2             TCN: 0, Config: 0, RST: 2, MST: 0BPDU Received       :700             TCN: 0, Config: 0, RST: 700, MST: 0
----[Port3(Ethernet0/0/3)][FORWARDING]---- # 端口工作状态为转发Port Protocol       :EnabledPort Role           :Designated Port  # 端口角色为指派端口,即要负责业务数据转发Port Priority       :128Port Cost(Dot1T )   :Config=auto / Active=200000Designated Bridge/Port   :4096.4c1f-cc4b-051e / 128.3Port Edged          :Config=default / Active=disabledPoint-to-point      :Config=auto / Active=trueTransit Limit       :147 packets/hello-timeProtection Type     :NonePort STP Mode       :RSTP Port Protocol Type  :Config=auto / Active=dot1sBPDU Encapsulation  :Config=stp / Active=stpPortTimes           :Hello 2s MaxAge 20s FwDly 15s RemHop 20TC or TCN send      :3TC or TCN received  :0BPDU Sent           :700             TCN: 0, Config: 0, RST: 700, MST: 0BPDU Received       :0             TCN: 0, Config: 0, RST: 0, MST: 0
----[Port4(Ethernet0/0/4)][FORWARDING]---- # 端口工作状态为转发Port Protocol       :EnabledPort Role           :Designated Port # 端口角色为指派端口Port Priority       :128Port Cost(Dot1T )   :Config=auto / Active=200000Designated Bridge/Port   :4096.4c1f-cc4b-051e / 128.4Port Edged          :Config=default / Active=disabledPoint-to-point      :Config=auto / Active=trueTransit Limit       :147 packets/hello-timeProtection Type     :NonePort STP Mode       :RSTP Port Protocol Type  :Config=auto / Active=dot1sBPDU Encapsulation  :Config=stp / Active=stpPortTimes           :Hello 2s MaxAge 20s FwDly 15s RemHop 20TC or TCN send      :7TC or TCN received  :2BPDU Sent           :706             TCN: 0, Config: 0, RST: 706, MST: 0BPDU Received       :4             TCN: 0, Config: 0, RST: 4, MST: 0

(2)关闭任意交换机上的任意端口,观察是否能通过备份链路到达其他所有交换机。

在4.2.4节的基础上,将S3的Eth0/0/3端口关闭以便模拟故障,然后观察并绘制出实际的网络拓扑结构。

[S3]interface Ethernet0/0/3
[S3-Ethernet0/0/3]shutdown 
[S3-Ethernet0/0/3]quit
[S1]display stp brief MSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               ROOT  FORWARDING      NONE0    Ethernet0/0/2               ALTE  DISCARDING      NONE0    Ethernet0/0/4               DESI  FORWARDING      NONE
[S2]display stp brief MSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               DESI  FORWARDING      NONE0    Ethernet0/0/2               DESI  FORWARDING      NONE0    Ethernet0/0/3               DESI  FORWARDING      NONE0    Ethernet0/0/4               DESI  FORWARDING      NONE
[S3]display stp brief MSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               DESI  FORWARDING      NONE0    Ethernet0/0/4               ROOT  FORWARDING      NONE
[S4]display stp brief MSTID  Port                        Role  STP State     Protection0    Ethernet0/0/1               ALTE  DISCARDING      NONE0    Ethernet0/0/3               ALTE  DISCARDING      NONE0    Ethernet0/0/4               ROOT  FORWARDING      NONE

根据上述四个设备接口的STP状态,可得到如下图所示的拓扑结构。

从一个设备出发,到任意其它设备仍均有路径可达。

4.4 参考配置

4.4.1 S1的参考配置

[S1]display current-configuration 
#
sysname S1
#
undo info-center enable
#
stp mode rstp
stp instance 0 root secondary
#
……此处省略默认的输出……

4.4.2 S2的参考配置 

[S2]display current-configuration 
#
sysname S2
#
undo info-center enable
#
stp mode rstp
stp instance 0 root primary
#
……此处省略默认的输出……

4.4.3 S3的参考配置

[S3]display current-configuration 
#
sysname S3
#
undo info-center enable
#
stp mode rstp
#
……此处省略默认输出……
#
interface Ethernet0/0/5stp edged-port enable
#
interface Ethernet0/0/6stp edged-port enable
……此处省略后续相同或类似输出……

4.4.4 S4的参考配置

[S4]display current-configuration 
#
sysname S4
#
undo info-center enable
#
stp mode rstp
……此处省略默认输出……

4.5 思考题

S1与 S2 之间的两条链路能否同时处于转发状态?为什么?
答案:不能,因为 S1 和S2之间的链路就构成了环路,所以必须有一条链路被阻塞。

4.6 参考文献

HCIA-Datacom实验指导手册V1.0

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

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

相关文章

flex布局实例:把色子放进盒子里

目录 一、flex布局实例&#xff1a;把色子放进盒子里 1、基础样式 二、justify-content 属性 三、flex-direction 属性 四、align-items 属性 五、flex-wrap 属性 二、flex布局应用到常见场景 非常详细的讲解flex布局&#xff0c;看一看&#xff0c;练一练&#xff01; …

Netty编解码器

目录 1、概念 2、Netty提供的编解码器类型 2.1 解码器 2.1.1 ByteToMessageDecoder 2.1.2 ReplayingDecoder 2.1.3 MessageToMessageDecoder 2.2 编码器 2.2.1 MessageToByteEncoder 2.2.2 MessageToMessageEncoder 2.3 编解码器 2.3.1 ByteToMessageCodec 2.3.2 M…

企业内部安全组网技术解析:安全通道选型、零信任架构与数据合规加密防护

一、引言&#xff1a;企业内部安全组网的重要性 随着企业数字化转型的深入以及远程办公需求的增加&#xff0c;企业内部异地组网逐渐成为企业信息技术部门关注的重要话题。如何在合规合法的前提下&#xff0c;保障企业内部网络连接的安全性、稳定性&#xff0c;并有效保护企业…

Windows 4625日志类别解析:未成功的账户登录事件

Windows 4625日志类别解析&#xff1a;未成功的账户登录事件 什么是Windows 4625日志&#xff1f; Windows 4625日志属于安全日志&#xff08;Security Log&#xff09; 的一部分&#xff0c;记录系统中未成功的账户登录尝试&#xff08;Failed Logon&#xff09;。它是追踪非…

3D看房实现房屋的切换

作为3D看房的补充&#xff0c;在这里&#xff0c;我们讲一下如何实现房屋的切换&#xff0c;我这里提供两种思路&#xff0c; 切换贴图&#xff0c;切换场景&#xff0c; 接下我们按照较复杂的场景切换来讲&#xff0c;切换贴图也就水到渠成&#xff1a; 初始化场景&#xf…

[Android]ANR的线程

ANR的原理是进行了超时告警&#xff0c;在执行一个需要被监控的任务时&#xff0c;注册一个超时提醒&#xff0c;如果很快执行好了&#xff0c;删除这个提醒&#xff0c;如果超时&#xff0c;这个提醒就被触发&#xff0c;这个超时处理是通过handler方式来调用的&#xff0c;这…

RLVR来做Agent任务能力增强训练

和上一篇其实有点承接 上一篇的争论其实是因为要优化agent的任务规划和实现能力的 所以有了self-learning之争 当我们说Self-learning&#xff0c;其实是在说什么&#xff1f; 其实上一篇最后时候提了一点拿RLVR来做agent的任务提升 正好今天看到了一篇应景的论文&#xf…

如何运营一个开源项目并取得较大影响力?

开源不仅是主要的软件开发方法论&#xff0c;还是助力快速创新、分散协作、 生态系统建设和职业发展的卓越战略。如今&#xff0c;无论在哪里&#xff0c;都离不开与 开源的互动。开源存在于你的手机、汽车和冰箱中&#xff0c;它使你最喜欢的节 目或电影的制作和发行成为可能&…

华为高斯数据库的数据类型

华为高斯数据库的数据类型 国产数据库华为高斯的GaussDB的数据类型 华为高斯数据库的数据类型✅ 一、数值类型&#xff08;Numeric Types&#xff09;✅ 二、字符类型&#xff08;Character Types&#xff09;✅ 三、布尔类型&#xff08;Boolean Type&#xff09;✅ 四、日期和…

生物实验室安全、化学品安全

zhihu.com/column/c_1922752541369800632 Docs 目录 第七章 7.1 实验室生物安全等级 7.1.1 生物安全基本概念 7.1.2 生物的危害等级 7.1.2.1 国内生物危害等级 7.1.3 实验室生物安全防护水平分级 7.2 实验室生物安全控制 7.2.1 实验室生物仪器设备安全控制 7.2.1.1 生…

【QT】第一个QT程序 || 对象树 || 编码时的注意事项

一、编写第一个 Qt 程序 1. 开发环境搭建 安装 Qt Creator&#xff08;推荐使用官方在线安装器&#xff09;安装 Qt 库&#xff08;如 Qt 5.15.2 或 Qt 6.x&#xff09;配置编译器&#xff08;MinGW / MSVC / GCC&#xff09; 2. 创建一个简单的 Qt GUI 应用程序 打开 Qt C…

多服务器IP白名单配置(使用redis stream实现)

应用背景 现在我有一个管理平台,可以通过代理连接到内网网站,但是这个代理服务器没有设置密码,所以需要IP白名单让指定用户才可以使用代理。 添加白名单流程图 流程描述: 登录管理平台成功后,管理平台的后台将这个登录的IP地址添加到redis,并设置过期时间为24小时redis…

Vue 3 Teleport 特性

目录 基本用法​ 搭配组件使用​ 禁用 Teleport​ 多个 Teleport 共享目标​ 延迟解析的 Teleport ​ 总结 <Teleport> 是一个内置组件&#xff0c;它可以将一个组件内部的一部分模板“传送”到该组件的 DOM 结构外层的位置去。 基本用法​ 有时我们可能会遇到这…

常用指令合集(DOS/Linux/git/Maven等)

文章目录 常用指令收集vmware 虚拟机联网设置ubuntu 常见问题设置apt 相关指令&#xff1a;gcc 编译相关指令 sqlite3VSCode 快捷键&#xff1a;收索引擎技巧&#xff08;google&#xff09;Intelideashell--LinxvimgitDOS:mavendockerkubectl 指令nginx配置redis-clientMySQLl…

ABP VNext + MassTransit:构建分布式事务与异步消息协作

ABP VNext MassTransit&#xff1a;构建分布式事务与异步消息协作 &#x1f680; &#x1f4da; 目录 ABP VNext MassTransit&#xff1a;构建分布式事务与异步消息协作 &#x1f680;&#x1f4da; 1. 背景与动机&#x1f6e0;️ 2. 环境与依赖&#x1f527; 3. 在 ABP 模块…

语义网技术

用通俗语言说语义网技术&#xff0c;以及它和现在互联网的关系 一、语义网技术&#xff1a;让网络“听懂人话”的智能升级 现有互联网就像一本巨大的“图文报纸”&#xff1a;我们人类看文章、图片能轻松理解意思&#xff0c;但计算机只能识别文字符号&#xff0c;不知道“苹…

pytorch学习—4.反向传播(用pytorch算梯度)

2. 线性模型 3.梯度下降算法 4.反向传播_哔哩哔哩_bilibili 4.1 代码复现 import torch import matplotlib.pyplot as pltx_data=[1.0,2.0,3.0] y_data=[2.0,4.0,6.0]#这里创建了一个PyTorch张量w,初始值为1.0,并且设置requires_grad=True, #这意味着在计算过程中,PyTo…

7类茶叶嫩芽图像分类数据集

在茶叶育种、溯源管理与自动采摘等智能农业场景中&#xff0c;茶树品种的识别与分类是一项关键任务。不同茶叶品种在嫩芽期表现出显著的形态差异&#xff0c;例如颜色、叶缘结构、芽头密度等。因此&#xff0c;基于图像的茶叶品种分类不仅具备实际应用价值&#xff0c;也为农业…

【Elasticsearch】Linux环境下安装Elasticsearch

一&#xff0c;前言 Elasticsearch&#xff08;简称 ES&#xff09;是一个基于 ​​Apache Lucene​​ 构建的开源分布式搜索与分析引擎。它支持​​实时数据处理​​&#xff0c;提供近实时的全文搜索能力&#xff0c;并通过 ​​JSON 格式的 RESTful API​​ 实现数据索引与检…

【数据结构--树于哨兵查找-1】

查找 从前到后- 线性查找 -就是顺序查找. 哨兵法查找–节省每次都要判断是否越界的这一步骤利于节省开销&#xff0c;从而提升效率。 参考我的程序 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <stdbool.h>#define SIZE …