【Linux】CRC校验

CRC校验是用于数字网络和存储设备的一种错误检测技术,确保数据传输的正确性和完整性。它通过计算信息字段与约定多项式的余数,并在接收端进行验证来检测错误。CRC能有效检测1位、2位错误及特定长度突发错误,通过举例展示了如何进行CRC计算过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.crc简介


循环冗余校验(CRC)是数字网络和存储设备中通常使用的错误检测码,用于检测原始数据的意外变化,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,并且在检查值不匹配的情况下,可以采取针对数据损坏的纠正措施,以保证数据传输的正确性和完整性。

2.crc基本工作原理


1)发送端将发送数据比特序列当作一个多项式f(x),用双方约定好的多项式g(x)去除,得到余数多项式r(x)。最终将f(x)*x^k+r(x)发送给接收端。
2)接收端用g(x)去除接收到的f’(x),计算得到余数多项式r’(x)。
3)若计算得到的多项式r’(x)与接收到的r(x)相同,表示传输无差错,否则出错,通知发送端重传,直至正确为止。
原理图:
这里写图片描述

3.crc检错能力


  • 能够检查出全部离散的1位错。
  • 能够检查出全部离散的2位错。
  • 能够检查出全部奇数位错。
  • 能够检查出全部长度小于或等于K位的突发错。
  • 能以(1-(1-2)^(k-1)的概率检查出长度位K+1位的突发错。

4.crc检错方法举例


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值