《计算机网络微课堂》3-9 以太网交换机自学习和转发帧的流程
在上节课中,我们对比了在物理层扩展以太网的集线器,和在数据链路层扩展以太网的交换机。
本节课我们介绍以太网交换机自学习和转发帧的流程,以太网交换机工作在数据链路层,当然也包括物理层,需要说明的是目前市场上也有包含网络层部分功能的交换机,称为三层交换机。
以太网交换机收到帧后,在帧交换表中查找帧的目的 MAC 地址所对应的接口号,然后通过该接口转发帧。
以太网交换机是一种即插即用的设备,刚上电启动时,其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法,自动逐渐建立起帧交换表。
下面我们来举例说明,以太网交换机自学习和转发帧的流程,如图所示,相互连接的两台以太网交换机,各自连接了三台主机,构成了一个交换式以太网。为了简单起见,各主机中网卡上固化的 MAC 地址,仅用一个大写字母表示,各主机互不相同。为了将重点放在以太网交换机自学习和转发帧的流程上,我们假设各主机已经知道了网络装其他各主机的 MAC 地址,换句话说,不需要首先通过 ARP 来获取目的主机的 MAC 地址。
假设主机 A 给主机 B 发送帧,该帧从交换机 1 的接口 1 进入交换机 1,交换机 1 首先进行登记的工作,将该帧的源 MAC 地址 A 记录到自己的帧交换表中,将该帧进入自己的接口的接口号 1,相应的也记录到帧交换表中,上述登记工作就称为交换机的自学习。
之后,交换机 1 对该帧进行转发,该帧的目的 MAC 地址是 B,在帧交换表中查找 MAC 地址 B,找不到,于是对该帧进行盲目的转发,也称为泛洪,也就是从除该帧进入交换机接口外的其他所有接口转发该帧,可以看出交换机一开始还是比较笨的,他还没有足够的知识来明确转发帧,只能进行盲目的转发。
主机 B 的网卡收到该帧后,根据帧的目的 MAC 地址 B 就知道这是发送给自己的帧,于是就要接受该帧。主机 C 的网卡收到该帧后,根据帧的目的 MAC 地址 B 就知道这不是发送给自己的帧,于是就丢弃该帧。
该帧从交换机 2 的接口二进入交换机 2,交换机 2 首先进行登记的工作,将该帧的源 MAC 地址 A 记录到自己的帧交换表中,将该帧进入自己的接口的接口号 2,相应的也记录到帧交换表中。之后交换机 2 对该帧进行转发,该帧的目的 MAC 地址是 B,在帧交换表中查找 MAC 地址 B,找不到,于是对该帧进行盲目的转发,主机 DEF 都会收到该帧,根据帧的目的 MAC 地址 B 就知道这不是发送给自己的帧,于是丢弃该帧。
接下来主机 B 给主机 A 发送帧,该帧从交换机 1 的接口 3 进入交换机 1,交换机 1 首先进行登记的工作,将该帧的源 MAC 地址 B 记录到自己的帧交换表中,将该帧进入自己的接口的接口号 3,相应的也记录到帧交换表中。之后,交换机 1 对该帧进行转发,该帧的目的 MAC 地址是 A,在帧交换表中查找 MAC 地址 A,可以找到,于是按照 MAC 地址 A 所对应的接口号 1,从接口 1 转发该帧,这是明确的转发。
主机 A 的网卡收到该帧后,根据帧的目的 MAC 地址 A 就知道这是发送给自己的帧,于是接受该帧,很显然交换机 2 不会收到该帧。
接下来主机 E 给主机 A 发送帧,该帧从交换机 2 的接口 3 进入交换机 2,交换机 2 首先进行登记的工作,之后,交换机 2 对该帧进行转发,该帧的目的 MAC 地址是 A,在帧交换表中查找 MAC 地址 A,可以找到,于是按照 MAC 地址 A 所对应的接口号 2,从接口 2 转发该帧,这是明确的转发,该帧从交换机 1 的接口 4 进入交换机 1,交换机 1 首先进行登记的工作,之后,交换机 1 对该帧进行转发,该帧的目的 MAC 地址是 A,在帧交换表中查找 MAC 地址 A,可以找到,于是按照 MAC 地址 A 所对应的接口号 1,从接口 1 转发该帧,这是明确的转发。
主机 A 的网卡收到该帧后,根据帧的目的 MAC 地址 A 就知道这是发送给自己的帧,于是接受该帧。
我们再来看看以太网交换机丢弃帧的情况,为了演示该情况,我们给交换机 1 的接口 1 再连接一台主机 G,为了简单起见,没有画出集线器,这样主机 A 主机 G,交换机 1 的接口 1 就共享同一条总线,假设主机 G 给主机 A 发送帧,该帧通过总线进行传输,主机 A 和交换机 1 的接口 1 都可以收到,主机 A 的网卡收到该帧后,根据帧的目的 MAC 地址 A 就知道这是发送给自己的帧,于是接受该帧。交换机 1 收到该帧后,首先进行登记工作,之后,交换机 1 对该帧进行转发,该帧的目的 MAC 地址是 A,在帧交换表中查找 MAC 地址 A,可以找到 MAC 地址 A 所对应的接口号是 1,但是该帧正是从接口 1 进入交换机 1 的,交换机 1 不会再从该接口将该帧转发出去,因为这是没有必要的,于是丢弃该帧,很显然交换机 2 不会收到该帧。
随着网络中各主机都发送了帧后,网络中的各交换机,就可以学习到各主机的 MAC 地址,以及他们与自己各接口的对应关系。
需要注意的是帧交换表中的每条记录都有自己的有效时间,到期自动删除。请大家想想看,这是为什么呢?好不容易学习来的记录,为什么要到期自动删除,这不是多此一举吗?这是因为 MAC 地址与交换机接口的对应关系,并不是永久性的,例如交换机某接口所连接的主机更换成了另一台主机,又或者主机中的网卡坏了,更换了新的网卡,这些情况都会导致 MAC 地址与交换机接口的对应关系的改变。
相信大家还记得我们曾经介绍过的 ARP 高速缓存表,表中的 IP 地址与 MAC 地址的对应关系记录也是会定期自动删除的,这是因为 IP 地址与 MAC 地址的对应关系,也并不是永久性的。
接下来请同学们参照我们刚刚所举的例子,本题的答案如下所示,相信同学们都能解答正确。
接下来我们再来做几道相关的考研题,这是计算机专业考研全国统考计算机网络部分 2009 年的题 36,答案是选项 A。
PDU 的意思是协议数据单元,它是计算机网络体系结构中对等实体间逻辑通信的对象。以太网交换机工作在数据链路层,也包括物理层,他接收并转发的 PDU 通常称为帧。
以太网交换机收到帧后,在帧交换表中查找帧的目的 MAC 地址所对应的接口号,然后通过该接口转发帧,MAC 地址又称为硬件地址或物理地址。请注意不要被物理二字误导,认为物理地址属于物理层范畴,实际上物理地址属于数据链路层范畴。
再来看 2014 年的题 34,答案是选项 B 。
根据题意左侧主机给右侧主机发送数据帧,该帧从交换机的接口 1 进入交换机,交换机首先进行登记的工作,将该帧的源 MAC 地址记录到自己的帧交换表中,将该帧进入自己的接口的接口号,相应的也记录到帧交换表中。之后交换机对该帧进行转发,在帧交换表中查找该帧的目的 MAC 地址,找不到,于是对该帧进行盲目的转发。因此交换机转发数据帧的端口为 2 和 3。
根据题意,右侧主机收到左侧主机发送的数据帧后,给左侧主机发送确认帧,该帧从交换机的接口三进入交换机,交换机首先进行登记的工作,将该帧的源 MAC 地址记录到自己的帧交换表中,将该帧进入自己的接口的接口号,相应的也记录到帧交换表中。
之后,交换机对该帧进行转发,在帧交换表中查找该帧的目的 MAC 地址,可以找到,于是按照 MAC 地址做对应的接口号 1 从接口 1 明确转发该帧,因此交换机转发确认帧的端口为 1:
本节课的内容小结如下: