当前位置: 首页 > news >正文

HCIP STP(生成树)

目录

一、STP概述

二、生成树协议原理

三、802.1D生成树

四、STP的配置BPDU

1、配置BPDU的报文格式

2、配置BPDU的工作过程

3、TCN BPDU

4、TCN BPDU的工作过程

五、STP角色选举

1、根网桥选举

2、根端口选举

3、指定端口选举

4、非指定端口选举

六、STP的接口状态

1、接口状态

2、接口状态迁移

3、首次收敛

七、STP基本配置

1、配置生成树工作模式

2、配置网桥(可选)

3、备份根桥(可选)

4、配置交换机的STP优先级

5、配置接口路径开销(可选)

八、RSTP--快速生成树协议

1、802.1D生成树的缺点

2、快速生成树(RSTP)的改进点

1)端口角色

2)端口状态

3)RST BPDU

4)快速收敛机制

5)配置BPDU的处理

6)BPDU保护功能

3、快速生成树的原理

九、MSTP--多生成树协议

1、STP、RSTP缺点

2、MSTP概述

3、MST Region

4、MSTP配置

1)配置首生成树工作模式

2)启用MSTP

3)配置MST域

① 进入MST域视图

② 配置MST域的域名

③ 配置多生成树实例与VLAN的映射关系

           ④ 激活MST域的配置

4)MSTP配置根桥和备份根桥

5)修改优先级--可选


一、STP概述

以太网交换机网络中为了进行链路备份,提高网络的可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。为了解决交换网络中的环路问题,提出了生成树协议(STP)--Spanning Tree Protocol。

二、生成树协议原理

在二层交换网络中,逻辑的阻塞部分的接口,实现从根交换机到所有节点唯一的路径且为最佳路径,生成一个没有环路的拓扑,当最佳路径出现故障时,个别被阻塞的接口将打开,形成备份链路。生成树在生成过程中,应该尽量的生成一棵星型结构,且最短路径树;

三、802.1D生成树

生成树是相对比较早的一个协议了,所以,也经历了多种版本的更替。我们现在常见的主要是802.1D生成树,RSTP快速生成树协议--定义在802.1W中,也被称为802.1W生成树,MSTP多生成树协议--定义在802.1S中,也被称为802.1S生成树。

四、STP的配置BPDU

所谓BPDU---Bridge Protocol Data Unit,网桥协议数据单元--其实就是生成树需要发送的数据包的叫法。

        BPDU是能够正常工作的根本,BPDU是STP的协议报文。

        STP交换机之间会交互BPDU报文,这些BPDU报文携带着一些重要信息,正是基于这些信息,STP才能够顺利工作。

PBDU主要分为两大类:1、配置BPDU;2、TCN-BPDU。其中配置BPDU是STP进行拓扑计算的关键;TCN BPDU只在网络拓扑发生变更时才会触发。

1、配置BPDU的报文格式

2、配置BPDU的工作过程

所有交换机刚启动,所有接口都激活STP,一开始,并不知道谁是根,则所有设备都将自己判定为根网桥,从自己的所有激活了STP的接口发送配置BPDU,则其中将包含本机参数。之后,所有设备都交换参数后,将根据参数数值进行选举,之后将选举一个真正的根网桥。之后,只有根网桥将周期的发送配置BPDU,而其他非根网桥只能在接受到根网桥发送BPDU后进行转发。(转发时可以修改其中的参数)---发送周期为2S,MAX AGE---20S。

3、TCN BPDU

报文格式---仅拥有配置BPDU的前三个参数,其中BPDU类型指端为0x80。

4、TCN BPDU的工作过程

本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为回复,用于可靠传输消息;之后将TCN逐级转发到根网桥处,由根网桥回复TC消息来逐级回复到所有交换机;使所有交换机临时将MAC表的老化时间修改为15s(默认的,转发延时)

五、STP角色选举

1、根网桥选举

在一棵生成树实例中,有且仅有一台交换机为root;

BPDU中的 桥ID来决定

桥ID= 网桥优先级(0-65535公有) 默认32768 +  MAC地址(只有存在svi接口的交换机才拥有mac地址,若存在多个mac选数值最小)

根网桥的选举   先比较优先级,小优;   若优先级相同,比较mac,数值小优;

2、根端口选举

选举过程

1)首先比较根路径开销RPC,RPC值越小越优选;

2)当RPC相同时,比较上行交换机的BID,值越小越优选;

3)当上行交换机的BID相同时,比较上行交换机的PID,值越小越优选;

4)当上行PID相同时,比较本地交换机的PID,值越小越优选。

3、指定端口选举

选举过程

1)首选比较根路径开销RPC,RPC值越小越优选;

2)当RPC相同时,则比较链路两端交换机的的BID,值越小越优选;

3)当BID相同时,比较链路两端端口的PID,值越小越优选;

4、非指定端口选举

STP会对这些非指定端口的进行逻辑阻塞,即这些端口不能进行转发由终端计算机产生并发送的帧(用户数据帧)。

一旦非指定端口被逻辑阻塞后,STP(无环路工作拓扑就生成了)。

注:非指定端口可以接受并处理BPDU。

六、STP的接口状态

1、接口状态

2、接口状态迁移

1)Forwarding:转发状态,端口既可转发用户流量也可以转发BPDU,只有根端口或者指定端口才能进入Forwarding状态。

2)Learning:学习状态,端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路。

3)Listening:侦听状态,端口可以转发BPDU报文,但不能转发用户流量。

4)Blocking:阻塞状态,端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口最终状态。

5)Disabled:禁用状态,端口既不能处理和转发BPDU报文,也不能转发用户流量

3、首次收敛

首次收敛,所有设备最先进入的是阻塞状态,需要先停留20S(最大寿命时间)之后进入侦听状态,此状态停留15S选举角色,之后进入学习状态,再停留15S,总共50S。

七、STP基本配置

1、配置生成树工作模式

[Huawei]stp mode stp | rstp | mstp #三选一个模式

交换机支持STP、RSTP、MSTP三种生成树工作模式,默认情况工作再MSTP模式。

2、配置网桥(可选)

[Huawei]stp root primary 

配置挡墙设备为根桥,缺省情况下,交换机不作为任何生成树的根桥,配置后该设备优先级数值自动为0,并且不能更改设备优先级。

3、备份根桥(可选)

[Huawei]stp root secondary 

配置挡墙交换机为备份根桥,缺省情况下,交换机不作为任何生成树的备份根桥,配置后该设备优先级数值为4096,并且不能更改设备优先级。

4、配置交换机的STP优先级

[Huawei]stp priority ?INTEGER<0-61440>  Bridge priority, in steps of 4096

缺省情况下,交换机的优先级取值是32768.

5、配置接口路径开销(可选)

[Huawei]stp pathcost-standard ?dot1d-1998  IEEE 802.1D-1998dot1t       IEEE 802.1Tlegacy      Legacy

配置接口路径开销计算方法,缺省情况下,路径开销之=值得计算方法为IEEE 802.1t(dot1t)标准方法。同一网络内所有交换机得接口路径开销应使用相同得计算方法。

[Huawei]int g0/0/1
[Huawei-GigabitEthernet0/0/1]stp cost  ?INTEGER<1-200000000>  Port path cost

设置当前接口得路径开销值。

八、RSTP--快速生成树协议

1、802.1D生成树的缺点

1)网络拓扑收敛慢,影响了用户通信质量;

2)STP没有细致区分接口状态和接口角色;

3)STP算法是被动算法,依赖定时器等待的方式判断拓扑变化,导致收敛速度慢。

4)STP算法要求在稳定的拓扑中,根桥主动发出配置BPDU,而其他设备进行处理,传遍整个STP网络,这也是导致拓扑收敛慢的原因之一。

2、快速生成树(RSTP)的改进点

1)端口角色

RSTP的端口角色共有四种:根端口、指定端口、Alternate端口和Backup端口。

根端口和指定端口的作用同STP中定义,Alternate端口和Backup端口的描述如下:

从配置BPDU报文发送角度来看:

        Alternate端口就是由于学习到其他网桥发送的配置BPDU报文而阻塞的端口。

        Backup端口就是由于学习到自己发送的配置BPDU报文而阻塞的端口。

从用户流量角度来看:

        Alternate端口提供了从指定桥到根的另一条可切换路径,作为根端口的备份端口。

        Backup端口作为指定端口的备份,提供了一条从根桥到相应网段的备份通路。给一个RSTP域内所有端口分配角色的过程就是整个拓扑收敛的过程。

2)端口状态

RSTP的状态规范缩减为3种,根据端口是否转发用户流量和学习MAC地址来划分:

        Discarding状态:不转发用户流量也不学习MAC地址;

        Learning状态:不转发用户流量但是学习MAC地址;

        Forwarding状态:既转发用户流量又学习MAC地址。

3)RST BPDU

RSTP 的配置BPDU充分利用了STP报文中的Flag字段,明确了端口角色。

除了保证和STP格式基本一致之外,RSTP作了如下变化:

        Type字段:配置BPDU类型不再是0而是2,所以运行STP的设备收到RSTP的配置BPDU时会丢弃。

        Flag字段:使用了原来保留的中间6位,这样改变的配置BPDU叫做RST BPDU。

RST BPDU报文格式:

 4)快速收敛机制

 注:这个P/A机制是RSTP快速收敛的核心手段,因为他改变了STP依照计时器收敛的方法,可以理解为完成收敛选举后立即切换状态,完成收敛。

5)配置BPDU的处理

6)BPDU保护功能

 在交换机上,通常将直接与用户终端(如PC机)或文件服务器等非交换设备相连的端口配置为边缘端口。

如上图所示,SW3与某主机互联,并设置该互联接口为边缘端口;后来该主机被恶意用户侵占,并伪造RST BPDU攻击SW3,因此边缘端口会收到RST BPDU,失去边缘端口特征,并进行生成树计算。

3、快速生成树的原理

取消了计时器,而是在一个状态工作完成后,直接进入下一状态;

分段式同步,两台设备间逐级收敛;使用请求和同意标记;依赖标记位的第1和第6位

BPDU的保活为6s;hello time 2s;

将端口加速(边缘接口)、上行链路加速、骨干加速集成了

兼容802.1d和PVST,但802.1d和PVST没有使用标记位中的第1-6位,故不能快速收敛;因此如果网络中有一台设备不支持快速收敛,那么其他开启快速收敛的设备也不能快速;

当tcn消息出现时,不需要等待根网桥的BPDU,就可以刷新本地的cam表;

注:RSTP配置与STP一样,只需要修改模式为RSTP即可。

九、MSTP--多生成树协议

1、STP、RSTP缺点

RSTP在STP基础上进行了改进,实现网络拓扑快速收敛,但在划分VLAN的网络中运行RSTP/STP,局域网所有的VLAN共享一颗生成树,被阻塞后的链路将不承载任何流量,无法在VLAN间实现流量的负载均衡,导致链路带宽利用率、设备资源利用率较低。

为了弥补RSTP/STP的缺陷,IEEE2002年发布了802.1S标准MSTP--多生成树协议,MSTP兼容STP和RSTP,通过建立多颗无环的树,解决广播风暴并实现冗余备份。

2、MSTP概述

MSTP是IEEE802.1S中定义的生生成树协议,MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。

MSTP可以将一个或多个VLAN映射到一个instance(实例),再基于instance计算生成树,映射到同一个instance的VLAN共享同一棵生成树。

 

如上图,经计算生成两棵生成树:

        instance1对应的生成树以SW1为根交换设备,转发VLAN1-VLAN10的报文;

        instance2对应的生成树以SW2为根交换设备,转发VLAN11-VLAN20的报文;

        不同VALN的报文沿不同的路径转发,实现了负载分担。

        注:生成树不是基于VLAN运行的,而是基于instance运行的。 

3、MST Region

 注:instance0是缺省存在的,而缺省时,华为交换机上所有的VLAN都映射到了instance0。

通过设备VLAN映射表(即VLAN和MSTI的对应关系),把VLAN和MSTI联系起来。

每个VLAN只能对应一个MSTI,即同一个VALN的数据只能再一个MSTI中传输,而一个MSTI可能对应多个VLAN。

4、MSTP配置

1)配置首生成树工作模式

[SW1]stp mode mstp 

2)启用MSTP

[SW1]stp enable 

3)配置MST域

        ① 进入MST域视图
[SW1]stp region-configuration 
        ② 配置MST域的域名
[SW1-mst-region]region-name ?STRING<1-32>  A maximum of 32 characters can be entered
[SW1-mst-region]region-name xixi
       ③ 配置多生成树实例与VLAN的映射关系
[SW1-mst-region]instance ?INTEGER<0-48>  Identifier of spanning tree instance
[SW1-mst-region]instance 1 vlan	
[SW1-mst-region]instance 1 vlan ?INTEGER<1-4094>  VLAN ID
[SW1-mst-region]instance 1 vlan 1 ?INTEGER<1-4094>  VLAN IDto               Range of VLAN<cr>             
[SW1-mst-region]instance 1 vlan 1 to 5

        ④ 激活MST域的配置

[SW1-mst-region]active region-configuration 

4)MSTP配置根桥和备份根桥

[SW1]stp instance ?INTEGER<0-48>  Identifier of spanning tree instance
[SW1]stp instance 1 ?priority  Specify bridge priorityroot      Specify root switch
[SW1]stp instance 1 root ?primary    Primary root switch #主根secondary  Secondary root switch #备根
[SW1]stp instance 1 root primary 

5)修改优先级--可选

[SW1]stp instance 1 priority ?INTEGER<0-61440>  Bridge priority, in steps of 4096

相关文章:

HCIP STP(生成树)

目录 一、STP概述 二、生成树协议原理 三、802.1D生成树 四、STP的配置BPDU 1、配置BPDU的报文格式 2、配置BPDU的工作过程 3、TCN BPDU 4、TCN BPDU的工作过程 五、STP角色选举 1、根网桥选举 2、根端口选举 3、指定端口选举 4、非指定端口选举 六、STP的接口状…...

【Unity开发必备】100多个 Unity 学习网址 资源 收藏整理大全【持续更新】

Unity 相关网站整理大全 众所周知&#xff0c;工欲善其事必先利其器&#xff0c;有一个好的工具可以让我们事半功倍&#xff0c;有一个好用的网站更是如此&#xff01; 但是好用的网站真的太多了&#xff0c;收藏夹都满满的(但是几乎没打开用过&#x1f601;)。 所以本文是对…...

Alpine Ridge控制器使其具备多种使用模式 - 英特尔发布雷电3接口:竟和USB Type-C统一了

同时又因为这建立在Type-C的基础上&#xff0c;雷电3也将利用现有的标准Type-C线缆引入有源支持。当使用Type-C的线缆时&#xff0c;雷电的速度就降到了20Gbps全双工——这与普通的Type-C的带宽相同——这是为了成本牺牲了一些带宽。可以比较一下&#xff0c;Type-C线的成本只有…...

容器——2.Collection 子接口之 List

文章目录 2.1. Arraylist 和 Vector 的区别?2.2. Arraylist 与 LinkedList 区别?2.2.1. 补充内容:双向链表和双向循环链表2.2.2. 补充内容:RandomAccess 接口 2.3 ArrayList 的扩容机制 2.1. Arraylist 和 Vector 的区别? ArrayList 是 List 的主要实现类&#xff0c;底层使…...

【工作记录】docker安装gitlab、重置密码@20230809

前言 本文记录下基于docker安装gitlab并重置管理员密码的过程。 作为记录的同时也希望能帮助到需要的朋友们。 搭建过程 1. 准备好docker环境并启动docker [rootslave-node1 docker-gitlab]# docker version Client:Version: 18.06.1-ceAPI version: 1.38…...

数据挖掘的基本概念和大数据的特点

数据挖掘是指从大量数据中提取有价值的信息或模式的过程。它通常使用计算机技术来分析数据&#xff0c;并利用统计学、机器学习、人工智能等方法来发现数据中的隐藏规律、趋势和关联性。 数据挖掘的基本概念包括以下几个方面&#xff1a; 数据预处理&#xff1a;对原始数据进行…...

LabVIEW开发分段反射器测试台

LabVIEW开发分段反射器测试台 随着对太空的观察需求越来越远&#xff0c;而不是当前技术&#xff08;如哈勃望远镜&#xff09;所能达到的&#xff0c;有必要增加太空望远镜主镜的尺寸。但是&#xff0c;增加主镜像的大小时存在几个问题。随着反射镜尺寸的增加&#xff0c;制造…...

二级python和二级c哪个简单,二级c语言和二级python

大家好&#xff0c;小编为大家解答二级c语言和二级office一起报可以吗的问题。很多人还不知道计算机二级c语言和python哪个好考&#xff0c;现在让我们一起来看看吧&#xff01; 介绍Python有很多库和使用Qt编写的接口,这自然创建c调用Python的需求。一路摸索,充满艰辛的添加头…...

E: Package ‘curl‘ has no installation candidate/ E:软件包没有可用的安装源

解决方案&#xff1a; 访问etc/apt/source.list 修改或者添加安装源 不用版本的Linux 有不同的配置比如我的是Debian 12 其他版本的去搜索引擎搜索即可 vim /etc/apt/source.list 改成修改或添加 // 以下是官方示例 deb http://deb.debian.org/debian bookworm main non-…...

代理模式及常见的3种代理类型对比

代理模式及常见的3种代理类型对比 代理模式代理模式分类静态代理JDK动态代理CGLIB动态代理Fastclass机制 三种代理方式之间对比常见问题 代理模式 代理模式是一种设计模式&#xff0c;提供了对目标对象额外的访问方式&#xff0c;即通过代理对象访问目标对象&#xff0c;这样可…...

8.6 校招 内推 面经

绿泡泡&#xff1a; neituijunsir 交流裙&#xff0c;内推/实习/校招汇总表格 1、面经 | 车载测试-23 面经 | 车载测试-23 2、校招 | 荣耀2024届全球校园招聘启动&#xff08;内推&#xff09; 校招 | 荣耀2024届全球校园招聘启动&#xff08;内推&#xff09; 3、校招 |…...

【大数据之Flume】七、Flume进阶之自定义Sink

&#xff08;1&#xff09;概述&#xff1a;   Sink 不断地轮询 Channel 中的事件且批量地移除它们&#xff0c;并将这些事件批量写入到存储或索引系统、或者被发送到另一个 Flume Agent。 Sink 是完全事务性的。在从 Channel 批量删除数据之前&#xff0c;每个 Sink 用 Chan…...

vue对于时间的处理

2023-08-05 11:25:45 假如这个就是我们要传的时间字符串 比如今天是2023-08-05&#xff08;同一天&#xff09;&#xff1a;现在把这个时间字符串传入到 formatDate&#xff08;&#xff09;这个方法&#xff0c;就会给你返回 11:25 比如今天是2023-08-06&#xff08;前一天&a…...

Apache DolphinScheduler 3.1.8 版本发布,修复 SeaTunnel 相关 Bug

近日&#xff0c;Apache DolphinScheduler 发布了 3.1.8 版本。此版本主要基于 3.1.7 版本进行了 bug 修复&#xff0c;共计修复 16 个 bug, 1 个 doc, 2 个 chore。 其中修复了以下几个较为重要的问题&#xff1a; 修复在构建 SeaTunnel 任务节点的参数时错误的判断条件修复 …...

科技云报道:一波未平一波又起?AI大模型再出邪恶攻击工具

AI大模型的快速向前奔跑&#xff0c;让我们见识到了AI的无限可能&#xff0c;但也展示了AI在虚假信息、深度伪造和网络攻击方面的潜在威胁。 据安全分析平台Netenrich报道&#xff0c;近日&#xff0c;一款名为FraudGPT的AI工具近期在暗网上流通&#xff0c;并被犯罪分子用于编…...

深度对话|如何设计合适的网络经济激励措施

近日&#xff0c;我们与Mysten Labs的首席经济学家Alonso de Gortari进行了对话&#xff0c;讨论了如何在网络运营商和参与者之间找到激励措施的平衡&#xff0c;以及Sui的经济如何不断发展。 是什么让您选择将自己的经济学背景应用于区块链和Web3领域&#xff1f; 起初&…...

opencv带GStreamer之Windows编译

目录 1、下载GStreamer和安装2. GSTReamer CMake配置3. 验证是否配置成功 1、下载GStreamer和安装 下载地址如下&#xff1a; gstreamer-1.0-msvc-x86_64-1.18.2.msi gstreamer-1.0-devel-msvc-x86_64-1.18.2.msi 安装目录无要求&#xff0c;主要是安装完设置环境变量 xxx\1…...

Java并发编程之锁的升级

Java 中的锁机制是多线程编程中的一部分。锁一共有4种状态&#xff0c;级别从低到高依次是&#xff1a;无锁状态、偏向锁状态、轻量级锁状态和重量级锁状态&#xff0c;这几个状态会随着竞争情况逐渐升级。 锁可以升级但不能降级&#xff0c;意味着偏向锁升级成轻量级锁后不能…...

多核异构处理器A核与M核通信过程

多核异构处理器是指集成了不同类型或架构的CPU的系统级芯片&#xff08;SoC&#xff09;。 例如&#xff0c;有些处理器同时包含了高性能的A核&#xff08;如Cortex-A&#xff09;和低功耗的M核&#xff08;如Cortex-M&#xff09;。 这样的设计可以让不同的CPU负责不同的任务…...

面试热题(反转链表)

给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 链表的题&#xff0c;大部分都可以用指针或者递归可以做&#xff0c;指针如果做不出来的话&#xff0c;…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...

算术操作符与类型转换:从基础到精通

目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...

写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

写一个shell脚本&#xff0c;把局域网内&#xff0c;把能ping通的IP和不能ping通的IP分类&#xff0c;并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...

前端工具库lodash与lodash-es区别详解

lodash 和 lodash-es 是同一工具库的两个不同版本&#xff0c;核心功能完全一致&#xff0c;主要区别在于模块化格式和优化方式&#xff0c;适合不同的开发环境。以下是详细对比&#xff1a; 1. 模块化格式 lodash 使用 CommonJS 模块格式&#xff08;require/module.exports&a…...