CRC校验概念及例解
来源:互联网 发布:网络接口怎么接线 编辑:程序博客网 时间:2024/06/02 06:08
今天我们来简要的介绍一下关于以太网帧格式的帧末尾的CRC校验的相关概念并用实例来说明CRC校验的具体过程。
CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。
循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
基本原理:
(N,K)码:在K位信息码后再拼接R位的校验码,整个编码长度为N位。
CRC码的生成多项式:根据G(x)可以生成K位信息的校验码,且对于给定的(N,K)码,多项式G(x)的最高次幂满足N-K=R。
由生成多项式得生成码(校验码),且生成码的位数=R+1。
例1:生成多项式为,生成码为:1010111,图解如下
而CRC码=信息码*2^R+(信息码*2^R)^生成码。
且接收和发送的两方会有一个相同(双方默认)的生成多项式,用来发送CRC码和接收检验CRC码。
检验步骤:
1.发送方由默认的生成多项式得到生成码S,把信息码左移生成码位数-1位(R)记为W,W模S得到余数,Y,CRC码即为W+Y。
2.接收方用相同多项式得到生成码S,用S模CRC码,余数为0,则校验正确;有余数,则校验不正确。
以下例2为示范,说明CRC校验的完整过程:
例2:默认生成多项式为x^6+x^4+x^2+x+1,信息码为:10 1101,阐述CRC校验的完整过程。
设:把信息码记为O,生成码记为S,信息码左移R位后的值记为W,W模S得到的余数记为Y。默认生成多项式记为G(x)。
由题可得生成码S为:1 0101。S的位数为4.
发送方:可得W为:10 1101 0000,Y为:1110,CRC码为:10 1101 1110
接收方:接收CRC码为:10 1101 1110时,当CRC码除S余数为0时,则验证结果为正确。
过程如图所示:
CRC校验的相关概念和原理大概就是这样了。分享如上!如有错误,望斧正!
具体概念参考下面链接:
http://baike.baidu.com/link?url=hlya0FDZ_DgjKJBcG_qZVBie7025-S_WiBMVSZokjv59DRyFNiELz1Ofjx2-ckk-bq2-ScyNCIqJhnkE_UzrbOmF5q2MwqnizJJUk2_PvtK
- CRC校验概念及例解
- CRC校验原理及步骤
- 关于CRC冗余校验原理及实现
- CRC校验算法及C#程序实现
- CRC校验算法及C#程序实现
- CRC校验解释及编程写法
- CRC校验算法及实现 C
- CRC校验算法及C++程序实现
- CRC校验算法及C#程序实现
- CRC差错校验原理及实例
- CRC循环冗余校验学习及总结
- 端口相关知识及CRC校验
- CRC校验
- CRC校验
- crc校验
- CRC校验
- CRC校验
- crc校验
- $ionicView.afterEnter不触发
- 欢迎使用CSDN-markdown编辑器
- java问答
- 二.验证伪装的代理ip是否成功
- e.getMessage:multiple points
- CRC校验概念及例解
- JAVA 反射常用的三种机制
- svn+Apache+linux安装
- JAVA垃圾回收详解(收集器分类篇)
- 新鲜出炉的ios开源项目-大熊菜单
- Kotlin-枚举类型
- Java 中的 23 种 设 计 模 式
- 使用Gradle管理你的Android Studio工程
- SpringMVC+Spring+Mybatis(SSM)项目基础架构搭建