这里采用常见的QSFP28 RoCEv2网络的协议栈介绍涵盖从物理层到应用层的每一层封装、关键机制与部署要点。一、协议栈全景概览RoCEv2 的核心设计哲学是在标准以太网基础设施上承载 InfiniBand 的 RDMA 语义。它通过将 IB 传输层封装在 UDP/IP 中实现了跨子网路由能力同时保留了 RDMA 的零拷贝、内核旁路与 CPU 卸载特性。二、逐层协议栈详解L0NIC 硬件卸载层Hardware Offload这是 RoCEv2 实现低延迟的关键。RDMA NIC如 NVIDIA ConnectX-5/6/7、Intel E810在硬件中完成以下全部操作报文组装从 BTH 到 Ethernet 的所有头部在 NIC 内部生成ICRC 计算InfiniBand 循环冗余校验4 字节DMA 引擎直接将数据从用户空间内存 DMA 到远程主机的内存区域用户空间应用通过 Verbs API 提交 Work Request 后数据路径完全不经过操作系统内核实现真正的零拷贝。L1物理层QSFP28QSFP28 作为物理承载介质提供 100Gbps 的物理带宽参数规格电接口CAUI-44×25.78125 Gbps NRZ光接口100GBASE-SR4MPO-12/ LR4LC/ PSM4 / CWDM4编码NRZ不归零编码功耗3.5W – 4.5W热插拔支持QSFP28 端口可向后兼容 QSFP40G模块实现平滑迁移。L2以太网数据链路层RoCEv2 在标准以太网帧上运行但需启用以下关键扩展机制标准作用PFCPriority Flow ControlIEEE 802.1Qbb基于优先级的逐跳流控防止缓冲区溢出丢包ETSEnhanced Transmission SelectionIEEE 802.1Qaz带宽分配确保 RDMA 流量优先VLAN TagIEEE 802.1Q携带 3-bit PCP 优先级字段通常 RoCEv2 流量标记为 Priority 3关键配置PFC 必须在 RDMA 流量所在的优先级上启用否则 RoCEv2 在拥塞时会发生丢包导致 RDMA 重传Go-Back-N严重损害性能。L3IP 网络层RoCEv2 使用标准 IPv4/IPv6 头部这是其与 RoCEv1仅 L2的根本区别路由能力可跨三层子网通信支持标准 IP 路由协议OSPF/BGP/ECMPECNExplicit Congestion NotificationIP 头部的 ECN 位bit 6-7用于拥塞信号传递交换机检测到拥塞时标记 ECN11CECongestion Experienced接收端 NIC 生成 CNPCongestion Notification Packet回传发送端发送端根据 DCQCNDatacenter Quantized Congestion Notification算法降速DSCP用于区分服务类别通常 RoCEv2 流量标记为 DSCP48CS6L4UDP 封装层RoCEv2 使用 UDP 作为承载协议而非 TCP字段值/说明目的端口4791固定分配IANA 注册为 RoCEv2源端口动态分配但在一个连接中保持固定用于区分不同 RDMA 流校验和通常设为 0x0000由 NIC 硬件处理或完全禁用为什么用 UDP 而非 TCPUDP 无连接、无状态避免了 TCP 的握手、滑动窗口、拥塞控制等复杂机制可靠性由 IB 传输层BTH PSN自行管理实现更高效的 Go-Back-N 重传避免了 TCP 内核协议栈的处理延迟支持真正的内核旁路L5InfiniBand 传输层BTH这是 RoCEv2 的核心直接继承自 InfiniBand 架构。BTHBase Transport Header包含字段位宽功能OpCode8 bits传输服务类型RC/UD/RD/UC 操作类型SEND/READ/WRITE/ACKS (Solicited Event)1 bit请求响应端产生事件M (MigReq)1 bit迁移请求标志Pad2 bits填充字节数TVer4 bits传输头版本Partition Key16 bits逻辑分区键类似 VLAN 的隔离机制Destination QP24 bits目的队列对号类似 TCP 端口但包含 Send/Recv 队列对A (AckReq)1 bit应答请求标志PSN24 bits包序列号Packet Sequence Number用于丢包检测与排序BTH 之后可跟随扩展传输头ETH如 RETHRDMA Extended Transport Header用于 READ/WRITE 操作携带虚拟地址、R_Key 和数据长度。L6RDMA 操作层定义 RDMA 的四种核心操作操作类型说明SEND/RECV双边操作类似消息传递发送方 SEND接收方需预先 POST RECVWRITE单边操作发送方直接写入远程内存无需接收方 CPU 参与READ单边操作发送方直接从远程内存读取数据ATOMIC原子操作支持 Fetch-and-Add、Compare-and-Swap 等原子内存操作Queue Pair (QP)是 RDMA 通信的基本端点包含Send Queue (SQ)发送工作请求队列Receive Queue (RQ)接收工作请求队列Completion Queue (CQ)完成事件队列异步通知L7应用层Verbs API应用通过libibverbs或 rdma-core库调用 Verbs API// 典型 RDMA WRITE 流程ibv_post_send(qp,wr,bad_wr);// 提交工作请求// NIC 硬件完成封装 BTH → UDP → IP → Eth → 物理发送// 对端 NIC 解封装DMA 数据到目标内存生成 ACK/CQE应用无需关心下层协议细节由 NIC 硬件完成全部封装/解封装。三、RoCEv2 数据包格式Wire Format------------------------------------------------------------- | Ethernet Header (14B) | | - Dst MAC (6B) | Src MAC (6B) | EtherType0x0800 (2B) | ------------------------------------------------------------- | IP Header (20B) | | - Version/IHL | TOS(DSCPECN) | Total Length | ... | | - ProtocolUDP(17) | Src IP | Dst IP | ------------------------------------------------------------- | UDP Header (8B) | | - Src Port (dynamic) | Dst Port4791 | Length | Checksum0 | ------------------------------------------------------------- | IB Base Transport Header (BTH) (12B) | | - OpCode | S | M | Pad | TVer | P_Key | Dst QP | PSN ... | ------------------------------------------------------------- | [Extended Transport Header] (optional, variable) | | - RETH (16B): VAddr | R_Key | DMALen (for READ/WRITE) | ------------------------------------------------------------- | Payload (0 ~ PMTU bytes, typically 1024/4096) | ------------------------------------------------------------- | ICRC (4B) - InfiniBand CRC | ------------------------------------------------------------- | FCS (4B) - Ethernet Frame Check Sequence | -------------------------------------------------------------最小报文开销14 (Eth) 4 (FCS) 20 (IP) 8 (UDP) 12 (BTH) 4 (ICRC) 62 字节不含 Payload。四、Lossless 机制PFC ECN DCQCNRoCEv2 在以太网上实现无损传输依赖三层协同机制1. PFCPriority Flow ControlIEEE 802.1Qbb逐跳流控当交换机缓冲区达到阈值时向上游发送 Pause 帧优先级隔离仅暂停 RDMA 流量所在的优先级如 Priority 3不影响其他流量风险配置不当会导致PFC Storm全网暂停风暴引发尾延迟爆炸2. ECNExplicit Congestion NotificationRFC 3168早期拥塞信号交换机在即将拥塞时标记 IP 头部的 ECN 位而非直接丢包端到端反馈接收端 NIC 生成 CNPCongestion Notification Packet回传发送端降速根据 DCQCN 算法调整发送速率3. DCQCNDatacenter Quantized Congestion Notification基于 CNP 的端到端拥塞控制算法发送端维护速率状态机根据 CNP 频率进行加性增/乘性减AI/MD避免 PFC 的过度反压实现更平滑的拥塞控制典型阈值配置100G 端口ECN 标记开始~150 KB 缓冲区ECN 100% 标记~3 MBPFC XOFF暂停略高于 ECN 全标记阈值PFC XON恢复低于 XOFF 并保留迟滞五、与 InfiniBand 协议栈对比维度RoCEv2 (QSFP28 Ethernet)InfiniBand (QSFP28/QSFP56)物理层标准以太网 QSFP28专用 IB QSFP28/QSFP56链路层Ethernet PFC VLANIB Link Layer Credit-Based FC网络层IPv4/IPv6可路由IB GRHGlobal Route Header有限路由传输层IB BTH封装在 UDP 中IB BTH原生流控机制PFC ECN DCQCN需配置Credit-Based原生无损无需配置延迟2–5 μsp501–2 μsp50运维复杂度中等需调优 PFC/ECN高需专用 IB 管理员多租户支持EVPN-VXLAN 叠加有限Partition Key 隔离供应商多厂商Arista/Cisco/Juniper Mellanox/Intel主要 NVIDIA/Mellanox成本低 20–30%较高六、部署关键 checklist交换机配置启用 PFCPriority 3、ECN、ETS校准缓冲区阈值NIC 配置加载 RDMA 驱动如 MLNX_OFED启用 RoCEv2配置 DCQCN网络拓扑推荐 Leaf-Spine避免超订Oversubscription 3:1QoS 策略DSCP 标记 VLAN PCP 优先级映射一致监控关注 PFC Pause 帧计数、ECN 标记包比例、CNP 速率固件对齐NIC 固件、交换机固件、GPU 驱动、NCCL 版本需兼容七、协议栈架构图总结QSFP28 RoCEv2 方案的本质是用标准以太网的物理基础设施承载 InfiniBand 的 RDMA 语义。通过 UDP/IP 封装实现可路由性通过 PFCECNDCQCN 实现无损传输通过 NIC 硬件卸载实现零拷贝与低延迟。其协议栈的复杂性主要体现在拥塞控制与流控的协同调优而非协议本身的设计。RoCEv2 是当前大规模 AI/HPC 集群最具成本效益的网络方案。