CRC校验
来源:互联网 发布:局域网网络监控工具 编辑:程序博客网 时间:2024/06/14 16:59
一、概念
CRC即为循环冗余校验码,是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
二、算法
(1)先选择一个用于在接收端进行进行校验时,对接收的帧进行除法运算的除数。
(2)看所选定的除数的二进制位数,假设为k位,然后在要发送的的数据帧(m位)后加上k-1位“0”,然后用该帧以“模2除法”方式除以除数,所得的余数就是该帧的CRC校验码。注意:余数的位数一定是比除数少一位,不够的在前面补“0”。
(3)把校验码附在原数据帧的末尾,构建成一个新帧发送到接收端,最后在接收端再把这个新帧以“模2除法”的方式除以之前选择的除数。若没有余数,则表明在传输过程中没有出错;否则,则在传输过程中出现了差错。
三、实例
假设选择的CRC生成多项式为G(X) = X4 + X3 + 1,求二进制序列10110011的CRC校验码。
(1)将多项式G(X)变为二进制序列 11001
(2)生成的二进制的位数为5位,则在原数据帧后加4个0,得到新帧 101100110000 ,然后把这个数以“模2除法”方式除以多项式,得到的余数为 0100。
(3)把得到的CRC校验码附在原始帧末尾,得到新帧 101100110100,再把此帧发送到接收端。
(4)接收端接收到的帧以“模2除法”的方式除以之前选择的除数11001,若没有余数则没有差错,否则出现差错。
阅读全文
0 0
- CRC校验
- CRC校验
- crc校验
- CRC校验
- CRC校验
- crc校验
- CRC校验
- CRC校验
- CRC 校验
- CRC 校验
- CRC校验
- CRC校验
- CRC 校验
- CRC校验
- CRC校验
- CRC校验
- CRC校验
- CRC校验
- 使用maven执行testng特定组时,报错Nullpointer
- (4)按从小到大的顺序排列数组中的元素
- Leetcode Balanced Binary Tree
- 基于视窗的自适应网站
- 2017-06-27 每日一记 myeclipse里的代码折叠
- CRC校验
- App 扫描二维码登陆网站
- C语言的函数调用约定(stdcall+cdecl+thiscall+fastcall)
- 2 手写实现SpringMVC,第二节:自定义注解及反射赋值
- maven 不同环境变量切换
- JAVA里Properties类 学习使用
- Unity3D 05-理解Unity的新GUI系统(UGUI)
- Python学习之几种存取xls/xlsx文件的方法
- C++:istreambuf_iterator与istream_iterator的区别