【计网·湖科大·思科】实验三 总线型以太网的特性、集线器和交换机的区别、交换机的自学习算法
🕺作者: 主页
我的专栏 C语言从0到1 探秘C++ 数据结构从0到1 探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言
🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢支持!!!
文章目录
- 实验3:总线型以太网的特性、集线器和交换机的区别、交换机的自学习算法
- 一、实验目的
- 二、实验环境
- 三、实验内容
- (一)总线型以太网的特性
- (二)集线器和交换机的区别
- (三)交换机的自学习算法
- 四、实验体会
实验3:总线型以太网的特性、集线器和交换机的区别、交换机的自学习算法
一、实验目的
-
加深对网络体系结构的理解。
-
理解总线型以太网的特性
-
理解集线器和交换机的区别
-
理解验证交换机自学习算法
二、实验环境
Cisco Packet Tracer 模拟器
三、实验内容
(一)总线型以太网的特性
1.拖动三台计算机到逻辑工作空间,使用集线器将它们互连,使用自动连线将每台计算机连接到集线器上。这个网络拓扑表面上看起来是星型的结构,实际上是总线型的结构。我们可以把三根连线看作是一条总线,这是集线器的特性所决定的。如图1所示:
图1:构建网络拓扑
2.给每台计算机配置一个IP地址。如图2、3、4所示
图2 配置PC0的IP
图3 配置PC1的IP
图4 配置PC2的IP
3.位于实时模式下,让计算机互相发送一个数据包,这样各计算机的ARP会高速缓存,这样会记录网络中其他主机的IP地址和相应的MAC地址,目的在于防止后面实验出现ARP广播请求,进而影响我们对实验现象的观察。然后将它删除。如图5、6所示
图 5 计算机相互之间发送数据包
图 6 删除刚才的场景
4.切换到仿真模式,让左边的计算机给下面的计算机发送一个ICMP的报文,经过集线器会发送一个广播,右边的计算机会收到,但是由于MAC地址不匹配,所以不会接收,下面的计算机收到后匹配,会返回一个响应,经过集线器会发送一个广播,左边和右边的计算机都会收到,但是经过MAC地址的识别,只有左边计算机会接收,这就是总线型以太网的广播特性。如图7、8、9、10所示
图 7 左边计算机向下面计算机发送报文
图 8 集线器收到后进行广播,然后下面计算机成功接收,右边计算机接收失败
图 9 下面计算机返回响应,经过集线器发出广播
图 10 集线器发送广播,左边计算机接收成功,右边计算机MAC地址不匹配接收失败
5.删除刚才的环境,让左边计算机给右边计算机发送数据包,同时让下面的计算机给右边的计算机发送数据包,我们会看到产生了碰撞,并且碰撞后的信号被传送到了总线的各个地方,每台主机都可以检测到碰撞的信号。
如图11、12、13所示
图 11 左边计算机和下面计算机同时向右边计算机发送数据包
图 12 产生碰撞
图 13 碰撞后的信号被传送到了总线的各个地方
(二)集线器和交换机的区别
-
提前构建4个以太网,上面两个以太网使用的设备为集线器,下面两个以太网使用的设备为交换机,为了防止后面实验出现ARP广播请求,进而影响我们对实验现象的观察,我们需要位于实时模式下,让计算机互相发送一个数据包。然后删除环境,并切换到仿真模式。如图14、15所示。
图 14 构建网络拓扑
图 15 删除环境
-
在仿真模式下,将所有协议隐藏,然后只选择ICMP协议。如图16、17所示。
图 16 隐藏所有协议
图 17 选择ICMP协议
-
先看左上角由集线器连接的总线型以太网,让左边计算机给下面计算机发送一个ICMP报文,下面计算机收到后会发送一个响应。如图所示。
图 18 发送 图19 发送到集线器、广播
图 20 广播后上面计算机无法接收,下面计算机接收后返回响应
图 21 返回响应后广播
图 22 左边计算机成功接收,上面计算机收到后由于MAC地址不同,无法接收
-
接下来使用左下角的以太网来重复上面操作,当数据包发送到交换机后,交换机会将它明确的转发出来,而不是广播出来,下面的计算机响应后也会直接返回给左边计算机,所以可以得出交换机具有过滤功能,它可以明确的转发帧或不转发,而集线器在收到数据帧以后,不管帧是广播的还是单播的都会广播出来,如图23、24、25、26、27所示。
图 23 发送数据包 图 24 交换机接收到数据包
图 25 下面的计算机返回响应 图26 响应返回到交换机
图 27 交换机直接将数据包发给左边计算机
-
将上面两个以太网的集线器连接,这样就合成了一个更大的以太局域网,并且在扩大了它的覆盖范围的同时也扩大了它的碰撞域。然后在上面的以太网的左边计算机给下面的计算机发送一个数据包。如图28、29、30、31、32、33、34所示。
图 28 将集线器互相连接,交换机互相连接
图 29 集线器构建的以太网 左边计算机发送数据包
图 30 发送到集线器
图 31 集线器将数据包进行广播
图 32 除了下面计算机,其他的计算机都无法接收数据包
图 33 下面计算机返回响应,通过集线器再次广播
图 34 左边计算机已经接收到响应,但是响应的广播并没有结束
-
然后将下面两个以太网的交换机连接起来进行同样的操作。
图 35 左边计算机给下面的计算机发送数据包
图 36 数据包到达交换机
图 37 数据包直接单播给了下面的计算机
图 38 下面计算机返回响应
图39 响应直接返回左边计算机
-
在集线器构建的以太网中,同时让左边的计算机给左下的计算机发送数据包和让右边的计算机给右下方的计算机发送数据包。如图40、41、42、43所示。
图 40 发送数据包
图 41 数据包被发送到集线器
图 42 数据包发生碰撞
图 43 碰撞的信号被发送到总线上的每个计算机
8. 在交换机构建的以太网中,同时让左边的计算机给左下的计算机发送数据包和让右边的计算机给右下方的计算机发送数据包。
如图44、45、46、47、48所示。
图 44 发送数据包
图 45 数据包被发送到交换机上
图 46 经过交换机的传送,数据包到达目标计算机
图 47 目标计算机收到数据包后发送响应
图 48 经过交换机的传送,响应各自返回原发送数据包的计算机
9. 尝试发送广播帧,由于对于上面由集线器构建的以太网,即使是单播帧都会以广播形式发送,所以这里直接用以交换机构建的以太网来测试。
如图49~55所示。
图 49 点击添加复杂的PDU
图 50 让左边的主机进行发送
图 51 配置源IP地址、目标IP地址、序号、时间,然后点击创建PDU
图 52 广播帧发送
图 53 传送广播帧
图 54 其他主机接收广播帧
图 55 返回响应
10. 交换机隔离碰撞域和冲突域的情况。将上面集线器之间的线取消,然后在他们之间放一个交换机,然后发送一个数据包,让它自学习一下,增大了覆盖范围,但是不会扩大冲突域。如图56~60所示。
图 56 让左边的计算机发送数据包给下面的计算机
图 57 集线器收到数据包
图 58 集线器将数据包进行广播,但是其他主机和交换机不会接收
图 59 返回响应到集线器
图 60 集线器将响应进行广播,目标主机接收,其他主机和交换机不会接收
(三)交换机的自学习算法
-
构建网络拓扑并配置IP地址,为了后续观察实验方便在主机旁边注释IP地址和MAC地址。
图 61 构建网络拓扑
图 62 配置IP地址
图 63 添加IP注释
图 64 查看MAC地址
图 65 添加MAC地址注释
-
切换到仿真模式,隐藏所有的协议,编辑只选择ARP协议和ICMP协议
图 66 选择协议
-
让左边主机给右边主机发送一个数据包,但是无法发送,之前的实验做过,是因为左边主机里面没有右边主机的IP地址和MAC地址的对应关系,所以左边这个主机在数据链路层封装的时候,它的目的MAC地址不知道怎么填,所以它无法发这个ICMP,它会发一个ARP的广播请求,目的就是询问右边这个主机的MAC地址是什么,得到MAC地址以后就可以发送ICMP了。
由于没有数据包的传送,MAC地址表一般都是空的。发送数据包后MAC地址 表会将发送数据包的MAC地址和端口号登记起来。这也就是它的自学习。
图 67 发送数据包
图 68 查看MAC地址表
图69 交换机接收数据包
图 70 再次查看MAC地址表
图 71 查看PDU信息,是广播帧
4. 交换机开始转发,除了发送数据包的端口,数据包会被发送到其他所有的端口,除了目标主机,其他主机都不会接收这个数据包,其他主机发现这是个广播包,先接收,再传递给高层,然后ARP进程一看这个数据包不是询问这台主机的,所以ARP进程就将这个数据包丢弃了,同样的道理,目标主机也是这样识别接收的,它会封装一个ARP的单播响应,它会将自己的IP地址和MAC地址写到这个数据包里面。在返回响应时,交换机会记录发送响应的主机的MAC地址登记表里,然后根据表里面的记录将响应发送给左边那个主机。
如图72~76所示。
图 72 数据包被广播到交换机连接的所有的主机
图 73 查看MAC地址表
图 74 目的主机返回单播响应
图 75 查看MAC地址
图 76 响应被发送给左边主机
-
再次发送ICMP,成功发送。
-
为了更好的观察实验效果,重新构建网络拓扑,添加一个集线器和两个主机,并且添加好IP和注释。然后重启设备。如图77、78所示。
图 77 重新构建拓扑
图 78 重启设备
7. 在实时模式下,让新加入的主机给另一台主机发送一个数据包,另一台主机会响应,这样的目的是让这两台主机互相知道IP地址,以免出现ARP广播影响实验,还有就是让交换机登记右边集线器部分的端口,也就是让交换机学习了一次,然后发送出来的响应会被交换机发送给右边,右边接收后再次响应让交换机再次学习,此时交换机内就存了右边新加入两台主机的MAC地址和端口。如图78~80所示。
图 78 查看MAC地址
图 79 发送数据包
图 80 查看MAC地址
-
切换到仿真模式,再次发送数据包。如图81~83所示。
图 81 发送数据包
图 82 数据包被发送到集线器,集线器会进行广播
图 83 目标主机接收,但是交换机会叉,不会转发给其他端口
-
使用交换机命令模式查看MAC地址表。打开交换机的命令模式,按下回车,输入enable回车,进入特权模式,输入命令 show mac-a 可以看到MAC地址表。删除的命令是 clear mac-a 回车,记录就被清空了。如图84、85所示。
图 84 使用命令模式查看MAC地址表
图 85 清空MAC地址表
- 再次发送数据包,此时数据包转发给交换机时,它也会转发给其他主机,因为它的MAC地址表中没有地址,所以无法识别。如图86所示
图86 交换机将数据包进行转发
四、实验体会
首先,在总线型以太网的实验中,我了解了总线型结构的特点,即多台主机通过共享同一根通信线进行通信。在这种结构下,若两台主机同时进行数据传输,数据包可能会相互干扰引起冲突
其次,在集线器和交换机的实验中,我了解到了两者之间的差异。集线器是一种被动的中继设备,它将收到的信息放大后广播到所有连接的端口上,而交换机则能通过自学习算法判断一个数据包应该从哪个端口转发。这样,交换机能够提高网络的传输效率和安全性。
最后,在交换机的自学习算法实验中,我深入了解了MAC地址和ARP协议的作用,以及交换机如何通过学习来建立MAC地址表并实现数据包的快速转发。这也让我意识到了在网络通信中地址分配和管理的重要性。
相关文章:

【计网·湖科大·思科】实验三 总线型以太网的特性、集线器和交换机的区别、交换机的自学习算法
🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…...

API设计模式:REST、GraphQL、gRPC与tRPC全面解析
一、引言 在现代Web和微服务架构中,API(应用程序编程接口)的设计和实现方式至关重要。本文将探讨四种流行的API设计模式:REST(Representational State Transfer)、GraphQL、gRPC以及新兴的tRPC。每种模式都…...

C/C++ protobuf与json互转
测试环境 ubuntu16.04 64bitprotocbuf:3.9.1 (支持json转换需>3.0.0) 协议 syntax "proto2";message Person{optional string name 1;optional uint32 age 2;optional string address 3; }测试代码 //protobuf > 3.0.0#…...

Open CASCADE学习|圆柱螺旋线绘制原理探究
1、圆柱螺旋线绘制原理 在OCC中,圆柱面的参数方程为: 设P为(x0,y0,z0),则 xx0r*cos(u) yy0r*sin(u) zz0v 但u、v之间有关系时,此方程表达为圆柱螺旋线,u、v之间为线性关系时是等螺距螺旋线࿰…...

Python学习笔记--认识sys.argv
sys.argv 是 Python 的一个内置模块 sys 中的一个属性。它是一个列表,包含了从命令行传递给脚本的参数。 例如,如果你有一个名为 script.py 的脚本,并且你从终端窗口命令行这样运行它: >>>python script.py arg1 arg2 …...

【C++】入门基础
前言:C是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。熟悉C语言之后,对C学习有一定的帮助,因此从今天开始们将进入C的学习。 💖 博主CSDN主页:…...

Nginx与keepalived实现集群
提醒一下:下面实例讲解是在mac虚拟机里的Ubuntu系统演示的; Nginx与keepalived实现集群实现的效果 两台服务器都安装Nginx与keepalived: master服务器的ip(192.168.200.2) backup服务器的ip(192.168.200.4) 将 master服务器Nginx与keepalive…...

初识MQRabbitMQ快速入门
一、同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但是你却不能…...

javaMailSender 发送邮件,基于Spring Boot
目录 引入依赖 配置文件配置 具体代码 MultipartFile 转 File 工具类 引入依赖 <!--邮件--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><!--日…...

【汇总】解决Spring-Web与Spring-WebFlux冲突
【汇总】解决Spring-Web与Spring-WebFlux冲突 问题发现问题解决问题一:The bean requestMappingHandlerMapping, defined in class path resource [org/springframework/web/reactive/config/DelegatingWebFluxConfiguration.class],问题二:The Java/XML…...

maven 依赖配置补充
依赖配置补充 依赖范围 import 管理依赖最基本的办法是继承父工程,但是和 Java 类一样,Maven 也是单继承的。如果不同体系的依赖信息封装在不同 POM 中了,没办法继承多个父工程怎么办?这时就可以使用 import 依赖范围。 典型案…...

Pandas ------ 向 Excel 文件中写入含有合并表头的数据
Pandas ------ 向 Excel 文件中写入含有合并表头的数据 推荐阅读引言正文 推荐阅读 Pandas ------ 向 Excel 文件中写入含有 multi-index 和 Multi-column 表头的数据 引言 这里给大家介绍一下如何向 Excel 中写入带有合并表头的数据。 正文 import pandas as pddf1 pd.D…...

kafka summary
最近整体梳理之前用到的一些东西,回顾Kafka的时候好多东西都忘记了,把一些自己记的比较模糊并且感觉有用的东西整理一遍并且记忆一遍,仅用于记录以备后续回顾 Kafka的哪些场景中使用了零拷贝 生产者发送消息:在 Kafka 生产者发送…...

【新书推荐】2.6节 原码、反码和补码
回顾上一节中,我们讲解了整数的编码规则。 无符号整数编码规则:无符号整数全部都是正数,是什么就存什么。 有符号整数编码规则:有符号整数最高有效位为0是正数,最高有效位为1是负数。 本节内容:原码、反…...

docker 网络及如何资源(CPU/内存/磁盘)控制
安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、 none 、host docker网络模式 Host 容器与宿主机共享网络namespace,即容器和宿主机使用同一个IP、端口范围(容器与宿主机或其他使…...

安装 nvm
前言: nvm 即 node 版本管理工具 (node version manager),好处是方便切换 node.js 版本。 通过将多个 node 版本安装在指定路径,然后通过 nvm 命令切换时,就会切换我们环境变量中 node 命令指定的实际执行的软件路径。 使用场景…...

Redis解决方案:NOAUTH Authentication required(连接jedis绑定密码或修改redis密码)
Redis解决方案:NOAUTH Authentication required(连接jedis绑定密码或修改redis密码) Java使用jedis连接redis时出现错误NOAUTH Authentication required 一、问题报错和原因 本地设置了redis的密码,但在远程连接时并没有输入密…...

多维时序 | Matlab实现WOA-TCN-Multihead-Attention鲸鱼算法优化时间卷积网络结合多头注意力机制多变量时间序列预测
多维时序 | Matlab实现WOA-TCN-Multihead-Attention鲸鱼算法优化时间卷积网络结合多头注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现WOA-TCN-Multihead-Attention鲸鱼算法优化时间卷积网络结合多头注意力机制多变量时间序列预测效果一览基本介绍程序设计参考资料 效…...

如何实现无公网IP实现远程访问MongoDB文件数据库
📑前言 本文主要是如何实现无公网IP实现远程访问MongoDB文件数据库的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 &#x…...

华为防火墙USG6000V1的NAT实验
实验拓扑: 之前实验做过,可以翻找之前的博客,各设备ip和接口已配好,均可可ping通防火墙。 实验要求: 一.生产区在工作时间内可以访问dmz区域,仅可以访问http服务器。 二.办公区全天可以访问dmz区域&…...

spark-flink设计思想之吸星大法-1
Spark和Flink都是大数据处理框架,它们的设计思想有一些不同之处。以下是对它们设计思想的简要对比: 数据模型和计算模型: Spark:Spark使用弹性分布式数据集(RDD)作为其核心数据结构。RDD是只读的、不可变的…...

力扣1312. 让字符串成为回文串的最少插入次数
动态规划 思路: 通过插入字符构造回文串,要想插入次数最少,可以将字符串 s 的逆序 s 进行比较找出最长公共子序列;可以先分析,字符串 s 通过插入得到回文串 ps,其中间的字符应该不会变化: 若 s…...

qemu的安装
1、简介 QEMU(Quick EMUlator)是一个开源的处理器模拟器,它可以在一种硬件平台上模拟另一种硬件平台,从而运行各种不同的操作系统。QEMU通过动态二进制翻译来实现高性能的模拟,这使得它可以在接近原生性能的速度下运行…...

myql入门
目录 安装修改密码学习资料个人git仓库文章视频官网 安装 #移除以前的mysql相关 sudo apt remove --purge mysql-\* #安装mysql sudo apt install mysql-server mysql-client #查看是否启动 systemctl status mysql #手动启动 systemctl start mysql #查看mysql版本 mysql --v…...

前端开发有没有必要转鸿蒙开发?
前端开发有没有必要转鸿蒙开发?如果后面的工作中有参与鸿蒙开发的机会,那肯定是转呀!毕竟多接触一些技能也不会有什么坏处。 我想说的是:鸿蒙替代不了前端,如果你目前正在从事前端开发,那么你完全可以将鸿蒙…...

《动手学深度学习(PyTorch版)》笔记1
Chapter1 Introduction 1.1 机器学习的关键组件 data 每个数据集由一个个样本(example, sample)组成,大多时候,它们遵循独立同分布(independently and identically distributed, i.i.d.)。 样本有时也叫做数据点(dat…...

前端工程化之:webpack1-5(配置文件)
一、配置文件 webpack 提供的 cli 支持很多的参数,例如 --mode ,但更多的时候,我们会使用更加灵活的配置文件来控制 webpack 的行为。 默认情况下, webpack 会读取 webpack.config.js 文件作为配置文件,但也可以通过 C…...

代码随想录栈和队列专题二刷复盘day17
栈和队列理论基础 队列是先进先出,栈是先进后出 栈和队列是STL里面的两个数据结构 三个最为普遍的STL版本 1.HP STL其他版本的C STL,一般是以HP STL为蓝本实现出来的,HP STL是C STL的第一个实现版本,且开放源代码 2.P.J.Plauger…...

代码随想录算法刷题训练营day16
代码随想录算法刷题训练营day16:LeetCode(104)二叉树的最大深度 、LeetCode(559)n叉树的最大深度、LeetCode(111)二叉树的最小深度、LeetCode(222)完全二叉树的节点个数 LeetCode(104)二叉树的最大深度 题目 代码 /*** Definition for a binary tree node.* publ…...

【C语言/数据结构】排序(直接插入排序|希尔排序)
🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 目录 插入排序 直接插入排序&…...