Loading... 在数据传输过程中可能出现比特差错(1可能变为0,0也可能变为1).为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。 一般来说,纠错码的编码效率不如检错码的编码效率,因而在通信中用得较多的还是检错码。在数据链路层中,最广泛应用的检错码是一种漏检率很低也便于硬件实现的**循环冗余校验码CRC**(Cyclic Redundancy Code)。 ## 1、CRC码 CRC码又称多项式码,任何一个由二进制位数串组成的代码都可由一个只含有0和1两个系数的多项式建立对应关系。 如`110001`,可以表示为$x^5+x^4+1$、 ## 2、CRC码计算 假设待传送数据`M=1101011011`,采用CRC的多项式是$P = X^4+X+1$,即`10011`,n=4。在M的后面添加n个0,然后将得到的新的比特序列除以P(10011),得到的商是Q,而余数是R。**所得的余数R(1110)即为冗余码**。  ## 3、帧检验序列 在数据M后面添加冗余码称为帧检验序列FCS。从上图可以看出,使用FCS除以P得到的余数结果为0。由此可以实现检错功能。 Last modification:January 22nd, 2021 at 08:29 pm © 允许规范转载