本文档介绍转发纠错(FEC)的基础知识以及如何验证Catalyst 9000系列交换机上的功能。
Cisco 建议您了解以下主题:
什么是FEC?
FEC是一种技术,用于在传输前通过附加冗余位和错误检查代码到消息块来检测并纠正比特流中的一定数量的错误。加法包含关于数据的足够信息,以使接收端的FEC解码器能够重构原始消息。FEC解码器可以识别错误接收的位并进行纠正。然后,在将消息传递到网络上层之前,它会删除冗余位。由于FEC解码器仅使用冗余位来检测和纠正错误,因此它不会请求重新传输整个错误帧,从而节省了原本用于重新传输的带宽。
FEC为网络提供了一种提高数据速率,同时保持可接受的位错误率(BER)的方法。 这种方法存在折衷方案,因为这种改进是以纠错奇偶校验位形式增加开销,从而消耗一些可用带宽。一般来说,编码增益越高,奇偶校验位的数量就越多,这增加了码字的大小。FEC解码器必须接收完整的码字才能对其执行操作。更强的FEC算法提供更高的编码增益,但它们需要更大的码字,而更大的码字会增加延迟。
为什么光纤网络需要FEC?
云计算、流视频和社交网络日益普及,极大地增加了互联网流量。为了满足飞速增长的带宽需求,光纤网络行业已将数据速率推高至100 Gbps甚至更高。光传输容易受到各种信号退化的影响,包括色散、模式色散、偏振模色散和噪声。
在现实世界中,光接收器解析信息的能力受到噪声的影响。因此,接收方无法准确解析所有位,导致数据传输出错。这一问题在更高速的时候会更加严重,因为接收方必须扩大滤波器带宽以允许更快的信号,并且必须允许噪声能量通过。幸运的是,FEC可以帮助补偿此问题。尽管该技术无法在所有网络条件下纠正所有错误。如果配置正确,它可以帮助网络运营商以更高的传输速率运行,同时保持目标BER,同时使用更便宜的光纤。
Catalyst 9000系列交换机支持2种类型的FEC:
FC-FEC的配置值为cl74。RS-FEC有两个配置值,具体取决于链路速度:
如何协商FEC值以及何时需要FEC?
当电缆长度超过2米时,需要25 GB或更高的速度的FEC。执行编码和解码的FEC块通常位于交换机/路由器的ASIC中。而在其他情况下,在100G光纤中,则是在模块本身中。
默认情况下,FEC在自动模式下启用;但是,主机软件可以支持特定应用协议的其他FEC子句。您可以决定启用这些功能,具体取决于特定应用。
拓扑
拓扑 1
配置:
Cat9300X-24Y(config)# interface tw1/1/2 Cat9300X-24Y(config-if)#fec ? auto Enable FEC Auto-Neg cl108 Enable clause108 with 25G cl74 Enable clause74 with 25G off Turn FEC off Cat9300X-24Y(config-if)#fec auto
验证:
Cat9300X-24Y# show running-config interface tw1/1/2
!
interface TwentyFiveGigE1/1/2
end
没有FEC配置表明FEC已设置为自动,或者您可以检查接口的状态:
Cat9300X-24Y# show interface tw1/1/2 TwentyFiveGigE1/1/2 is up, line protocol is up (connected) --snip-- Full-duplex, 25Gb/s, link type is force-up, media type is SFP-25GBase-SR Fec is auto < -- The configured setting for FEC is displayed here input flow-control is on, output flow-control is off ARP type: ARPA, ARP Timeout 04:00:00 --snip--
链路两端的FEC不匹配可能会中断设备之间的连接,即使其他所有设备看起来都正常。
示例:
Cat9300X-24Y#show running-config interface tw1/1/2 Building configuration... Current configuration : 47 bytes ! interface TwentyFiveGigE1/1/2 fec cl74 end Cat9300X-24Y#show interface tw1/1/2 TwentyFiveGigE1/1/2 is down, line protocol is down (notconnect) |
Cat9300X-48X#show running-config interface tw1/1/6 Building configuration... Current configuration : 37 bytes ! interface TwentyFiveGigE1/1/6 end Cat9300X-48X#show interface tw1/1/6 TwentyFiveGigE1/1/6 is down, line protocol is down (notconnect) |
Cat9300X-24Y#show interfaces transceiver
If device is externally calibrated, only calibrated values are printed.
++ : high alarm, + : high warning, - : low warning, -- : low alarm.
NA or N/A: not applicable, Tx: transmit, Rx: receive.
mA: milliamperes, dBm: decibels (milliwatts).
Optical Optical
Temperature Voltage Current Tx Power Rx Power
Port (Celsius) (Volts) (mA) (dBm) (dBm)
--------- ----------- ------- -------- -------- --------
Twe1/1/6 37.4 3.29 7.4 -0.4 -4.9 |
Cat9300X-48X#show interfaces transceiver
If device is externally calibrated, only calibrated values are printed.
++ : high alarm, + : high warning, - : low warning, -- : low alarm.
NA or N/A: not applicable, Tx: transmit, Rx: receive.
mA: milliamperes, dBm: decibels (milliwatts).
Optical Optical
Temperature Voltage Current Tx Power Rx Power
Port (Celsius) (Volts) (mA) (dBm) (dBm)
--------- ----------- ------- -------- -------- --------
Twe1/1/2 37.8 3.33 7.8 -0.8 -1.2 |
即使接收信号正常,您也会看到两端的端口都关闭了,因为FEC配置不匹配。在这种情况下,您必须匹配FEC配置,在两者中选择“auto”或“cl74”。排除链路故障时,请执行以下步骤:
1.收发器与设备的兼容性。
2.同一链路中收发器之间的兼容性。
3.收发器和正在使用的光缆之间的兼容性。
4.站点之间的协商。
4.1.速度。
4.2. FEC。
当连接不同的设备时,FEC优先。大多数问题在连接到第三方设备或主机设备(也可以是UCS或Nexus设备)时会发现。如果FEC保留为默认模式,则两台设备必须协商要使用的FEC设置,这可能是一个问题。最好手动设置FEC设置,但是,链路两端之间必须匹配。
要查看收发器上允许使用的FEC设置,请参阅TMGMatrix。
然后,您可以按收发器PID或设备过滤:

单击收发器的CUE卡:

CUE卡显示收发器上需要了解的所有数据,包括FEC设置:

| 版本 | 发布日期 | 备注 |
|---|---|---|
2.0 |
28-Aug-2026
|
更新了简介、拼写、语法、插入水平线以分隔各部分的可读性和替换文本。 |
1.0 |
13-Mar-2025
|
初始版本 |