4. 以太网交换核心概念
在车载与工业网络中,S32G 这类网关芯片往往需要同时连接多个域控制器、传感器和执行器。要让这些设备在同一时刻高效、可靠地通信,就必须理解以太网交换的底层机制。本章围绕交换芯片架构、MAC 地址表与 VLAN 表、转发与过滤、存储转发与直通模式,以及端口镜像与风暴抑制展开,帮助读者建立从硬件到转发表的完整认知。
一、交换芯片架构:从端口到交换矩阵
交换芯片并不是简单的“多口集线器”。它的核心由端口物理层(PHY/MAC)、入队/出队缓冲、交换矩阵(Switching Fabric)和转发表引擎组成。每个端口收到帧后,先由 MAC 层完成前导码、FCS 校验和地址提取,再送入交换引擎查询转发表,最终通过交换矩阵送到目标端口。
S32G 的以太网交换模块通常支持多端口线速转发,并具备独立的收发队列。理解架构的关键在于:转发决策发生在交换引擎,而不是 CPU。CPU 只在需要管理、路由或异常处理时介入,因此交换芯片可以在不占用内核资源的情况下完成大部分流量转发。
二、MAC 表与 VLAN 表:转发的“字典”
交换芯片的转发能力依赖两张核心表:MAC 地址表和VLAN 表。MAC 表记录“源 MAC 地址—端口—VLAN”的映射关系,用于确定目的端口;VLAN 表则定义哪些端口属于同一广播域,以及标签的进出规则。
当帧进入端口时,交换引擎会执行以下动作:
- 提取源 MAC 和目的 MAC;
- 若源 MAC 不在表中,则学习并写入 MAC 表;
- 根据目的 MAC 查询 MAC 表,得到出端口;
- 检查 VLAN 表,确认入端口与出端口是否在同一 VLAN;
- 若目的 MAC 为广播/组播或未知单播,则泛洪到同 VLAN 其他端口。
MAC 表通常有老化时间(如 300 秒),超时未更新的条目会被删除,以适应设备迁移。VLAN 表则相对静态,由配置决定。两者配合,才能实现“只把帧送到该去的地方”。
三、转发与过滤机制:该转的转,该丢的丢
交换芯片并非无条件转发所有帧。它会在转发前执行一系列过滤判断,常见规则包括:
- VLAN 过滤:入端口与出端口不在同一 VLAN,直接丢弃;
- MAC 过滤:目的 MAC 被配置为静态过滤条目,丢弃;
- 风暴抑制:广播/组播/未知单播速率超过阈值,丢弃或限速;
- 端口安全:源 MAC 与绑定表不符,丢弃并告警;
- ACL 过滤:基于五元组匹配,执行 permit/deny。
过滤机制的价值在于隔离故障域和抑制异常流量。例如,某个节点因软件缺陷持续发送广播帧,若没有风暴抑制,整个 VLAN 都会被拖慢;而开启广播风暴抑制后,交换芯片会在入口处限速,保护其他端口。
四、存储转发与直通模式:两种转发策略
交换芯片支持两种基本转发模式:
| 对比项 | 存储转发(Store-and-Forward) | 直通模式(Cut-Through) |
|---|---|---|
| 转发时机 | 收完整帧并校验 FCS 后转发 | 读到目的 MAC 后立即转发 |
| 时延 | 较高,与帧长相关 | 极低,固定短时延 |
| 错误帧处理 | 丢弃 CRC 错误帧 | 可能转发错误帧 |
| 适用场景 | 工业控制、TSN 高可靠场景 | 低时延、对错误不敏感场景 |
在 S32G 的 TSN 应用中,通常推荐存储转发模式,因为它能保证错误帧不扩散,并与时间敏感网络的门控、调度机制更好配合。直通模式虽然时延低,但会牺牲可靠性,需谨慎使用。
五、端口镜像与风暴抑制:可观测性与保护
端口镜像用于把指定端口的进出流量复制到监控端口,便于抓包分析。配置时需指定源端口、目的端口和镜像方向(入、出或双向)。例如:
# 将 Port 1 入方向流量镜像到 Port 5
switchport mirror source port 1 direction ingress
switchport mirror destination port 5
switchport mirror enable
风暴抑制则用于限制广播、组播和未知单播的速率。常见参数包括阈值(pps 或百分比)和动作(丢弃或告警)。在车载网络中,建议对未知单播也开启抑制,防止 MAC 表溢出导致泛洪。
六、案例与复盘:一次广播风暴的排查
某 S32G 网关项目中,诊断口突然出现大量丢包。抓包发现广播帧速率从正常的 200 pps 飙升到 15000 pps。排查步骤:
- 查看交换芯片端口统计,确认广播帧来自 Port 3;
- 检查 Port 3 所连节点,发现其软件陷入重启循环,反复发送 ARP 广播;
- 临时在 Port 3 开启广播风暴抑制,阈值设为 1000 pps,网络恢复;
- 修复节点软件后,关闭抑制,恢复正常。
复盘结论:风暴抑制是最后一道防线,但不能替代根因修复。同时,MAC 表老化时间不宜过长,否则故障节点迁移后旧条目仍会误导转发。建议在工程中同时配置端口镜像和风暴抑制,前者用于定位,后者用于保护。