多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

IEEE 802.3cm-2020详解:400G光模块的DR4/FR4与PAM4技术

IEEE 802.3cm-2020详解:400G光模块的DR4/FR4与PAM4技术 简介IEEE Std 802.3cm-2020是IEEE正式发布的以太网修订标准属于802.3系列针对400G多模光纤传输的第七修正案面向数据中心与高速光互连场景规定了400Gb/s在短距离多模光纤上的物理层与管理参数定义了400GBASE-SR8和400GBASE-SR4.2两种光接口。资源为来自IEEE Xplore的官方PDF标准全文共1个文件压缩包大小仅1.44MB便于快速下载与本地查阅。内容包含新增的Clause 150以及PCS、PMA、PMD子层规范、前向纠错FEC、光模块接口、功率预算与互操作性要求明确了在4对和8对多模光纤上支持至少100米传输的技术细节。对于从事400G光模块、交换机端口或数据中心网络方案研发的工程师以及需要跟踪IEEE 802.3cm标准进展的测试与研究人员该文档都是必备的一手参考资料。目前该资源已有687人学习结合完整标准原文可帮助读者准确理解修订差异并快速落地到产品设计与验证中。1. IEEE Std 802.3cm-2020 到底管了什么开数据中心的人应该都遇到过这类提问QSFP-DD 光模块标的 400G为什么在机房里拉 500 米和拉 2 公里用的是不同型号为什么有的模块叫 DR4有的叫 FR4价格差出一截却都能插同一个交换机端口答案就藏在 IEEE Std 802.3cm-2020 这个标准修正案里。2020 年发布的它专门为 200G 和 400G 以太网在单模光纤上的中短距离传输定义了新一代物理层核心是四类 PMD400GBASE-DR4、400GBASE-FR4、200GBASE-DR4、200GBASE-FR4。它解决的是机房和园区里“怎么低成本、低功耗地把 400G 跑起来”的问题适合光模块研发、网络运维和做链路预算的硬件工程师。2. 为什么 400G 不再走 8 根光纤PAM4 与 RS-FEC 的取舍2.1 为什么 400G 宁可做 4×100G也不做 16×25G在 802.3cm-2020 出现之前400G 的物理层路线并不是现在这个样子。IEEE 802.3bs 在 2017 年定义了 400GBASE-FR8 和 400GBASE-LR8那是 8×50G PAM4也就是 8 个波长或者 8 根光纤各跑 50G。到了 802.3cm目标被重新定成 4 个通道每个通道 100G调制格式仍然用 PAM4。为什么偏要往更少的通道上挤最直接的原因是端口密度和功耗。如果回到 NRZ 时代400G 需要 16 条 25G 通道一个 400G 端口要处理 16 对收发PCB 走线、光模块封装、电连接器全部被通道数卡死。改用 PAM4 之后每个符号携带 2 bit符号率砍半4 条通道就能凑够 400G。802.3cm 选的每通道 100G 这条线符号率是 53.125 GBd四个通道加起来就是 212.5 GBd 的总符号率对应约 425 Gbps 的线路总速率。多出来的 25 Gbps 不是白给的是给 RS-FEC 开销留的位置。这样一来光模块里只需要 4 个激光器和 4 个探测器封装可以做小功耗也能压到 10W 上下的量级。通道数减少的代价是信号质量。PAM4 有 4 个电平电平之间只有 NRZ 的 1/3 间隔同样功率下信噪比直接掉一截。再加上 53.125 GBd 的中短距离传输要过色散、反射和带宽受限光模块预算非常紧。这就是为什么 802.3cm 强制每个 PHY 都要配 FEC而且 400G 一侧用的是 RS-FEC 544/514也就是常说的 KP4。2.2 RS-FEC 544/514把 2km 劣化链路救回来的关键一步RS-FEC 544/514 是 802.3bs 引入、802.3cm 继承下来的一层纠错机制。名字里的 544 和 514 指的是编码后的符号总数和信息符号数每个符号 10 bit。校验符号有 544-51430 个所以最多能纠正 15 个错误符号。因为一个符号错误可能只影响个别比特也可能打掉整组比特它在抵抗突发错误上比简单的前向纠错强得多。对 400G 这类 53.125 GBd 的 PAM4 链路传统做法是保证光模块指标好到接收机直接能解出干净信号但那意味着激光器要贵、DSP 要强、良率要低。802.3cm 的做法是承认链路没那么干净然后靠 FEC 兜底。模块里常见的告警门限是 pre-FEC BER 2.4e-4只要纠错前的业务误码率不超过这个值纠错后就能压到 1e-15 以下对业务来说几乎等于零误码。这个门限放宽了光模块的发射功率和接收灵敏度要求直接拉低了器件的成本。我一般会跟做测试的同事强调一件事判断 400G 链路好坏不能只看纠错后有没有报错因为很多模块根本不会把纠错后的残余误码暴露出来。要盯的是 pre-FEC BER。一旦它从 1e-5 往 2.4e-4 爬哪怕业务还没断链路余量也已经快见底了。这正是 802.3cm 后面的测试点设计和链路预算规范的用意。2.3 802.3cm-2020 和 802.3bs、802.3cd、802.3cu 的分工边界802.3cm-2020 不是独立的标准而是对 IEEE Std 802.3-2018 的修正案。把最近几年的 802.3 家族捋一遍就能看清它的位置。802.3bs 做了 400G 的框架包括 8×50G 的 FR8/LR8802.3cd 定义了 50G PAM4 单通道和对应的 100G、200G 组合802.3cm 接过了 200G/400G 在单模光纤上的任务放弃 8 通道路线改推 4×100G 和 4×50G再往后 802.3cu 又做了单波长 100G。这几个标准之间有很强的衔接关系。802.3cm 的 200GBASE-FR4 和 400GBASE-FR4 在电口侧复用 802.3cd 的 50G PAM4 电接口逻辑激光器波长规格则跟 802.3ba 时代的 LAN-WDM 网格相关。实际选型的时候如果你看到某款 2km 的 400G 模块同时兼容 400GBASE-FR4 和 400GBASE-LR4 的某些测试项不要觉得奇怪这是 802.3cm 对既有 LR4 规范做了一轮修订把同一套预算思想补齐了。3. 四种 PMD 逐个拆开DR4、FR4 到 200G 的差异3.1 400GBASE-DR4500m 机房的低功耗主力400GBASE-DR4 是 802.3cm 里讨论度最高的一种 PMD。它用 4 根并行单模光纤完成 4×100G 的传输每根光纤一个方向。注意 DR4 是并行光纤不是波分复用发射端和接收端各占 4 芯一共 8 芯所以模块封装上常见的是 MPO 接口。它的目标距离是 500 米。这个数字不是拍脑袋定的而是对应数据中心里同一楼层的机房互联、TOR 到叶交换机之间的主干链路。500 米距离下链路预算相对宽松光模块不需要很贵的窄线宽激光器甚至可以用不加制冷的普通 1310nm 窗口激光器。这也是 DR4 模块通常比同速率 FR4 便宜的原因之一。功耗上的优势在 400G 时代非常明显。400GBASE-DR4 的量产模块普遍能把功耗压到 10W 左右而早期的 8 通道方案动辄 14W 以上。对于 128 端口的大机柜每端口省 4W整机柜就是 500W 的差距散热和电费都跟着省。所以只要你的链路距离确实在 500m 以内DR4 基本是首选。3.2 400GBASE-FR4CWDM 波长把 2km 校园网拉通400GBASE-FR4 对应的距离是 2km正好覆盖从弱电机房到另一栋楼的校园网或者园区汇聚场景。它不再用 4 根并行光纤而是把 4 个 100G 信号通过不同波长复用进一对光纤里双工 LC 接口就能搞定。802.3cm 给 FR4 指定的波长不是随便选的。四个通道的标称中心波长分别是 1295.56nm、1300.05nm、1304.58nm 和 1309.14nm相邻间隔约 4.5nm。这个波长间隔比 20nm 的传统 CWDM 网格密得多属于 LAN-WDM 那一套。这个细节经常被忽略我在这里特别点出来。市面上跑 100G 的 CWDM4 模块波长是 1271、1291、1311、1331看起来也是四个波长但和 802.3cm 的 FR4 不互通。你要是按 CWDM4 的波长去测 FR4 链路插损不见得超标但接收机滤波器带宽和波长失配会导致很大的灵敏度代价最后表现为光功率明明够误码就是压不下去。3.3 200GBASE-DR4 与 200GBASE-FR4给不需要 400G 的机房一个省钱档200GBASE-DR4 和 200GBASE-FR4 是 802.3cm 在同一套框架下推出的半速率版本。它们都是 4×50G PAM4每通道符号率 26.5625 GBd距离分别对应 500m 和 2km。为什么在已经有 400G 的情况下还要定义 200G因为很多接入层交换机只需要 200G 上联如果硬上 400G 模块带宽浪费价格还高。200G 这侧的链路预算比 400G 松了一倍。符号率低色散代价小接收机对高频响应的要求也低所以同样的激光器平台可以做 200G 模块也可以用两路 200G 拼一个 400G 模块。实际设备里很多 400G-DR4 光模块内部就是两套 200G-DR4 的光引擎。这就是 802.3cm 选择 4×50G 作为 200G 基准的原因生产上可以共用产线。FEC 方面200G 这侧同样走了 RS-FEC 的思路。虽然单通道 50G 的信噪比压力比 100G 小但为了和交换机的纠错逻辑统一绝大多数模块还是默认按 KP4 的配置来跑。如果你在交换机上手动关掉 FEC200G 也不是不能通但那完全是在刀尖上走路一个连接器脏了就能让链路频繁闪断生产环境不建议这么干。3.4 选型对照表距离、通道数、波长和 FEC 的取舍把四种 PMD 放在一张表里看选型逻辑会清楚很多。PMD 类型通道数每通道速率调制格式有效距离波长方案常见光纤接口400GBASE-DR44100GPAM4500m1310nm 窗口并行MPO400GBASE-FR44100GPAM42km1295.56~1309.14nm双工 LC200GBASE-DR4450GPAM4500m1310nm 窗口并行MPO200GBASE-FR4450GPAM42km1295.56~1309.14nm双工 LC表里没有写 FEC 那一列因为 802.3cm 这四种 PMD 在 PCS 层都依赖 RS-FEC400G 侧标准配置是 RS(544,514) 的 KP4 算法200G 侧也遵循同系列 RS-FEC 框架。选型时真正需要你判断的其实是距离和光纤资源机房内部两条光纤就能通的用 DR4只有一对光纤可用就得上 FR4。如果距离超过 2km这两种 PMD 都不合法得往 802.3bs 的 LR4/LR8 或者 802.3cu 的单波长方案上靠。4. 把标准翻成测试步骤链路预算与 TDECQ 现场计算4.1 链路预算TP1 到 TP4 的四步算账做链路预算不用把 802.3cm 的规范条文全背下来我习惯把它简化成四步先确定测试点再把发射机、光纤、连接器和接收机的余量逐项列出来最后看总余量是不是正数。标准里常用的测试点符号是 TP1 到 TP4TP1 是发射机内部信号点TP2 是模块光口输出TP3 是接收端光口输入TP4 是接收机恢复后的电信号点。现场能直接测的通常是 TP2 和 TP3。第一步从光模块手册里找出发射端的 OMA这里说的是光调制幅度不是平均光功率。很多工程师拿平均光功率算链路会高估余量因为平均功率包含了直流分量而 PAM4 信号真正有用的部分是交流摆幅。第二步测 TP3 的接收光功率同样建议读 OMA 口径。第三步算链路里光纤和连接器的总插损。第四步把插损加上色散代价、反射代价和老化余量从发射 OMA 里减掉再跟接收灵敏度的 OMA 值比。具体的经验参数我一般这么取1310nm 单模光纤按 0.35~0.40dB/km 算MPO 连接器一对按 0.3~0.5dB 算LC 连接器一对按 0.2~0.3dB 算PAM4 信号的色散代价在 53.125GBd 下至少预 0.5~1dB。把这几项加起来再用发射 OMA 减接收灵敏度如果还剩 1dB 以上链路比较稳剩不到 0.5dB就得开始怀疑某个连接器或者尾纤有脏污了。4.2 TDECQ 测量的思路没有一致性实验室时怎么估TDECQ 是 802.3cm 这类 PAM4 标准里最核心的发射机指标全称是发射和色散眼闭合代价量化的是发射信号经过一段标准色散光纤后眼图相对理想情况闭合了多少。简单说TDECQ 越大发射机质量越差留给链路的余量越少。严格测 TDECQ 需要符合标准要求的采样示波器、参考接收机和均衡算法这不是所有运维团队都有的设备。我的经验是现场没有一致性测试仪时可以做一个简化判断把模块输出的眼图直接抓下来看 PAM4 四个电平的分布。如果 4 个电平清晰分离、上中下三个眼的高度接近TDECQ 通常差不到哪去。如果中间两个电平几乎贴在一起只是上下两个眼还算能看那 TDECQ 大概率不太乐观这种模块就算光功率正常也容易在高温下突然翻车。另一个近似办法是看消光比。PAM4 信号最上和最下电平的比值如果偏低说明调制深度不够TDECQ 往往跟着偏高。这不是正规测量但能帮你在没有仪表的情况下筛掉一批劣质模块把送测的范围缩小。4.3 哪些数字必须信模块手册哪些可以自己测测试时最容易犯的错是拿自己测得的结果直接跟标准表里的一致性限值去比。802.3cm 的规范表里很多限值对应的是 TP2、TP4 这种明确测试点的定义你的仪表带宽、滤波器、参考接收机和标准里的定义不一定一致测出来的数字不具备可比较性。我自己会做一个区分发射光功率、接收光功率、插损、波长这些可以直接测因为仪表影响小但 OMA、TDECQ、接收灵敏度这类指标强烈建议以模块手册标注为准除非你的测试台架完整复刻了标准 Annex 里的参考测试条件。实际项目中我们更多是用手册数字做预算、用现场测试数字做趋势监控而不是试图在现场复现一致性测试。5. 802.3cm-2020 落地中的 5 个高频翻车点5.1 把 DR4 当 FR4 用硬拉 2km 链路现象400GBASE-DR4 模块接到 1.5km 的光纤链路上光功率测出来正好在接收范围内业务时通时断pre-FEC BER 经常冲上 1e-3甚至出现纠错失败丢包。原因DR4 的 500m 距离是按链路预算算出来的上限。超过之后色散代价和连接器额外损耗会把余量吃光。PAM4 信号对功率损耗和色散都比 NRZ 敏感看起来功率够的数并不代表链路够用。解决先确认传输距离。超过 500m 就换 400GBASE-FR4或者改用 802.3bs 的 LR4 产品。如果距离刚好卡在 500m 附近把链路里所有连接器重新清洁一次再看 pre-FEC BER 能不能压回 1e-6 以下压不回去就说明模块本身的 TDECQ 余量不足换个批次再试。5.2 FEC 配置不匹配交换机协商成 KP4模块出厂却是另一个配置现象某型号 200GBASE-FR4 模块插进交换机端口能 link up跑流量时 FEC 纠错计数持续增长偶尔出现 uncorrectable codewords。原因交换机侧默认开启的 RS-FEC 参数和模块内部实际配置不一致。有些 200G 模块为了兼容老设备出厂默认关掉了 FEC 或者用了不同的纠错规格而交换机侧还在按 KP4 的门限检查误码。解决登录交换机查看当前端口 FEC 模式手动指定为 IEEE 802.3cm 对应的 RS-FEC 配置再把模块读出的 FEC capability 对一遍。变更后观察 30 分钟 FEC 计数如果 corrected codewords 数量稳定但 uncorrectable 一直为 0说明配置正确。5.3 TDECQ 测出来很好看链路却还是闪断现象送测模块的 TDECQ 数值远低于标准限值但实际部署后高温环境下一跑大流量就闪断。原因TDECQ 测的是标准参考条件下的发射机质量不包含模块内部激光器驱动电路的温漂和电源纹波。现场机柜温度上来后未经充分老化的模块会出现波长漂移或者调制摆幅下降TDECQ 随之恶化。解决在选型阶段加做高温老化测试把模块放在 70℃ 环境箱里跑满 400G 双向流量连续 48 小时记录 pre-FEC BER。凡是 BER 随温度明显抬升的批次直接退货。这个方法比单纯看 TDECQ 数值更能反映真实可靠性。5.4 混用 QSFP-DD 和 OSFP 的尾纤额外插损吃掉预算现象现场同时采购了 QSFP-DD 和 OSFP 两种封装的 400G-DR4 模块用了一批通用 MPO 跳线互连结果部分端口的链路余量从 2dB 掉到 0.3dB。原因QSFP-DD 和 OSFP 的 MPO 接口物理尺寸一样但光口导光结构和光纤排布未必相同非专用跳线可能引入额外损耗和反射。短距离并行光纤链路的连接器次数不止一对累计插损很容易超过预期。解决按模块封装分开采购对应规格的 MPO 跳线并在链路预算里按实际连接器对数把插损算进去。如果已经混用了把链路逐段重新测一遍损耗找出超过 0.75dB 的连接点更换后重测预 FEC BER 作为最终判断。5.5 只盯接收光功率漏看 OMA 和消光比现象链路接收光功率在指标范围内普通 ping 也通但流量一大就丢包查了很久没找到原因。原因平均光功率没有反映调制信号质量。PAM4 信号里有用的是电平间的摆幅如果模块消光比偏低平均功率正常但有效信号幅度不够接收机 DSP 均衡后仍然解不出稳定码流。解决测试时同时记录平均光功率、OMA 和消光比三个数。OMA 用模块手册的灵敏度做差值计算消光比低于模块规格下限的直接换模块。特别是对二手模块和返修模块这一步不能省。6. 没有一致性测试仪用 pre-FEC 误码率当链路晴雨表没有几百万的采样示波器链路质量怎么盯我的做法是把交换机的 FEC 统计当成晴雨表每天都看。虽然不能像一致性测试那样精确量化 TDECQ但 pre-FEC 误码率的趋势能提前几天暴露出光模块老化或者连接器污染的问题。先从交换机管理口拉出端口统计。不同厂商的命令不太一样但底层数据大多分两类一类是 corrected codewords也就是 FEC 纠回来的错误码字另一类是 uncorrectable codewords即纠不回来的丢包。我关注的第一个阈值是 corrected codewords 的增长速度。如果它每小时稳定增长且增长量相当于不到每分钟一个链路余量一般还行。一旦增长速率达到每分钟几十个以上就要警惕了这通常意味着 pre-FEC BER 已经接近 1e-7 到 1e-6链路预算余量可能只剩 1dB 以内。光看交换机统计还不够我会每隔一个月记录一次端口接收光功率和温度。把光功率、FEC 计数、模块温度三个数字放一起看趋势比任何单次测量都有用。光功率每下降 0.3dBFEC 计数就会肉眼可见地涨这时候去把 MPO 和 LC 连接器重新擦一遍往往能救回来。最怕的是 FEC 计数狂涨而光功率没变化那通常是激光器老化导致的 OMA 缩水位置通常在发射端换跳线也没用得直接换模块。最后分享一个我的工作习惯每次开新链路先在业务低峰期把端口跑满流量 15 分钟记录下当时的 corrected codewords 基线值。以后每次维护都拿这个基线做参照而不是拿标准里的绝对门限做判断。因为不同模块批次、不同光纤路径的基线差别很大只有相对自身基线的恶化才是真正有价值的信号。这个习惯让我在好几年里避免了多次半夜被叫起来处理闪断希望帮到你。本文还有配套的精品资源点击获取
返回列表