- 里德-所罗门码(R-S)在消息中添加t个校验符号,能够从未知位置的t/2个损坏符号中恢复,或从已知位置的t个损坏/丢失符号中恢复,同时可在不进行恢复的情况下检测最多t个错误。
- 常见的R-S配置使用8位符号,块大小为255字节——你可以选择校验符号数量(t),有效载荷即为255-t字节。
- 为了实现互操作性,不仅需要指定(N,K)参数,还必须指定伽罗瓦域生成多项式、本原元以及首个连续根;对于8位符号,存在两个标准多项式,典型的本原元包括8、11或14。
- R-S擅长纠正突发错误,并可用于纠删码——结合序列号从数据包丢失或磁盘故障中恢复,例如在RAID6或流媒体弹性场景中。
- 填充技术允许通过将前导符号视为零且不传输的方式使用较小的有效载荷,但需要单独的完整性校验来处理长度字段。
- R-S不能替代密码学完整性校验,在保护内存或网络传输中的单字节错误时很少需要,此类问题更适合通过重传或密码学方案处理。
- 现代软判决编码(Turbo码、LDPC码、Polar码)不适用于具体比特和字节的硬判决纠错,而R-S在此类场景中仍适用。
- 本文提供了一个实用的命令行工具(rscmd),用于实验R-S参数,并展示了恢复示例。