一、什么是CRC循环冗余校验?
要想了解什么是CRC,需要先了解一下下面几个概念。。
比特差错:现实中的 通信链路是不理想的,这也就是说在传输过程中可能会产生差错,1也许会变成0,0或许也会变成1。这就是比特差错。
CRC循环冗余校验则是为了解决数据链路层中存在的比特差错问题。
CRC循环冗余校验原理:
大多数书上基本上是以二进制的多项式形式来说明的。其实它最根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验码,但要注意,这里的数也是二进制序列的,下同),生成一个新帧发送给接收端。当然,这个附加的数不是随意的,它要使所生成的新帧能与发送端和接收端共同选定的某个特定数整除(注意,这里不是直接采用二进制除法,而是采用一种称之为“模2除法”)。到达接收端后,再把接收到的新帧除以(同样采用“模2除法”)这个选定的除数。因为在发送端发送数据帧之前就已通过附加一个数,做了“去余”处理(也就已经能整除了),所以结果应该是没有余数。如果有余数