ECMP 等价多路径路由
ECMP(Equal-Cost Multi-Path)是数据中心网络最基础的多路径路由策略,通过哈希将流量分配到多条等价路径,是 Fat-tree / Clos 拓扑的标准路由方案。
基本原理
对网络中存在的多条等价最短路径,ECMP 以报文的 5 元组(源 IP、目标 IP、源端口、目标端口、协议)为输入,通过哈希函数计算路径选择索引:
$\text{path\_index} = \text{hash}(\text{src\_ip}, \text{dst\_ip}, \text{src\_port}, \text{dst\_port}, \text{proto}) \bmod N_{\text{paths}}$
决策流程:提取 5 元组 → 查询等价路径集合 → 计算哈希 → 按 hash % N 选择出口端口。
一旦一条流的路径选定,该流的所有后续报文都走同一条路径(流级别的负载均衡),不会发生报文乱序。
算法细节
标准 ECMP
ECMP 是无状态路由——交换机不维护每条流的状态,只根据报文头字段实时计算哈希。这使它实现极为简单,对交换机 ASIC 的存储和计算开销几乎为零。
E-ECMP(Meta SIGCOMM 2024)
针对 AI 工作负载的哈希极化问题,Meta 提出了 E-ECMP 改进方案:
- ASIC 侧:利用交换机 ASIC 的 UDF(用户自定义字段)能力,将 QP(Queue Pair)字段纳入哈希输入,扩展了哈希维度
- 软件侧(QP Scaling):NCCL 在每对通信节点间建立多个 QP,使同一逻辑通信流的不同 QP 拥有不同的 5 元组,自然散列到不同物理路径
实测效果:AllReduce 性能提升 40%,有效带宽利用率从 60-70% 提升到 80-90%。
WCMP(Google Jupiter)
WCMP(Weighted Cost Multi-Path)是 ECMP 的加权版本,由 Google 在 Jupiter 网络中大规模部署:
- ECMP 按等权分配所有路径;WCMP 按链路实际可用容量设置权重
- 当某条链路故障或拓扑不对称时,SDN 控制器动态重新计算权重并下发,避免 ECMP 在链路失效时流量分配比差距达 25 倍的问题
- 无需改动交换机 ASIC,与现有硬件兼容
性能特性
| 指标 | 标准 ECMP | E-ECMP | WCMP |
|---|---|---|---|
| 有效带宽利用率 | 60-70% | 80-90% | 85-95% |
| 实现复杂度 | 最低 | 低(需 ASIC UDF) | 中(需 SDN 控制器) |
| 硬件要求 | 通用 ASIC | 支持 UDF 的 ASIC | 通用 ASIC |
| 应对拓扑不对称 | 差 | 差 | 好 |
ECMP 的核心弱点在 AI 工作负载下被放大:AllReduce 等集合通信是持续的大流,熵极低;多条大流可能被哈希到同一条链路,造成严重不均衡,而其他链路空闲。
适用场景与局限
适用场景:
- Fat-tree / Clos 拓扑,路径等价性强
- 通用互联网流量(流数量多、单流带宽小、熵高)
- 需要低成本、高兼容性的部署环境
局限:
- 哈希极化:AI 训练场景中同一 GPU 对的 AllReduce 是持久大流,多条大流可能映射到同一链路
- 无法响应实时拥塞:某条链路过载后无法自动迁移流量
- Torus、Dragonfly 等非 Fat-tree 拓扑上,等价路径有限,ECMP 收益有限
选型建议:
- Fat-tree + AI 工作负载:优先使用 E-ECMP + QP Scaling
- 拓扑不对称或存在链路故障:使用 WCMP
- 需要全局最优:考虑自适应路由(AR)或 SRv6 源路由
参考资料
- RDMA over Ethernet for Distributed AI Training at Meta Scale(SIGCOMM 2024)- E-ECMP + QP Scaling
- Jupiter Evolving: Transforming Google's Datacenter Network(SIGCOMM 2022)- WCMP
- WCMP: Weighted Cost Multipathing for Improved Fairness(Google Research)