CRC校验
来源:互联网 发布:js获取input选中的值 编辑:程序博客网 时间:2024/05/19 11:49
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) 位。
余数不为 0,检测到此帧出错,丢弃。
- CRC校验
- CRC校验
- crc校验
- CRC校验
- CRC校验
- crc校验
- CRC校验
- CRC校验
- CRC 校验
- CRC 校验
- CRC校验
- CRC校验
- CRC 校验
- CRC校验
- CRC校验
- CRC校验
- CRC校验
- CRC校验
- 项目中如何使用solr
- Cookie的分类和Cookie的常用API
- 内存分配与回收策略
- android javap命令生成自定义类签名
- 高通增大分区以及烧录失败解决
- CRC校验
- POJ2536-Gopher II
- ajax具有返回值,但是返回值无法使用
- 理解之 原型链
- js 随机参数
- Python书籍推荐
- 支付宝服务窗API接口开发php版本
- POJ3176 Cow Bowling
- js基础&&dom编程 25