一 CRC校验
1.是什么
在实际的通信链路中,比特在传输过程中会出现差错,比如说1变成了0,0变成了1.我们把这种现象叫做比特差错。传输错误的比特占所传输比特总数的比率称为误码率(bit error rate).因此,为了保证数据传输的可靠性,计算机在传输数据的时候会进行差错检验,在数据链路层使用较为广泛的就是循环冗余检验(CRC)。
2.如何算
我们在发送一个数据X的时候,先把数据划分为几个组,假设每个组有m个比特,CRC校验就是在数据X的后面加上供差错检验用的n位冗余码,然后构成一个帧在发出去,这样的话就一共发送了(m+n)位。接下来我们要解决的问题就是,如何求这n位冗余码。(1)在数据X的后面添加上n个0,得到(m+n)位的数除以事先双方约定好的长度为(n+1)位的除数p,得出商是T,余数是R。如果R=0,则判断这个帧没有差错就接受