第二讲:物理层基础——DCI链路类型、光模块选型与FEC机制

各位同学,咱们接着聊。上一讲我们把RoCE跨数据中心互联的整体架构捋了一遍。今天要扎进物理层,看看那些真正决定信号能不能“跑得远、跑得稳”的硬核东西。

说实话,很多做RoCE方案的朋友,上层协议调得飞起,一到物理层就抓瞎。我当年也踩过这个坑——光模块选错,FEC没配好,结果丢包率直接爆炸。嗯,咱们今天就把这些坑一个个填上。

一、DCI链路类型:DWDM vs 裸光纤

先问个问题:两个数据中心之间,物理上怎么连?

最常见的就两种:裸光纤DWDM。说白了,一个是你自己拉根线,另一个是租运营商的波分通道。

1. 裸光纤

裸光纤就是运营商只给你提供一对物理光纤,两端你自己放光模块。好处是延迟最低,没有中间设备引入的抖动。我有个客户,两个机房距离不到10公里,直接拉了裸纤,跑400G RoCE,延迟稳定在0.1ms以内。

但裸光纤有个大问题:距离受限。一般超过40公里,信号衰减就扛不住了。而且你得自己维护光纤链路,断了就得等运营商来修,那叫一个煎熬。

适用场景:同城双活、园区内互联,距离通常小于40km。

2. DWDM

DWDM(密集波分复用)就高级多了。它把一根光纤分成几十个不同波长的通道,每个通道跑一路信号。我见过最狠的,一根光纤跑了80路100G,总带宽8T。

DWDM的好处是距离远——配合光放大器,几百公里没问题。而且自带保护倒换,主路断了自动切备用。但代价是贵,而且引入额外的延迟(每经过一个OEO转换,大约增加几微秒)。

注意:DWDM设备的光层延迟虽然小,但如果你用了FEC重传或者协议转换,延迟会显著增加。做RoCE时,务必确认端到端延迟预算。

我个人习惯:40km以内用裸纤,超过40km上DWDM。当然,如果你预算充足,直接上DWDM也没毛病,毕竟管理方便。

二、光模块选型:100G/400G/800G

光模块这东西,我每次选型都头大。速率、距离、功耗、成本,四个维度互相打架。咱们一个一个说。

1. 100G光模块

100G现在算是“老将”了。主流是QSFP28封装,有SR4(100m)、LR4(10km)、ER4(40km)几种。我建议:如果链路距离超过10km,优先选LR4。为什么?因为ER4虽然能跑40km,但光功率预算紧张,容易受光纤质量影响。

我记得有一次,客户非要省成本用ER4跑35km,结果FEC纠错率飙到1e-4,丢包率直接超标。后来换成LR4加光放大器,问题解决。

2. 400G光模块

400G是当前RoCE互联的主力。封装是QSFP-DD或OSFP。常见的有:

  • FR4:2km,单模,4路100G LAN-WDM
  • DR4:500m,单模,4路100G PAM4
  • LR4:10km,单模,4路100G

这里有个坑:FR4和DR4不能混用。虽然都是400G,但波长和调制方式不同。我见过有人把FR4模块插到DR4端口上,结果光功率正常但链路死活起不来——因为FEC参数不匹配。

选型建议:数据中心内部用DR4(便宜、功耗低),DCI互联用FR4或LR4。如果距离超过10km,考虑400G ZR(相干光模块),但成本翻倍。

3. 800G光模块

800G是未来的方向,现在已经开始小规模部署了。主流是QSFP-DD800或OSFP,用8路100G PAM4。说实话,800G的功耗是个大问题——一个模块轻松上15W,散热搞不好就降速。

我目前只在头部云厂商的骨干DCI中见过800G。普通企业,我建议先上400G,等800G成熟了再升级。你想想看,现在800G光模块的价格,够买三个400G了。

速率 封装 典型距离 功耗 适用场景
100G QSFP28 100m-40km 3.5W 存量DCI、短距互联
400G QSFP-DD 500m-10km 8-12W 主流DCI、RoCE互联
800G QSFP-DD800 500m-2km 15-18W 骨干DCI、超大规模

三、FEC机制:前向纠错

FEC这东西,说白了就是给信号加一层“防错码”。发送端在数据里插入冗余校验位,接收端发现错误后直接自己修复,不用重传。

在RoCE场景下,FEC尤其重要。因为RDMA要求极低的丢包率(目标0丢包),而物理层难免有误码。没有FEC,一个比特错误就能导致整个数据包重传,延迟瞬间飙升。

1. 常见的FEC类型

  • RS-FEC (Reed-Solomon):IEEE 802.3标准,有RS(528,514)和RS(544,514)两种。前者纠错能力弱但延迟低,后者纠错强但延迟高。
  • FC-FEC (Fire Code):用于25G/50G链路,纠错能力一般。
  • SD-FEC (Soft Decision):用于相干光模块,纠错能力最强,但延迟也最大(几十微秒)。

我个人习惯:400G及以下用RS-FEC(544,514),800G用SD-FEC。为什么?因为800G的PAM4信号对噪声更敏感,RS-FEC已经扛不住了。

2. FEC的配置要点

配置FEC时,有几个坑必须注意:

  1. 两端必须一致:发送端和接收端的FEC类型、参数必须完全匹配。我曾经遇到过,一端配了RS-FEC,另一端配了FC-FEC,结果链路能起来但误码率奇高。
  2. FEC与光模块的匹配:有些光模块内置了FEC,有些需要交换机芯片来做。如果光模块和交换机都做FEC,就会造成“双重纠错”,反而降低性能。
  3. 延迟预算:RS-FEC(544,514)大约增加100ns延迟,SD-FEC可能增加几微秒。做RoCE时,要把这个算进端到端延迟里。
避坑指南:我曾经在一个项目中,用了400G ZR光模块(自带SD-FEC),又在交换机上开启了RS-FEC。结果链路误码率反而升高了——因为两次FEC的纠错算法冲突了。后来关掉交换机的FEC,问题解决。

3. FEC性能监控

部署完成后,一定要监控FEC的纠错统计。如果纠错率超过1e-6,说明链路质量有问题,需要排查光模块、光纤或连接器。

我常用的命令(以Cisco Nexus为例):

show interface ethernet 1/1 fec
show interface ethernet 1/1 fec-stats

如果看到 FEC corrected errors 持续增长,嗯,该换光模块了。

四、知识体系总览

下面这张图,把今天讲的内容串起来。你一看就明白:物理层选型是个系统工程,链路类型、光模块、FEC三者互相影响。

RoCE跨数据中心互联 · 物理层知识体系 DCI链路类型 光模块选型 FEC机制 裸光纤(≤40km) DWDM(>40km) 100G:QSFP28 400G:QSFP-DD 800G:QSFP-DD800 RS-FEC(544,514) SD-FEC(相干) 核心原则:三者必须协同考虑 链路距离 → 决定光模块类型 → 决定FEC能力 FEC纠错能力 → 影响延迟 → 影响RoCE性能

好了,物理层的基础就这些。记住一句话:链路选型定距离,光模块选型定速率,FEC配置定质量。三者缺一不可。

下一讲咱们聊聊链路层的流控和拥塞管理,那才是RoCE真正发力的地方。到时候见。


公众号:蓝海资料掘金营,微信deep3321