计算机网络——CRC循环冗余检验

一、循环冗余检验原理

  • 在发送端

    • 先把数据划分为组,假定每组 k 个比特,假定一个待传送的数据 M(k位),CRC运算就是在数据 M 的后面添加供差错检测用的 n 位冗余码,然后构成一个帧发送出去,一共发送 (k+n) 位。
    • 在所要发送的数据后面增加 n 位的冗余码,虽然增大了数据传输的开销,但却可以进行差错检测。当传输可能出现差错时,付出这种代价往往是很值得的。
  • 在接收端

    • 把接收到的数据以帧为单位进行 CRC 检验:把收到的每一个帧都除以相同的除数,然后检查得到的余数R。
    • 如果传输过程中无差错,那么经过 CRC 检验后得出的余数 R 肯定是 0;如果出现差错,则余数不为 0。

二、例子

  • 题目:已知信息码元序列为 M = 1101011011,除数 P = 10011,计算 CRC 校验码。
  • 解析
    • 发送端:
      • 由 M位数 得 k=10 ,由 P位数 得 n=4;
      • 给 M 后面 补 n 个 0,作为被除数:11010110110000;
      • 进行运算,计算出 n位余数=1110;
      • 将 余数加到 M 后面,就组成了 CRC校验码:11010110111110;
    • 接收端:
      • 将 CRC校验码 作为被除数:11010110111110,P 仍为除数;
      • 进行运算,计算出 余数;
      • 为0,则说明无差错;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/pary__for/article/details/113698202
今日推荐