交换机的工作原理是什么(交换机的工作原理和作用)

小编:饿狼 更新时间:2022-05-07

欢迎关注我,学习更多计算机知识!

之前我们讲过什么是交换机,那么交换机是怎么工作的呢?为什么它可以转发数据?

从计算机发出的数据会经过集线器、交换机和路由器等设备转发,最终到达目的地。

转发设备会根据数据包中的头部信息找到目的地IP地址,然后在转发设备内部转发规则表中查询需要转发的出口路径。

就像邮递员一样,在送快递的时候,不会去看快递里面的具体东西,无论里面装的是什么,都能帮你把快递送到目的地,路由器和交换机就是快递员的角色,无论数据包里面装的是应用程序数据还是TPC协议控制信息,都不会对包的传输操作产生影响。

也就是当你使用浏览器访问网站的时候,不管你发送什么数据,在交换机这里都是一个数据包,所有的包在传输到目的地的过程中都是独立的,相互之间没有任何关联。

假设客户端计算机连接局域网的结构如下图,网络数据包从计算机发出后,要经过集线器、交换机和路由器最终进入互联网。

交换机的工作原理是什么(交换机的工作原理和作用)

当数据包经过集线器后,会被广播到整个网络中,也就是说集线器相当于一个分线器,把一个入口分开多个出口,它不会根据数据包的目的地址去判断应该从哪个出口流出,而是直接广播发送,这就是集线器的缺点,因为这样很容易造成广播风暴。

什么是广播风暴?

广播风暴就是广播数据充斥整个网络导致设备无法处理,并占用大量网络带宽,导致正常业务不能运行,甚至彻底瘫痪。

由于集线器只是原封不动地将信号广播出去,所以即便信号受到噪声的干扰发生了失真,也会原样发送到目的地。

这就需要交换机或路由器等设备进行校验发现错误,然后进行丢包重传。这样会导致网络传输效率低,网络延迟大等缺点。

所以我们现在很少使用集线器了,而是使用交换机代替集线器。

很多人可能没有见过集线器,如下图,集线器大概长这样。

交换机的工作原理是什么(交换机的工作原理和作用)

而交换机是长这样,交换机的设计更为复杂,功能也更强大。

交换机的工作原理是什么(交换机的工作原理和作用)


现如今,我们不管是企业还是家庭,大部分都在使用交换机了,如大学宿舍可能每个宿舍网线只有一根,但是宿舍有多个人,那就可以买个多口交换机,入口插一根网线,可以同时分出多个出口插入多根网线给宿舍的其他同学使用,交换机不仅有集线器的功能还可以更高效率的转发数据,下面我们来讲一下为什么交换机的工作效率比集线器高。

交换机的设计是将网络包原样转发到目的地,当信号到达网线接口,由 PHY(MAU)模块进行接收,这一部分和集线器是相同的。

当信号从双绞线传入时,就会进入 PHY(MAU) 模块的接收部分。 PHY(MAU)模块会将网线中的信号转换为通用格式,然后传递给 MAC 模块。

MAC 模块将信号转换为数字信息,然后通过包末尾的 FCS 校验错误,如果没有问题则存放到缓冲区中。

这部分操作和网卡基本相同,大家可以认为交换机的每个网线接口后面都是一块网卡。

交换机的工作原理是什么(交换机的工作原理和作用)

网线接口和后面的电路部分加在一起称为一个端口,也就是说交换机的一个端口就相当于计算机上的一块网卡。

但交换机的工作方式和网卡有一点不同,网卡本身具有 MAC 地址,并通过核对收到的包的接收方 MAC 地址判断是不是发给自己的,如果不是发给自己的则丢弃;相对地,交换机的端口不核对接收方 MAC 地址,而是直接接收所有的包并存放到缓冲区中。

因此和网卡不同,交换机的端口不具有 MAC 地址。

交换机的工作原理是什么(交换机的工作原理和作用)

交换机将数据包存入缓冲区后,需要查询这个包的接收方MAC地址,是否已经在MAC地址表中,是的,交换机都有一张叫做MAC地址表的东西,上面记录着交换机所有端口上能访问的MAC地址列表信息,交换机和集线器最大的不同就是,交换机拥有MAC地址表。

MAC地址表主要包含两个信息,一是设备的MAC地址,二是该设备连接在交换机的哪个端口上。

交换机的工作原理是什么(交换机的工作原理和作用)

交换机通过这张表就可以判断收到的数据包应该发送到哪个端口,这样大大减少了网络的数据传输量,提供了网络传输的效率,当然交换机也需要维护这张表。

当交换机收到数据包后,查询到这个数据包的发送方MAC地址在不在MAC地址表中,如果不在那就把发送方的MAC和绑定的端口写入到MAC地址表中,因为交换机收到数据包肯定是知道从哪个端口收到的,自然就可以记录起来了。

当交换机收到数据包时查询接收方的MAC地址不在MAC地址表中该怎么办呢?

这个时候就和集线器一样发送一个广播数据包,查询MAC地址,数据包广播到每个端口上,比如广播发送一个“请问谁的MAC地址是00-02-03-B5-C8-F8”的数据包,然后连接交换机端口的计算机收到这个数据包后,如果自己的MAC地址不是这个就丢弃这个数据包,如果自己MAC地址是这个,就会回应一个数据包给交换机,交换机从哪个端口收到回应就把这个端口和回应的MAC地址写入到MAC地址表中,这样就记录了一条数据。

但是交换机的存储空间是有限的,不会无限的添加MAC地址到地址表中,当设备移动,或者端口变动的时候,比如我们开会时把笔记本电脑从办公桌拿到会议室,这个时候网线接口变了,那么MAC地址表也需要变动,从交换机的角度将,本来连接在某个端口上的笔记本电脑消失了。

那么交换机就会删除这个端口上的这台笔记本的MAC地址记录,但是交换机是没法自动知道这台笔记本是否消失了的,所以交换机会判断一段时间内没有使用的MAC地址记录就会自动删除。

这样交换机就可以长时间自动添加和删除记录,不需要什么特别的措施就可以正常工作了。

交换机根据收到的数据包MAC地址,查询MAC地址表转发数据到相应的端口上,这就是交换机的工作原理了,大家都明白了吗?

可能现在很多人都在使用路由器,如果有兴趣了解路由器的工作原理,请关注我。

交换机的工作原理是什么(交换机的工作原理和作用)

欢迎关注我,学习更多计算机知识!