交换机二层转发原理
交换机的二层转发原理依赖于 MAC 地址表(MAC Address Table),通过学习源 MAC 地址和解析 ARP 报文,动态建立转发路径,实现高效的数据帧转发。
MAC 地址表的结构与生成
MAC 地址表的三要素
- 目的 MAC 地址: 数据帧的目标设备的 MAC 地址。
- VLAN ID: 目标 MAC 地址所在的 VLAN。
- 出接口: 数据帧转发的出口接口。
MAC 地址表的生成过程
MAC 地址表是通过 ARP 表间接生成的:
- 交换机通过接收入接口的 ARP 报文,学习报文的 源 MAC 地址。
- 根据 ARP 报文中的 IP-MAC 映射关系,生成 ARP 缓存表。
- 交换机将 ARP 缓存表中的信息转换为 MAC 地址表条目。
二层转发详细流程
PC 通信的网络位检查
- 当 PC 需要与另一台主机通信时,首先会对目的 IP 地址和自身 IP 地址的网络位进行逻辑 与运算。
- 网络位相同: 表示目标主机在同一网络,通信可在二层完成。
- 网络位不同: 表示目标主机在不同网络,需要通过三层(路由)转发。
ARP 广播请求的触发
- 若网络位相同,源主机会触发 ARP 广播请求,尝试解析目标主机的 MAC 地址。
- ARP 广播报文格式
- 源 MAC 地址:
PC-A的 MAC 地址。 - 目标 MAC 地址:广播地址
FF:FF:FF:FF:FF:FF。 - 源 IP 地址:
PC-A的 IP 地址。 - 目标 IP 地址:
PC-B的 IP 地址。
- 源 MAC 地址:
交换机的 MAC 地址学习
- 接收 ARP 广播报文
- 交换机在接收到 ARP 广播报文时,会在 入接口 记录报文的 源 MAC 地址 和 源接口,动态更新 MAC 地址表。
- 例如,若 ARP 报文源 MAC 为
AA:BB:CC:DD:EE:01,入接口为GigabitEthernet0/1,则交换机会记录:MAC 地址:AA:BB:CC:DD:EE:01 接口:GigabitEthernet0/1 VLAN: 对应 VLAN ID
- 广播泛洪
- 交换机将 ARP 广播报文转发到同 VLAN 的所有接口(除接收接口外),以确保目标主机能够接收到请求。
目标主机的 ARP 单播回复
- 目标主机在接收到 ARP 广播请求后,会发送 ARP 回复报文,通知源主机其 MAC 地址。
- ARP 单播回复报文格式
- 源 MAC 地址:
PC-B的 MAC 地址。 - 目标 MAC 地址:
PC-A的 MAC 地址。 - 源 IP 地址:
PC-B的 IP 地址。 - 目标 IP 地址:
PC-A的 IP 地址。
- 源 MAC 地址:
交换机的 MAC 地址表更新
- 交换机接收到 ARP 回复报文后,再次在 入接口 学习源 MAC 地址,并更新或新增对应的 MAC 地址表条目。
数据帧的二层转发
- 数据帧封装
- 源主机在完成 MAC 地址解析后,依据 TCP/IP 协议栈封装数据帧,数据帧包含以下内容:
- 以太网头部: 源 MAC 地址、目标 MAC 地址、以太网类型。
- IP 层数据: 源 IP 地址、目标 IP 地址、协议类型。
- 传输层数据: 端口号、数据段。
- 源主机在完成 MAC 地址解析后,依据 TCP/IP 协议栈封装数据帧,数据帧包含以下内容:
- 交换机转发
- 交换机收到数据帧后,依据 MAC 地址表查询目标 MAC 地址对应的出接口。
- 如果匹配到目标 MAC 地址,交换机定向转发数据帧到目标接口。
转发异常情况
未知目标 MAC 地址
- 若目标 MAC 地址不在 MAC 地址表中:
- 交换机会将数据帧进行广播(Flooding),转发到同 VLAN 的所有接口。
- 等待目标设备响应后学习其 MAC 地址。
MAC 地址老化
- 交换机中的 MAC 地址表会定期老化(通常 5 分钟),如果某条目过期且未更新,交换机会再次触发广播学习。
总结
- 交换机在二层转发中依靠 MAC 地址表,通过 ARP 协议学习源 MAC 地址。
- 转发流程包括 MAC 地址学习、ARP 广播与单播、MAC 地址表匹配、数据帧转发。
- 二层转发具有高效性和低延迟,但受限于同一广播域,不支持跨网段通信。
这种机制保证了交换机在局域网中的高效转发,适用于小型和中型网络环境。