配置华为交换机生成树VBST案例

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系 

厦门微思网络​​​​​​https://www.xmws.cn
华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom

思科认证CCNA\CCNP\CCIE
红帽认证Linux\RHCE\RHCE 9.0\RHCA\
甲骨文Oracle OCP\CKA\K8S\
网络安全CISP\CISSP

项目管理PMP

组网需求

某企业网如图11-5所示,接入交换机SwitchC和SwitchD分别双归接入到汇聚交换机SwitchA和SwitchB。SwitchC接入VLAN 10、20的业务流量,SwitchD接入VLAN 20、30的业务流量。由于双归接入,在接入层和汇聚层之间形成环形网络。企业希望各VLAN内的业务流量正常转发,同时希望不同VLAN内的业务流量能够在链路上负载分担,以提高链路利用率。

图11-5 配置VBST功能组网图

配置思路

可通过部署VBST避免接入层与汇聚层间的环路,使各VLAN内的业务流量正常转发,同时,使不同VLAN内的业务流量能够在链路上负载分担。配置思路如下:

  1. 配置接入交换机和汇聚交换机的二层转发功能。
  2. 在处于环形网络中的交换机(SwitchA~SwitchD)上配置VBST基本功能。为使VBST计算产生如图11-5中所示的VLAN生成树。配置时:
    • 将VLAN 10的根桥设置为SwitchA,备份根桥设置为SwitchB;将VLAN20的根桥设置为SwitchA,备份根桥设置为SwitchB;将VLAN30的根桥设置为SwitchB,备份根桥设置为SwitchA,确保根桥设备的可靠性。
    • 将SwitchC的端口10GE1/0/2在VLAN10、VLAN20中设置较大的路径开销值,使其分别在VLAN 10、20的生成树中阻塞;将SwitchD的端口10GE1/0/2在VLAN20、VLAN30中设置较大的路径开销值,使其分别在VLAN20、VLAN30的生成树中阻塞。

操作步骤
配置处于环网中的设备的二层转发功能。
在交换设备SwitchA、SwitchB、SwitchC和SwitchD上创建VLAN10、VLAN20和VLAN30。

在SwitchA上创建VLAN10、VLAN20和VLAN30。

<HUAWEI> system-view

[~HUAWEI] sysname SwitchA

[*HUAWEI] commit

[~SwitchA] vlan batch 10 20 30

[*SwitchA] commit

在SwitchB上创建VLAN10、VLAN20和VLAN30。

<HUAWEI> system-view

[~HUAWEI] sysname SwitchB

[*HUAWEI] commit

[~SwitchB] vlan batch 10 20 30

[*SwitchB] commit

在SwitchC上创建VLAN10和VLAN20。

<HUAWEI> system-view

[~HUAWEI] sysname SwitchC

[*HUAWEI] commit

[~SwitchC] vlan batch 10 20

[*SwitchC] commit

在SwitchD上创建VLAN20和VLAN30。

<HUAWEI> system-view

[~HUAWEI] sysname SwitchD

[*HUAWEI] commit

[~SwitchD] vlan batch 20 30

[*SwitchD] commit

将交换机上接入环路中的端口加入VLAN。

# 将SwitchA端口10GE1/0/1加入VLAN10、VLAN20和VLAN30。

[~SwitchA] interface 10ge 1/0/1

[~SwitchA-10GE1/0/1] port link-type trunk

[*SwitchA-10GE1/0/1] port trunk allow-pass vlan 10 20 30

[~SwitchA-10GE1/0/1] undo port trunk allow-pass vlan 1

[*SwitchA-10GE1/0/1] quit

[*SwitchA] commit

# 将SwitchA端口10GE1/0/2加入VLAN20和VLAN30。

[~SwitchA] interface 10ge 1/0/2

[~SwitchA-10GE1/0/2] port link-type trunk

[*SwitchA-10GE1/0/2] port trunk allow-pass vlan 20 30

[*SwitchA-10GE1/0/2] undo port trunk allow-pass vlan 1

[*SwitchA-10GE1/0/2] quit

[*SwitchA] commit

# 将SwitchA端口10GE1/0/3加入VLAN10和VLAN20。

[~SwitchA] interface 10ge 1/0/3

[~SwitchA-10GE1/0/3] port link-type trunk

[*SwitchA-10GE1/0/3] port trunk allow-pass vlan 10 20

[*SwitchA-10GE1/0/3] undo port trunk allow-pass vlan 1

[*SwitchA-10GE1/0/3] quit

[*SwitchA] commit

# 将SwitchB端口10GE1/0/1加入VLAN10、VLAN20和VLAN30。

[~SwitchB] interface 10ge 1/0/1

[~SwitchB-10GE1/0/1] port link-type trunk

[*SwitchB-10GE1/0/1] port trunk allow-pass vlan 10 20 30

[*SwitchB-10GE1/0/1] undo port trunk allow-pass vlan 1

[*SwitchB-10GE1/0/1] quit

[*SwitchB] commit

# 将SwitchB端口10GE1/0/2加入VLAN10和VLAN20。

[~SwitchB] interface 10ge 1/0/2

[~SwitchB-10GE1/0/2] port link-type trunk

[*SwitchB-10GE1/0/2] port trunk allow-pass vlan 10 20

[*SwitchB-10GE1/0/2] undo port trunk allow-pass vlan 1

[*SwitchB-10GE1/0/2] quit

[*SwitchB] commit

# 将SwitchB端口10GE1/0/3加入VLAN20和VLAN30。

[~SwitchB] interface 10ge 1/0/3

[~SwitchB-10GE1/0/3] port link-type trunk

[*SwitchB-10GE1/0/3] port trunk allow-pass vlan 20 30

[*SwitchB-10GE1/0/3] undo port trunk allow-pass vlan 1

[*SwitchB-10GE1/0/3] quit

[*SwitchB] commit

# 将SwitchC端口10GE1/0/2加入VLAN10和VLAN20。

[~SwitchC] interface 10ge 1/0/2

[~SwitchC-10GE1/0/2] port link-type trunk

[*SwitchC-10GE1/0/2] port trunk allow-pass vlan 10 20

[*SwitchC-10GE1/0/2] undo port trunk allow-pass vlan 1

[*SwitchC-10GE1/0/2] quit

[*SwitchC] commit

# 将SwitchC端口10GE1/0/3加入VLAN10和VLAN20。

[~SwitchC] interface 10ge 1/0/3

[~SwitchC-10GE1/0/3] port link-type trunk

[*SwitchC-10GE1/0/3] port trunk allow-pass vlan 10 20

[*SwitchC-10GE1/0/3] undo port trunk allow-pass vlan 1

[*SwitchC-10GE1/0/3] quit

[*SwitchC] commit

# 将SwitchC端口10GE1/0/4加入VLAN10,10GE1/0/5加入VLAN20。

[~SwitchC] interface 10ge 1/0/4

[~SwitchC-10GE1/0/4] port link-type access

[*SwitchC-10GE1/0/4] port default vlan 10

[*SwitchC-10GE1/0/4] quit

[*SwitchC] interface 10ge 1/0/5

[*SwitchC-10GE1/0/5] port link-type access

[*SwitchC-10GE1/0/5] port default vlan 20

[*SwitchC-10GE1/0/5] quit

[*SwitchC] commit

# 将SwitchD端口10GE1/0/2加入VLAN20和VLAN30。

[~SwitchD] interface 10ge 1/0/2

[~SwitchD-10GE1/0/2] port link-type trunk

[*SwitchD-10GE1/0/2] port trunk allow-pass vlan 20 30

[*SwitchD-10GE1/0/2] undo port trunk allow-pass vlan 1

[*SwitchD-10GE1/0/2] quit

[*SwitchD] commit

# 将SwitchD端口10GE1/0/3加入VLAN20和VLAN30。

[~SwitchD] interface 10ge 1/0/3

[~SwitchD-10GE1/0/3] port link-type trunk

[*SwitchD-10GE1/0/3] port trunk allow-pass vlan 20 30

[*SwitchD-10GE1/0/3] undo port trunk allow-pass vlan 1

[*SwitchD-10GE1/0/3] quit

[*SwitchD] commit

# 将SwitchD端口10GE1/0/4加入VLAN20,10GE1/0/5加入VLAN30。

[~SwitchD] interface 10ge 1/0/4

[~SwitchD-10GE1/0/4] port link-type access

[*SwitchD-10GE1/0/4] port default vlan 20

[*SwitchD-10GE1/0/4] quit

[*SwitchD] interface 10ge 1/0/5

[*SwitchD-10GE1/0/5] port link-type access

[*SwitchD-10GE1/0/5] port default vlan 30

[*SwitchD-10GE1/0/5] quit

[*SwitchD] commit

配置VBST基本功能。

配置环网中的交换机的生成树协议工作在VBST模式。

# 配置SwitchA的工作模式为VBST。

[~SwitchA] stp mode vbst

[*SwitchA] commit

# 配置交换机SwitchB的工作模式为VBST。

[~SwitchB] stp mode vbst

[*SwitchB] commit

# 配置交换机SwitchC的工作模式为VBST。

[~SwitchC] stp mode vbst

[*SwitchC] commit

# 配置交换机SwitchD的工作模式为VBST。

[~SwitchD] stp mode vbst

[*SwitchD] commit

配置根桥和备份根桥设备。

配置VLAN10的根桥和备份根桥。

# 配置SwitchA为VLAN10的根桥。

[~SwitchA] stp vlan 10 root primary

[*SwitchA] commit

# 配置SwitchB为VLAN10的备份根桥。

[~SwitchB] stp vlan 10 root secondary

[*SwitchB] commit

配置VLAN20的根桥和备份根桥。

# 配置SwitchA为VLAN20的根桥。

[~SwitchA] stp vlan 20 root primary

[*SwitchA] commit

# 配置SwitchB为VLAN20的备份根桥。

[~SwitchB] stp vlan 20 root secondary

[*SwitchB] commit

配置VLAN30的根桥和备份根桥。

# 配置SwitchB为VLAN30的根桥。

[~SwitchB] stp vlan 30 root primary

[*SwitchB] commit

# 配置SwitchA为VLAN30的备份根桥。

[~SwitchA] stp vlan 30 root secondary

[*SwitchA] commit

配置各VLAN中端口的路径开销值,实现将该端口阻塞

将SwitchC上的端口10GE1/0/2在VLAN10中的路径开销值配置为2000000,在VLAN20中的路径开销值配置为2000000。

[~SwitchC] interface 10ge 1/0/2
[~SwitchC-10GE1/0/2] stp vlan 10 cost 2000000
[*SwitchC-10GE1/0/2] stp vlan 20 cost 2000000
[*SwitchC-10GE1/0/2] quit
[*SwitchC] commit

将SwitchD上的端口10GE1/0/2在VLAN20中的路径开销值配置为2000000,在VLAN30中的路径开销值配置为2000000。

[~SwitchD] interface 10ge 1/0/2
[~SwitchD-10GE1/0/2] stp vlan 20 cost 2000000
[*SwitchD-10GE1/0/2] stp vlan 30 cost 2000000
[*SwitchD-10GE1/0/2] quit
[*SwitchD] commit

使能VBST,实现破除环路。

全局使能VBST功能。

缺省情况下,全局VBST功能已使能。

为确保全局VBST使能,可执行命令display stp vlan information查看VBST的使能状态。如果未使能,请在系统视图执行命令undo stp vlan disable全局使能VBST功能。

VLAN使能VBST功能。

缺省情况下,VLAN上的VBST功能处于使能状态。

为确保VLAN的VBST功能使能,可执行命令display stp vlan vlan-id information查看VLAN上的VBST状态。如果提示该VLAN上VBST功能未使能,请在系统视图执行命令undo stp vlan vlan-id disable使能该VLAN的VBST功能。

验证配置结果。
经过以上配置,在网络计算稳定后,执行以下操作,验证配置结果。

在SwitchA上执行display stp vlan bridge local命令,查看STP工作模式,结果如下:

[~SwitchA] display stp vlan bridge local

VLANID BridgeID             HelloTime MaxAge ForwardDelay Protocol

10 32869.ac94-8400-df01         2     20           15     VBST
20 32970.ac94-8400-df01         2     20           15     VBST
30 33071.ac94-8400-df01         2     20           15     VBST

由上述显示信息可以看出,STP工作在VBST模式。

在SwitchA上执行display stp vlan information brief命令,查看端口状态,结果如下:

[~SwitchA] display stp vlan information brief

VLANID Interface              Role STPState    Protection           Cost Edged

10 10GE1/0/1 DESI forwarding none 20000 disable
10 10GE1/0/3 DESI forwarding none 2000 disable
20 10GE1/0/1 DESI forwarding none 20000 disable
20 10GE1/0/2 DESI forwarding none 2000 disable
20 10GE1/0/3 DESI forwarding none 2000 disable
30 10GE1/0/1 ALTE discarding none 20000 disable
30 10GE1/0/2 ROOT forwarding none 2000 disable


由上述显示信息可以看出,SwitchA分别参加VLAN10、VLAN20和VLAN30的生成树计算。例如,SwitchA在VLAN10和VLAN20中都是根桥,所以在VLAN10中10GE1/0/1和10GE1/0/3都被选举为指定端口;在VLAN20中10GE1/0/1、10GE1/0/2和10GE1/0/3都被选举为指定端口。SwitchA在VLAN30中是备份根桥,所以VLAN30中10GE1/0/1被选举为指定端口,10GE1/0/2被选举为根端口。

在SwitchA上执行display stp vlan 10 information命令,查看VLAN10的详细信息,结果如下:

[~SwitchA] display stp vlan 10 information
VLAN 10 information:

Global information:
Protocol Status            : Enabled
Bpdu-filter Default        : Disabled
Bpdu-protection            : Disabled
Tc-protection              : Disabled
Tc-protection Threshold    : 1
Tc-protection Interval(s)  : 10
Edged Port Default         : Disabled
Path Cost Standard         : Dot1T
Timer Factor               : 3
Transit Limit              : 6

Bridge ID : 10.ac94-8400-df01
Config Times : Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times : Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Root ID/RPC : 10.ac94-8400-df01 / 0
RootPortId(InterfaceName) : 0.0 (This bridge is the root)
Root Type : Primary

Port information:
Port ID   : 5
Interface : 10GE1/0/1
STP State                      : Forwarding
Port Role                      : Designated Port
Port Priority                  : 128
Path Cost Standard             : Dot1T
Port Cost(Config/Active)       : 0 / 20000
Desg. Bridge/Port              : 10.ac94-8400-df01 / 128.5
Port Edged(Config/Active)      : Default / Disabled
Point-to-point(Config/Active)  : Auto / True
Transit Limit                  : 6 packets/hello
Protection Type                : None
Port ID   : 8
Interface : 10GE1/0/3
STP State                      : Forwarding
Port Role                      : Designated Port
Port Priority                  : 128
Path Cost Standard             : Dot1T
Port Cost(Config/Active)       : 0 / 2000
Desg. Bridge/Port              : 10.ac94-8400-df01 / 128.8
Port Edged(Config/Active)      : Default / Disabled
Point-to-point(Config/Active)  : Auto / True
Transit Limit                  : 6 packets/hello
Protection Type                : None

由上述显示信息可以看出,在VLAN10中,SwitchA被选举为根桥,两个端口10GE1/0/1和10GE1/0/3都被选举为指定端口,且处于FORWARDING状态。

同理,在SwitchB、SwitchC和SwitchD上分别执行display stp vlan information brief命令,查看端口状态,结果如下:

[~SwitchB] display stp vlan information brief

VLANID Interface            Role STPState    Protection           Cost Edged

10 10GE1/0/1 ALTE discarding none 20000 disable
10 10GE1/0/2 ROOT forwarding none 2000 disable
20 10GE1/0/1 ALTE discarding none 20000 disable
20 10GE1/0/2 ROOT forwarding none 2000 disable
20 10GE1/0/3 DESI forwarding none 2000 disable
30 10GE1/0/1 DESI forwarding none 20000 disable
30 10GE1/0/3 DESI forwarding none 2000 disable


[~SwitchC] display stp vlan information brief

VLANID Interface            Role STPState    Protection           Cost Edged

10 10GE1/0/2 ROOT forwarding none 2000 disable
10 10GE1/0/3 DESI forwarding none 2000000 disable
10 10GE1/0/4 DESI forwarding none 2000 disable
20 10GE1/0/2 ROOT forwarding none 2000 disable
20 10GE1/0/3 DESI forwarding none 2000000 disable
20 10GE1/0/5 DESI forwarding none 2000 disable


[~SwitchD] display stp vlan information brief

VLANID Interface            Role STPState    Protection           Cost Edged

20 10GE1/0/2 ALTE discarding none 2000000 disable
20 10GE1/0/3 ROOT forwarding none 2000 disable
20 10GE1/0/4 DESI forwarding none 2000 disable
30 10GE1/0/2 DESI forwarding none 2000000 disable
30 10GE1/0/3 ROOT forwarding none 2000 disable
30 10GE1/0/5 DESI forwarding none 2000 disable


由上述显示信息可以看出,SwitchB参与VLAN10、VLAN20和VLAN30的生成树计算,SwitchC参与VLAN10、VLAN20的生成树计算,SwitchD参与VLAN20、VLAN30的生成树计算,计算完成后,各端口分别选举为不同的角色,实现破除环路。

可见,VLAN 10、VLAN 20和VLAN 30分别形成不同的生成树,VLAN 10、VLAN 20、VLAN 30内的业务流量将沿各自的生成树转发,实现负载分担。

 

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

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

相关文章

代理IP使用指南:风险与注意事项

在当今的数字化时代&#xff0c;使用在线代理IP已经成为一种常见的网络行为。然而&#xff0c;在使用这些代理IP时&#xff0c;我们需要注意一些风险和问题&#xff0c;以确保我们的网络安全和隐本私文。将探讨使用代理IP时需要注意的几个关键问题。 1、代理IP的安全性 使用代理…

设计模式:工厂方法模式

工厂模式属于创建型模式&#xff0c;也被称为多态工厂模式&#xff0c;它在创建对象时提供了一种封装机制&#xff0c;将实际创建对象的代码与使用代码分离&#xff0c;有子类决定要实例化的产品是哪一个&#xff0c;把产品的实例化推迟到子类。 使用场景 重复代码 : 创建对象…

OpenAI ChatGPT-4开发笔记2024-07:Embedding之Text Similarity文本相似度

语义相似性semantic similarity 背景结果 背景 OpenAI has made waves online with its innovative embedding and transcription models, leading to breakthroughs in NLP and speech recognition. These models enhance accuracy, efficiency, and flexibility while speed…

算法每日一题: 边权重均等查询 | 公共子祖先

大家好&#xff0c;我是星恒&#xff0c;今天给大家带来的是一道图里面有关公共子祖先的题目&#xff0c;理解起来简单&#xff0c;大家 题目&#xff1a;leetcode 2846 现有一棵由 n 个节点组成的无向树&#xff0c;节点按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n …

聊聊大模型 RAG 探索之路的血泪史,一周出Demo,半年用不好

大家好&#xff0c;今天我们来继续看看 RAG 落地的一些有趣的事儿&#xff0c;从技术社群早上的讨论开始&#xff0c;喜欢技术交流的可以文末加入我们 一、从一周出Demo、半年用不好说起 最近读了读2024-傅盛开年AI大课&#xff0c;其中有讲到RAG环节&#xff0c;三张片子比较…

2023.1.23 关于 Redis 哨兵模式详解

目录 引言 人工恢复主节点故障 ​编辑 主从 哨兵模式 Docker 模拟部署哨兵模式 关于端口映射 展现哨兵机制 哨兵重新选取主节点的流程 哨兵模式注意事项 引言 人工恢复主节点故障 1、正常情况 2、主节点宕机 3、程序员主动恢复 先看看该主节点还能不能抢救如果不好定…

统一异常处理

统一异常处理 统一异常处理创建一个类定义方法ControllerAdvice和ExceptionHandler注意事项 统一异常处理 创建一个类 首先,我们来创建一个类,名字随意,这里我们取名ERHandler 定义方法 在ERHandler中,我们可以定义几个类,参数用来接收各种异常,这里的异常可以是任意的,返回…

面试官:你可以说一说你对Jmeter元素的理解吗?下

面试官&#xff1a;你可以说一说你对Jmeter元素的理解吗&#xff1f;下 监听器配置元素CSV数据集配置HTTPCookie管理器HTTP请求默认值登录配置元素 监听器 Listeners&#xff1a;显示测试执行的结果。它们可以以不同的格式显示结果&#xff0c;例如树、表、图形或日志文件 图…

LLM大语言模型(五):用streamlit开发LLM应用

目录 背景准备工作切记streamlit开发LLM demo开一个新页面初始化session先渲染历史消息接收用户输入模拟调用LLM 参考 背景 Streamlit是一个开源Python库&#xff0c;可以轻松创建和共享用于机器学习和数据科学的漂亮的自定义web应用程序&#xff0c;用户可以在几分钟内构建一…

DNS欺骗

DNS(域名系统)作为当前全球最大 、最复杂的分布式层次数据库系统&#xff0c;具有着开放、庞大、复杂的特性。它为全球用户提供域名解析服务&#xff0c;是互联网的重要基础设施。但由于其在设计之初未考虑安全性、人为破坏等因素 &#xff0c;DNS系统在互联网高度发达的今天面…

Ubuntu下APT下载工具(Ubuntu 下最常用的下载和安装软件方法)

前言 本篇文章记录我学习Ubuntu 下用的最多的下载工具&#xff1a; APT 下载工具&#xff0c; APT 下载工具可以实现软件自动下载、配置、安装二进制或者源码的功能。 APT 下载工具和我们前面一篇文章讲解的“install”命令结合在一起构成了 Ubuntu 下最常用的下载和安装软件方…

【代码随想录】LC 242. 有效的字母异位词

文章目录 前言一、题目1、原题链接2、题目描述 二、解题报告1、思路分析2、时间复杂度3、代码详解 前言 本专栏文章为《代码随想录》书籍的刷题题解以及读书笔记&#xff0c;如有侵权&#xff0c;立即删除。 一、题目 1、原题链接 242. 有效的字母异位词 2、题目描述 二、解题…

刘知远团队大模型技术与交叉应用L5-BMSystem

为什么需要BMTrain&#xff1f; PLM越来越大。为了使训练更高效和廉价。我们有必要 1.分析GPU的显存去哪了&#xff1f; 2.理解GPU间的合作模式是如何的&#xff1f; 显存都去了哪里&#xff1f; CPU vs GPU CPU适合复杂逻辑运算。GPU适合大量重复的数值运算。 显存成分 1.前…

csp----寻宝!大冒险!

题目描述&#xff1a; AC代码如下&#xff1a; /*思路&#xff1a; 把A变成小块 因为B是A里的一部分 通过把A变成小块 去寻找B这样速度更快 如果AB,BA&#xff0c;说明找到了。 */#include <iostream> #include <cstring> #include <algorithm> #include …

【Java】初识Spring Mvc

SpringMVC_day01 今日内容 理解SpringMVC相关概念完成SpringMVC的入门案例学会使用PostMan工具发送请求和数据掌握SpringMVC如何接收请求、数据和响应结果掌握RESTful风格及其使用完成基于RESTful的案例编写 1&#xff0c;SpringMVC简介 看到SpringMVC这个名字我们会发现其中…

【人工智能】主要人工智能技术及深度学习及传统机器学习区别与联系

主要人工智能技术的基本概念和应用场景 机器学习英文简称ML是一门涉及统计学、系统辨识、逼近理论、优化理论、计算机科学、脑科学等诸多领域的交叉学科&#xff0c;主要研究计算机怎样模拟或实现人类的学习行为&#xff0c;以获取新的知识或技能&#xff0c;重新组织已有的知识…

【GAMES101】Lecture 10 几何表示

目录 隐式表示 代数曲面&#xff08;Algebraic surfaces&#xff09; CSG&#xff08;Constructive solid geometry&#xff09; 距离函数&#xff08;Distance Functions&#xff09; 水平集&#xff08;Level set methods&#xff09; 分形&#xff08;Fractals&#x…

【Android】MediaCodec学习

在开源Android屏幕投屏代码scrcpy中&#xff0c;使用了MediaCodec去获取和display关联的surface的内容&#xff0c;再通过写fd的方式&#xff08;socket等&#xff09;传给PC端&#xff0c; MediaCodec的处理看起来比较清楚&#xff0c;数据in和数据out 这里我们做另外一个尝试…

AI嵌入式K210项目(19)-安装CanMV IDE开发软件

文章目录 前言一、软件下载安装二、软件简介三、设备连接四、在线模拟五、开机运行程序附录&#xff1a;MicroPython固件烧录总结 前言 前几章我们介绍K210使用C语言裸机开发方法&#xff0c;大家对K210内部的硬件和各种加速器有了初步的了解&#xff0c;但是开发人工智能相关…

TypeScript(四) 运算符

1. 运算符 1.1. 描述 运算符用于执行程序代码运算。 1.2. 运算符主要包括&#xff1a; &#xff08;1&#xff09;算术运算符 &#xff08;2&#xff09;逻辑运算符 &#xff08;3&#xff09;关系运算符 &#xff08;4&#xff09;按位运算符 &#xff08;5&#xff09;赋值…