循环冗余码(CRC)检错的计算

计算冗余码

1) 将生成多项式$G(x)$的系数序列表示成二进制,如多项式$x^4+x^2+1$可表示为$10101$.
2) 假设$G(x)$的(最高)阶数为$r$,待发送的数据有$m$位,将待发送的数据的末尾添上r个”0”,该$m+r$位的二进制数作为被除数.
3) 将第一步生成多项式的二进制数作为除数.
4) 模拟除法的运算进行模2除法,即对应位进行异或运算.
img
5) 最终得到的余数就是所求的冗余码.
6) 最终发送的数据=待发送数据合并冗余码,如上图,最终的数据为.

截断二进制指数规避算法

  1. 确定基本退避(推迟)时间为争用期$2 \tau$ .
    争用期指的是信号在最远两个端点之间往返传输的时间.
  2. 定义参数$k$,即重传次数,但$k$不超过10($k=min(k,10)$).
  3. 从离散的整数集合[$0$,$1$,…,$2^k-1$]中随机取出一个数$r$,重传需要的退避时间就是$2 \tau \cdot r$
  4. 当重传次数达16次仍不能成功,认为此帧永远无法正确发出.