一、题目
交换机收到一个单播数据帧,如果该数据帧目的MAC在MAC地表中能够找到,这此数据帧一定会从此MAC对应端口转发出去。
A. 对
B. 错
二、答案
B
三、解析
交换机收到一个单播数据帧后,会根据目的MAC地址查找MAC表。如果找到了对应的条目,则将数据帧从对应的端口转发出去。但是,如果MAC表中没有找到对应的条目,交换机有两种处理方式:
- 如果该交换机是二层交换机,它会将数据帧广播到除接收端口之外的所有其他端口,以便让目的主机能够接收到数据。
- 如果收到的数据帧的目的MAC是在MAC地址表中可以查找到,且接收这个数据帧的接口和MAC地址表中接口一致,这时候就丢弃这个数据帧。
因此,即使在MAC表中能够找到目的MAC地址对应的条目,也不一定意味着数据帧会从此MAC对应端口转发出去。如果交换机是二层交换机且没有找到对应的MAC条目,数据帧会被广播出去;而第二种情况,即交换机收到数据的接口,查表后发现数据发出的接口也是相同接口就会将数据进行丢弃,这种情况就符合题目中所说的这种案列。
四、扩展 — 数据链路层
OSI模型中的数据链路层介于物理层和网络层之间,它通过物理层提供的服务向网络层提供服务。数据链路层的主要作用是将原始的比特流转化为逻辑上无差错的链路,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路。
数据链路层的基本概念包括节点、链路和数据链路。节点是指主机或路由器,链路是网络中两个节点之间的物理通道,而数据链路则是网络中两个节点之间的逻辑通道。数据链路层通过在链路上添加控制协议(如PPP)来控制数据传输协议(如以太网协议),以实现数据的可靠传输。
数据链路层的协议栈结构包括MAC子层和LLC子层。MAC子层负责管理链路上的物理地址(MAC地址),并执行数据的封装和解封装过程。LLC子层则负责实现各种类型的LLC协议,以支持不同的网络层协议。
数据链路层的功能包括封装和解封装、帧定界、差错控制、流量控制和拥塞控制。封装和解封装是指将网络层数据报按照特定的链路协议进行封装和解封装,以便在链路上传输。帧定界是指确定帧的起始和结束位置,以便接收端能够正确地解析数据。差错控制是指通过校验和等方式检测并纠正数据传输过程中的错误。流量控制和拥塞控制则是指对数据传输进行管理和控制,以避免网络拥塞和数据丢失。
MAC地址表是交换机中最重要的一张表。交换机使用MAC地址表来决定网络通信该经过哪些端口从而到达目的节点。交换机使用MAC地址表来做出转发决策。当数据报文发送到交换机时,交换机无视除了MAC地址以外的其他信息,包括IP信息等,如图 4‑6所示。
图 4‑6 MAC地址表
交换机工作在数据链路层,因此只关注数据帧。对每个帧做出的转发决策都会查询MAC地址表。当交换机刚开始加电时,它的MAC地址表是空的。随后数据转发开始后,它的MAC地址表逐渐丰富起来。
交换机对每个以太网帧执行下列流程:
(一)学习-检查源MAC地址
当数据帧传入到交换机时,如果该源MAC不存在MAC地址表中,交换机会将该MAC地址和传入的端口记入到MAC地址表中。如果该源MAC已经存在于MAC地址表中,交换机会刷新该条目的刷新计时器。刷新计时器默认时长为5分钟。
这里有一个特殊情况,如果源MAC已经存在于MAC地址表中,但传入端口与记录不符,则交换机会认为是一个新的条目,使用该源MAC和新的传入端口来替换旧的条目。
(二)转发-检查目的MAC地址
我们知道数据报文根据它的目的范围,可分为单播、组播和广播报文。
当交换机接收到传入的单播报文时,根据MAC地址表来进行检查。如果目的MAC地址存在于MAC地址表中,则根据条目记录中的指定端口传出,我们可称为已知单播。如果MAC地址表中不包含有目的MAC地址,则交换机会将该单播报文从除了接收端口以外的其他所有端口发送出去。我们可称为未知单播。
当交换机接收到传入的广播报文时,则直接将该广播报文从除了接收端口以外的其他所有端口发送出去。当交换机接收到传入的组播报文时,如果该目的MAC存在于MAC地址表中,则根据条目记录中的指定端口组传出。由于IMGP Snooping技术的应用,交换机可配置为丢弃未知的组播报文。