您的位置: 主页 > 化粪池清理 > 正文

化粪池清理

循环冗余检验_循环冗余校验码计算步骤

1.crc是什么意思
2.modbus协议的CRC循环冗余校验位,校验的究竟是什么,是数据位吗
3.循环冗余检查什么意思
4.CRC循环冗余校验问题
5.CRC校验是什么

crc是什么意思

 CRC(Cyclic Redundancy Check),即循环冗余校核,是一种根据网络数据包或电脑文件等数据产生简短固定位数校核码的快速算法,主要用来检测或校核数据传输或者保存后可能出现的错误。CRC利用除法及余数的原理,实现错误侦测的功能,具有原理清晰、实现简单等优点。

 CRC也就是循环冗余校验码,是计算机网络通信领域常用的校验码。循环冗余校验码包括一系列移位、相除等数据编码规则,其算法原理、算法程序的设计与分析,都可以通过相应的软件编码进行解决。

 循环冗余校验码是利用软件进行校验的算法,因此其检验速度很快,校验的误码率也较低,整个计算机网络通信的信息传输速度很高。CRC差错纠正控制法能够有效减少通信线路的误码率,得到的通信数据传输信息更准确。

 在数据的传输过程中由于空间电磁环境复杂等原因,可能会产生误码,即某几位数据0变为1,或1变为0,导致接收端得到错误的数据。为了降低误码率,通常对数据进行特定编码,在收发端进行额外的验证,使接收端能发现某些错误;

 进而实现纠错功能,常用的编码方法有CRC-校验码、CRC-校验码、汉明码、奇偶校验法等。其中位循环冗余校验简称CRC-校验在性能和资源消耗两方面都有较大的优势,因而,在无线电通信、SATA硬盘数据传输等系统中,CRC-校验是最常用的检错手段之一。

modbus协议的CRC循环冗余校验位,校验的究竟是什么,是数据位吗

 CRC叫做循环冗余校验,是检验发送数据是否正确的一种方法。比如你发过来的是0x这个数据,要是发送过程中出现了干扰,变成了其他数据比如0x,这样送到设备上会出问题的。所以MODBUS利用了一种方法,就是把每一个BYTE的数据和一个固定值(位数值)进行一次运算(循环的,比如上面的数据中运算完结果用在上运算,再往下以此类推),最后得到一个2BYTE的数值(位)。也就是经过这一系列的运算,发送方和接收方算出来的CRC数值应该相同的;如果传送中数据的某一位或者某几位出现了问题,那么运算出来的结果就会不一样(并不是%,但是已经很高了),那么这个数据就不能要了。懂了吗?

循环冗余检查什么意思

 检测数据传输保存后出现的错误。循环冗余检查是一种根据数据产生简短固定位数校验码的散列函数,主要用于检测或校验数据传输或者保存后出现的错误,生成的数字在传输或者存储之前计算出来并附加到数据后面,然后接收方进行检验确定数据是否发生变化,循环冗余校验的值都是位的整数,由于该函数易于用二进制的计算机硬件使用,容易进行数学分析,并尤其善于检测传输通道干扰引起的错误,因此获得广泛应用。

CRC循环冗余校验问题

 循环冗余码CRC(Cyclic Redundancy Code)又称多项式码.

 任何一个由二进制数位串组成的代码,都可以惟一地与一个只含有0和1两个系数的多项式建立一一对应的关系.例如,代码对应的多项式为X6+X4+X2+X+1,多项式X5+X3+X2+X+1对应的代码为.

 CRC码在发送端编码和接收端检验时,都可以利用事先约定的生成多项式G(X)来得到.设G(X)中最高位X的次方为Xr,信息位为K(X);则CRC码=Xr乘以K(X)再除以G(X).

 比如:信息位K(X)=X6+X4+X3+1既,生成多项式G(X)=既X4+X3+1(可得Xr=X4)

 则CRC码=X4* (X6+X4+X3+1)/(X4+X3+1)=X+X8+X7+X4/(X4+X3+1)=/

 得到的余数就是CRC码

 注:以上除法用的是模2除法,是一种不考虑减法借位的运算.既0-0=0,0-1=1,1-0=1,1-1=0

 —————————————————————————————

 重新在网站做了图解,有疑问的话直接在网站留言吧

CRC校验是什么

 CRC循环校验是什么

 CRC是什么东西呢?其实我们大家都不应该会对它陌生,回忆一下?你用过RAR和ZIP等压缩软件吗?它们是不是常常会给你一个恼人的“CRC校验错误”信息呢?我想你应该明白了吧,CRC就是块数据的计算值,它的全称是“Cyclic Redundancy Check”,中文名是“循环冗余码”,“CRC校验”就是“循环冗余校验”。(哇,真拗口,希望大家不要当我是唐僧,呵呵。^_^)

 CRC有什么用呢?它的应用范围很广泛,最常见的就是在网络传输中进行信息的校对。其实我们大可以把它应用到软件保护中去,因为它的计算是非常非常非常严格的。严格到什么程度呢?你的程序只要被改动了一个字节(甚至只是大小写的改动),它的值就会跟原来的不同。Hoho,是不是很厉害呢?所以只要给你的“原”程序计算好CRC值,储存在某个地方,然后在程序中随机地再对文件进行CRC校验,接着跟第一次生成并保存好的CRC值进行比较,如果相等的话就说明你的程序没有被修改/破解过,如果不等的话,那么很可能你的程序遭到了病毒的感染,或者被Cracker用进制工具暴力破解过了。

 参考资料:

矛与盾的较量(2)——CRC原理篇%%老罗的缤纷天地.htm

服务项目

电话
预约下单