什么是CRC?它如何帮助进行错误检测?

时间:2009-12-24 10:29:30

标签: networking crc error-detection

什么是CRC?它如何帮助进行错误检测?

3 个答案:

答案 0 :(得分:7)

CRC是一种非安全散列函数,用于检测原始计算机数据的意外更改,通常用于数字网络和存储设备,如硬盘驱动器。

启用CRC的设备为每个数据块计算一个称为CRC码的短的固定长度二进制序列,并将它们一起发送或存储在一起。当读取或接收块时,设备重复计算;如果新的CRC码与之前计算的CRC码不匹配,则该块包含数据错误,设备可能会采取纠正措施,例如请求再次发送该块。

来源:Wikipedia

答案 1 :(得分:3)

CRC代表循环冗余校验。 它有助于错误检测.. 它由以下

组成
b(x)-> transmitted code word
q(x)-> quotient
i(x)-> information polynomial
r(x)-> remainder polynomial
g(x)-> generated polynomial

step 1: x^(n-k) * i(x)

step 2: r(x) = (x^(n-k) * i(x))%g(x)

step 3: b(x) = (x^(n-k) * i(x)) XOR with r(x) 
        which results in a transmitted code word.

this b(x) is send to the reciever end from the sender and if u divide the 
transmitted code word i.e. b(x) with g(x) and if the remainder 
i.e. r(x) is equal to 0 at the reciever end then there is no error 
otherwise there is an error in the transmitted code word during the 
transmission from sender to reciever.

In this way it is helpful in error detection.

答案 2 :(得分:0)

循环冗余校验是一种散列函数,它允许您在给定某些输入的情况下计算唯一值,对于相同的输入,该输入保证始终相同。如果输入以某种方式从原始输入发生变化,则将生成不同的CRC校验和。因此,如果您有输入和校验和,则可以从输入计算新校验和并比较两个校验和。如果它们相同则意味着输入没有改变。