1.什么是CRC校验?
CRC(循环冗余校验)是一种数据传输校验方式,它通过检查传输的数据是否与特定的生成多项式的余数匹配来确保数据的正确性。通常使用的生成多项式有标准的32位CRC-32多项式和16位CRC-16多项式。
在数据传输中,往往会发生由于噪声、干扰等原因导致信息传输错误。为了保证信息的正确性,我们需要对传输的数据进行校验。这时候,CRC校验就派上了用场。
2.CRC校验的原理:
将要传输的数据看作一个多项式,除以生成多项式。得到的余数称之为CRC校验值。在传输信息时,将数据和此校验值一起发送,接收方法对发送的数据按照同样的方法进行校验,将剩余的余数与接收的信息一起计算,若该余数与原来的CRC校验值一致,则认为数据正确。若计算出的余数与CRC校验值不一致,那么该数据就有误。
3.CRC校验的实现步骤:
1)选择一个生成多项式(G)。
2)对数据进行扩展,使得数据位数大于或等于G的位数。
3)用扩展后的数据除以G,得到余数。
4)将余数加在扩展后的数据尾部,得到的数据就是传输的数据。
5)接收端对接收到的数据按照同样的方法进行校验,计算出余数,如果余数与发送端传来的CRC校验值一致,则接收正确。
4.CRC校验的例题:
我们以例题来说明如何使用CRC校验。
发送端发送数据:1101011011
生成多项式:10101
解:步骤如下:
1)将数据扩展到:1101011011,这里扩展的方式为直接在数据右边添加了4个零,保证了数据长度比生成多项式长度要长。
2)用1101011011 ÷ 10101,余数为011,即CRC校验值。
3)将CRC校验值绑定在扩展后的数据后面:1101011011 011。
4)发送端传输1101011011 011给接收端。
5)接收端接收到数据:1101011011 011。
6)接收端对接收到的数据进行校验,用1101011011 011÷ 10101,余数为011,与传过来的CRC校验值相同,故数据接收正确。
5.
微信扫一扫,领取最新备考资料