3.9 以太网交换机自学习和转发帧的流程
# 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,
本节课的内容小结如下