【思科】链路聚合实验配置和背景

【思科】链路聚合实验配置和背景

  • 背景
  • 链路聚合基本概念
    • 链路聚合
    • 聚合接口
  • 思科链路聚合协议
    • 01.PAgP协议
    • 02.LACP协议
  • 思科链路聚合模式
    • LACP协议模式
    • PAgP协议模式
    • ON模式
  • 实验准备
  • 配置
    • 二层链路聚合
      • LACP协议模式
        • SW1
        • SW2
        • PC1
        • PC2
        • 查看LACP聚合组建立情况
        • 查看LACP聚合端口情况
        • 查看逻辑聚合端口带宽
        • PC1和PC2互Ping
      • PAgP协议模式
        • SW1
        • SW2
        • PC1
        • PC2
        • 查看LACP聚合组建立情况
        • 查看LACP聚合端口情况
        • 查看逻辑聚合端口带宽
        • PC1和PC2互Ping
      • ON模式
        • SW1
        • SW2
        • PC1
        • PC2
        • 查看LACP聚合组建立情况
        • 查看LACP聚合端口情况
        • 查看逻辑聚合端口带宽
        • PC1和PC2互Ping
    • 三层链路聚合
      • ON模式
        • SW1
        • SW2
        • 查看LACP聚合组建立情况
        • 查看LACP聚合端口情况
        • SW1和SW2互Ping
      • LACP模式
        • SW1
        • SW2
        • SW1和SW2互Ping
      • LACP模式
        • SW1
        • SW2
        • SW1和SW2互Ping

在这里插入图片描述

背景

思科的EtherChannel技术是一种链路聚合方法,它允许将多个物理以太网链路捆绑在一起,作为一个逻辑链路来增加带宽和提高冗余性。
在这里插入图片描述

随着网络规模不断扩大,用户对骨干链路的带宽和可靠性提出越来越高的要求。在传统技术中,常用更换高速率的单板或更换支持高速率单板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。

EtherChannel采用链路聚合技术,可以在不进行硬件升级的条件下,通过将多个物理接口捆绑为一个逻辑接口,达到增加链路带宽的目的。在实现增大带宽目的的同时,EtherChannel采用备份链路的机制,可以有效的提高设备之间链路的可靠性。

如果只是单纯的在交换机上添加多条链路,而不启用链路聚合,那其实和一条链路没区别,因为交换机有STP进行防环操作,多条链路会被逻辑阻塞,就留下一条链路进行业务传输而已,所以就有了链路聚合技术。将多条链路逻辑成一条逻辑链路,STP也就只能看到一条逻辑链路而已。
在这里插入图片描述

链路聚合基本概念

链路聚合

链路聚合是通过将多个以太网端口捆绑在一起形成的,形成一个聚合组(Channel-Group),聚合组内的所有物理链路作为一条逻辑链路来传送数据,逻辑链路的带宽就等于所有成员链路带宽之和。多个端口汇聚成的逻辑接口称为聚合接口(Port-Channel),一个聚合组和一个聚合接口形成一条聚合链路(Etherchannel)。

聚合接口

聚合组将物理端口绑定在一个逻辑接口下,每个聚合组唯一对应一个逻辑接口,称为聚合接口(Port-Channel),每个聚合接口用一个用户自定义的聚合接口ID(Group-ID)唯一标识,这个聚合接口的ID是本地有效的。

思科链路聚合协议

01.PAgP协议

PAgP协议(Port Aggregation Protocol,端口汇聚)是思科私有的动态链路汇聚协议,通过启用PAgP协议,两端端口通过交换PAgP数据包获取对端端口参数,根据这些信息自动形成聚合链路,并指定哪些端口发送PAgP包,哪些端口只接收PAgP包。这种协议只能在思科设备上运行。

02.LACP协议

LACP(Link Aggregation Control Protocol,链路汇聚控制协议)是基于IEEE 802.3ad标准的实现链路动态汇聚与解汇聚的协议,是一种国际标准的链路汇聚协议,大部分厂商设备都兼容,公有协议。LACP协议通过LACPDU(Link Aggregation Control Protocol Data Unit,链路汇聚控制协议数据单元)与对端交互端口信息,进行协商,实现对汇聚的自动化控制。

思科链路聚合模式

思科交换机的链路聚合根据使用的协议可以分为三种工作模式LACP模式、PAgP模式和On模式。

具体这三种工作模式下共有5种不同的端口模式active、passive、auto、desirable、on。如下图

其中active和passive使用LACP协议进行工作;auto和desirable使用PAgP协议进行工作;on则是强制启用链路聚合,手工链路聚合

在这里插入图片描述

LACP协议模式

LACP协议模式是使用LACP协议进行链路协商以形成聚合链路。这种模式下有两种端口模式可选,即active和passive。

active模式下不管对端设备是否支持LACP协议,本端都会无条件启用LACP协议,这种模式下端口处于主动协商状态;而passive模式下只有检测到对端设备支持LACP协议,本端才会启用LACP协议,这种模式下端口处于被动协商状态。

所以需要一端是active模式,另一端是passive模式;或者两端都是active模式

PAgP协议模式

这种链路聚合模式使用思科私有的PAgP协议进行链路协商以形成聚合链路。这种模式系也有两种端口模式可选,即auto和desirable。

跟LACP模式下的两种端口模式相似,desirable模式下不管对端是否支持PAgP协议,本端都会启用PAgP协议,就是主动协商状态;auto模式下只有检测到对端设备支持PAgP协议,本端才会启用LACP协议也就是被动协商状态。

所以需要一端是desirable模式,另一端是auto模式;或者两端都是desirable模式

ON模式

ON模式:静态持久性模式
使用On模式不经过协商(不使用任何链路聚合协议),直接进行强制链路聚合,只要两端端口二层配置一致(端口速率和所属VLAN一致),就可以直接将端口加入聚合接口,建立聚合链路。

这种情况下,链路另一端聚合链路也必须使用On模式,否则会发生数据丢包。这种模式在两端设备都不支持PAgP协议或LACP协议的情况下使用,兼容性强,配置起来也比较方便,在实际中用的也比较多。

实验准备

实验环境:EVE-Community
实验设备镜像
路由器:
i86bi LinuxL3-AdvEnterpriseK9-M2 157 3 May 2018.bin
交换机:

i86bi linuxl2-adventerprisek9-ms.SSA.high iron 20190423.bin
PC:用路由器来模拟
6bi LinuxL3-AdvEnterpriseK9-M2 157 3 May 2018.bin

实验目的
让交换机实现链路聚合,提高带宽

配置

二层链路聚合

在这里插入图片描述

LACP协议模式

SW1
Switch>enable
Switch#conf t
Switch(config)#hostname SW1## 进入需要聚合的接口,先设置为Trunk模式
SW1(config)#int range e0/0-2
SW1(config-if-range)#switchport trunk encapsulation dot1q 
SW1(config-if-range)#switchport mode trunk ## 创建聚合组“1”,用LACP的active模式
## 思科会自动建一个聚合接口“1”,ID和聚合组一致
SW1(config-if-range)#channel-group 1 mode active 
Creating a port-channel interface Port-channel 1
SW1(config-if-range)#exit## access端口(连接PC)
SW1(config)#vlan 10
SW1(config-vlan)#exitSW1(config)#int e0/3
SW1(config-if)#switchport mode access 
SW1(config-if)#switchport access vlan 10
SW1(config-if)#exit
SW2
Switch>enable 
Switch#conf t
Switch(config)#hostname SW2SW2(config)#int range e0/0-2
SW2(config-if-range)#switchport trunk encapsulation dot1q
SW2(config-if-range)#switchport mode trunk 
SW2(config-if-range)#channel-group 1 mode passive 
Creating a port-channel interface Port-channel 1
SW2(config-if-range)#exitSW2(config)#vlan 10
SW2(config-vlan)#exitSW2(config)#int e0/3
SW2(config-if)#switchport mode access 
SW2(config-if)#switchport access vlan 10
SW2(config-if)#exit
PC1

Router>enable 
Router#conf t
Router(config)#hostname PC1## 关闭路由功能,把它变成PC使用
PC1(config)#no ip routing## 进入端口,配置IP地址
PC1(config)#int e0/0       
PC1(config-if)#no shutdown 
PC1(config-if)#ip address 192.168.10.1 255.255.255.0
PC1(config-if)#exit## 保存配置
PC1(config)#do write 
Building configuration...
[OK]
PC2
Router>enable
Router#conf t
Router(config)#hostname PC2## 关闭路由功能,把它变成PC使用
PC2(config)#no ip routing## 进入端口,配置IP地址
PC2(config)#int e0/0
PC2(config-if)#no shutdown 
PC2(config-if)#ip address 192.168.10.2 255.255.255.0
PC2(config-if)#exit## 保存配置
PC2(config)#do write 
Building configuration...
[OK]
查看LACP聚合组建立情况

SW1#show etherchannel summary

可以看到聚合组“1”的成员有e0/0、e0/1、e0/2
聚合组“1”它的聚合端口状态是正在使用二层接口

在这里插入图片描述

查看LACP聚合端口情况

SW1#show ip int brief
在这里插入图片描述

查看逻辑聚合端口带宽

在这里插入图片描述

PC1和PC2互Ping

在这里插入图片描述

PAgP协议模式

SW1
Switch>enable
Switch#conf t
Switch(config)#hostname SW1## 进入需要聚合的接口,先设置为Trunk模式
SW1(config)#int range e0/0-2
SW1(config-if-range)#switchport trunk encapsulation dot1q 
SW1(config-if-range)#switchport mode trunk ## 创建聚合组“1”,用PAgP的desirable 模式
## 思科会自动建一个聚合接口“1”,ID和聚合组一致
SW1(config-if-range)#channel-group 1 mode desirable 
Creating a port-channel interface Port-channel 1
SW1(config-if-range)#exit## access端口(连接PC)
SW1(config)#vlan 10
SW1(config-vlan)#exitSW1(config)#int e0/3
SW1(config-if)#switchport mode access 
SW1(config-if)#switchport access vlan 10
SW1(config-if)#exit
SW2
Switch>enable 
Switch#conf t
Switch(config)#hostname SW2SW2(config)#int range e0/0-2
SW2(config-if-range)#switchport trunk encapsulation dot1q 
SW2(config-if-range)#switchport mode trunk 
SW2(config-if-range)#channel-group 1 mode auto 
Creating a port-channel interface Port-channel 1
SW2(config-if-range)#exitSW2(config)#vlan 10
SW2(config-vlan)#exitSW2(config)#int e0/3
SW2(config-if)#switchport mode access 
SW2(config-if)#switchport access vlan 10
SW2(config-if)#exit
PC1

Router>enable 
Router#conf t
Router(config)#hostname PC1## 关闭路由功能,把它变成PC使用
PC1(config)#no ip routing## 进入端口,配置IP地址
PC1(config)#int e0/0       
PC1(config-if)#no shutdown 
PC1(config-if)#ip address 192.168.10.1 255.255.255.0
PC1(config-if)#exit## 保存配置
PC1(config)#do write 
Building configuration...
[OK]
PC2
Router>enable
Router#conf t
Router(config)#hostname PC2## 关闭路由功能,把它变成PC使用
PC2(config)#no ip routing## 进入端口,配置IP地址
PC2(config)#int e0/0
PC2(config-if)#no shutdown 
PC2(config-if)#ip address 192.168.10.2 255.255.255.0
PC2(config-if)#exit## 保存配置
PC2(config)#do write 
Building configuration...
[OK]
查看LACP聚合组建立情况

SW1#show etherchannel summary

可以看到聚合组“1”的成员有e0/0、e0/1、e0/2
聚合组“1”它的聚合端口状态是正在使用二层接口

在这里插入图片描述

查看LACP聚合端口情况

SW1#show ip int brief
在这里插入图片描述

查看逻辑聚合端口带宽

在这里插入图片描述

PC1和PC2互Ping

在这里插入图片描述

ON模式

SW1

Switch>enable
Switch#conf t
Switch(config)#hostname SW1## 进入需要聚合的接口,先设置为Trunk模式
SW1(config)#int range e0/0-2
SW1(config-if-range)#switchport trunk encapsulation dot1q 
SW1(config-if-range)#switchport mode trunk ## 创建聚合组“1”,用PAgP的desirable 模式
## 思科会自动建一个聚合接口“1”,ID和聚合组一致
SW1(config-if-range)#channel-group 1 mode on
Creating a port-channel interface Port-channel 1
SW1(config-if-range)#exit## access端口(连接PC)
SW1(config)#vlan 10
SW1(config-vlan)#exitSW1(config)#int e0/3
SW1(config-if)#switchport mode access 
SW1(config-if)#switchport access vlan 10
SW1(config-if)#exit
SW2

Switch>enable 
Switch#conf t
Switch(config)#hostname SW2SW2(config)#int range e0/0-2
SW2(config-if-range)#switchport trunk encapsulation dot1q 
SW2(config-if-range)#switchport mode trunk 
SW1(config-if-range)#channel-group 1 mode on
Creating a port-channel interface Port-channel 1
SW2(config-if-range)#exitSW2(config)#vlan 10
SW2(config-vlan)#exitSW2(config)#int e0/3
SW2(config-if)#switchport mode access 
SW2(config-if)#switchport access vlan 10
SW2(config-if)#exit
PC1

Router>enable 
Router#conf t
Router(config)#hostname PC1## 关闭路由功能,把它变成PC使用
PC1(config)#no ip routing## 进入端口,配置IP地址
PC1(config)#int e0/0       
PC1(config-if)#no shutdown 
PC1(config-if)#ip address 192.168.10.1 255.255.255.0
PC1(config-if)#exit## 保存配置
PC1(config)#do write 
Building configuration...
[OK]
PC2
Router>enable
Router#conf t
Router(config)#hostname PC2## 关闭路由功能,把它变成PC使用
PC2(config)#no ip routing## 进入端口,配置IP地址
PC2(config)#int e0/0
PC2(config-if)#no shutdown 
PC2(config-if)#ip address 192.168.10.2 255.255.255.0
PC2(config-if)#exit## 保存配置
PC2(config)#do write 
Building configuration...
[OK]
查看LACP聚合组建立情况

SW1#show etherchannel summary

可以看到聚合组“1”的成员有e0/0、e0/1、e0/2
聚合组“1”它的聚合端口状态是正在使用二层接口

在这里插入图片描述

查看LACP聚合端口情况

SW1#show ip int brief
在这里插入图片描述

查看逻辑聚合端口带宽

在这里插入图片描述

PC1和PC2互Ping

在这里插入图片描述

三层链路聚合

在这里插入图片描述

ON模式

SW1

Switch>enable
Switch#conf t
Switch(config)#hostname SW1## 进入需要聚合的接口,需要关闭交换功能
SW1(config)#int range e0/0-2
SW1(config-if-range)#no switchport ## 创建聚合组“10”,用ON聚合模式
## 思科会自动建一个聚合接口“10”,ID和聚合组一致
SW1(config-if-range)#channel-group 10 mode on
Creating a port-channel interface Port-channel 10
SW1(config-if-range)#exit## 进入聚合接口“10”去配置地址
SW1(config)#int port-channel 10
SW1(config-if)#ip address 192.168.100.100 255.255.255.0
SW1(config-if)#exit
SW2

Switch>enable 
Switch#conf t
Switch(config)#hostname SW2SW2(config)#int range e0/0-2
SW2(config-if-range)#no switchport 
SW1(config-if-range)#channel-group 10 mode on
Creating a port-channel interface Port-channel 10
SW2(config-if-range)#exitSW2(config)#int port-channel 10
SW2(config-if)#ip address 192.168.100.200 255.255.255.0
SW2(config-if)#exit
查看LACP聚合组建立情况

SW1#show etherchannel summary

这边是RU,那就是正在使用的三层接口,说明配置成功了

在这里插入图片描述

查看LACP聚合端口情况

SW1#show ip int brief
在这里插入图片描述

SW1和SW2互Ping

在这里插入图片描述

LACP模式

SW1

Switch>enable
Switch#conf t
Switch(config)#hostname SW1## 进入需要聚合的接口,需要关闭交换功能
SW1(config)#int range e0/0-2
SW1(config-if-range)#no switchport ## 创建聚合组“10”,用ON聚合模式
## 思科会自动建一个聚合接口“10”,ID和聚合组一致
SW1(config-if-range)#channel-group 10 mode active
Creating a port-channel interface Port-channel 10
SW1(config-if-range)#exit## 进入聚合接口“10”去配置地址
SW1(config)#int port-channel 10
SW1(config-if)#ip address 192.168.100.100 255.255.255.0
SW1(config-if)#exit
SW2

Switch>enable 
Switch#conf t
Switch(config)#hostname SW2SW2(config)#int range e0/0-2
SW2(config-if-range)#no switchport 
SW1(config-if-range)#channel-group 10 mode active
Creating a port-channel interface Port-channel 10
SW2(config-if-range)#exitSW2(config)#int port-channel 10
SW2(config-if)#ip address 192.168.100.200 255.255.255.0
SW2(config-if)#exit
SW1和SW2互Ping

在这里插入图片描述

LACP模式

SW1

Switch>enable
Switch#conf t
Switch(config)#hostname SW1## 进入需要聚合的接口,需要关闭交换功能
SW1(config)#int range e0/0-2
SW1(config-if-range)#no switchport ## 创建聚合组“10”,用ON聚合模式
## 思科会自动建一个聚合接口“10”,ID和聚合组一致
SW1(config-if-range)#channel-group 10 mode desirable
Creating a port-channel interface Port-channel 10
SW1(config-if-range)#exit## 进入聚合接口“10”去配置地址
SW1(config)#int port-channel 10
SW1(config-if)#ip address 192.168.100.100 255.255.255.0
SW1(config-if)#exit
SW2

Switch>enable 
Switch#conf t
Switch(config)#hostname SW2SW2(config)#int range e0/0-2
SW2(config-if-range)#no switchport 
SW1(config-if-range)#channel-group 10 mode desirable
Creating a port-channel interface Port-channel 10
SW2(config-if-range)#exitSW2(config)#int port-channel 10
SW2(config-if)#ip address 192.168.100.200 255.255.255.0
SW2(config-if)#exit
SW1和SW2互Ping

在这里插入图片描述

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

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

相关文章

2-40 基于Matlab编写的3维FDTD(时域有限差分算法)计算了球的RCS经典散射问题

基于Matlab编写的3维FDTD(时域有限差分算法)计算了球的RCS经典散射问题,采用PEC作边界,高斯波束激励。程序已调通,可直接运行。 2-40 3维FDTD 时域有限差分算法 - 小红书 (xiaohongshu.com)

Python自动化DevOps任务入门

目录 Python自动化DevOps任务入门 一、环境和工具配置 1. 系统环境与Python版本 2. 虚拟环境搭建 3. 必要的库安装 二、自动化部署 1. 使用Fabric进行流式部署 2. 使用Ansible编写部署剧本 三、持续集成和测试 1. 配置CI/CD工具 选择工具 配置工具 构建和测试自动…

深入理解设计模式:六大经典模式解析

深入理解设计模式:六大经典模式解析 1. 单例模式(Singleton Pattern)1.1 概述1.2 示例场景1.3 实现要点 2. 工厂模式(Factory Pattern)2.1 简单工厂2.2 抽象工厂2.3 示例场景2.4 实现要点 3. 观察者模式(Ob…

从输入 URL 到页面展示到底发生了什么

从输入 URL 到页面展示到底发生了什么呢? 1.在浏览器输入一个域名回车 2.首先会先检查浏览器缓存里是否有缓存资源,如果缓存中有,会直接在浏览器上显示页面内容,如果没有,在发送http请求之前,浏览器会向D…

设计模式-抽象工厂

抽象工厂属于创建型模式。 抽象工厂和工厂设计模式的区别: 工厂模式的是设计模式中最简单的一种设计模式,主要设计思想是,分离对象的创建和使用,在Java中,如果需要使用一个对象时,需要new Class()&#xff…

Step-DPO 论文——数学大语言模型理解

论文题目:STEP-DPO: STEP-WISE PREFERENCE OPTIMIZATION FOR LONG-CHAIN REASONING OF LLMS 翻译为中文就是:“LLMs长链推理的逐步偏好优化” 论文由港中文贾佳亚团队推出,基于推理步骤的大模型优化策略,能够像老师教学生一样优…

Vulnhub靶场DC-7练习

目录 0x00 准备0x01 主机信息收集0x02 站点信息收集1. 获取用户名/密码2. ssh连接目标主机3. drush命令修改Drupal密码 0x03 漏洞查找与利用1. Drupal写入php木马2. 连接shell3. 反弹shell并提权 0x04 总结 0x00 准备 下载链接:https://download.vulnhub.com/dc/DC-…

深入理解Linux网络(四):TCP接收阻塞

TCP socket 接收函数 recv 发出 recvfrom 系统调用。 进⼊系统调⽤后,⽤户进程就进⼊到了内核态,通过执⾏⼀系列的内核协议层函数,然后到 socket 对象的接收队列中查看是否有数据,没有的话就把⾃⼰添加到 socket 对应的等待队列⾥…

c++网络编程实战——开发基于ftp协议的文件传输模块(二) 配置ftp服务与手动执行ftp命令

配置FTP服务 一.前言 博主的环境是阿里云服务器,操作系统版本为 ubuntu20.04,一下所有操作都基于以上环境下进行的操作,同时为了简化操作我将开放同一个云服务器的不同端口,让它同时充当服务端和客户端,大家如果想测试效果更好且…

巧用Vue3 composition api的计算属性实现扁平化tree连线

本示例节选自vue3最新开源组件实战教程大纲(持续更新中)的tree组件开发部分。将进一步把基于Vue3 composition api的computed计算属性特性应用到组件开发实战中,继续以最佳实践的方式呈现给大家。 下面我们要实现的是扁平化的dom结构所呈现的…

【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理

初阶数据结构相关知识点可以通过点击以下链接进行学习一起加油!时间与空间复杂度的深度剖析深入解析顺序表:探索底层逻辑深入解析单链表:探索底层逻辑深入解析带头双向循环链表:探索底层逻辑深入解析栈:探索底层逻辑深入解析队列:探索底层逻辑深入解析循环队列:探索…

最新缺失msvcp140.dll的多种解决方法,有效解决电脑dll问题

msvcp140.dll 是一个关键的动态链接库(DLL)文件,属于 Microsoft Visual C 2015 Redistributable 的一部分。它为使用 Microsoft Visual C 编译的应用程序提供了运行时支持,确保这些应用程序能够正常运行。以下是对 msvcp140.dll 的…

RPA鼠标按键使用技巧

RPA鼠标按键使用技巧 Mouse.MouseAuto.Action命令出错,调用的目标发生了异常,Exception in Mouse.Action元素不可用怎么解决 出现问题 1.想要实现的效果鼠标移动到录屏工具的小球上2.点击开始按钮开始录屏现象,鼠标没有移动痕迹&#xff0c…

Docker无法拉取镜像!如何解决?

问题现象 继去年Docker Hub被xxx后,各大NAS的注册表均出现问题,例如群晖的Docker套件注册表无法连接(更新至DSM7.2版本后恢复)。而在今年2024年6月初(约2024.06.06),NAS中最重要的工具Docker又…

Flink源码学习资料

Flink系列文档脑图 由于源码分析系列文档较多,本人绘制了Flink文档脑图。和下面的文档目录对应。各位读者可以选择自己感兴趣的模块阅读并参与讨论。 此脑图不定期更新中…… 文章目录 以下是本人Flink 源码分析系列文档目录,欢迎大家查阅和参与讨论。…

爬取百度图片,想爬谁就爬谁

前言 既然是做爬虫,那么肯定就会有一些小心思,比如去获取一些自己喜欢的资料等。 去百度图片去抓取图片吧 打开百度图片网站,点击搜索xxx,打开后,滚动滚动条,发现滚动条越来越小,说明图片加载…

springboot 配置 spring data redis

1、在pom.xml引入父依赖spring-boot-starter-parent&#xff0c;其中2.7.18是最后一版支持java8的spring <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</…

详解数据结构之二叉树(堆)

详解数据结构之二叉树(堆) 树 树的概念 树是一个非线性结构的数据结构&#xff0c;它是由 n(n>0)个有限节点组成的一个具有层次关系的集合&#xff0c;它的外观形似一颗倒挂着的树&#xff0c;根朝上&#xff0c;叶朝下&#xff0c;所以称呼为树。每颗子树的根节点有且只…

泛型新理解

1.创建三个类&#xff0c;并写好对应关系 package com.jmj.gulimall.study;public class People { }package com.jmj.gulimall.study;public class Student extends People{ }package com.jmj.gulimall.study;public class Teacher extends People{ }2.解释一下这三个方法 pub…

浅谈芯片验证中的仿真运行之 timescale (五)提防陷阱

一 仿真单位 timeunit 我们知道,当我们的代码中写清楚延时语句时,若不指定时间单位,则使用此单位; 例如: `timescale 1ns/1ps 则 #15 语句表示delay15ns; 例:如下代码,module a 的timescale是1ns/1ps, module b 是1ps/1ps; module b中的clk,频率是由输入参…