CRC校验

         CRC即循环冗余校验码,是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段可以任意选定。循环冗余检查是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。

工作原理:

       循环冗余校验码(CRC)的基本原理:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N , K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成k位信息的校验码,而G(x)叫做这个CRC码的生成多项式。校验码的具体生成过程为:假设要发送的信息用多项式C(x)表示,将C(x)左移R位(可表示成C(x)*2^R),这样C(x)的右边就会空出R位,这就是校验码的位置,用C(x)*2^R除以生成多项式G(x)得到的余数就是校验码。

       任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为X^6+X^4+X^2+X+1。

CRC校验的应用:

       数据链路层有许多协议,但有三个基本问题是相同的:封装成帧,透明传输和差错检验。为了保证数据传输的可靠性,在计算机网络传输数据是,必须采用各种差错检验措施,目前广泛使用的是循环冗余(CRC)检验的检错技术。

在接收端把接收到的数据以帧为单位进行CRC检验;检查得到的余数R:

如果在传输过程中无差错,那么经过CRC检验后得出的余数R肯定是0。

总之在接收端对收到的每一帧数据进行检测后,有以下两种情况:

1.若余数R=0,则判定这个帧没有错,就接受;

2.若余数R!=0,则判定这个帧有错,就丢弃。

       


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值