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

【计算机网络】实验4:生成树协议STP的功能以及虚拟局域网VLAN

实验 4:生成树协议STP的功能以及虚拟局域网VLAN

一、 实验目的

  1. 加深对生成树协议STP的功能的理解。

  2. 了解虚拟局域网VLAN。

二、 实验环境

• Cisco Packet Tracer 模拟器

三、 实验内容

1、验证交换机生成树协议STP的功能

(1) 第一步:构建网络拓扑:拖动四个交换机,使用自动连接类型将其连成一个环路,并来回切换实时与仿真模式,将黄色的连接线变成绿色的,但是发现左下角的交换机处于阻塞状态,这是因为交换机在后台运行着生成树协议,所以某些交换机会断掉自己的某些接口,也就是端口被阻塞了,此时,物理上的环路依然存在,但是逻辑上的环路已经断开。如图1所示。

img

图 1 构建网络拓扑

(2) 第二步:给刚才的网络拓扑添加两台计算机。并配置好IP地址如图2所示。

img

图2 添加计算机并配置IP

img

图3 删除场景

(3) 第三步:验证一下左下角的计算机是否可以ping得通右下角的计算机,进入左下角计算机的命令提示符下,使用命令ping 192.168.0.2尝试看看可不可以收到响应,如图3所示。

img

图3 左下角计算机成功收到响应

(4) 第四步:再次尝试使用右下角的计算机ping左下角的计算机,同样使用命令ping 192.168.0.1尝试看看可不可以收到响应。如图4所示。

img

图4 右下角计算机成功收到响应

(5) 第五步:这两次的主机之间的相互ping通表明,虽然有交换机的端口堵塞了,但是两个主机之间可以绕一个更大的圈,进而找到一条可行的通路,进而实现两台主机之间的通信。

(6) 第六步:模拟一下通路中有一个点出了故障,即将右上角的交换机的Fa0/2端口给断开,点击右上角的交换机,进入配置选项,点击Fa0/2端口,将端口状态关闭。如图5所示

img

图5 关闭交换机的某个端口

(7) 第七步:再次验证一下左下角的计算机是否可以ping得通右下角的计算机,进入左下角计算机的命令提示符下,使用命令ping 192.168.0.2尝试看看可不可以收到响应。如图6所示。

img

图6 此时计算机之间不能互通

(8) 第八步:等待一段时间之后,可以发现,原来交换机被自己的生成树协议堵塞掉的端口,现在又恢复了正常工作,这是因为我们人为得设置了一个阻塞的端口,然后交换机之间生成树协议会发现这个问题,然后就会将这个原先堵塞的端口给开,进而完成主机之间的通信。此时左下角的计算机再次ping右下角的计算机,发现成功。如图7所示。

img

图7 计算机之间互通成功

(9) 第九步:将原先关闭的端口重新打开,发现刚才阻塞的端口,又重新阻塞了,但是由于交换机的生成树协议是在启动了交换机之后,自动运行的,所以为了不影响后面的实验,将四个交换机的生成树协议给手动关闭掉,点击进入交换机,进入命令行界面,输入指令enable进入特权模式,输入config进入配置,按Enter键,输入no spanning-tree vlan 1指令关闭生成树协议。如图8所示。关闭所有交换机的生成树协议之后,如图9所示。

img

图8 关闭交换机的生成树协议

img

图9 所有的生成树协议都被关闭

(10) 第十步:关闭掉所有交换机的生成树协议之后,发现不仅物理上存在环路,逻辑上也存在环路。通过理论上的学习,可以知道当存在逻辑环路的时候,那么当某个主机发送方一个广播帧的时候,那么这个广播帧就会在这个逻辑环路里面兜圈子,逆时针和顺时针都会兜圈子,这样的话,就会严重的占用网络资源。

(11) 第十一步:切换到仿真模式,模拟一下广播帧兜圈子的情况。选中添加复杂的PDU,让左下角的主机发送一个广播帧,目的IP地址填255.255.255.255,序号填1,单次仿真时间为1秒,如图10所示。

img

图10 为计算机创建复杂的PDU

(12) 第十二步:点击捕获前进,发现广播帧在进入这个逻辑环路之后,开始无止境的兜圈子,此时严重地占用了网络资源。如图11所示。

img

图11 广播帧开始兜圈子

(13) 第十三步:切换到实时模式,再让左下角的计算机ping一下右边的计算机,如图12所示。

img

图12 计算机之间通信失败

(14) 第十四步:发现请求超时,反过来使用右下角的计算机ping左下角的计算机,结果也是一样请求超市,这是因为有一个广播帧在逻辑环路里一直兜圈子,导致占用了大量的网络资源,进而原先的两个主机之间没法正常通信。

2、虚拟局域网VLAN

(1) 第一步:构建网络拓扑:在逻辑工作空间上,拖动六个普通计算机和一个交换机,选择自动连接把设备连接起来,并设置好IP,并在计算机旁边写好IP注释。并写好端口注释。如图13所示。

img

图 13 构建网络拓扑

(2) 第二步:点击交换机,查看端口状态汇总表。可以发现所有端口号都是默认属于VLAN1的,后面给出的是每个端口的MAC地址。如图14所示。由于交换机上电启动之后,所有的端口都默认为VALN1,所以上述的网络拓扑中所有的主机应该也是属于VLAN1的,所以它们应该属于同一个广播域。

img

图 14 查看交换机的端口状态汇总表

(3) 第三步:验证这六台属于VLAN1的主机,是属于同一个广播域的,切换到仿真模式,过滤协议,只保留ICMP协议。如图15所示。

img

图15 切换仿真,并过滤协议

(4) 第四步:为IP地址为192.168.0.1的主机创建一个复杂的PDU,目的IP地址填255.255.255.255,序号填1,单次仿真时间1秒。如图16所示。

img

图16 创建一个复杂的PDU

(5) 第五步:点击捕获前进,广播信号到达交换机之后,交换机会将这个广播信号转发出去(除了输入端口以外)。并且这个广播是属于在VLAN上的广播,而且所有的主机都连接在VLAN的端口上,所以各个主机都会收到广播信号。如图17所示。

img

图17 主机都收到了广播信号

(6) 第六步:开始划分VLAN,将左边的三台主机划分到VLAN2,将右边的三台主机划分到VLAN3,划分VLAN实际上是在交换机上进行的,也就是将交换机的1,2,3端口划分到VLAN2,将4,5,6端口划分到VLAN3。点击交换机,点击配置,点击VLAN数据库。创建新VLAN。如图18所示。

img

图 18 在交换机中添加新VLAN

(7) 第七步:新VLAN创建好了之后,将其对应的端口划分到这个新VLAN中。点击Fa0/1将VLAN的端口号改成2,其余的端口也是如此。如图19所示。

img

图 19 将端口划分到对应的VLAN中

(8) 第八步:划分好端口之后,应该可以看出左边的三个主机属于VLAN2,但是右边的三台主机属于默认的VLAN1,也就是它们属于不同的广播域。也就是说,左上角的主机发送一个广播帧,右边的三个主机是不能收到的,只有左边另外两个主机可以收到,下面来验证一下。

(9) 第九步:为IP地址为192.168.0.1的主机创建一个复杂的PDU,目的IP地址为255.255.255.255,序号填1,单次仿真时间1秒,如图20所示。

img

图 20 创建一个复杂的PDU

(10) 第十步:点击捕获前进,发现广播帧通过交换机之后,只发给了左边的另外的两台主机,并没有发给右边的三台主机,这样我们就验证了不同的VLAN是属于不同的广播域。如图21所示。

img

图 21 左边两台主机收到信号

(11) 第十一步:使用交换机的命令行形式,创建一个VLAN3,并将端口4,5,6划分到VLAN3,点击交换机,进入命令行界面,输入end指令,在输入exit来初始化界面,输入enable进入特权命令,输入config terminal,然后输入vlan 3来创建一个新vlan。创建好了新vlan之后输入interface range fastethernet 0/4-6指令来划分端口,使用指令switchport mode access来指定为access模式,使用指令switchport access vlan 3将4,5,6端口成功地划分到了VLAN3中。如图22,23所示。

img

图 22执行指令来划分端口

img

图23 端口划分成功

(12) 第十二步:此时左边的三台主机属于VLAN2,而右边的三台主机属于VLAN3,也就是说它们属于不同的广播域。为IP地址为192.168.0.1的主机创建一个复杂的PDU,目的IP地址为255.255.255.255,序号填1,单次仿真时间1秒,如图24所示。

img

图 24 添加一个复杂的PDU

(13) 第十三步:点击捕获前进,发现广播请求通过交换机之后,只发给了左边的另外的两台主机,而给右边的一台主机也添加一个复杂的PDU,并点击捕获前进,发现还是一样的结果。这也就验证了不同的VLAN是不同的广播域。如图25所示。

img

图25 只有两台主机收到信号

(14) 第十四步:切换到实时模式下,尝试使用左边的计算机来ping一下右边的某一台主机,如IP地址为192.168.0.2的主机去ping一下IP地址为192.168.0.4的主机。如图26所示。Ping不通说明,处于不同广播域的主机之间也是不可以进行单波通信的。

img

图26 主机之间也不可以通信

(15) 第十五步:拓建网络拓扑。如图27所示。并且需要同时写好IP和端口注释,以及让左边的三个主机属于VLAN2,让右边的三个主机属于VLAN3。

img

图 27 拓建网络拓扑

(16) 第十六步:完成上述的操作之后,左边的六台主机都属于VLAN2,而右边的六台主机都属于VLAN3,为IP地址为192.168.0.1的主机创建一个复杂的PDU,目的IP地址为255.255.255.255,序号填1,单次仿真时间1秒。并点击捕获前进。如图28所示。

img

图28 ICMP广播请求并没有通过端口7

(17) 第十七步:发现广播请求并没有通过端口7广播出去,这是因为我们没有对两台交换机的端口7进行过设置,所以它们属于默认的VLAN1,它们和左边的六台主机不属于同一个VLAN,所以不可以通过端口7进行广播转发。

(18) 交换机在互联的时候,它们的这个端口的类型一般是设置成Trunk类型的。下面修改两个交换机的端口7的类型,将其改为Trunk,如图29所示。

img

图29 将端口类型改为Trunk

(19) Trunk类型的端口可以转发所有VLAN上的数据帧,分为两种情况,一种是数据帧首部的VLAN的id和这个端口的VLAN的id一样的话,那么端口就会将这个数据帧的首部的VLAN的id去掉,也就是去标签,另一种情况就是当端口号不一致时,这个端口就会直接将数据帧发送出去,而不会去掉标签。

(20) 为IP地址为192.168.0.1的主机创建一个复杂的PDU,目的IP地址为255.255.255.255,序号填1,单次仿真时间1秒。并点击捕获前进。发现此时,同属于一个VLAN的另外五个主机可以收到广播请求。如图30所示。同样,右边的某个主机发送广播请求之后,其余的五个同属于一个VLAN的主机也是可以收到这个广播请求的。

img

图30 另外五个主机收到广播请求

四、 实验体会

**1. 这两个实验的步骤都遵循构建网络拓扑、配置网络环境、跟踪数据包和查看数据包这四个规则。

**2. Cisco Packet Tracer 模拟器可以清晰地展示 PDU 在传送过程,设备是如何处理 PDU 的。通过仿真传送过程,有助于我们理解有关的知识。

3.了解交换机生成树协议STP,STP的主要目的是确保网络中没有环路,从而避免数据包在网络中无限循环,导致网络拥塞和故障,另外,我知道当存在逻辑环路的时候,那么当某个主机发送方一个广播帧的时候,那么这个广播帧就会在这个逻辑环路里面兜圈子,这样的话,就会严重的占用网络资源。

4.了解了VLAN的两种划分方法,一种是使用命令行,另一种是直接进入配置界面,直接修改,并将端口划分到对应的VLAN,以及修改端口的类型(access以及Trunk类型)我还知道了划分VLAN的作用,就是隔离广播域。但是有缺点,虽然VLAN可以减少广播,但如果配置不当,仍可能导致广播风暴。

相关文章:

【计算机网络】实验4:生成树协议STP的功能以及虚拟局域网VLAN

实验 4:生成树协议STP的功能以及虚拟局域网VLAN 一、 实验目的 加深对生成树协议STP的功能的理解。 了解虚拟局域网VLAN。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实验内容 1、验证交换机生成树协议STP的功能 (1) 第一步:构建网络拓…...

基于Matlab BP神经网络的电力负荷预测模型研究与实现

随着电力系统的复杂性和规模的不断增长,准确的电力负荷预测对于电网的稳定性和运行效率至关重要。传统的负荷预测方法依赖于历史数据和简单的统计模型,但这些方法在处理非线性和动态变化的负荷数据时,表现出较大的局限性。近年来,…...

java 21 多线程

1.相关概念 进程: 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存空间。当我们使用迅雷,又启动了一个进程,操作系统将为迅雷配新的内存空间。 进程是程序的一次执行过程&#…...

Rust学习笔记_07——枚举和范围

Rust学习笔记_04——引用 Rust学习笔记_05——控制流(1) Rust学习笔记_06——控制流(2) 文章目录 1. 枚举1.1基础1.2 给枚举变体起个“别名”1.3 枚举与匹配(match) 2. 范围2.1 介绍2.2 半开区间范围2.3 包含范围的语法糖2.4 步长范围(Range …...

40分钟学 Go 语言高并发:服务性能调优实战

服务性能调优实战 一、性能优化实战概述 优化阶段主要内容关键指标重要程度瓶颈定位收集性能指标,确定瓶颈位置CPU、内存、延迟、吞吐量⭐⭐⭐⭐⭐代码优化优化算法、并发、内存使用代码执行时间、内存分配⭐⭐⭐⭐⭐系统调优调整系统参数、资源配置系统资源利用率…...

Windows通过指令查看已安装的驱动

Windows通过指令查看已安装的驱动 在 Windows 操作系统中,有几种命令可以用来查看已安装的驱动程序。以下是常见的几种方法: 1. 使用 pnputil 查看已安装驱动程序 pnputil 是一个 Windows 内置工具,可以列出所有已安装的驱动程序包。 命令…...

Windows 11 如何配置node.js

一,官网下载 官网首页 下载最新LTS版本,比较稳定,如果想探索更新的版本去探索新的nodejs功能。 1. 下载完成后,双击运行程序,点击next 2. 勾选接受协议,点击next 3. 选择自己的安装路径(默认是…...

AWTK fscript 中的 串口 扩展函数

fscript 是 AWTK 内置的脚本引擎,开发者可以在 UI XML 文件中直接嵌入 fscript 脚本,提高开发效率。本文介绍一下 fscript 中的 ** 串口 扩展函数 ** 1.iostream_serial_create 创建串口输入输出流对象。 原型 iostream_serial_create(device) > ob…...

yolov11剪枝

思路:yolov11中的C3k2与yolov8的c2f的不同,所以与之前yolov8剪枝有稍许不同; 后续:会将剪枝流程写全,以及增加蒸馏、注意力、改loss; 注意: 1.在代码105行修改pruning.get_threshold(yolo.mo…...

智慧地图聚合(LockMap)标注系统开发说明文档

智慧地图聚合(LockMap)标注系统开发说明文档 1. 系统概述 智慧地图聚合(LockMap)标注系统是一个专为处理大规模地理信息数据而设计的综合解决方案。通过后端高效的数据管理和前端直观的地图展示,该系统能够实现对海量地理位置点的有效可视化。本项目旨在提供一个用…...

「Mac畅玩鸿蒙与硬件36」UI互动应用篇13 - 数字滚动抽奖器

本篇将带你实现一个简单的数字滚动抽奖器。用户点击按钮后,屏幕上的数字会以滚动动画的形式随机变动,最终显示一个抽奖数字。这个项目展示了如何结合定时器、状态管理和动画实现一个有趣的互动应用。 关键词 UI互动应用数字滚动动画效果状态管理用户交…...

cuda12.1版本的pytorch环境安装记录,并添加到jupyter和pycharm中

文章目录 前置准备使用anaconda prompt创建虚拟环境创建虚拟环境激活pytorch虚拟环境把pytorch下载到本地使用pip把安装包安装到pytorch环境中进入python环境检验是否安装成功将环境添加到jupyter在pycharm中使用该环境: 前置准备 安装anaconda,我的版本…...

Linux: network: nic: mellanox MRU初现

文章目录 在PPP协议了有提到过总结-吐槽MRU初现兼容问题详细的MRU的计算幸运下面这个commit缩小了幸运机会So在PPP协议了有提到过 MRU在RFC4638里有提到。但是在Linux内核里是的Ethernet是没有相关的概念。 总结-吐槽 说Mellanox的网卡驱动在2018年做了一个对进入packet的大…...

深入理解红黑树的底层逻辑

一、红黑树的定义 红黑树是一种自平衡的二叉查找树,每个节点都带有额外的颜色信息,可以是红色或黑色。红黑树的目的是通过引入颜色信息来确保树的平衡,从而提高查找、插入和删除等操作的效率。 二、红黑树的性质 每个节点都有颜色&#xf…...

【数据结构】手搓链表

一、定义 typedef struct node_s {int _data;struct node_s *_next; } node_t;typedef struct list_s {node_t *_head;node_t *_tail; } list_t;节点结构体(node_s): int _data;存储节点中的数据struct node_s *_next;:指向 node…...

ThinkPHP场景动态验证

一、缘由 今天在用thinkphp8写东西的时候发现,写验证器规则和场景优点费时间,就算用tinkphp的命令行生成也是生成一个空壳。内容还是要自己填写感觉麻烦。 就突发奇想能不能自动生成验证器,也不能是说自动生成验证器,生成验证其的…...

在M3上面搭建一套lnmp环境

下载docker-desktop 官网下载docker-desktop 切换镜像源 {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["https://docke…...

【C++笔记】二叉搜索树

前言 各位读者朋友们大家好!上期我们讲完了面向对象编程三大属性之一的多态,这一期我们再次开始数据结构二叉搜索树的讲解。 目录 前言一. 二叉搜索树的概念二. 二叉搜索树的性能分析三. 二叉搜索树的插入四. 二叉搜索树的查找五. 二叉搜索树的删除六.…...

Fork/Join框架简介

一、Fork/Join框架简介 Fork/Join框架是Java 7引入的一个用于并行执行任务的框架,它可以将一个大任务分割成若干个小任务,并行执行这些小任务,然后将每个小任务的结果合并起来,得到大任务的结果。这种框架特别适合于能够被递归分…...

Java项目实战II基于微信小程序的电子竞技信息交流平台的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着互联网技术的飞速发展…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

【Oracle】分区表

个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

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

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

6.9本日总结

一、英语 复习默写list11list18&#xff0c;订正07年第3篇阅读 二、数学 学习线代第一讲&#xff0c;写15讲课后题 三、408 学习计组第二章&#xff0c;写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语&#xff1a;复习l默写sit12list17&#…...

【Qt】控件 QWidget

控件 QWidget 一. 控件概述二. QWidget 的核心属性可用状态&#xff1a;enabled几何&#xff1a;geometrywindows frame 窗口框架的影响 窗口标题&#xff1a;windowTitle窗口图标&#xff1a;windowIconqrc 机制 窗口不透明度&#xff1a;windowOpacity光标&#xff1a;cursor…...