Skip to content

交换机二层转发原理

交换机的二层转发原理依赖于 MAC 地址表(MAC Address Table),通过学习源 MAC 地址和解析 ARP 报文,动态建立转发路径,实现高效的数据帧转发。

MAC 地址表的结构与生成

MAC 地址表的三要素

  1. 目的 MAC 地址: 数据帧的目标设备的 MAC 地址。
  2. VLAN ID: 目标 MAC 地址所在的 VLAN。
  3. 出接口: 数据帧转发的出口接口。

MAC 地址表的生成过程

MAC 地址表是通过 ARP 表间接生成的:

  1. 交换机通过接收入接口的 ARP 报文,学习报文的 源 MAC 地址
  2. 根据 ARP 报文中的 IP-MAC 映射关系,生成 ARP 缓存表。
  3. 交换机将 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 地址学习

  • 接收 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 地址表更新

  • 交换机接收到 ARP 回复报文后,再次在 入接口 学习源 MAC 地址,并更新或新增对应的 MAC 地址表条目。

数据帧的二层转发

  • 数据帧封装
    • 源主机在完成 MAC 地址解析后,依据 TCP/IP 协议栈封装数据帧,数据帧包含以下内容:
      • 以太网头部: 源 MAC 地址、目标 MAC 地址、以太网类型。
      • IP 层数据: 源 IP 地址、目标 IP 地址、协议类型。
      • 传输层数据: 端口号、数据段。
  • 交换机转发
    • 交换机收到数据帧后,依据 MAC 地址表查询目标 MAC 地址对应的出接口。
    • 如果匹配到目标 MAC 地址,交换机定向转发数据帧到目标接口。

转发异常情况

未知目标 MAC 地址

  • 若目标 MAC 地址不在 MAC 地址表中:
    • 交换机会将数据帧进行广播(Flooding),转发到同 VLAN 的所有接口。
    • 等待目标设备响应后学习其 MAC 地址。

MAC 地址老化

  • 交换机中的 MAC 地址表会定期老化(通常 5 分钟),如果某条目过期且未更新,交换机会再次触发广播学习。

总结

  • 交换机在二层转发中依靠 MAC 地址表,通过 ARP 协议学习源 MAC 地址。
  • 转发流程包括 MAC 地址学习、ARP 广播与单播、MAC 地址表匹配、数据帧转发。
  • 二层转发具有高效性和低延迟,但受限于同一广播域,不支持跨网段通信。

这种机制保证了交换机在局域网中的高效转发,适用于小型和中型网络环境。