一、交换机的工作原理
前面我们讲了以太网的传输设备,在其中也提到了集线器、网桥、交换机等设备。但随着技术的发展集线器和网桥已经被交换机取代。现在局域网中最常用的传输设备为交换机。所以我们这里将会深入的介绍一下交换机的工作原理。
交换机的工作原理:
1. 交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中。
2.交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发。
3.如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称为泛洪(flood)。
4.广播帧向所有的端口转发,组播帧向所属的组播端口转发。
在交换机的工作原理中很关键的一个参数是MAC地址,交换机基于MAC地址来工作。下面我们详细学习一下MAC地址。
一个制造商在生产制造网卡之前,必须先向 IEEE 注册,以获取到一个长度为 24bit 的厂商代码,也称为 OUI(Organizationally-Unique Identifier)。制造商在生产制造网卡的过程中,会往每一块网卡的 ROM 中烧入一个 48bit 的 BIA(Burned-In Address,固化地址)地址,BIA 地址的前 3 个字节就是该制造商的 OUI,后 3 个字节由该制造商自己确定,但不同的网卡,其 BIA 地址的后 3 个字节不相同。烧入进网卡的 BIA 地址是不能被更改的,只能被读取出来使用。如下图所示地址的格式。
注意,BIA 地址只是 MAC 地址的一种,更准确的说,BIA 地址是一种单播 MAC 地址。MAC 地址共分为 3 种,分别为单播 MAC 地址、组播 MAC 地址、广播 MAC 地址。这 3 种 MAC 地址的定义分别如下:
1)单播 MAC 地址是指第一个字节的最低位是 0 的 MAC 地址。
2)组播 MAC 地址是指第一个字节的最低位是 1 的 MAC 地址。
3)广播 MAC 地址是指每个比特都是 1 的 MAC 地址。广播 MAC 地址是组播 MAC 地址的一个特例。
一个单播 MAC 地址(例如 BIA 地址)标识了一块特定的网卡;一个组播 MAC 地址标识的是一组网卡;广播 MAC 地址是组播 MAC 地址的一个特例,它标识了所有的网卡。从上图我们可以发现,并非一个 MAC 地址的前 3 个字节都是 OUI,只有单播 MAC 地址的前 3 个字节才是 OUI,而组播或广播 MAC 地址的前 3 个字节一定不是 OUI。特别需要说明的是,OUI 的第一个字节的最低位一定是 0。
接下来我们看一下这几类MAC 地址的事例
有了上面MAC地址的知识后,接下来我们就可以深入地研究交换机的具体的工作原理:
如图所示,3台计算机终端设备(也可以是PLC或其他带以太网接口的终端设备)分别接到了交换机的G0/0/1、G0/0/2和G0/0/3端口上
各终端设备的IP地址和MAC地址如图所示。交换机上电后处于初始的状态,交换机的MAC地址为空。
当主机A需要发起ICMP Ping request到主机C时,主机A通过命令行的命令知道需要通信的目的主机的IP地址(这里的目的地址就是10.1.1.3/24),但主机A却不知道主机C的MAC地址。所以此时主机A先暂不发送ICMP 的Ping request,而是发送一个ARP的广播报文帧,以此来用来获得主机C的MAC地址。ARP广播报文的目的MAC地址为FF-FF-FF-FF-FF-FF的广播类型地址,而这个ARP广播报文帧中的源MAC地址为主机A自身的MAC地址00-01-02-03-04-BB的单播地址,ARP广播报文帧的数据部分封装的是ARP协议。这样的报文帧从主机A发出到达交换机后,交换机按照其工作原理把收到的此帧的源MAC地址00-01-02-03-04-AA和对应端口G0/0/1对应成一条表项记录到交换的MAC地址表中。
交换机把主机A的MAC地址与端口绑定后,交换机需要把此ARP的广播数据帧转发出去。在这里我们需要补充一个知识点是交换机的转发行为:交换机把接收到的数据帧可能有如下的3种处理方式。
1、向所有其他所有端口(除入端口外的端口)进行转发;
2、向指定的端口转发;
3、丢弃数据帧。
若交换机收到的数据帧的目的MAC地址为广播地址即FF-FF-FF-FF
-FF-FF或交换机收到的单播地址在MAC地址表中不存在,交换机都会按第一种方式发送。若收到的数据帧的MAC地址为单播MAC地址且此地址可以在交换的MAC地址表中查到则交换机会按照第二种单播转发方式转发。若交换机接收到的数据帧经CRC校验后发现有错,则交换机就会按照第三种方式处理,直接丢弃此数据帧。
有了上面的知识,我们接着看ARP广播的数据帧到了交换机,且交换经过CRC校验后发现没有出错,交换机也把此帧的源MAC地址与端口绑定,接着交换机查看到目的MAC地址为FF-FF-FF-FF-FF-FF的广播地址,交换机就把此帧转发按照广播的转发方式转发,即除了如端口外的其他端口都进行转发出去。此ARP广播帧会发送到主机B和主机C上。
主机B接收到此数据帧后,把数据帧解封装后发现ARP协议部分请求的不是自己IP地址对应MAC地址,就把数据帧丢弃,不做进一步的处理。而主机C发现是请求的是自己IP地址对应的MAC地址,主机C就需要进一步处理,于是主机C就回应主机A的ARP请求。主机C回应主机C的ARP请求是用主机A的MAC地址作为目的MAC地址,主机C自己的MAC地址为源地址进行主机帧的封装。当此ARP的响应的数据帧被从主机C发出到达交换机后,交换又把此ARP响应帧的源MAC地址即00-01-02-03-04-CC与交换的端口G0/0/3进行绑定并记录到交换机中,此时交换机中有了两条表项。
交换机学习完源MAC地址后还需要把此ARP响应的数据帧转发出去,交换机查看此帧的目的MAC地址与交换机地址表的表项1中的MAC地址一致,交换机就把ARP的响应的数据帧从端口G0/0/1转发出去。自此基本上就把交换机的整个工作原理讲解完了,即包括交换机的地址学习,又包括交换的转发方式。当然交换机学习到MAC地址表项不会永久存在交换机。每次新学习到MAC地址后交换机就把此表项的老化时间修改为最大(一般情况下是30S),定时器就从最大值重新倒计时。若超30S内没有新的源MAC是00-01-02-03-04-AA数据帧从端口G0、0/1进入。定时器的计数倒计为0,后此表项就被从交换机中删除。
二、交换机的三个主要功能
以太网交换机了解每一端口相连设备的MAC地址,并将地址同相应的端口映射起来存放在交换机缓存中的MAC地址表中。
转发/过滤:当一个数据帧的目的地址在MAC地址表中有映射时,它被转发到连接目的节点的端口而不是所有端口(如该数据帧为广播/组播帧则转发至所有端口)。消除回路:当交换机包括一个冗余回路时,以太网交换机通过生成树协议避免回路的产生,同时允许存在后备路径。
三、交换机的工作特性
1.交换机的每一个端口所连接的网段都是一个独立的冲突域。
2.交换机所连接的设备仍然在同一个广播域内,也就是说,交换机不隔绝广播(惟一的例外是在配有VLAN的环境中)。
3.交换机依据帧头的信息进行转发,因此说交换机是工作在数据链路层的网络设备(此处所述交换机仅指传统的二层交换设备)。
四、交换机的分类
依照交换机处理帧时不同的操作模式,主要可分为两类:
存储转发:交换机在转发之前必须接收整个帧,并进行错误校检,如无错误再将这一帧发往目的地址。帧通过交换机的转发时延随帧长度的不同而变化。
直通式:交换机只要检查到帧头中所包含的目的地址就立即转发该帧,而无需等待帧全部的被接收,也不进行错误校验。由于以太网帧头的长度总是固定的,因此帧通过交换机的转发时延也保持不变。