交换机|第16章 以太网交换机工作原理(H3CNE)

在局域网中,交换机是非常重要的网络设备,负责在主机之间快速转发数据帧。交换机与集线器的不同之处在于,交换机工作在数据链路层,能够根据数据帧中的MAC地址进行转发。本文重点讲述了交换机进行MAC地址学习以构建MAC 地址表的过程,对数据帧的转发原理。

一、共享式与交换式以太网
(1)共享式以太网(已淘汰)
交换机|第16章 以太网交换机工作原理(H3CNE)
文章图片

Hub 与同轴电缆都是典型的共享式以太网所使用的设备,工作在OSI 模型的物理层。Hub和同轴电缆所连接的设备位于一个冲突域中,域中的设备共享带宽,设备间利用CSMA/CD 机制来检测及避免冲突。当网络中设备数量较少时,冲突较少发生,通信质量可以得到较好地保证;但是当设备数量增加到一定程度时,将导致冲突不断,网络的吞吐量受到严重影响,数据可能频繁地由于冲突而被拒绝发送。
通过 Hub 或同轴电缆接入的终端会共享总线的带宽,接入的终端数量越多,每个终端获得的网络带宽越少;并且一个终端发出的报文(无论是单播、组播、广播),其余终端都可以收到。(所以共享式以太网被淘汰是必然的)
交换式以太网的出现有效地解决了这个问题,它大大减小了冲突域的范围。
冲突域:在以太网中,如果某个CSMA/CD网络上的两台计算机在同时通信时会发生冲突,那么这个CSMA/CD网络就是一个冲突域。简而言之,冲突域是在同一个网络上两个设备同时进行传输则会产生冲突。

(2)交换式以太网
交换机|第16章 以太网交换机工作原理(H3CNE)
文章图片

网桥(Bridge)是一种工作在数据链路层的设备,早期被用在网络中连接各个终端主机。
对于终端主机来说,网桥好像是透明的,不需要由于网桥的存在而增加或改变配置,所以又称为透明网桥。网桥遵循的协议是IEEE 802.1D,又称为透明桥接协议。(网桥就是二层交换机前身)
目前在交换式以太网中经常使用的网络设备是二层交换机。二层交换机和网桥的工作原理相同,都是按照IEEE 802.1D 标准设计的局域网连接设备。他们的区别在于交换机比网桥的端口更多、转发能力更强、特性更加丰富。
二层交换机的端口在检测到网络中的比特流后,它会首先把比特流还原成数据链路层的数据帧,再对数据帧进行相应的操作。同样,二层交换机端口在发送数据时,会把数据帧转成比特流,再从端口发送出去。二层交换机也采用CSMA/CD 机制来检测及避免冲突,但与Hub所不同的是,二层交换机各个端口会独立地进行冲突检测,发送和接受数据,互不干扰。所以,二层交换机中各个端口属于不同的冲突域,端口之间不会有竞争带宽的冲突发生。
由于二层交换机的端口处于不同的冲突域中,终端主机可以独占端口的带宽,所以交换式以太网的交换效率大大高于共享式以太网。

二、MAC地址学习
交换机|第16章 以太网交换机工作原理(H3CNE)
文章图片

为了转发报文,以太网交换机需要维护MAC地址表。MAC地址表的表项中包含了与本交换机相连的终端主机的MAC地址、本交换机连接主机的端口等信息。
在交换机刚启动时,它的MAC地址表中没有表项。此时如果交换机的某个端口收到数据帧,它会把数据帧从所有其它端口转发出去。这样,交换机就能确保网络中其它所有的终端主机都能收到此数据帧。但是,这种广播式转发的效率低下,占用了太多的网络带宽,并不是理想的转发模式。
为了能够仅转发目标主机所需要的数据,交换机就需要知道终端主机的位置,也就是主机连接在交换机的哪个端口上。这就需要交换机进行MAC地址表的正确学习。

交换机|第16章 以太网交换机工作原理(H3CNE)
文章图片

交换机通过记录端口接收数据帧中的源MAC地址和端口的对应关系来进行MAC地址表学习。
如上图,PCA 发出数据帧,其源地址是自己的地址MAC_A,目的地址是PCD 的地址MAC_D。交换机在端口E1/0/1 收到数据帧后,查看其中的源MAC 地址,并添加到MAC 地址表中,形成一条MAC 地址表项。因为MAC 地址表中没有MAC_D 的相关记录,所以交换机把此数据帧从所有其它端口都发送出去。
交换机在学习MAC 地址时,同时给每条表项设定一个老化时间,如果在老化时间到期之前一直没有刷新,则表项会清空。交换机的MAC 地址表空间是有限的,设定表项老化时间有助于回收长久不用的MAC 表项空间。
【交换机|第16章 以太网交换机工作原理(H3CNE)】说明:对于未知的数据帧,交换机广播发送,单播响应。

交换机|第16章 以太网交换机工作原理(H3CNE)
文章图片

同样的,当网络中其它PC 发出数据帧时,交换机记录其中的源MAC 地址,与接收到数据帧端口相关联起来,形成MAC 地址表项。
当网络中所有的主机的MAC地址在交换机中都有记录后,意味着MAC 地址学习完成,也可以说交换机知道了所有主机的位置。
交换机在MAC 地址学习时,需要遵循以下原则:

  • 一个MAC 地址只能被一个端口学习
  • 一个端口可学习多个MAC 地址
交换机进行MAC 地址表学习的目的是知道主机所处的位置,所以只要有一个端口能到达主机就可以,多个端口到达主机反而造成带宽浪费,所以系统设定MAC 地址只与一个端口关联。如果一个主机从一个端口转移到另一个端口,交换机在新的端口学习到了此主机MAC 地址,则会删除原有表项。
一个端口上可关联多个MAC 地址。比如端口连接到一个Hub,Hub 连接多个主机,则此端口会关联多个MAC 地址。

三、交换机对数据帧的转发和过滤
(1)单播帧的转发
交换机|第16章 以太网交换机工作原理(H3CNE)
文章图片

交换机根据MAC 地址表项进行数据帧转发。
上图中,PCA 发出数据帧,其目的地址是PCD 的地址MAC_D。交换机在端口E1/0/1 收到数据帧后,检索MAC 地址表项,发现目的MAC 地址MAC_D 所对应的端口是E1/0/4,就把此数据帧从E1/0/4 转发,不在端口E1/0/2 和E1/0/3 转发,PCB 和PCC 也不会收到目的到PCD 的数据帧。

(2)广播、组播和未知单播帧的转发
交换机|第16章 以太网交换机工作原理(H3CNE)
文章图片

交换机需要把广播、组播帧从所有的端口转发出去(除了源端口)。因为广播和组播的目的就是要让网络中其他的成员收到这些数据帧。
未知单播帧是指帧的目的MAC 地址在交换机MAC 地址表中无相应表项的数据帧。由于MAC 地址表中无相关表项,所以交换机也要把未知单播帧从其他端口转发出去,以使网络中其他主机能收到。

(3)数据帧过滤
交换机|第16章 以太网交换机工作原理(H3CNE)
文章图片

为了杜绝不必要的帧转发,交换机对符合特定条件的帧进行过滤。无论是单播、组播、广播帧,如果帧目的MAC 地址在MAC 地址表中有表项存在,且表项所关联的端口与接收到帧的端口相同时,则交换机对此帧进行过滤,即不转发此帧。(无效转发还造成资源浪费,所以直接不转发
通常,帧过滤发生在一个端口学习到多个MAC 地址的情况下。如上图所示,交换机端口E1/0/1 连接有一个Hub,所以端口E1/0/1 上会同时学习到PCA 和PCB 的MAC 地址。此时,PCA 和PCB 之间进行数据通信时,尽管这些帧能够到达交换机的E1/0/1 端口,交换机也不会转发这些帧到其它端口,而是将其丢弃了。

四、广播域
交换机|第16章 以太网交换机工作原理(H3CNE)
文章图片

广播帧是指目的MAC 地址是FFFF.FFFF.FFFF 的数据帧,它的目的是要让本地网络中的所有设备都能收到。二层交换机需要把广播帧从除源端口之外的端口转发出去,所以二层交换机不能够隔离广播。
路由器或三层交换机是工作在网络层的设备,对网络层信息进行操作。路由器或三层交换机收到广播帧后,对帧进行解封装,取出其中的IP 数据包,然后根据IP 数据包中的IP 地址进行路由。所以,路由器或三层交换机不会转发广播帧,广播在三层端口上被隔离。
广播域是指广播帧能够到达的范围。如上图中,PCA 发出的广播帧,PCB 能够收到,但PCC 和PCD 收不到,PCA 和PCB 就属于同一个广播域。广播域中的设备数量越少,广播帧流量就越少,网络带宽的无谓消耗也越少。通过在网络中使用三层交换机或路由器,可以减小广播域,减少网络带宽浪费。

重点总结
  • 共享式以太网中所有终端共享总线带宽,交换式以太网中每个终端处于独立的冲突域
  • 交换机根据接收到的数据帧的源地址进行MAC地址表的学习
  • 交换机根据MAC地址表对数据帧进行转发和过滤
  • 路由器或三层交换机的三层接口属于独立的广播域

附1:
关注我,加微信,获取此次配置工程、更多配置案例,也可以承接远程调试各厂商交换机、路由器、防火墙等私活,欢迎各位老板加微信私聊。
交换机|第16章 以太网交换机工作原理(H3CNE)
文章图片



附2:
有打算考华三IE或者华为IE的兄弟可以加我微信私聊。
交换机|第16章 以太网交换机工作原理(H3CNE)
文章图片

交换机|第16章 以太网交换机工作原理(H3CNE)
文章图片

    推荐阅读