Forward Error Correction
When FEC is enabled, a sender encodes multiple Transmission Words into an FEC block and adds a few additional parity bits with it. The receiver can use the parity bits to detect and recover a limited number of errors in the FEC block. 启用 FEC 时,发送方会将多个传输字编码成一个 FEC 块,并添加几个额外的奇偶校验位。接收器可使用奇偶校验位检测和恢复 FEC 块中数量有限的错误。
This section provides an academic explanation of FEC before explaining what matters in a production network. This is because: 本节在解释生产网络中的重要事项之前,先对 FEC 进行学术解释。这是因为
FEC is relatively new to Fibre Channel. It was added in 16GFC, but it was optional. FEC is mandatory and enabled by default at 32GFC and faster speeds. FEC 是光纤通道中相对较新的功能。它是在 16GFC 中添加的,但却是可选的。在 32GFC 及更快的速度下,FEC 是强制性的,默认情况下已启用。
Because it’s new, some people have misunderstood its benefits. Others are not monitoring it or not doing so correctly. 由于它是新事物,有些人误解了它的好处。还有一些人没有对其进行监测或监测不正确。
Not much education exists on FEC.关于FEC的相关资料很少
If you are not interested in the academic details, you may skip the next section and jump directly to what matters in a production network. 如果您对学术细节不感兴趣,可以跳过下一部分,直接跳到生产网络中的重要内容。
FEC — The Details
With 16GFC, which uses 64b/66b encoding, the FEC encoder takes 32 65-bit Transmission Words (32x65 bits=2080 bits) for generating a 32-bit parity word. Then, it sends out the 32 65-bit Transmission Words followed by the 32-bit parity word, collectively known as an FEC block of size 2112 bits (32 x 65 bits + 32 bits = 2112 bits). The reason for using 65 bits instead of 66 bits is that the FEC layer compresses 2 additional bits (which are the result of the 64b/66b encoding) to 1 bit. The receiver can correct an error burst of up to 11 bits per FEC block. Overall, 32 bits of overhead with 2080 bits of payload can correct up to 11 bits. Consequently, the 16GFC FEC encoder has an overhead of 1.53% (32/2080) and a correction rate of up to 0.53% (11/2080). The FEC code used by 16GFC is represented as (2112, 2080), and is known FireCode FEC. 在使用 64b/66b 编码的 16GFC 中,FEC 编码器需要 32 个 65 位传输字(32x65 位=2080 <