CRC校验原理及步骤

1、CRC是用来干嘛的?

检测数据传输过程中是否出现错误(某些位,或某几位,或者某块区域位错误)。

2、CRC是否能校正数据传输中的错误?

CRC只能检错,不能纠错。如果发现错误,可根据双方协议规定要求发送方重新发送

3、CRC是否能100%检错?

不是100%检错。只能说检错的概率比较高。

4、CRC为什么检错比较高效?

原始信息中某位发生变化,则CRC值发生翻天覆地的变化。而不像其他校验,原始信息中某位发生变化时,

5、CRC校验的过程是什么?

发送方根据发送报文,计算出CRC值。将原始信息和该CRC值一起发送给接收方。接收方根据原始信息,按照同样的算法,计算CRC。如果计算的CRC值不正确的话,则表明在数据传输的过程中,原始信息(或者CRC值)发生错误。

6、CRC校验的原理是什么?

CRC校验,本质上是模2除法求余。将发送信息M(x)当做被除数,发送方和接收方共同约定一个除数G(x),然后求余R(x),该余数R(x)即为CRC值。

7、CRC检验为什么要采用模2除法?

模2运算加减乘除和二进制加减乘除一样,唯一不同就是不进位,也不借位。因此硬件实现比较简单,可以用XOR异或门来搭建,加法和减法效果相同。



CRC定义:
 CRC即循环冗余校验码,是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。

CRC校验原理:
 其根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验码,但要注意,这里的数也是二进制序列的,下同),生成一个新帧发送给接收端。当然,这个附加的数不是随意的,它要使所生成的新帧能与发送端和接收端共同选定的某个特定数整除(注意,这里不是直接采用二进制除法,而是采用一种称之为“模2除法”)。到达接收端后,再把接收到的新帧除以(同样采用“模2除法”)这个选定的除数。因为在发送端发送数据帧之前就已通过附加一个数,做了“去余”处理(也就已经能整除了),所以结果应该是没有余数。如果有余数,则表明该帧在传输过程中出现了差错。

模2除法:
 模2除法与算术除法类似,但每一位除的结果不影响其它位,即不向上一位借位,所以 实际上就是异或。在循环冗余校验码(CRC)的计算中有应用到模2除法。
例:
在这里插入图片描述
CRC校验步骤:
 CRC校验中有两个关键点,一是预先确定一个发送送端和接收端都用来作为除数的二进制比特串(或多项式),可以随机选择,也可以使用国际标准,但是最高位和最低位必须为1;二是把原始帧与上面计算出的除数进行模2除法运算,计算出CRC码

具体步骤:

  1. 选择合适的除数(最高位和最低位必须为1)
  2. 看选定除数的二进制位数,然后再要发送的数据帧上面加上(这个位数-1)位的0,然后用新生成的帧以模2除法的方式除上面的除数,得到的余数就是该帧的CRC校验码。注意,余数的位数一定只比除数位数少一位,也就是CRC校验码位数比除数位数少一位,如果前面位是0也不能省略。
  3. 将计算出来的CRC校验码附加在原数据帧后面,构建成一个新的数据帧进行发送;最后接收端在以模2除法方式除以前面选择的除数,如果没有余数,则说明数据帧在传输的过程中没有出错。

CRC校验码计算示例:
现假设选择的 CRC生成多项式为 G( X) = X^4 + X^3 + 1,要求出二进制序列 10110011的 CRC校验码。下面是具体的计算过程 :
①将多项式转化为二进制序列,由 G( X) = X^4 + X^3 + 1可知二进制一种有五位,第4位、第三位和第零位分别为1,则序列为11001
②多项式的位数位5,则在数据帧的后面加上4位0,数据帧变为 101100110000,然后使用模2除法除以除数 11001,得到余数。
在这里插入图片描述

③将计算出来的CRC校验码添加在原始帧的后面,真正的数据帧为101100110100,再把这个数据帧发送到接收端。
④接收端收到数据帧后,用上面选定的除数,用模2除法除去,验证余数是否为0,如果为0,则说明数据帧没有出错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在组策略中用户策略仅对特定计算机生效,将组策略应用到满足条件的计算机---配置组策略筛选...

配置组策略筛选Microsoft?Windows?Management Instrumentation (WMI) 大概是我们已知的 Microsoft 保存最好的秘密。尽管如此,但毫无疑问,WMI 是 Microsoft 主要的针对 Windows 的管理支持技术。在Windows Server 2008的组策略高级管理中,对…

Calendar类要点、易错点Calendar中的DATE 和 DAY_OF_MONTH 和 DAY_OF_YEAR

Calendar类要点、易错点 简介: 用于日期的计算。 是一个抽象类,得用它的静态方法getInstance()获取(它的子类)实例。(会根据地区的不同创建当地使用的日历) 将年月日等都存在了它的一个private数组里&a…

学计算机写作文怎么写,关于学电脑的作文

电脑是一部百科全书,有它相伴能滋润人生、丰富人生,能使人和世界零距离接触。以下是小编给大家提供的关于学电脑作文,欢迎大家阅读参考!学电脑作文1我这个人哪,什么都想试一试,什么都想学一学。看到妈妈用缝纫机做衣服…

Idea 类和包的路径后面出现100%methods;84% lines coveredIdea coverage覆盖率测试工具的使用

Idea 类和包的路径后面出现100%methods;84% lines covered 其他先不说,先看一下出现的问题: 类和包的路径后面多了100%methods;84% lines covered,以前类路径后面是什么都没的; 长话短说; 产生原因: 因…

悖论对计算机科学影响,数学和计算机科学的核心逻辑悖论

数学和计算机科学的核心逻辑悖论最终证实对真实世界也有影响,从而使一个关于物质的基本问题变得从根本上无法回答。图灵从算法的角度重新用公式表示出来。这些算法由一台每次能读或写1比特数据的理想化计算机执行。他证实,一些算法无法被此类“图灵机”判…

Springboot进行事件监听的四种方式

前言 讲到事件监听,这里我们说下自定义事件和自定义监听器类的实现方式: 自定义事件:继承自ApplicationEvent抽象类,然后定义自己的构造器 自定义监听:实现ApplicationListener接口,然后实现onApplication…

桌面云计算机有没有处理器,云桌面如何为CPU减负

众所周知,云桌面的架构就是将所有计算集中到中心服务器上,终端只负责与客户交互的部分,这样中心服务器server和客户端client之间通过硬件通道来回传用户的各种交互性数据。比如鼠标通道,键盘通道一般是上行数据通道,把…

SpringBoot:整合监听器/过滤器和拦截器

整合监听器/过滤器和拦截器 在实际开发过程中,经常会碰见一些比如系统启动初始化信息、统计在线人数、在线用户数、过滤敏/高词汇、访问权限控制(URL级别)等业务需求。实现以上的功能,都会或多或少的用到过滤器、监听器、拦截器。 一.SpringBoot整合过…

中国为什么不发展民用计算机,为什么大多数人都错估了计算机与AI的发展?

据SingularytyHub报道,到目前为止,我们大多数人都已经熟悉摩尔定律(Moore s Law),这条著名的定律认为,计算能力的发展遵循指数曲线,每18个月左右性价比就会翻一番。然而,当涉及到将摩尔定律被应用到不同的商…

mybatis-plus使用和原理剖析之逻辑删除

系列文章 mybatis-plus使用和原理剖析之条件构造器 文章目录一、官方说明二、使用方法三、原理剖析1.SQL注入器原理2.SelectById3.DeleteById4.总结四、风险评估一、官方说明 逻辑删除 说明: 只对自动注入的 sql 起效: 插入: 不作限制查找: 追加 where 条件过滤掉已删除数据,…

全国计算机英语四六级准考证打印准考证号,2017全国大学生英语四六级准考证打印...

2017年上半年度CET考试时间为6月17日,同学们打印准考证了吗?为方便大家打印四六级准考证,yjbys小编为大家分享英语四级考试准考证打印官方主页入口如下:2017年上半年度CET考试时间及报名方式一、考试科目及时间1.笔试考试时间日期(6月17日)考…

Centos7配置Jenkins

Centos7配置Jenkins jenkins 官方下载地址:https://mirrors.jenkins-ci.org/redhat/ maven 官方下载地址:https://archive.apache.org/dist/maven/maven-3/ tomcat 官方下载地址:https://tomcat.apache.org/download-90.cgi 1、配置jdk …

学计算机的写论文题目,经典本科计算机论文选题 本科计算机论文题目怎样取...

【100道】经典本科计算机论文选题,每一个论文题目都是精选出来的,看了后定能知晓本科计算机论文题目怎样取等相关写作技巧,让本科计算机论文写作轻松起来!一、比较好写的本科计算机论文题目:1、应用型本科计算机的数学实验教学研究2、对应用型本科计算机网络方向实践…

Collectors.groupingBy()进行分组时,分组值存在null值会报NPE(空指针)错误,使用时要注意

问题分析&#xff1a; 1、使用Collectors.groupingBy()进行分组时&#xff0c;分组值存在null值。 List<String> strList new ArrayList<>(Arrays.asList("11", "12", "13", null, null)); Map<String, List<String>>…

计算机硬盘用u盘维修,U盘装机大师修复磁盘坏道详细教程

我们都知道当我们的磁盘使用的时间久了就会容易出现各种问题&#xff0c;然而硬盘的坏道是最常见的问题之一。关于磁盘出现坏道有很多原因&#xff0c;诸如硬盘本身质量问题&#xff0c;老化&#xff0c;使用不当等等。我们的硬盘内存太小也会导致应用软件对硬盘频繁访问&#…

Linux中Minio安装与启动

Minio是在Apache License v2.0下发布的对象存储服务器。它与Amazon S3云存储服务兼容。它最适合存储非结构化数据&#xff0c;如照片&#xff0c;视频&#xff0c;日志文件&#xff0c;备份和容器/ VM映像。对象的大小可以从几KB到最大5TB。Minio服务器足够轻&#xff0c;可以与…

多屏幕炒股计算机配置,多屏幕股票交易计算机配置建议使用i59400F计算机主机配置(最多六个屏幕)...

在经历了几年的熊市股市之后&#xff0c;2019年股市似乎有所回升. 最近&#xff0c;许多用户询问多屏股票交易计算机的配置&#xff0c;例如三屏&#xff0c;四屏&#xff0c;和六屏. 实际上&#xff0c;与普通计算机的最大区别是该图形卡需要配备多屏幕图形卡. 一台计算机可以…

List.removeIf():删除集合中满足给定条件的所有元素

今天偶然间发现了Collection在1.8新增了一个removeIf(Predicate<? super E> filter)方法&#xff0c;能够实现面试官们常问的&#xff1a;如何一边遍历&#xff0c;一边删除。 首先是源码 /*** Removes all of the elements of this collection that satisfy the given…

计算机专业论文docx,计算机系毕业论文范文-20210606000812.docx-原创力文档

计算机系毕业论文范文一&#xff1a;计算机技术在工程项目管理中的应用推动国家经济发展的核心是科学技术的进步。有效推动科学技术进步的关键在于创新&#xff0c;这是国家经济与社会前进的有效动力&#xff0c;在相关产业领域也发挥着非常重要作用&#xff0c;作为国家经济的…

小学二年级上学期计算机教案,小学数学二年级上册分苹果教案设计

小学数学二年级上册分苹果教案设计〖教学目标1.经历分苹果等实际操作&#xff0c;初步体会有余数除法与生活的密切联系&#xff0c;进一步体会除法的意义。2.通过实际操作&#xff0c;抽象出有余数除法的书写格式&#xff0c;并体会余数一定要比除数小。〖教材分析分苹果是二年…