数据link层-CRC除以1+x是什么意思?

Data link layer - CRC what does divide by 1 + x mean?

谁能解释一下来自 Tannenbaum computer networksCRC 代码的这一部分是什么意思!

If there has been a single-bit error, E(x) = x^i , where i determines which bit is in error. If G(x) contains two or more terms, it will never divide into E(x), so all single-bit errors will be detected.

If there have been two isolated single-bit errors, E(x) = x^i + x^j , where i > j. Alternatively, this can be written as E(x) = x^j (x^(i − j) + 1). If we assume that G(x) is not divisible by x, a sufficient condition for all double errors to be detected is that G(x) does not divide x ^k + 1 for any k up to the maximum value of i − j (i.e., up to the maximum frame length). Simple, low-degree polynomials that give pro- tection to long frames are known. For example, x ^15 + x ^14 + 1 will not divide x ^k + 1 for any value of k below 32,768.

请post通俗一点,让我更懂一点!。 示例 表示赞赏。提前致谢!

消息是位序列。您可以将任何位序列转换为多项式,只需从第一位开始,使每一位成为 1、x、x2 等的系数。所以100101变成1+x3+x5.

您可以通过将这些多项式的系数视为最简单的有限域 GF(2) 的成员来使这些多项式有用,该有限域仅由元素 0 和 1 组成。加法是异或运算和乘法是and运算。

现在你可以做你在高中时用多项式做的所有事情,但系数超过 GF(2)。所以1+x加上x+x2就变成了1+x2。 1+x 乘以 1+x 变成 1+x2。 (算出来。)

循环冗余校验 (CRC) 源自这种二进制消息算法,其中将转换为多项式的消息除以一个特殊的常数多项式,其阶数是 CRC 中的位数。然后该多项式除法余数的系数就是该消息的 CRC。

阅读 Ross William's CRC tutorial 了解更多信息。 (真正的 CRC 不仅仅是余数,但您会看到。)