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

计算机三级网络技术知识汇总【6】

第六章 交换机及其配置

1. 交换机基础

1.1 基本概念

局域网交换机是一种基于 MAC 地址识别,完成转发数据帧功能的一种网络连接设备。

工作在数据链路层,根据进入端口数据帧中的 MAC 地址进行数据帧的过滤、转发(也是交换机的工作原理)

交换机作为汇聚中心,能将多台数据终端设备连接在一起,构成星状结构的网络

1.2 基本功能

  • 建立和维护一个表示 MAC 地址与交换机端口对应关系的交换表

  • 在发送节点和接收节点之间建立一条虚连接**。 【即发送方所连接的交换机端口(源端口)到接收方所连的交换机端口(目的端口)之间建立虚连接】

  • 完成数据帧的转发或过滤。**

  • 交换机允许多对站点并发通信。**

2. 交换表

小型交换机的交换表(35 系列),交换机通过在超级用户模式下,使用“show mac-address-table”命令查看

在这里插入图片描述

大型交换机的交换表(40/65 系列),交换机通过在超级用户模式下,使用“show cam dynamic”命令查看

在这里插入图片描述

3. 交换机的交换模式

交换机的交换方式有静态交换动态交换两种。

静态交换是由人工来完成端口之间传输通道的建立。

动态交换方式中依据目的 MAC 地址查询交换表,根据表中给出的输出端口来临时建立传输通道,这个传输通 道在一个数据帧传送完成后自动断开。

交换机最常采用的交换方式是动态交换方式。动态交换模式主要有存储转发和直通两种模式。而直通模式又有 快速转发交换和碎片丢弃交换两种方式。

归纳起来,交换机主要有快速转发碎片丢弃存储转发三种交换模式。

(1)快速转发交换模式

快速转发交换模式,也称作直通交换模式,它是在交换机接收了帧的前 14 个字节,即接收到帧中 6 个字节的 目的地址后便立即转发数据帧。该交换模式会在整个数据帧到之前就开始转发。

优点在于端口交换时间短、时延小,交换速度快;

缺点是不能进行检错纠错、速度匹配和流量控制,可靠性较差。因此,它适合于小型交换机。

(2)碎片丢弃交换模式

碎片丢弃交换模式也称为无分段交换模式。这种交换模式是在开始转发数据帧前,先过滤掉造成大部分数据报 错误的冲突片采用这种交换模式的交换机在转发数据时,先检查数据包的长度是否够 64 字节。如果帧的长度小于 64,则被 视为碎片,交换机直接丢弃;而任何大于 64 字节的数据帧都被交换机视为有效帧,进行转发;

碎片丢弃交换模式的优点是过滤掉了冲突碎片,提高了网络传速的效率和带宽的利用率。

(3)存储转发交换模式

存储转发交换模式将接收到的整个数据帧保存在缓冲区中,然后进行循环冗余码校验检查,在对错误数据帧进 行处理后,才取出数据帧的目的地址,进行转发操作

存储转发交换模式的不足之处在于其进行数据处理的延时大、交换速度相对较慢。但是它可以对数据帧进行链 路差错检验,可靠性较高,能有效地址改善网络性能;同时它可以支持不同速率的端口,保持高速端口与低速端口 之间的协同工作。

4. 虚拟局域网技术

4.1 VLAN 的基本概念

虚拟网 VLAN 是以交换式网络位基础,把用户的终端设备划分为若干个逻辑工作组,每个逻辑工作组就是一个VLAN。
在这里插入图片描述

4.2 VLAN 的特征

VLAN 工作在数据链路层,即 OSI 参考模型的第二层

VLAN 可隔离广播信息,每个 VLAN 为一个广播域,VLAN 中的广播信息只能发送给这个 VLAN 内部的成员,并 不发送给其他 VLAN 成员

一个 VLAN 就是一个独立的逻辑网络,每个 VLAN 都具有唯一的子网号。不同 VLAN 中的主机之间必须通过路 由器或者三层交换机,才能实现相互通信。(VLAN之间不可以直接通信)

4.3 VLAN 的标识

VLAN 通常用 **VLAN ID(Vlan 号)**和 **VLAN name(Vlan 名)**标识。

IEEE 802.1Q 协议规定,VLAN ID 用 12 位(bit)表示,可以支持 4096 个 VLAN。

其中 1~1005 是标准范围,1006~1024 为保留范围,1025~4096 是扩展范围,但并不是所有交换机都能支持4096 个 VLAN。

一部分交换机只支持标准范围 1~1005,其中能用于以太网(Ethernet)的 VLAN ID 为 1~1000,而 1002~1005 为 FDDI 和令牌环网使用的 VLAN ID

**补充:**VLAN 1 是默认的管理VLAN,一般情况下它用于交换机的管理功能,所以一般VLAN ID从2开始 。

VLAN name 用 32 个字符表示,可以是字母和数字。

若创建一个 VLAN 时,没有给定名字,则系统按默认方式,自动给出命名,默认为 VLAN00 XXX(“XXX”即为 该 VLAN 的 VLAN ID),如 VLAN ID 为 111,其默认的 VLAN 名为 VLAN 00111。

划分 VLAN 的方法:

  • 基于端口划分;

  • 基于 MAC 地址划分;

  • 基于第三层协议划分。

5. 交换机配置

5.1 配置交换机的系统信息

交换机的基本配置一般都是通过使用控制( Console) 端口配置方式完成,配置的主要内容有配置交换机的主机名、超级用户口令、设备管理地址和远程登录口令。

关于交换机配置命令语句,主要以 Cisco IOS(( 35 系列)和 Catalyst OS(( 65 系列)两种交换机操作系统来讲解。

那么常考的配置命令语句有设置系统时间、配置设备管理 IP 地址

(1)设置系统时间

  • Cisco IOS 系统(35 系列)

命令格式:clock set hh(时):mm(分):ss(秒) day(日) month(月) year(年)

设置系统时间为 2018 年 8 月 28 日 12 时星期三的命令如下:

Switch-3528-TEST # clock set 12:00:00 28 August 2018

Switch-3528-TEST #

  • Catalyst OS(65 系列)

命令格式:set time [day_of_week] [mm/dd/yy] [hh:mm:ss] <月/日/年 时:分:秒>

设置系统时间为 2018 年 8 月 28 日 12 时星期三的命令如下:

Switch-6509-TEST #(enable) set time Wed 8/28/2018 12:00:00

Switch-6509-TEST #

(2)配置设备管理地址(IP 地址)与缺省路由

  • Cisco IOS 系统(35 系列)

配置 IP 地址命令语句:ip address 地址> <子网掩码>

配置缺省路由命令语句:ip default-gateway <缺省路由 IP 地址(子网内第一个可用IP地址)>

**备注:**VLAN1用于设备管理的缺省VLAN ;

  • Catalyst OS(65 系列)

配置 IP 地址命令语句: set interface sc0 地址> <子网掩码><直接广播地址>

配置缺省路由命令语句: set route 0.0.0.0 <缺省路由 IP 地址(子网内第一个可用IP地址)>

5.2 交换机端口配置

(1)Cisco IOS 系统(35 系列)

① 配置交换机的端口描述信息。

步骤一:进入端口配置模式。

Switch-3528-TEST(config) # interface f0/1(端口号)

eg:在同时配置两个交换机的时候若一个端口号是g5/1,另一个端口号是g5/12在配置的时候直接写成Switch-3528-TEST(config) # interface g5/1-12即可。

Switch-3528-TEST(config-if) #

步骤二:配置端口描述信息。

Switch-3528-TEST(config-if) #description To-Webserver

Switch-3528-TEST(config-if) #

② 配置交换机端口的关闭与开启。

步骤一:进入端口配置模式。

Switch-3528-TEST(config) # interface fastethernet0/1

Switch-3528-TEST(config-if) #

步骤二:关闭或开启端口。

Switch-3528-TEST(config-if) # shutdown(关闭端口)

Switch-3528-TEST(config-if) #no shutdown(开启端口,使端口处于工作状态)

③ 配置交换机端口的通信方式。

Switch-3528-TEST(config-if) #duplex auto(设置为自动协商(自适应),默认为此种方式)

Switch-3528-TEST(config-if) # duplex full(设置为全双工)

Switch-3528-TEST(config-if) # duplex half(设置为半双工)

④ 配置端口的传输速率。

Switch-3528-TEST(config-if) # auto(设置端口为自动速率配置)

Switch-3528-TEST(config-if) # speed 10(设置端口速率为 10Mbit/s)

Switch-3528-TEST(config-if) #speed 100(设置端口速率为 100Mbit/s)

(2)Catalyst OS(65 系列)

① 配置交换机的端口描述信息。

命令格式:set port name<mod/port><name> ,其中,name 为端口描述,字符数一般不超过 240 个。

Switch-6509-TEST(enable) # set port name 0/1 to-Webserver

Switch-6509-TEST(enable)

② 配置交换机端口的关闭与开启

命令格式:set port disable <mod/port> (关闭端口)

set port enable <mod/port> (打开端口)

Switch-6509-TEST(enable)set port disable 0/1(关闭 0/1 号端口)

Switch-6509-TEST(enable)set port enable 0/1(打开 0/1‘/’[[[[[[[[[[[[[[[[[[[[[[[[[ 号端口)

③ 配置端口的通信方式。

命令格式:set port duplex full(设置全双工)

​ set port duplex half(设置为半双工)

Switch-6509-TEST(enable)set port duplex 0/1 full(0/1 端口设置为全双工)

Switch-6509-TEST(enable)set port duplex 0/1 half (0/1 到 0/24 端口设置为半双工)

④ 配置端口的传输速率。

命令格式:set port speed auto(自适应)

​ set port speed (速率 10,100,1000)

Switch-6509-TEST(enable)set port speed 0/1 auto (设置端口的速率为自适应)

Switch-6509-TEST(enable)set port speed 0/1-24 10(设置端口 0/1 到 0/24 的速率为10Mbps)

6. 交换机 VLAN 配置

6.1 VLAN 的建立和删除

(1)Cisco IOS 系统(35 系列)

① 建立 VLAN。

命令格式:vlan<vlan_ID> name<vlan_name>

Switch-3528-TEST # vlan data

Switch-3528-TEST>(vlan) # vlan 100 name vlanwork

② 删除 VLAN。

Switch-3528-TEST>(vlan) # no vlan <vlan_ID>

修改 VLAN 与建立 VLAN 步骤完全相同

Switch-3528-TEST>(vlan) # vlan 100 name vlanwork

Switch-3528-TEST>(vlan) # vlan 100 name vlangroup

(2)Catalyst OS(65 系列)

① 建立 VLAN。

命令格式:set vlan <vlan_ID> name <vlan_name>

Switch-6509-TEST>(enable)set vlan 100 name vlan 100(建立 VLAN 100,名称为 vlan 100)

② 删除 VLAN。

Switch-6509-TEST>(vlan)# clear vlan 100(删除 vlan100)

修改 VLAN 与建立 VLAN 步骤完全相同

Switch-6509-TEST>(enable) set vlan 100 name vlan 100

Switch-6509-TEST>(enable) set vlan 100 name vlan 1000

6.2 为交换机端口分配 VLAN

(1)Cisco IOS 系统(35 系列)

步骤一:进入端口配置模式。

Switch-3528-TEST # configure terminal Switch-3528-TEST(config) # int f0/1

Switch-3528-TEST(config-if) #

步骤二:为端口分配 VLAN。

命令格式:switchport access vlan <vlan_ID>

Switch-3528-TEST(config-if) # switchport access vlan 100(将端口 f0/1 划分到 VLAN 100 中)

Switch-3528-TEST(config-if) #

(2)Catalyst OS(65 系列)

命令格式:set vlan<vlan_ID><mod/port>

Switch-3528-TEST(enable) set vlan 100 0/1(将端口 0/1 划分到 VLAN 100 中)

Switch-3528-TEST(enable)

6.3 VLAN Trunk 的配置

vlan trunk 的配置任务主要有:

设置交换机端口的 vlan trunk 模式、封装 vlan 协议,设置允许中继的 vlan。

主要功能:利用 vlan trunk 为交换机互联的汇聚链路上所传输的 vlan 数据帧打上标签,保证多个 vlan 数据帧的 传输,并起到区分作用。

主要协议:ISL(思科私有协议)

IEEE 802.1Q(dotlq:国际标准协议)

(1)Cisco IOS 系统(35 系列)

步骤一:进入交换机端口配置模式。

Switch-3528-TEST # configure terminal

Switch-3528-TEST(config) # int f0/24

Switch-3528-TEST(config-if) #

步骤二:配置 VLAN Trunk 模式

Switch-3528-TEST(config-if) # switchport mode trunk

Switch-3528-TEST(config-if) #

步骤三:封装 VLAN 协议。

Switch-3528-TEST(config-if) #switchport trunk encapsulation dotlq(配置 VLAN Trunk 的封装模式为 802.1q)

Switch-3528-TEST(config-if) # switchport trunk encapsulation isl(封装 ISL 协议)

Switch-3528-TEST(config-if) # switchport trunk encapsulation negotiate P(自动协商)

步骤四:设置允许中继的 VLAN。

Switch-3528-TEST(config-if) # switchport trunk allowed vlan 1,10(允许 VLAN 1 和 10 通过此 Trunk 通路)

Switch-3528-TEST(config-if) # switchport trunk allowed vlan 1-10(允许 VLAN 1-10 通过此 Trunk 通路)

Switch-3528-TEST(config-if) # switchport trunk allowed vlan except 11-20(阻止 VLAN 11-20 通过此 Trunk 通 路)

(2)Catalyst OS(65 系列)

步骤一:配置 VLAN Trunk 模式,封装 VLAN 协议。

命令格式:set trunk<mod/port><mode><type>

Switch-6509-TEST>(enable) set trunk 1/24 on dotlq(配置 VLAN Trunk 模式,封装 VLAN 协议)

Port(s) 1/24 trunk mode set to on

步骤二:设置允许或删除中继的 VLAN。

命令格式:set trunk<mod/port> vlan<vlan id>

Switch-6509-TEST>(enable) set trunk 1/24 vlan 11-20(在端口 1/24 的允许 VLAN 列表中添加 11~20 号 vlan)

命令格式:clear trunk<mod/port> vlan

Switch-6509-TEST>(enable) clear trunk 1/24 vlan 13-15(在端口 1/24 的允许 VLAN 删除 13~15 号 vlan)

7. 交换机 VTP 配置

7.1 VTP 的基本概念

VTP 是 VLAN 中继协议,也被称为 VALN 干道协议。

它是一个 OSI 参考模型第二层的通信协议,主要用于管理在同一个域的网络范围内 VLANs 的建立、删除和重 命名。

配置 VTP 的任务主要有两个:一是建立 VTP 域,二是设置 VTP 的工作模式

注意:同一个域的所有交换机,必须运行相同版本的 VTP,并具有相同的域名;

VTP Server:一般一个 VTP 域内的整个网络只设一个 VTP Server,它维护该 VTP 域中所有 VLAN 信息列表,可以建立、删除或修改 VLAN

VTP Client:也维护所有 VLAN 信息列表,但是它的 VLAN 信息是从 VTP Server 学习到的,并且不具有建立、 删除或修改 VLAN 的功能

VTP Transparent:相当于一个独立的交换机,它不参与 VTP 工作,不从 VTP Server 学习 VLAN 的配置信息,而 只拥有本设备上自己的 VLAN 信息,因此它也只能建立、删除和修改本机上的 VLAN 信息

6.7.2 VTP 的配置

(1)Cisco IOS 系统(35 系列)

  • 配置 VTP 域名

    Switch-3528-TEST # configure terminal(进入工作模式)

    Switch-3528-TEST (config)# vtp domin nixixueba

    (设置 VTP 域名为 nixixueba,同一个域的所有交换机,必须设置相同的域名,同时 VTP 协议的版本号必须一 致)

  • 配置 VTP 工作模式

    Switch-3528-TEST(config)# vtp mode server(设置 VTP Server 模式,默认值)

    Switch-3528-TEST(config)# vtp mode client(设置为 VTP Clinet 模式)

    Switch-3528-TEST(config)# vtp mode transparent(设置为 VTP Transparent 模式)

    Switch-3528-TEST(config)#

(2)Catalyst OS(65 系列)

  • 配置 VTP 域名。

    Switch-6509-TEST>(enable) set vtp domain nixixueba (设置 VTP 域名为 nixixueba)

  • 配置 VTP 工作模式。

    Switch-6509-TEST>(enable) set vtp mode server(设置为 VTP Client 模式)

    Switch-6509-TEST>(enable) set vtp mode client(设置为 VTP Clinet 模式)

    Switch-6509-TEST>(enable) set vtp mode transparent (设置为 VTP Transparent 模式)

8. 生成树协议 STP

8.1 STP 的基本概念

生成树协议(STP)是一个二层链路管理协议。它主要功能是在保证网络中没有回路的。基础上,允许在第二层链路中提供冗余路径,以保证网络可靠、稳定地运行。

IEEE 802.1D 是最早的 STP 的标准,它提供了动态冗余切换机制,是目前最为流行、应用广法的 STP 标准。

STP运行在交换机和网桥设备上,通过计算建立一个稳定的树状结构网络,来避免网络中回路的产生。

8.2 网桥

STP 的工作过程为:通过在交换机之间传递网桥协议数据单元(BPDU),并**运用生成树算法(STA)**对其进行比 较计算。

(1)首先进行根网桥选择(根网桥为整个生成树拓扑结构的核心,所有数据传输均通过根网桥)。

(2)然后确定交换机冗余链路端口的工作状态,让一些端口进入阻塞工作模式,另一些端口进入转发工作模 式。

(3)其中设置为阻塞模式的端口不能进行数据流的转发和接收,但仍作为一个激活的端口,可进行 BPDU 的 接收和读取。

8.3 BPDU 相关内容

BPDU 中携带了实现生成树算法的有关信息,包括:Root ID、Root Path Cost、Bridge ID、Port ID、Hello time、Max Age

BPDU 数据包有两种类型,一种是包含配置信息的配置 BPDU(不超过 35 个字节),另一个是包含拓扑变化信息的拓扑变化通知 BPDU(不超过 4 个字节)

在配置 BPDU 包的 Bridge ID 信息,是选取根网桥或根交换机的主要依据。

一般情况下,Bridge ID 值最小的成为根网桥或根交换机。

Bridge ID 用 8 个字节标识,后 6 个字节为交换机的 MAC 地址,前 2 个字节为优先级值

桥优先级(2 个字节)桥 MAC 地址(6 个字节)

优先级值越小,优先级越高(根网桥或根交换机)。

优先级取值范围为 0~61440,增值量为 4096交换机的优先级一般默认为 32768,可以使用命令人工配置。

一台交换机的优先级设置为 8189,优先级高级其他交换机,会成为根交换机;

选择根网桥时,优先级相同,会根据 MAC 地址的值决定根网桥,MAC 的值最小的为根网桥

默认情况下,交换机每 2 秒定时发送一次 BPDU,当检测到网络拓扑变化或故障发生时,也会发生新的 BPDU, 以及时进行生成树的更新

9. 生成树 STP 配置

9.1 配置 STP 优先级

(1)Cisco IOS 系统(35 系列)

命令格式:spanning-tree vlan<vlans>priority<0-61440>

Switch-3528-TEST(config)# spanning-tree vlan 3 priority 8192

Switch-3528-TEST(config)#

(2)Catalyst OS(65 系列)

命令格式:set spantree priority<0-61440>

Switch-6509-TEST>(enable)set spantree priority 8192

Switch-6509-TEST>(ebable)

9.2 配置生成树可选功能

(1)BackboneFast 配置 BackboneFast 的功能就是当间接链路(骨干链路)失效,阻塞端口不需要等待生成树最大存活时间。而是直接将端口由侦听和学习状态转换为转发状态

在这里插入图片描述

① Cisco IOS 系统(35 系列)

命令格式:

spanning-tree BackboneFast(开启生成树的 BackboneFast 功能)

Switch-3528-TEST(config)# spanning-tree backbonefast(允许 BackboneFast 功能)

② Catalyst OS(65 系列)

命令格式:

set spantree backbonefast enable(开启生成树的 BackboneFast 功能)

set spantree backbonefast disable(关闭生成树的 BackboneFast 功能)

(2)UplinkFast 配置

UplinkFast 的功能是当生成树拓扑结构发生变化和在使用上连链路组的冗余链路之间完成负载平衡时,直接链路(上连链路)失效时,阻塞端口直接跳过侦听和学习,变成转发状态,提供快速收敛

在这里插入图片描述

① Cisco IOS 系统(35 系列)

命令格式:spanning-tree uplinkfast

spanning-tree uplinkfast max-update-rate <0~32000>

其中,max-update-rate 的值在 0~32000 之间,单位是 packet/s(每秒更新的包数)。

② Catalyst OS(65 系列)

命令格式:set spantree uplinkfast enable

set spantree uplinkfast enable rate

其中,的默认值是 15packets/100ms,单位是 packet/ms。

(3)PortFast 配置

PortFast 用于在接入层交换机端口上跳过正常的生成树操作,加快终端工作站接入到网络中的速度。它的功能 是使交换机的端口跳过侦听和学习状态。直接从阻塞状态进入到转发状态

1Cisco IOS 系统(35 系列)

命令格式:spanning-tree portfast default

Switch-3528-TEST # configure terminal

Switch-3528-TEST (config)# spanning-tree portfast default 2Catalyst OS(65 系列)

命令格式:set spantree portfast <mod/port> enable(打开 portfast)

set spantree portfast disable(关闭 portfast)

set spantree portfast default(默认启用 portfast)

(4)BPDU Filter 配置

BPDU Filtering 会使交换机在指定的端口上停止发送 BPDUs,对于进入这个端口的 BPDUs 也不做任何处理,同时立刻将端口状态转换为转发状态

① Cisco IOS 系统(35 系列)

命令格式:spanning-tree portfast bpdufilter default

Switch-3528-TEST(config)#spanning-tree portfast bpdufilter default

② Catalyst OS(65 系列)。

命令格式:

set spantree portfast bpdu-filter enable(对所有端口启用 bpdu-filter)

set spantree portfast bpdu-filter disable(关闭 bpdu-filter)

set spantree portfast bpdu-filter <mod/port> enable(打开 bpdu-filter)

set spantree portfast bpdu-filter disable(关闭 bpdu-filter)

set spantree portfast bpdu-filter default(设置为缺省)

相关文章:

计算机三级网络技术知识汇总【6】

第六章 交换机及其配置 1. 交换机基础 1.1 基本概念 局域网交换机是一种基于 MAC 地址识别&#xff0c;完成转发数据帧功能的一种网络连接设备。 工作在数据链路层&#xff0c;根据进入端口数据帧中的 MAC 地址进行数据帧的过滤、转发&#xff08;也是交换机的工作原理&…...

2025教育与科研领域实战全解析:DeepSeek赋能细分场景深度指南(附全流程案例与资源)

🚀 2025教育与科研领域实战全解析:DeepSeek赋能细分场景深度指南(附全流程案例与资源)🚀 📚 目录 DeepSeek在教育与科研中的核心价值教学场景应用:从备课到课堂管理的全流程革新科研场景应用:从数据分析到论文写作的智能跃迁师生协同创新:AI赋能的个性化学习与科研…...

Linux 命令大全完整版(10)

4. 压缩与解压缩命令 gzip(gnu zip) 功能说明&#xff1a;压缩文件。语  法&#xff1a;gzip [-acdfhlLnNqrtvV][-S <压缩字尾字符串>][-<压缩效率>][–best/fast][文件…] 或 gzip [-acdfhlLnNqrtvV][-S <压缩字尾字符串>][-<压缩效率>][–best/f…...

彻底卸载kubeadm安装的k8s集群

目录 一、删除资源 二、停止k8s服务 三、重置集群 四、卸载k8s安装包 五、清理残留文件和目录 六、删除k8s相关镜像 七、重启服务器 一、删除资源 # 删除集群中的所有资源&#xff0c;包括 Pod、Deployment、Service&#xff0c;任意节点执行 kubectl delete --all pod…...

vue+element-plus简洁完美实现淘宝网站模板

目录 一、项目介绍 二、项目截图 1.项目结构图 2.首页 3.详情 4.购物车 5.登陆页 三、源码实现 1.路由配置 2.依赖包 四、总结 一、项目介绍 项目在线预览&#xff1a;点击访问 本项目为vue项目&#xff0c;参考淘宝官方样式为主题来设计元素&#xff0c;简洁美观&…...

学习aigc

DALLE2 论文 Hierarchical Text-Conditional Image Generation with CLIP Latents [2204.06125] Hierarchical Text-Conditional Image Generation with CLIP LatentsAbstract page for arXiv paper 2204.06125: Hierarchical Text-Conditional Image Generation with CLIP L…...

深度学习-127-LangGraph之基础知识(四)自定义状态添加额外字段的聊天机器人

文章目录 1 自定义状态2 自定义工具2.1 完善工具human_assistance2.2 浏览器工具baidu_search3 聊天机器人3.1 绑定工具的聊天模型3.2 聊天机器人(带记忆)4 调用图4.1 调用工具时中断4.2 人工提供信息恢复4.3 查询存储的状态4.4 手动更新状态5 参考附录使用LangGraph,在状态中…...

广东英语十二种应用文模版范文

1. 邀请信&#xff08;Invitation Letter&#xff09; 模版 Dear [Recipients Name],I hope this letter finds you well. I am writing to invite you to [Event Name] which will be held on [Date] at [Location]. The event will start at [Time] and we would be deligh…...

python使用httpx_sse调用sse流式接口对响应格式为application/json的错误信息的处理

目录 问题描述方案 问题描述 调用sse流式接口使用httpx_sse的方式 import httpxfrom httpx_sse import connect_sse# 省略无关代码try:with httpx.Client() as client:with connect_sse(client, "GET", url, paramsparam) as event_source:clear_textbox(response_t…...

Leetcode-407. Trapping Rain Water II [C++][Java]

目录 一、题目描述 二、解题思路 【C】 【Java】 Leetcode-407. Trapping Rain Water IIhttps://leetcode.com/problems/trapping-rain-water-ii/description/ 一、题目描述 Given an m x n integer matrix heightMap representing the height of each unit cell in a 2D…...

详解 torch.triu:上三角矩阵的高效构造(中英双语)

详解 torch.triu&#xff1a;上三角矩阵的高效构造 在深度学习和矩阵运算中&#xff0c;我们经常需要构造上三角矩阵&#xff08;Upper Triangular Matrix&#xff09;&#xff0c;其中主对角线以下的元素全部设为 0。PyTorch 提供了一个高效的函数 torch.triu()&#xff0c;用…...

[ TypeScript ] “undefined extends xxx“ 总是为 true 的 bug

版本号 "typescript": "^5.7.3", "unplugin": "^2.2.0",说明 在使用 unplugin 时 , 我定义插件的参数是 必填的, 使用时却是一个可空参数, 不传参也不会报错, (options?: UserOptions) > Return &#x1f632;&#x1f632;&…...

高清下载油管视频到本地

下载工具并安装: yt-dlp官网地址&#xff1a; GitHub - yt-dlp/yt-dlp: A feature-rich command-line audio/video downloader ffmpeg官网地址&#xff1a; Download FFmpeg 注&#xff1a;记住为其添加环境变量 操作命令&#xff1a; 该指令表示以720p码率下载VIDEO_UR…...

Hadoop常用操作命令

在NameNode节点格式化集群 初始化集群 hdfs namenode -format启动HDFS sbin/start-dfs.sh启动yarn sbin/start-yarn.sh启动NodeManager yarn-daemon.sh start nodemanager启动DataNode hadoop-daemon.sh start datanode启动SecondaryNameNode hadoop-daemon.sh start se…...

[HOT 100] 2439. 最小化数组中的最大值

文章目录 1. 题目链接2. 题目描述3. 题目示例4. 解题思路5. 题解代码6. 复杂度分析 1. 题目链接 2439. 最小化数组中的最大值 - 力扣&#xff08;LeetCode&#xff09; 2. 题目描述 给你一个下标从 0 开始的数组 nums &#xff0c;它含有 n 个非负整数。 每一步操作中&#…...

【JavaEE进阶】图书管理系统 - 贰

目录 &#x1f332;前言 &#x1f384;设计数据库 &#x1f343;引⼊MyBatis和MySQL驱动依赖 &#x1f333;Model创建 &#x1f38d;约定前后端交互接口 &#x1f340;服务器代码 &#x1f6a9;控制层 &#x1f6a9;业务层 &#x1f6a9;数据层 &#x1f334;前端代码…...

Vue学习教程-14内置指令

文章目录 前言一、v-text指令二、v-html指令三、v-cloak指令四、v-once指令五、v-pre指令六、其他指令 前言 Vue.js 提供了许多内置指令&#xff08;Directives&#xff09;&#xff0c;这些指令用于在模板中添加特殊功能。内置指令以 v- 前缀开始。 v-text : 更新元素的 tex…...

【蓝桥杯单片机】客观题

一、第十三届省赛&#xff08;一&#xff09; 二、第十三届省赛&#xff08;二&#xff09;...

C++ 设计模式-访问者模式

C++访问者模式 一、模式痛点:当if-else成为维护噩梦 开发动物园管理系统,最初的需求很简单: class Animal {}; class Cat : public Animal {}; class Dog : public Animal {};// 处理动物叫声 void makeSound(Animal* a) {if (auto c = dynamic_cast<Cat*>(a)) {st…...

靶场之路-Kioptix Level-1 mod_ssl 缓冲区溢出漏洞

声明 学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章笔记的只是方便各位师傅学习知识,以下网站涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 一、准备工作 首先使用 vmware 导入靶机文件&#xff0c; 然后网络模式改成 nat 模式即可 我们打…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; Spring框架的核心容器是IoC&#xff08;控制反转&#xff09;容器。它的主要作用是管理对…...

基于单片机的宠物屋智能系统设计与实现(论文+源码)

本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢&#xff0c;连接红外测温传感器&#xff0c;可实时精准捕捉宠物体温变化&#xff0c;以便及时发现健康异常&#xff1b;水位检测传感器时刻监测饮用水余量&#xff0c;防止宠物…...