二层交换机的「二层」是什么意思?
以太网交换机主要工作在 OSI 参考模型的第二层,我们经常听到的二层交换机就是指这种工作在 OSI 参考模型第二层的交换机,而偶尔看到被谈起的三层交换机那就是工作在第三层的交换机啦。
那什么是交换机呢?前面我们说可以认为它是路由器接口的扩展, 换个角度它就是将多台电脑连接在一起的设备,三层交换机则用于更庞大的场景,有更复杂连接需求的情况了,我们这里暂不展开介绍。那交换机是如何将多台电脑连在一起并进行数据传输的呢?接下来就和大家聊聊,交换机如何在 OSI 参考模型的第二层进行数据传输。
发送方和接受者是如何互相识别
说传输之前先说说信息的发送方和接受者是如何互相识别的。我们能上网,少不了一种叫做「网卡」的东西,每块网卡在出场的时候都会烧录一个独一无二的身份标识,它有一个名字叫做「MAC 地址」,中文名叫物理地址,一共有 48 位,如下图所示,

MAC 地址
前 24 位为制造商编号,后 24 位是产品序列号,制造商编号由 IEEE(电子与电气工程师协会)统一分配,所以制造商编号是需要去申请的哦,我们通过查询制造商编号就可以知道是哪个厂商生产的啦。MAC 地址具有全球唯一性,是设备的身份证号码。
理论上通过 MAC 地址就可以找到世界上的任何一张网卡,但现实世界中这么做是行不通的。我先介绍下另外两个概念——冲突域和广播域,相信大家就明白了。
交换机的一个端口就是一个冲突域
其实咱们的以太网是一种需要竞争的介质访问方法,网络中的所有主机共享带宽,如果有一台以上的主机同时发送消息的话就会产生冲突,互相干扰,导致这些设备都必须重传。
大家想象一下这样的场景,我们在一个会议室里开会,会议规则是:没有主持人调度,以竞争的方式发言,谁先抢到谁先说,但是只要有一个人发言,其他人都必须处于聆听状态。如果有两个及两个以上的人同时发言,就会互相干扰,那就重说一遍。如果这个会议室里面人多了,产生冲突的概率就非常高,这个会产生冲突的区域就叫做冲突域。
交换机的出现解决了这个问题,交换机的一个端口就是一个冲突域,而且交换机端口很多,完全可以一个端口只接一台设备,这就意味着一个冲突域里就只有一个设备,再也没人和他竞争,这时候就避免了冲突,用上面的例子来说,这时候每个人都处于一个单独的小房间,想要发消息,先找主持人(也就是交换机),主持人(交换机)会负责所有信息的传递。
广播:向网络中所有主机发送数据
发送数据的时候如果不知道目标在哪儿怎么办?这时候会向网络中所有主机发送数据,主机会查看是不是找自己的,如果是就接收,如果不是就会丢弃。这个操作就叫广播,广播所能到达的地方就叫广播域。交换机并不能够隔离广播,而且还会转发和产生广播。
如果这个广播域中主机非常多,就会产生很多的广播数据,但真正需要接受数据的只有某一台或者某几台特定的主机,如此庞大的广播会耗尽网络资源,使得正常的数据无法发送,这也就是我们为什么不能够只使用 MAC 地址去通信的原因。如果两个主机不在同一个子网当中,是无法通过这种方式找到对方的,MAC 地址只能标识所属厂商,并不能标识网络。这就导致了网络层的出现,「子网」、「网络层」等词汇会在下一篇文章为大家介绍。
交换机 MAC 地址数据库建立过程
当有了交换机后,数据的传输过程也略有不一样了。前面说到,被交换机连接的所有主机,发送数据前会先发给交换机。交换机里面会存着一张表,记录着如何处理来自主机的数据,我们假设已知目的 MAC 地址,交换机刚刚上电。
第一步,交换机上电完成后,表是空的,如图一所示。

图一
第二步,这时候 X1 开始发数据了,目的地为 X2,交换机在自己的表中记录下来,X1 对应这个我的 1 口,如图二所示。

图二
第三步,同时交换机会向 1 口(收到数据的端口)以外的所有端口发送该数据,这个过程就是泛洪,如图三所示。

图三
第四步,X2 收到数据后如果给 X1 回复,那回复的源地址是 X2,目的地址是 X1,当然也是需要先发送到交换机上的,交换机会根据这个回复在自己的 MAC 地址表中记录下端口和 MAC 地址的对应关系whatsapp网页版,如果是不需要回复的数据包,交换机通过不断重复步骤 1-3 也可以完成这条表项的记录。

图四
第五步whatsapp网页版,如果网络中没有人符合这个 MAC 地址,那这个数据包依旧会被丢弃。
以上就是交换机 MAC 数据库的建立过程,MAC 数据库建立好了之后就可以点对点通信,节约资源也提高效率。如果没有新设备加入,网络结构没有变更whatsapp网页版,交换机会一直按照这个对应关系转发数据。
二层交换机如何寻找 MAC 地址
上面说交换机 MAC 地址学习的时候,大家是不是很奇怪,为什么一开始就知道对方的 MAC 地址了呢?其实这都是 ARP 的功劳。
为了方便大家理解,我先告诉大家,网络层中用 IP 地址来标识主机,而数据链路层使用的是 MAC 地址,当数据从网络层到数据链路层后,我们需要一种协议通过 IP 地址获取到 MAC 地址,负责将 IP 地址解析为 MAC 地址的叫做 ARP(Address Resolution Protocol),地址解析协议。每个主机中都会存一张 ARP 表,记录着 IP 地址和 MAC 地址的对应关系,方便主机进行数据传输。
