跳到主要内容

Packet Spraying 报文级负载均衡

Packet Spraying(报文喷洒)将每个单独的报文(而非整条流)分散到所有等价路径上,是链路利用率最高的负载均衡策略,也是 Ultra Ethernet 1.0(2025 年 6 月)定义的默认负载均衡方式。

基本原理

ECMP 以流为单位选路(一条流始终走同一条路径),而 Packet Spraying 以报文为单位选路——同一流的连续报文可以走不同路径。

Ultra Ethernet 1.0 通过标准化的 EV(Entropy Value)字段实现端点控制的 Packet Spraying:

  1. NIC 为每个报文生成或递增 EV 值,写入报文头
  2. 交换机按 EV 字段(而非 5 元组哈希)选择转发路径
  3. 接收端 NIC 配备重排序缓冲,将乱序报文恢复正确顺序
  4. 上层协议(RDMA)收到有序数据流

这一设计将路径选择的控制权从交换机转移到发送端 NIC,交换机只需按 EV 值简单转发,无需特殊 ASIC 支持。

算法细节

与自适应路由的核心区别

维度自适应路由(AR)Packet Spraying
决策位置交换机侧端点(NIC)侧
决策依据实时队列深度EV 字段(端点控制)
交换机需求专用 AR ASIC通用(只需按 EV 转发)
路径覆盖动态选最优路径均匀覆盖所有路径

AR 在交换机侧感知拥塞、选最优出口,Spraying 在端点侧主动分散、不感知拥塞。

REPS(Recycled Entropy Packet Spraying)

REPS(arxiv 2407.21625)是对基础 Packet Spraying 的增强:

  • 当检测到链路故障时,回收故障链路对应的 EV 空间,将流量重定向到健康链路
  • 故障检测和重路由时延 < 100 微秒,远快于传统路由收敛

乱序问题的处理

Packet Spraying 必然产生报文乱序。处理方案:

NIC 侧重排序缓冲:接收 NIC 为每条流维护接收窗口,缓存提前到达的报文,等待缺失的报文后按序交付。额外的内存占用与最大在途数据量成正比。

协议适配

  • NVIDIA ConnectX 的 RDMA Write Only 模式可部分适配 Spraying(无需严格有序投递)
  • UEC 1.0 定义了专门的乱序处理机制,要求 NIC 具备相应重排序能力

适用条件

Packet Spraying 在以下条件下能发挥最大效益:

  1. 路径数量多:等价路径越多,均匀分散效果越好(典型场景:Fat-tree 中间层有大量等价路径)
  2. 流量模式均匀:AllReduce、AllToAll 等对称集合通信天然适合;不对称 P2P 效果较差
  3. 消息粒度大:每条消息的报文数足够多,才能充分利用多条路径
  4. 重排序能力:接收 NIC 必须具备足够的重排序缓冲

不适合 Packet Spraying 的场景:

  • 路径只有 1-2 条(无意义)
  • 对延迟极敏感且消息很小(乱序恢复引入额外延迟)
  • 使用传统 RoCEv2 且 NIC 不支持重排序(数据损坏风险)

优点与缺点

优点

  • 链路利用率最高——所有等价路径均匀承载流量,彻底消除哈希极化
  • 端点控制,无需网络侧硬件 AR 支持,降低交换机成本
  • REPS 可在链路故障时 < 100 微秒完成重路由

缺点

  • 严重的报文乱序:需要 NIC 侧配备重排序缓冲,增加 NIC 复杂度和内存开销
  • 需要新一代 NIC 支持 EV 字段写入和重排序
  • UEC 硬件预计 2025 年底至 2026 年初出货,目前(2026 年初)仍处于早期部署阶段

适用场景与局限

适用场景

  • Ultra Ethernet 1.0 部署环境(EV 字段标准化)
  • Fat-tree 拓扑,路径多样性丰富
  • 对带宽利用率要求极高的大消息 AllReduce/AllToAll
  • 代表部署:Cisco Nexus 9000(NX-OS 10.5+ 支持 per-packet spraying)

局限

  • 传统 RoCEv2 环境(无 UEC 支持)难以部署
  • 在路径数量少的拓扑(如 Torus、Dragonfly 组内)收益有限
  • 与 ECMP/AR 相比,产业生态和运维工具尚不成熟

参考资料