CRC 错误检测和未检测到的错误概率

CRC error detection and undetected error probabilities

如果我们有一个大文件,比如说 1 PB,可以检测到所有错误的最佳 CRC​​ 是什么?32 位是否足够?

我也听说undetected error rate (packet or chunk) is= BitR* BER * 0.5^k其中K是CRC的FSC。在 CRC 32 k 中是 31

我想知道我们有更大的数据包还是更小的数据包这将如何影响 CRC...从这个等式来看,它根本没有影响。

“足够”取决于您对误报的容忍度。给定 CRC 或任何其他好的散列,您可以接受在任何一条消息中检测到错误的概率是多少?

如果您调用 p,那么您需要的 CRC 或散列的长度(以位为单位),nn = ceiling(–log2(p)).

请注意,这与消息的长度无关。千字节、艾字节等等。除了创建、发送或存储消息的费用会影响 p 之外,您会发现可以接受。

对于特别昂贵的数据或通过不可信渠道发送的数据,您可能需要考虑错误更正代码,例如 Reed-Solomon 或 BCH 代码。