集线器、网桥、交换机简介

article/2025/10/30 21:26:39

一.集线器

集线器(HUB),它是工作在物理层的设备, 由于它只是工作在物理层的设备,所以它并不关心也不可能关心OSI上面几层所涉及的,它的工作机制流程是:从一个端口接收到数据包时,会在其他端口把这个 包转发一次,因为它不知道也不可能知道这个包是发给谁的(物理层设备只关心电压这些物理概念),它也只能对所有人广播,让他们自己处理了。

你发的数据其他人都收到了,私隐这总东西是不存在的!别入可以随便监听你信息!所以会话劫持在那个年代相当容易(记得俺第一次接触会话劫持这个概念的时候还是高2,那是2001~2002,呵,那时候集线器还是比较普遍的)。

另外一个比较严重的问题是,如果一个大型的局域网,比如有500台机器,全部用HUB连接的,后果会怎么样呢?相当慢,网络的效率极差!如果500台机器都发一个包,那就是说每台机器,都需要接收差不多499个无用包.并且如果是需要回应的话,无用的数据包会充斥着整个的局域网,这就是传说中的广播风暴!

为了减少广播风暴,网桥产生了(注意这里用的时候“减少”,不是“杜绝”,仅仅是减少!如果仅仅用网桥说能杜绝广播风暴,个人觉得还是不太准确,后来交换机的出现才可以说是完全杜绝了广播风暴的发生)!

在介绍网桥之前,还想简单介绍另一个物理层的设备:“中继器”,这种设备的作用是把物理层传输的信号放大,由于长距离的传输,信号会有一定的损耗的,这种设备主要解决的就是这个问题。它和HUB的区别是:HUB主要是为了在物理层上转发数据的,所以它不关心电压值的大小,也不会放大物理信号;而中继器它的作用就是为了放大信号用的,SO…

二.网桥:

网桥又称桥接器,英文名Network Bridge,数据链路层设备。它也是转发数据包的设备,但和HUB不一样的是,它工作在数据链路层,HUB只能看懂物理层上的东西(比如一段物理信号),网桥却能看懂一些帧的信息。在以太网构造的局域网上,最终的寻址是以数据链路层的MAC地址作为标识的(就是用MAC地址可以在局域网上找到一台唯一的机器),网桥能从发来的数据包中提取MAC信息,并且根据MAC信息对数据包进行有目的的转发,而不采用广播的方式,这样就能减少广播风暴的出现,提升整个网络的效率,在详细说网桥这东西之前,我想先介绍一下交换机。

三.交换机:

交换机Switch,数据链路层设备,作用是转发数据包。和网桥一样它也是通过识别帧中的MAC地址,然后对特定的端口进行转发的。

四.网桥和交换机的工作原理及区别?

回答网桥和交换机区别之前,我们先一起看两幅图(这是从《计算机网络(第四版)》第四章截下来的:>):

1.网桥的连接模式:(红点处为HUB)

img

2.交换机连接模式:

img

从图中可以看到,网桥只有2个输入/出端口,而交换机有8个。
  一开始的时候,由于硬件水平不是很发达,人们为了提高局域网效率,减少广播风暴的出现,他们生产了网桥,然后他们把一个局域网一分为2,中间用网桥连接。
  这样A发给BCD的数据就不会再广播到EFGH了(网桥发现如果数据包不是转发给下面这个子网的,它会自动丢弃此包),只有从A发到EFGH的数据包才能通过网桥,到达另外一个子网(网桥发现如果数据包是转发给下面这个子网的,它才会把包转发给这个子网)。
  这样一来,非必要的传输减少了,整个网络的效率也随之提高可不少!人们发现网桥真是个好东西呀,随着硬件发展,出现了4个,8个端口的链路层设备,这就是交换机,由于交换机可以使得网络更安全(数据不容易被监听,因为数据不再广播了,网络效率更高(还是因为数据不再广播!),交换机渐渐替代了HUB,成为组建局域网的重要设备。

所以说,网桥和交换机,基本上是一样的,嗯,只是基本上而已,细看还是有些不一样的,但在说明他们之间有什么不一样之前,我想先简单介绍一下网桥和交换机的工作原理。

3.网桥的工作原理:  img

上图是用一个网桥连接的两个网络,网桥的A端口连接A子网,B端口连接B子网,为什么网桥知道哪些数据包该转发,哪些包不该转发呢?那是因为它有两个表A和B,当有数据包进入端口A时,网桥从数据包中提取出源MAC地址和目的MAC地址,一开始的时候,表A和表B都是空的,没有一条记录,这时,网桥会把数据包转发给B网络,并且在表A中增加一条MAC地址(把源MAC地址记录表中),说明这个MAC地址的机器是A子网的,同理,当B子网发送数据包到B端口时,网桥也会记录源MAC地址到B表;当网桥工作一段时候后,表A基本上记录了A子网所有的机器的MAC地址,表B同理,当再有一个数据包从A子网发送给网桥时,网桥会先看看数据包的目的MAC地址是属于A子网还是B子网的,如果从A表中找到对应则,抛弃该包,如果不是,则转发给B子网,然后检查源MAC地址,是否在表中已经存在,如果不存在,在表A中增加一条记录。

噢,或许你现在会问了,为什么需要两张表呢,一张表不行么??嗯~刚才把表一分为二是为了便于理解,实际上,真正的网桥里面存的应该是一张表,如果是一张信息表,表里记录的应该是:MAC-PortNum。

4.交换机有些许不同,如图:

img

交换机也有一张MAC-PORT对应表,和网桥不一样的是,网桥的表是一对多的(一个端口号对多个MAC地址)。
  但交换机的CAM表却是一对一的,如果一个端口有新的MAC地址,它不会新增MAC-PORT记录,而是修改原有的记录,比如:现在交换机记录表里已经有一项:MAC1-Port1,如果此刻端口1又来了一个数据包,里面的源MAC地址是MAC2,此时,交换机会刷新交换机记录表:MAC1-Port1记录被修改为MAC2-Port1,因为交换机认为是端口1的计算机MAC地址变了,如果端口1连接的一台物理机器,MAC一般是不会变的,如果连接的是另外一个交换机,那这个端口的记录会变化得比较频繁(如上图的Port12,它是对外的接口,与一个局域网连接)。
  另外,如果CAM表中没有找到和数据包的目的MAC地址对应的记录,交换机会对此数据包进行广播,发给本交换机的每一个端口。

网桥和交换机除了用CAM表指导数据包转发这点和HUB不一样外,网桥和交换机还有一个特点:缓存!网桥和交换机都有一定量的缓存,因为网桥和交换机转发数据包需要一些额外的操作,所以可能会占用一些时间,为了避免出现因来不及转发数据,导致大量数据丢失的情况,网桥和交换机就出现了缓存。
  当然,缓存不是万能的,当网桥或交换机处理不及并且缓存用完了,以后再来的数据还是会丢失的。还一个网桥需要缓存的原因是:桥接两个传输速率不同的局域网,比如:802.3的传输速率说10mb/s,但实际上并不是真的10Mb/s,而 802.4(几乎)确实为10Mb/s,但两个局域网桥接时候必须是速率一样的,否则会有包丢失,而缓存也正好可以为不同速率网络连接时所使用。这里需要对比一下网桥和交换机的缓存,一般来说,网桥的缓存量是大于交换机的缓存量,因为网桥天生是为了连接两个网络的,两个网络桥接时所要处理的数据量会比一般的交换机需要处理的数据量要多,所以网桥的缓存也一般要比交换机大一点。

值得注意的一些问题:

1). 网桥需要软件辅助?

回答这个问题,首先要看看原始的网桥,《计算机网络(第四版)》里有一段话是这样的:传统上,网桥往往包含一个CPU,"转发-存储"由软件来实现。但现在由于硬件水平的提升,网桥,交换机都包含了特殊的,用于转发的集成电路部分,现在的网桥和交换机都可以不需要软件辅助了!顺带说一句,模拟网桥功能的软件现在也是有的。

2). 网桥用于连接不同的网段?(搜索百度时查到一个答案)

首先这里要理解什么是网段,唉,这个概念说起来又是一篇文章!它涉及到子网掩码的等等一系列的东西…

这里我觉得要明确的是,网桥不是用来连接不同网段的!不同网段之间通信,需要网关的帮助,它一般是路由器这类网络层的设备。网桥或交换机是链路层设备,网段这个是和IP相关的概念,属于网络层。
  网桥和交换机跟本无能力去处理网络层的东西!如果非要说用网桥和交换机去连接两个不同网段的网络不是不行,只是没有作用而已,因为不同网段机器的始终是不能互访问,网桥不能做网关!上面我已经说了网桥的由来,它是为了减少HUB的广播,提高局域网网络性能出现的,网桥连接的仅仅是两个子局域网,并且这里说的子局域网必须是同构的(同构的意思是:如果是以太网,那么网桥连接的两个子网都必须是以太网,不能一个是以太网一个是令牌网),为了优化以太网的性能,网桥出现了~所以其他构造网络似乎也不需要使用网桥网桥的天性应该是:连接两个同构网络,而在以太网上,刚好HUB可以作为连接两个网络的设备,但是由于HUB的各种弊端,人们研发了工作在链路层上的网桥,它除了连接两个网络的功能外,还有优化网络性能的功能。而在其他构造的网络也有网桥这个设备,但它的功能可能是仅仅连接两个网络,而没有了优化网络性能的功能(或者根据网络特性,它又有了新的功能)。

这里再次总结一下网桥和交换机

网桥和交换机用户分割冲突域,就是网桥和交换机可以较少被逼的广播(hub导致的),但不能分割广播域。不严格地说,交换机可以看作网桥的高度集成。

冲突域:总的来说,冲突域就是连接在同一导线上的所有工作站的集合,或者说是同一物理网段上所有节点的集合,或以太网上竞争同一带宽的节点集合。HUB这种设备不能分割冲突域。

广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。

HUB 所有端口都在同一个广播域,冲突域内。
  Switch所有端口都在同一个广播域内,而每一个端口就是一个冲突域。
  Router的每个端口属于不同的广播域。


http://chatgpt.dhexx.cn/article/6IgpcpPs.shtml

相关文章

集线器与交换机

文章目录 集线器与交换机集线器交换机集线器与交换机的区别单播帧广播帧多主机同时发送单播帧扩展以太网 总结 以太网交换机自学习 集线器与交换机 集线器 使用集线器的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议;集线器只…

集线器

集线器(HUB)属于数据通信系统中的基础设备,它和双绞线等传输介质一样,是一种不需任何软件支持或只需很少管理软件管理的硬件设备。它被广泛应用到各种场合。集线器工作在局域网(LAN)环境,像网卡一样,应用于…

集线器、交换机、网桥区别

最近一直在看网络方面的东东,先把基础的东西总结一下,注意:以下的概念现在已经不一定准确了,因为硬件发展相当迅速,集成电路的集成度越来越多高,拿交换机为例,现在俗称交换机的东西已经具有一定…

集线器(hub),交换机以及路由器异同;冲突域和广播域详解

目录 冲突域和广播域联网中继设备 集线器(hub)交换机(switch)路由器(route)三者的异同 1)工作层次不同2)数据转发依据对象不同3)分割冲突域,广播域4)防火墙功能 参考文献 冲突域和广播域 在介…

hub设备_「网络安全」网络设备篇(9)——集线器Hub

什么是集线器? 集线器(HUB)是计算机网络中连接多个计算机或其他设备的连接设备,是对网络进行集中管理的最小单元。 英文Hub就是中心的意思,像树的主干一样,它是各分支的汇集点。HUB是一个共享设备,主要提供信号放大和中转的功能,它把一个端口接收的所有信号向所有端口分发…

集线器、交换机和路由器(图解)

一、物理层:使用 MAC 解决设备的身份证问题 1、通信的原始时代 很久很久之前,你不与任何其他电脑相连接,孤苦伶仃。 直到有一天,你希望与另一台电脑 B 建立通信,于是你们各开了一个网口,用一根网线连接了…

AXI之deadlock分析

AXI协议相对之前的APB和AHB来说,总线性能得到了极大的提升,主要得益于outstanding这一新特性的加入,有了outstanding的支持,master可以不用等待上一笔transaction结束,就直接连续发送多笔请求,使得发送的transaction可以流水起来。但outstanding的使用也引入了一些别的传…

重复插入相同数据导致deadlock问题:Deadlock found when trying to get lock; try restarting transaction

场景: 业务逻辑:第三方登录情况下,获取到用户的实名信息。之后判断该用户在用户表中是否存在,如果不存在或非实名,那么将其实名;如果已经实名,那么不做处理,直接登录。ORM使用的是s…

fatal error: all goroutines are asleep - deadlock

如题,近两天遇到此类错误,发现goroutine以及channel的基础仍需巩固。由该错误牵引出go相关并发操作的问题,下面做一些简单的tips操作和记录。 func hello() {fmt.Println("Hello Goroutine!") } func main() {go hello() // 启动另…

死锁问题(Deadlock)

4.8 死锁问题(Deadlock) 各进程在使用系统资源时,应注意系统产生死锁问题。下面先介绍什么是死锁。 4.8.1 死锁的概念  1. 死锁的定义 所谓死锁,是指各并发进程彼此互相等待对方所拥有的资源,且这些并发进程在得到对方的资源之前不会释…

SQL Server DeadLock 分析

1. 设置 XEvents 会话以收集死锁 1.1 扩展事件-会话-右键新建会话向导 1.2 设置会话名称 1.3 选择要捕获的事件 database_xml_deadlock_report 1.4 捕获全局字段 1.5 指定会话存储 1.6 结束 1.7 确保启动会话 2. 制造死锁 2.1 准备数据表及数据 2.1.1 准备数据库 TestBu…

MYSQL报错:MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting tr

mysql报错:MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction 报错情况:并发量大的情况对表的修改发生死锁 原因:查看了该更新语句的sql,没有设置主键,而mysq…

Deadlock的一些总结(死锁分析及处理)

1.1.1 摘要 在系统设计过程中,系统的稳定性、响应速度和读写速度至关重要,就像12306.cn那样,当然我们可以通过提高系统并发能力来提高系统性能总体性能,但在并发作用下也会出现一些问题,例如死锁。 今天的博文将着重介…

Deadlock found when trying to get lock; try restarting transaction 【MySQL死锁问题解决】

视频地址: https://www.bilibili.com/video/bv1zY411N7tB 最近在调试接口的时候遇到了MySQL死锁问题,我自己测试的时候一切都好好的,但在并发下,就死锁了 其实死锁问题,并没有一个类似“万金油”的解决办法&#xff0…

【死锁~】

死锁 死锁 死锁 1.死锁是什么? 当线程想要获取锁,但是获取失败,此时,线程进入阻塞状态,等待锁释放之后,线程获取锁。如果锁一直没有被释放,线程就一直处于阻塞状态。 2.死锁的条件 1.互斥作用:一个线程获…

Mysql报Deadlock found when trying to get lock; try restarting transaction问题解决

Mysql报Deadlock found when trying to get lock; try restarting transaction问题解决!! 文章目录 问题发生场景Mysql锁类型分析死锁原理问题排查过程问题原因解决方法经验教训查看mysql死锁日志 问题发生场景 今天记录一下最近项目中遇到的一个问题,前几天在部署项目后,在线…

死锁(Deadlock)

什么是死锁 死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象。若无外力作用,它们都将无法推进下去。 产生死锁的四个必要条件得烂熟于心 互斥条件:进程要求对所分配的资源进行排他性控制,即在一段…

知识归纳:死锁

一. 死锁定义 死锁(Deadlock)是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。 举例:毕业生找工作,公司表示只需要有工作经验才可以来;要想有工作经验,就需要…

mmall数据库学习笔记

mmall数据库学习笔记 文章目录 mmall数据库学习笔记唯一索引产品表购物车表支付信息表订单表订单明细表收货地址表外键 唯一索引 在用户表中,设置了用户名作为唯一索引,理由如下:用户名是不允许重复的,那么当不是分布式开发的时候…

MMALL ADMIN 后台管理总结

后台管理项目前期准备 1,vue-cli2 项目框架 2,下载axios插件 cnpm install axios,安装Element.ui , vue-cli2中使用scss 注意版本 cnpm install sass-loader7.1.0 --save-dev (8.0.0) v…