052、RDMA over Converged Ethernet (RoCE) 深度解析
发布时间:2026/10/14 0:59:50 锦皓数字建站
 深度解析`)
052、RDMA over Converged Ethernet (RoCE) 深度解析从一次诡异的丢包说起去年在调一个分布式存储集群,用的Mellanox ConnectX-5网卡,RoCE v2跑在25Gbps链路上。业务层反馈说偶尔出现几十毫秒的延迟抖动,但抓包看TCP层面一切正常。我一开始怀疑是CPU中断亲和性问题,调了半天没效果。后来在网卡硬件计数器里发现了一个关键线索:roce_errors和link_dropped在抖动时刻同时跳变。这才意识到问题出在RoCE的流控机制上——确切说,是PFC(优先级流控)的“死锁”前兆。这个坑让我花了整整三天。今天这篇笔记,就把RoCE从协议栈到调优踩过的坑,一次性说清楚。RoCE到底是个什么玩意儿RoCE全称RDMA over Converged Ethernet,说白了就是把RDMA的传输层(InfiniBand的RC、UC、UD服务类型)封装到以太网帧里。分两个版本:RoCE v1:直接把IB的包封装在以太网帧里,以太网类型字段是0x8915。这玩意儿只能在同一个二层广播域里跑,不能跨子网,现在基本没人用了。RoCE v2:把IB的包封装在UDP里,目标端口号4791。这样就能走三层路由了,但代价是UDP头增加了开销,而且需要网络设备支持ECN(显式拥塞通知)和PFC。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。