首先,交换机在转发数据时会根据数据包中的头信息找到目的ip地址,然后在交换机内部的转发规则表中查找要转发的出口路径。这个过程类似于邮递员送快递,不管快递内容是什么,都能帮你送到目的地。而路由器和交换机则扮演着信使的角色,无论应用数据或TCP协议控制信息是否在数据包内部,都不会影响数据包的传输操作。
在传输过程中,每个数据包都是独立的,彼此之间没有关联。当你使用浏览器访问网站时,无论发送什么数据,交换机里都有一个对应的数据包。这些数据包在传输到目的地的过程中,都是独立运作的。
接下来,让我们来看看交换机和集线器在转发数据上的区别。当数据包经过集线器时,会广播到整个网络,这意味着集线器相当于一个分路器,将一个入口分成多个出口。然而,集线器并不会根据目的地址判断数据包应该从哪个出口流出,而是直接广播发送。这也正是集线器的缺点,容易造成广播风暴。
广播风暴是指广播数据淹没整个网络,导致设备无法处理,占用大量网络带宽,使得正常业务无法运行,甚至完全瘫痪。由于集线器只是原封不动地广播信号,即使信号被噪声扭曲,也会原样发送到目的地。这就需要交换机或路由器等设备检查并发现错误,然后重新传输丢失的数据包,从而导致网络传输效率低,网络延迟大。
鉴于此,我们现在很少使用集线器,而是用交换机代替集线器。交换机不仅可以提高网络传输效率,还能有效减少广播风暴的发生。现在,让我们深入了解交换机的工作原理。
交换机在收到数据包后,会首先检查数据包的发送方MAC地址是否在MAC地址表中。如果不在,交换机会将发送方的MAC地址和绑定的端口写入MAC地址表。这样,交换机就能知道它是从哪个端口接收到这个包的,从而记录下来。
当交换机收到数据包时,如果接收方的MAC地址不在MAC地址表中,交换机会像集线器一样,发送一个广播包,查询MAC地址,并将数据包广播到各个端口。连接到交换机端口的计算机接收到这个数据包后,如果其自身的MAC地址不是这个地址,则将其丢弃。如果它自己的MAC地址是这个地址,则向交换机响应数据包,交换机将把响应的端口和MAC地址写入MAC地址表,从而记录一段数据。
但是,交换机的存储空间是有限的,MAC地址不会无限期地添加到地址表中。当设备移动或端口改变时,如将笔记本电脑从办公桌拿到会议室,MAC地址表也需要相应地改变。在这种情况下,交换机会删除该端口上设备的MAC地址记录,然后自动删除一段时间没用的MAC地址记录。
总之,交换机通过MAC地址表判断接收到的数据包应该发送到哪个端口,从而减少了网络中的数据传输量,提高了网络传输的效率。这样,交换机不仅具有集线器的功能,还能更高效地转发数据,成为现代网络通信不可或缺的重要设备。
欢迎关注我,学习更多计算机知识!
我们之前讨论过什么是交换机,那么交换机是如何工作的呢?为什么它能转发数据?
从计算机发出的数据会通过集线器、交换机、路由器等设备转发,最终到达目的地。
转发设备会根据数据包中的头信息找到目的IP地址,然后在转发设备内部的转发规则表中查找要转发的出口路径。
就像邮递员,送快递的时候,不会看快递的具体内容。不管里面是什么,它都能帮你把快递送到目的地。路由器和交换机是信使的角色。无论应用数据或TPC协议控制信息是否在数据包内部,都不会影响数据包的传输操作。
就是你用浏览器访问网站的时候,不管发什么数据,交换机里都有一个数据包。所有的数据包在传输到目的地的过程中都是独立的,彼此无关。
假设连接到局域网的客户端计算机的结构如下图所示。网络数据包从计算机发出后,最终会通过集线器、交换机、路由器进入互联网。
当数据包经过集线器时,会广播到全网,也就是说,集线器相当于一个分路器,把一个入口分成多个出口。而不是根据目的地址判断数据包应该从哪个出口流出,而是直接广播发送。这是hub的缺点,因为容易造成广播风暴。
什么是广播风暴?
广播风暴是指广播数据淹没整个网络,导致设备无法处理,占用大量网络带宽,导致正常业务无法运行,甚至完全瘫痪。
因为hub只是原封不动地广播信号,所以即使信号被噪声扭曲了,也会原样发送到目的地。
这需要交换机或路由器等设备检查并发现错误,然后重新传输丢失的数据包。这会导致网络传输效率低,网络延迟大。
所以我们现在很少用集线器,而是用交换机代替集线器。
很多人可能没见过hub,如下图。轮毂看起来像这样。
开关长,所以开关的设计更复杂,功能更强大。
现在我们大多数人,无论是企业还是家庭,都在使用开关。比如大学宿舍,可能每个宿舍只有一根网线,但是宿舍人多,可以买个多口交换机。一根网线可以插在入口,可以同时分出多个插座,供宿舍其他同学使用。交换机不仅具有集线器的功能,还能更高效地转发数据。先说交换机为什么比hub工作效率更高。
交换机的设计是将网络数据包按原样转发到目的地。当信号到达网络接口时,它被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地址表中,该怎么办?
这时候就像一个hub,发送一个广播包,查询MAC地址,把包广播到各个端口。例如,广播发送一个“其MAC地址为00-02-03-B5-C8-F8”的数据包,然后连接到交换机端口的计算机接收到此数据包,如果其自身的MAC地址不是此地址,则将其丢弃。如果它自己的MAC地址是这个地址,将向交换机响应数据包,交换机将把响应的端口和MAC地址写入MAC地址表,从该表接收响应,从而记录一段数据。
但是交换机的存储空空间是有限的,MAC地址不会无限期地添加到地址表中。当设备移动或者端口改变的时候,比如开会的时候我们把笔记本电脑从办公桌拿到会议室,这个时候网线接口就发生了变化,所以MAC地址表也需要改变。从交换机的角度来看,最初连接到端口的笔记本电脑消失了。
然后交换机会删除这个端口上这个笔记本的MAC地址记录,但是交换机无法自动知道这个笔记本是否消失了,所以交换机会自动删除一段时间没用的MAC地址记录。
这样,交换机可以长期自动添加和删除记录,不需要任何特殊措施就可以正常工作。
根据交换机收到的数据包的MAC地址,查询MAC地址表,将数据转发到相应的端口。这就是开关的工作原理。大家都明白了吗?
现在很多人大概都在用路由器。如果你有兴趣了解路由器是如何工作的,请关注我。
欢迎关注我,学习更多计算机知识!