如何在接收端验证CRC?

问题描述 投票:0回答:1

我正在自学一些计算机知识。当我研究CRC时,我发现了一个难题。现在我知道如何计算消息的 CRC 值,但我想知道当规则需要 REFIN 时如何在接收方终端中验证它。

我想举个例子。

我要查看的消息是00010011。 多项式为 10011。 初始化:0x00 精炼:真实 重述:真实 异或:0x00

计算后CRC值为0100。

所以实际要传递的消息是000100110100。

接收方终端收到消息后,需要进行验证。它是如何做到这一点的?也许有两种方式。首先,它可以通过二进制除法计算 CRC,并将计算出的 CRC 值与接收到的 CRC 值进行比较。其次,它可以直接将CRC值附加到数据中。然后接收器使用精确除法进行计算。

但我在这里发现了一些问题。

可能是因为Refin和Reout的原因,我无法直接使用精确除法来验证它,它有余数。 如果我想遵循相同的规则来验证消息+CRC,000100110100,它只有12位,不够2个字节,所以我无法完成REFIN。我尝试在MSB侧和LSB侧追加零,但在除法过程中我仍然无法得到全零余数。 那么,你能给我一些指导吗?

接收端如何验证CRC? aaa bbb

crc crc32 crc16 clearcase-remote-client
1个回答
0
投票

您知道线路上的消息以 CRC 结尾。获取接收到的消息(不带 CRC),然后使用与发送器所使用的算法完全相同的算法计算其 CRC。

然后将您刚刚计算的 CRC 与您收到的 CRC 进行比较。

如果它们不同,则消息已损坏 - 从发送者到接收者的通信通道引入了错误。

© www.soinside.com 2019 - 2024. All rights reserved.