计算机网络:循环冗余码CRC

循环冗余码(CRC)又称为多项式编码,将任何一个由二进制位串组成的编码,与一个只含有0和1两个系数的多项式建立一一对应关系。如:位串1010111对应的多项式为X^{6}+X^{4}+X^{2}+X+1;多项式X^{5}+X^{3}+X^{2}+X^{1}+1对应的位串为101111。

多项式的算术运算采用代数域理论的规则。以2为模来完成,即加法没有进位,减法没有借位,模2加法和模2减法都等同于亦或运算。

计算机网络:循环冗余码CRC_第1张图片 运算样例

CRC编码原理:

使用CRC时,发送方和接收方必须预先商定一个生成多项式G(X),发送方编码和接收方校验都是利用预先商定的生成多项式来得到。假设G(X)的阶为r,发送方要发送的信息位为k位,CRC的基本思想就是在信息位的尾部追加一个r位的冗余位,使得信息位与冗余位构成的码字所对应的多项式能够被G(X)除尽。当接收方收到码字之后,用G(X)去除对应的码字,如果有余数则表示传输过程中有错误。

 

CRC具体编码过程:

①收发双方预先商定一个生成多项式G(X),最高次数为r。——>②将发送方要发送的信息位转换为对应的多项式K(X)。——>③G(X)去除X^{r}K(X)得到的余式就是冗余位对应的多项式R(X)。——>④发送的码字(信息位+冗余位):T(X)=X^{r}K(X)+R(X)。

 

CRC编码举例说明:

发送方要发送的信息位为:1010001,对应的多项式K(X)=X^{6}+X^{4}+1,生成多项式为G(X)=X^{4}+X^{2}+X+1;由此可知冗余位的位数为 r =4,因此X^{r}K(X)=X^{10}+X^{8}+X^{4}(10100010000)。

G(X)去除X^{r}K(X):

计算机网络:循环冗余码CRC_第2张图片

通过除法运算可知,R(X)=1101;故发送的码字(信息位+冗余位):T(X)=X^{r}K(X)+R(X)=10100011101。

 

CRC的相关重要性质:

  1. G(X)含有X+1的因子,则能检测出所有的奇数错误。

  2. 若G(X)中不含有X的因子,换句话说,G(X)中含有常数项1,那么能检测出所有突发长度\leqslant r的突发错误。

  3. 若G(X)中不含有X的因子,而且对于任何0< e\leqslant n-1的e,除不尽X^{e}+1,则能检测出所有的双错。

  4. 若G(X)中不含有X的因子,则对于突发长度为r+1的突发错误的漏检率为2^{-(r-1)}

  5. 若G(X)中不含有X的因子,则对于突发长度b\geqslant r+1的突发错误的漏检率为2^{-r}

 

Ending... ...

你可能感兴趣的:(#,计算机网络,计算机网络)