[软件资料] CRC校验的原理与应用

[复制链接]
597|18
 楼主| forgot 发表于 2025-7-7 13:42 | 显示全部楼层 |阅读模式
原理:
CRC校验将数据视为一个二进制多项式,用一个预先定义好的生成多项式(Generator Polynomial) 进行模2除法,得到的余数作为CRC校验码。
例如:数据多项式 ÷ 生成多项式 = 商 ... 余数 → 余数 = CRC码。
接收方用同样的多项式去除接收到的数据(含CRC),余数为0则认为无错。

特点:
检测能力极强:
能检测所有单比特错误。
能检测所有双比特错误(如果生成多项式选得好)。
能检测奇数个比特错误。
能检测长度小于生成多项式阶数的突发错误(如16位CRC可检测≤16比特的连续错误)。
对长突发错误的检测概率接近 1 - 1/(2^n)(n=CRC位数)。
计算复杂度较高:涉及二进制多项式除法,但可通过查表法(Lookup Table)优化。
长度灵活:常用 CRC-8、CRC-16、CRC-32、CRC-64 等。
无纠错能力:仅检测错误(但可通过算法扩展实现纠错,如CRC用于RAID)。

生成多项式示例:
CRC-16-CCITT: x¹⁶ + x¹² + x⁵ + 1 (0x1021)
CRC-32 (Ethernet, ZIP): x³² + x²⁶ + x²³ + x²² + x¹⁶ + x¹² + x¹¹ + x¹⁰ + x⁸ + x⁷ + x⁵ + x⁴ + x² + x + 1 (0x04C11DB7)

典型应用:
数据链路层协议(如 Ethernet, PPP)。
存储系统(硬盘、SSD、RAID、ZIP/RAR压缩文件)。
无线通信(Wi-Fi, Bluetooth)。
文件系统(如 NTFS、ext4 的元数据校验)。

xiaoqizi 发表于 2025-8-2 19:08 | 显示全部楼层
CRC是一种基于多项式计算的错误检测方法
木木guainv 发表于 2025-8-2 21:21 | 显示全部楼层
CRC将数据视为一个二进制多项式,并用预先定义好的生成多项式对其进行模2除法运算,得到的余数作为校验码附加在原始数据后面
Jiangxiaopi 发表于 2025-8-3 08:03 | 显示全部楼层
常用的有CRC-8、CRC-16、CRC-32等,不同的多项式会影响校验的性能和检测能力
荣陶陶 发表于 2025-8-3 10:40 | 显示全部楼层
在待校验数据的末尾添加若干个0,使总长度达到生成多项式的倍数
Zhiniaocun 发表于 2025-8-3 13:04 | 显示全部楼层
模2除法:从最高位开始逐位进行异或操作。如果当前位为1,则执行异或;若为0,则直接移至下一位。此过程类似于长除法,但所有加减法均以异或实现
Zuocidian 发表于 2025-8-3 15:17 | 显示全部楼层
CRC能检测出多种类型的错误,包括单比特错误、双比特错误以及奇数位翻转等
Puchou 发表于 2025-8-3 17:57 | 显示全部楼层
由于采用模2运算,CRC对突发性错误特别敏感
Xiashiqi 发表于 2025-8-3 20:11 | 显示全部楼层
如Wi-Fi和LTE协议,在物理层和链路层分别使用CRC来验证控制信息及用户数据的完整性
小海师 发表于 2025-8-3 22:31 | 显示全部楼层
在OTA升级过程中,通过CRC校验保证下载的固件包无损坏
Haizangwang 发表于 2025-8-4 08:52 | 显示全部楼层
虽然CRC本身不加密,但可作为哈希函数的基础组件增强安全性
OKAKAKO 发表于 2025-8-15 14:59 | 显示全部楼层
CRC校验的原理
szt1993 发表于 2025-8-19 16:05 | 显示全部楼层
CRC校验非常重要
中国龙芯CDX 发表于 2025-8-26 23:26 | 显示全部楼层
CRC校验策略很实用
星辰大海不退缩 发表于 2025-8-27 21:36 | 显示全部楼层
CRC校验的原理与应用
AdaMaYun 发表于 2025-8-28 14:46 | 显示全部楼层
CRC校验将数据视为一个二进制多项式,用一个预先定义好的生成多项式(Generator Polynomial) 进行模2除法,得到的余数作为CRC校验码。
星辰伴梦 发表于 2025-9-11 20:18 | 显示全部楼层
确实,CRC校验的检测能力很强,但计算复杂度较高,不过查表法可以优化这个过程。
szt1993 发表于 2025-9-16 21:43 | 显示全部楼层
CRC校验算法都有哪些?
小夏天的大西瓜 发表于 2025-9-28 17:43 | 显示全部楼层
CRC校验将数据视为一个二进制多项式,用一个预先定义好的生成多项式
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2115

主题

14687

帖子

59

粉丝
快速回复 在线客服 返回列表 返回顶部