计算机网络下循环冗余检测(CRC)

循环冗余校验(CRC)是数据通信中常用的一种查错校验码,通过添加冗余码来确保数据传输的正确性和完整性。CRC原理包括在数据后附加n位冗余码,使用模2运算对数据进行多项式计算,然后除以预选的多项式P(x),如P(x) = X^5 + X^4 + X^2 + 1,以生成校验码。

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

1 概念
  CRC即循环冗余校验码(Cyclic Redundancy Check[1]):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。概念来自百度百科CRC校验
2 CRC校验的原理
  在数据链路层传送的帧中,广泛使用了CRC检错技术。在面用实例进行原理的解释。
  1) 设传送数据为M = 1010001101(共K位),在M后添加用于检错的n位冗余码。冗余码会增加传送开销,却可以进行差错检测。
  2) 求n位的冗余码。用模2运算(加法运算不进位,减法运算不借位)进行2的n次方的运算,相当于在M后面添加n个0。然后用得到的(k+n)bit的数除以事先选定好的长度为(n+1)bit的数P,得到商为Q余数为R。
  3) P的选择。一般用多项式表示CRC的过程,即用多项式的系数表示0或1,例如P(x) = X^5 + X^4 + X^2 + 1表示110101。于是接收端进行运算为:

( X^n M(X) + R(X) ) / P(X)

  P一般选为:
  CRC-16 = X^16 + X^15 + X^2 + 1
  CRC-CCITT = X^16 + X^12 + X^5 + 1
  CRC-32 = X^32 + X^26 + X^22 + X^16 + X^12 + X^11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值