CRC检验码
来源:互联网 发布:jquery java上传文件 编辑:程序博客网 时间:2024/05/19 22:01
1. 定义
CRC 即循环冗余校验码:是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。在链路层被广泛使用的检错技术。 循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似算法,以保证数据传输的正确性和完整性。
2. 原理
在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。在发送端,先把数据划分为组(帧)。假定每组 k 个比特。在每组后面,添加供差错检测用的 n 位冗余码一起发送。即:实际发送长度为:k+n 比特,发送前双方协商 n+1 位的除数 P。
3. 冗余码的计算
2^n*M (发送数据),这相当于在 M 后面添加 n 个 0,长度成为 k + n;
得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P;
除法采用模 2 减法(无借位减,等价于异或);
得出商是 Q 而余数是 R,余数 R 比除数 P 少1 位,即 R 是 n 位。
在接收端对接收到的每一帧进行 CRC 检验后,若余数 R 为 0,则表示这个帧没有错,接受。若 R 不为 0,则表示这个帧出错,丢弃。
4. 冗余码的计算举例
现在 k = 6, M =101001。
设 n= 3,除数P= 1101,被除数是 2^n*M = 101001000。
模 2 运算的结果是:商 Q= 110101,余数 R = 001。
把余数 R 作为冗余码添加在数据 M 的后面发送出去。
发送的数据是: 2^n*M + R。即:101001001,共 (k + n) 位。
- CRC检验码
- CRC检验--循环冗余检验
- CRC检验原理
- CRC循环冗余检验
- 循环冗余检验CRC
- 循环冗余检验CRC
- CRC检验解析
- CRC检验解析
- 循环冗余检验CRC
- CRC检验解析
- 如何计算CRC校验码(循环冗余检验码)
- 检验和与CRC计算
- C++循环冗余检验CRC
- 循环冗余检验CRC原理
- CRC检验与ARP脚本
- CRC循环冗余检验算法
- 循环冗余检验 (CRC) 算法原理
- [转]循环冗余检验 (CRC) 算法原理
- Boss3g软件开发规范
- 关于mybatis启动报Result Maps collection already contains value for ...的问题总结
- db2icrt创建purescale实例报错:A reachable IP address could not be determined
- Docker简介
- 哈希(poj相关题目)
- CRC检验码
- 容器间通信的三种方式
- Web前端-HeadFirst笔记-CH9-Class与id
- 文章标题
- Linux kernel panic 问题解决方案
- 软件开发和测试的 30 个最佳实践
- split函数提取彩色图像的三个通道
- 1.8 正则表达式
- c++常量方法相关内容(转载)