欢迎光临深圳市联瑞电子有限公司官网!
全国服务热线 : 4000-588-108 | 网站地图 | English 京东店铺 淘宝店铺1688店铺天猫店铺 关注LR-LINK官方微博
LR-LINK联瑞电子官网
[返回上一页]您现在的位置:首页 > 新闻中心 > 基础科普
基础科普

技术指南 无损以太网构建指南:PFC、ECN与DCQCN配置实践

2026-06-06 基础科普LR-LINK,无损以太网网卡,RoCEv2网卡,2.5G网卡,万兆网卡,25G网卡,PFC网卡,ECN拥塞控制,DCQCN配置,NAS用什么网卡,软路由网卡推荐,Intel网卡替代方案 浏览: 17
无损以太网构建指南:PFC、ECN与DCQCN配置实践
技术指南

无损以太网构建指南:PFC、ECN与DCQCN配置实践

导读

RDMA(Remote Direct Memory Access,远程直接内存访问)技术在AI训练、高性能计算和NVMe over Fabrics存储网络中的广泛应用,使无损以太网(Lossless Ethernet)成为现代数据中心的基础设施标配。RoCEv2(RDMA over Converged Ethernet v2)的性能高度依赖网络的零丢包特性——即使万分之一的丢包率,也会导致RDMA重传机制触发,引发"惊群效应"式的带宽崩溃。本文深入解析无损以太网的两大核心机制PFC(Priority Flow Control)和ECN(Explicit Congestion Notification),详解DCQCN拥塞控制算法,并提供交换机端和网卡端的完整配置实践指南。

为什么RDMA需要无损以太网

理解为何RDMA对丢包如此敏感,需要从RDMA的工作原理说起。RDMA允许一台机器直接读写另一台机器的内存,整个过程完全绕过操作系统内核,数据传输由网卡硬件直接完成,CPU无需参与。这带来了极低的延迟(微秒级)和极低的CPU开销,但也带来了一个关键限制:RDMA的错误处理机制极其简单。

在标准TCP/IP协议栈中,丢包会触发重传机制,重传在软件层面由操作系统内核处理,对应用层透明。但在RDMA中,数据传输直接由硬件执行,一旦发生丢包,RDMA的Go-Back-N重传协议会要求从丢失报文开始重传所有后续报文,即使这些报文已经被接收方成功收到。在高带宽、高并发的场景下,一次丢包可能引发数百倍数据量的重传,导致网络带宽利用率从接近100%瞬间崩溃至不足10%,这种现象被称为"RDMA拥塞崩溃(Incast Collapse)"

丢包对RDMA性能的量化影响

在100Gbps线速传输场景下,一次4KB报文的丢失会触发Go-Back-N重传,假设RTT(往返时延)为1μs,接下来这1μs窗口内发出的所有约12,500个报文都需要重传,相当于丢掉了12,500倍数据。实测结果显示,在0.1%的丢包率下,RDMA有效吞吐量仅能达到线速的约50%。这是为什么所有AI训练集群都必须使用无损网络的根本原因。

PFC(Priority Flow Control)原理

PFC(IEEE 802.1Qbb标准,优先级流控)是实现无损以太网的第一道防线。其核心思想是:当网络交换机缓冲区快满时,主动向上游发送"暂停帧",要求上游设备停止发送数据,从而避免缓冲区溢出导致丢包。

PFC与传统IEEE 802.3x Pause的关键区别:传统Pause帧会暂停链路上的全部流量,而PFC基于优先级队列(Priority 0~7,共8个),可以只暂停特定优先级的流量,不影响其他优先级的正常转发。通常将RDMA流量分配到Priority 3(高优先级),非RDMA流量分配到其他优先级,PFC只对Priority 3生效,保证RDMA无损传输的同时不影响普通TCP业务。

PFC工作流程:①数据流从发送方→交换机涌入;②交换机出口队列缓冲区填充至预设的XOFF阈值;③交换机向入口方向发出PFC PAUSE帧(包含优先级和暂停时间);④上游设备(发送方网卡或上游交换机)收到PAUSE帧后,暂停对应优先级队列的发送;⑤当交换机缓冲区降至XON阈值后,发送PFC RESUME帧恢复上游发送。整个暂停和恢复过程在微秒级别完成,对于RDMA应用来说几乎无感知。

PFC关键参数说明
XOFF阈值
触发PFC PAUSE帧的缓冲区占用阈值,建议设置为缓冲区容量的80%,留出headroom供飞行中数据落地。
XON阈值
触发PFC RESUME帧恢复发送的缓冲区阈值,通常设置为XOFF阈值的50%,防止频繁振荡(PFC oscillation)。
Headroom缓冲
PFC PAUSE帧在链路上传输期间,对端仍会发出的数据量所需的额外缓冲空间,与链路速率和RTT成正比。

ECN(Explicit Congestion Notification)原理

ECN(RFC 3168,显式拥塞通知)是无损网络的第二道防线,与PFC互补。PFC是被动的"急刹车"——在即将丢包时才触发;ECN是主动的"提前预警"——在拥塞形成之前就通知发送方降速。

ECN工作机制:①IP报头的ToS字段中有2个ECN标志位(ECT + CE),发送方在报文中设置ECT(ECN-Capable Transport)位,声明支持ECN;②网络交换机监测出口队列长度,当队列超过RED(Random Early Detection)阈值时,将报文的CE(Congestion Experienced)位置1,不丢弃报文;③接收方检测到CE标志后,通过CNP(Congestion Notification Packet)报文告知发送方;④发送方网卡(RDMA NIC)收到CNP后触发速率降低算法,减少发送速率。

ECN与PFC的互补关系:ECN在拥塞初期即开始反馈,使发送方提前降速,从根本上减少拥塞的发生概率,从而减少PFC PAUSE帧的触发频率。PFC作为最后防线,在ECN无法及时抑制拥塞时保证不丢包。两者协同工作:ECN负责"防患于未然",PFC负责"兜底保障"。

DCQCN算法详解

DCQCN(Data Center Quantized Congestion Notification)是微软研究院(MSR)与业界联合提出的针对RoCEv2网络的拥塞控制算法,已成为RDMA以太网网络的事实标准,主流高性能网卡均原生支持。

DCQCN的核心组成:

1 交换机端:RED/WRED(加权随机早期丢弃)+ ECN标记
交换机对出口队列深度进行监控,当队列深度超过ECN_MIN阈值时开始以线性递增的概率标记CE位;超过ECN_MAX阈值后以100%概率标记CE位。WRED确保ECN标记早于PFC触发,给发送方留出足够时间降速。典型参数设置:ECN_MIN = 150KB,ECN_MAX = 600KB(100G链路)。
2 接收方网卡:生成CNP(Congestion Notification Packet)
接收方RDMA网卡检测到到达报文的CE位被置1时,生成CNP报文发回发送方。CNP报文频率受min_time_between_cnps参数控制(默认值为0μs,生产环境推荐配置为4μs),避免CNP报文本身占用过多带宽。CNP使用最高优先级(Priority 7),确保拥塞信号快速到达发送方,不被低优先级流量阻塞。
3 发送方网卡:速率控制(Rate Limiter)
发送方收到CNP后,按 R_new = R_current × (1 - α/2) 降低发送速率(α由拥塞程度决定),同时启动字节计数器;在无拥塞信号的窗口内(byte_count/time_based),以线性或加倍方式逐步恢复速率(RAI和HAI阶段)。这种"快降慢升"机制在保证快速响应拥塞的同时,避免网络带宽长期欠利用。

PFC/ECN工作流程示意图

PFC / ECN / DCQCN 工作流程示意图 发送方(Sender) RDMA NIC 速率控制器 (Rate Ctrl) 发送队列 (SQ) 收到CNP后 降低发送速率 (DCQCN降速) 收到PAUSE帧后 暂停P3队列发送 (PFC机制) 无损以太网交换机 出口队列缓冲区 ECN_MAX阈值 ECN_MIN阈值 已占用缓冲区 (数据包积压) 队列 > ECN_MIN: 标记CE位(ECN) 队列接近满: 发送PFC PAUSE帧 (最高优先级) 接收方(Receiver) RDMA NIC 接收队列 (RQ) 检测到CE标志: 生成CNP报文 发回发送方 CNP优先级: P7 (最高优先级) 数据流 (RDMA报文) 数据流 (CE位已标记) CNP反馈 CNP到达发送方 PFC PAUSE帧 (暂停P3队列) PFC逐跳反压 数据报文流向 CNP拥塞反馈 PFC暂停帧 ECN CE位标记
▲ PFC/ECN/DCQCN工作流程:无损以太网三层协同机制

无损以太网配置实践

以下为在真实集群中配置无损以太网的关键步骤,分为交换机端和网卡端两部分:

交换机端关键配置(通用配置逻辑,以支持PFC/ECN的数据中心交换机为例):

# 步骤1: 全局开启PFC(优先级流控) 启用DCB协议族,开启PFC功能 # 步骤2: 为RDMA流量指定无损优先级(通常使用Priority 3) 将PFC应用到承载RoCEv2流量的优先级队列(如Priority 3) # 步骤3: 配置ECN/WRED参数 对RDMA优先级队列启用ECN标记 设置ECN_MIN阈值(建议150KB)和ECN_MAX阈值(建议1500KB) # 步骤4: 配置QoS映射(DSCP 26 → Priority 3) 将RoCEv2流量(DSCP 26)映射到对应的PFC优先级队列

网卡端配置(Linux环境,以Intel E810系列为例):

# 步骤1: 确认网卡支持RoCEv2 $ rdma link show # 步骤2: 网络接口启用PFC(通过lldptool配置DCB) $ lldptool set-lldp -i ens4f0 adminStatus=rxtx $ lldptool -T -i ens4f0 -V PFC enableTx=yes $ lldptool -T -i ens4f0 -V PFC willing=no $ lldptool -T -i ens4f0 -V PFC enabled=3 # 步骤3: 为RoCEv2流量设置DSCP到Priority映射(DSCP 26 → Priority 3) $ ethtool --set-priv-flags ens4f0 fw-lldp-agent off $ lldptool -T -i ens4f0 -V APP app=3,5,26 # 步骤4: 开启DCQCN拥塞控制(通过RDMA设备配置RoCE ToS,值为DSCP×4=104) $ mkdir -p /sys/kernel/config/rdma_cm/irdma0/ports/1 $ echo 104 > /sys/kernel/config/rdma_cm/irdma0/ports/1/default_roce_tos # 步骤5: 验证PFC/ECN统计 $ ethtool -S ens4f0 | grep -E "rx_priority|tx_priority"
AI训练集群网络
▲ 采用无损以太网的AI训练集群数据中心

常见问题与排错

Q:PFC死锁(PFC Deadlock)如何识别与避免?
A:PFC死锁发生在多条路径上的PFC背压形成环路时,导致所有节点相互等待,流量完全停滞。识别方式:通过交换机监控发现某优先级队列持续满载且无法排空,同时PFC PAUSE帧持续发送超过设定时间阈值。避免策略:①部署PFC Deadlock Detection机制(主流数据中心交换机内置支持),检测到死锁后自动丢弃触发死锁的流量;②限制PFC域的跳数(不超过3-4跳);③对网络拓扑进行优化,避免形成环路;④开启watchdog机制:在交换机上设置PFC storm protection,避免单个端口的PFC风暴影响整个网络。
Q:ECN标记阈值(ECN_MIN/ECN_MAX)如何合理设置?
A:ECN阈值的设置需要结合链路速率和RTT综合考量。通用参考:对于100Gbps链路,ECN_MIN推荐设置为100~200KB,ECN_MAX推荐为500~1500KB;对于25Gbps链路,ECN_MIN=50~100KB,ECN_MAX=200~600KB。阈值过低会导致ECN触发过于频繁,发送速率无法充分利用带宽;阈值过高则ECN反应滞后,PFC触发率增加。建议在实际环境中进行基准测试(benchmark),使用perftest工具测量RDMA带宽和延迟,根据实际性能结果微调参数。
Q:如何验证无损网络配置是否生效?
A:可通过以下方式验证:①使用ib_send_bw或ib_read_bw进行RDMA带宽压测,在全矩阵(all-to-all)通信场景下带宽应接近线速;②查看交换机PFC统计(show interface ethernet X pfc statistics),PFC PAUSE帧数量应维持在较低水平,不应持续大量触发;③通过ethtool -S查看网卡的rx/tx_pause和ecn统计计数;④在perftest测试中观察延迟是否稳定,如果出现周期性延迟抖动(jitter),通常说明PFC配置存在问题或网络拓扑存在热点。

联瑞电子RDMA网卡对无损以太网的支持

联瑞电子提供基于Intel E810和华为海思Hi1822等高性能控制器的完整RDMA网卡产品线,全面支持RoCEv2无损以太网所需的PFC、ECN和DCQCN功能:

GPU服务器内部网卡
▲ 配备高性能RDMA网卡的GPU训练服务器内部
400G

LRES1260PF-2QSFP112

  • 芯片:高性能控制器
  • 端口:双口 QSFP112 400GbE
  • 接口:PCIe 5.0 x16
  • 特性:完整DCQCN / RoCEv2
适用场景:超大规模AI训练集群、HPC万亿参数大模型训练
100G · Intel E810

LRES1014PF-2QSFP28

  • 芯片:Intel E810
  • 端口:双口 QSFP28 100GbE
  • 接口:PCIe 4.0 x16
  • 特性:PFC/ECN/DCQCN / RoCEv2 / iWARP
适用场景:AI推理集群、NVMe-oF全闪存储网络、VMware vSAN
200G 国产 · 信创RDMA

SP226D

  • 芯片:华为(自研)
  • 端口:双口 QSFP56 200GbE
  • 接口:PCIe 5.0 x16
  • 特性:RoCEv2 RDMA / 国产AI最高速率
适用场景:国产AI训练平台(鲲鹏+昇腾生态)、信创高性能存储

常见问题FAQ

Q:仅开启PFC而不配置ECN,是否可以构建无损网络?
A:技术上可行,但强烈不推荐。仅使用PFC的无损网络存在以下问题:①PFC是被动触发,只有在缓冲区将满时才发出PAUSE帧,在此之前可能已积累了大量排队延迟;②PFC PAUSE帧传播会产生"背压链式反应",在多跳网络中影响大量无辜流量;③PFC过度触发容易诱发死锁风险。ECN+DCQCN作为主动拥塞控制机制,能将PFC触发频率降低80%以上,显著提升网络的公平性和稳定性。生产环境中必须PFC+ECN组合使用。
Q:RoCEv2与InfiniBand在无损网络配置上有何不同?
A:InfiniBand(IB)使用专有协议,其无损传输由IB协议栈原生保证,不需要PFC(IB有独立的流控机制)。RoCEv2基于以太网,以太网本身不保证无损,必须依赖PFC+ECN+DCQCN来构建无损传输层。RoCEv2的优势是使用标准以太网基础设施(降低成本,方便管理),但配置和调优比IB复杂。联瑞电子的高性能RDMA网卡同时支持IB模式(配合InfiniBand交换机)和RoCEv2模式(配合以太网交换机),可根据预算和需求灵活选择。
Q:无损以太网对普通TCP业务有负面影响吗?
A:配置得当的无损以太网对TCP业务影响极小。关键是通过优先级队列将RDMA流量(Priority 3,DSCP 26)与TCP流量(其他优先级)严格隔离,PFC只对RDMA优先级生效,TCP流量不受PAUSE帧影响。但需要注意:如果PFC配置不当(如所有流量都映射到同一优先级),PFC PAUSE帧会暂停所有流量,对TCP业务产生严重影响。建议在生产环境部署前,通过仿真测试验证QoS配置的正确性。
需要专业选型建议?
联瑞电子技术团队提供一对一选型咨询,助您找到最优方案
立即咨询 →
粤ICP备18078389号      Copyright © All Rights Reserved. 深圳市联瑞电子有限公司 版权所有
网安备案标识

粤公网安备 44030602003563号

微信二维码关注官方微信
微信二维码关注官方微信
服务电话

服务热线:
4000-588-108