【科普】CRC校验(一)什么是CRC校验?

article/2025/9/27 14:36:48

目录

 

CRC(循环冗余校验)

CRC 校验码的生成

CRC 的发送方与接收方

发送方

接收方

除法异或运算示意图


 

CRC(循环冗余校验)

CRC(Cyclic Redundancy Check)循环冗余检验,是一种用于检测数字数据错误的技术。作为一种校验和类型,CRC 根据文件或更大数据集的构建生成固定长度的数据集。就其用途而言,CRC是一种哈希函数,用于检测数字电信网络和硬盘驱动器等存储设备中常用的原始计算机数据的意外更改。

在循环冗余校验中,固定数量的校验位被附加到需要传输的消息中。数据接收器接收数据,并检查检查位是否有任何错误。在数学上,数据接收器通过查找所传输内容的多项式除法的其余部分来评估附加的检查值。如果似乎发生了错误,则会发送否定确认,要求重新传输数据。

循环冗余检查也适用于硬盘等存储设备。在这种情况下,检查位将分配给硬盘中的每个块。当计算机读取损坏或不完整的文件时,将触发循环冗余错误。CRC 可以来自其他存储设备或 CD/DVD。错误的常见原因包括系统崩溃,文件不完整或损坏,或者有很多错误的文件。

CRC多项式设计取决于应该受到保护的块的长度。错误保护功能也可以决定CRC设计。可用于CRC实施的资源可能会对性能产生影响。理解CRC的另一种方法是查看其名称中的特定单词。专家指出,CRC被称为“冗余”,因为它增加了数据集的大小而没有添加新信息,而“周期性”则因为它适用于周期性实施系统。

如前所述,指出CRC是一种特定类型的校验和也是有帮助的,其中任意大小的数据集映射到固定大小的字符串,可以将其称为哈希函数。相比之下,校验和本身可能非常简单 , 例如,基元校验和可以只是相关字节值的总和。使用其周期性设置的CRC通常被认为是检查错误和验证数据完整性的一个非常好的策略。它是校验和使用和散列以及一般文件检查中不断发展的工具包的一部分。

CRC 校验码的生成

CRC校验码的生成主要包含以下过程:

  1. 找到除数的长度,这个除数是我们自己定义的。
  2. 除数的位数减一为CRC校验码的位数,假设除数的位数为5,则校验码的位数为4,对被除数也就是需要传递的信息的数后面加上校验码的位数的0,如果校验码的位数为4,则在被除数后面直接加上4个0
  3. 执行除法操作,将加上4个0的被除数作为新的被除数,除以我们定义的除数,除法操作完成后,会得到两个结果:一个是商,另一个是余数。(注意:除法运算采用异或运算)
  4. 得到的余数即使我们要的 CRC 校验码

CRC 的发送方与接收方

发送方

发送方给出需要传递的数据(Data),并定义多项式(polynomial),以多项式得到(n+1)位除数(divisor),对数据的末尾补上n位0,作为被除数,用除数去除被除数,得到的余数就是所需要计算的n位CRC校验码,将得到的CRC校验码拼接到原始数据的末端生成新的数据,将这个数据一并传给接收方。

接收方

接收方需要做的事就更简单一些,将得到的一整块数据作为被除数,用在发送方得到的除数去除被除数,如果结果余数为0的话,代表数据的传输没有出错,得到的数据事正确且有效的。

接收方还有另外一种方法,即使发送方分别发送数据和CRC数据,结束方得到数据末尾补n个0作为被除数,用多项式除数去除被除数,得到的余数如果作为接收方的CRC校验码,如何接收方得到的CRC数据和发送方发的CRC一致的话,同样也可以证明数据的传输是没有问题的。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

除法异或运算示意图

可以看到图中,我们所要传递的信息为100100,也就是被除数,我们自定义的除数为1101,它的位数为4,因此要在被除数后面加上3个0,然后进行除法异或运算,最终得到的商为111101,得到的余数为001,根据前面的定义,这个余数001就是我们想要的 CRC 校验码。

然后将生成的 CRC 校验码添加到原被除数的后面,也即是100100后面补上001得100100001,这就是我们要发送的新的数据信息包含了 CRC 校验码,接收端就可以进行相应的解析。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

 更具体的CRC校验码的计算方法可以参考一位B站up主的教学视频

[CRC校验]手算与直观演示

将自定义的多项式以电路的形式展现,原始数据加上相应位数的0,依次进入到电路当中,最终生成的就是我们所需的CRC校验码。更详细的计算方法可以在视频中学习。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16

 


http://chatgpt.dhexx.cn/article/HuabJQn5.shtml

相关文章

CRC校验原理及其C语言实现

文章目录 目录前言CRC算法简介CRC参数模型CRC计算CRC校验CRC计算的C语言实现CRC计算工具总结参考资料 目录 前言CRC算法简介CRC计算CRC校验CRC计算的C语言实现CRC计算工具总结 前言 最近的工作中,要实现对通信数据的CRC计算,所以花了两天的时间好好研…

Oracle Toad 导数,麒峰

标签: 补丁下载 x86 ia64 操作系统 迅雷下载 oracle it (2011-05-26 10:28) 标签: 授予的权限 主键约束 对象 角色管理 数据字典 oracle it 系统权限: create table :create any table: drop table: create procedure: execute anycedure: cr…

最优捕捞

一、问题重述 为了保护人类赖以生存的自然环境,可再生资源(如渔业、林业资源)的开发必须适度。一种合理、简化的策略是,在实现可持续收获的前提下,追求最大产量或最佳效益。 假设这种鱼分4个年龄组:称1龄…

短期趋势自用经传捕捞季节 通达信指标公式副图 源码 贴图

指标公式描述 短期趋势自用经传捕捞季节 通达信指标公式副图 源码 贴图 图示: 指标源码: WY1001:(2*CLOSEHIGHLOW)/4; WY1002:EMA(WY1001,2); WY1003:EMA(WY1002,2); WY1004:EMA(WY1003,2); XYS0:(WY1004-REF(WY1004,1))/REF(WY1004,1)*100; STICKLINE(XYS0>0,X…

股票指标使用 - 捕捞季节

股票指标里面我觉得这个指标是最实用的了,XX软件里面流行起来的。作为IT男,任何带有逻辑运算的都会让我感兴趣。 接下来就用简单易懂的文字介绍下这个指标怎么看(百度上搜到的都说了那么深奥) 如图: 优势:相对MACD指标来说&…

捕捞季节 通达信副图指标公式 源码

捕捞季节是一个趋势型指标,主要用于(超)短线的股价运行趋势状态监控。捕捞季节通达信指标公式主要用途是用来做短期买卖点操作的指标公式,适合那些做短期买卖的股民。 【指标用法】 紫色线上穿黄色线为金叉买入信号,…

通达信指标:捕捞季节

通达信【捕捞季节】指标 WY1001:(2CLOSEHIGHLOW)/3; WY1002:EMA(WY1001,3); WY1003:EMA(WY1002,3); WY1004:EMA(WY1003,3); XYS0:(WY1004-REF(WY1004,1))/REF(WY1004,1)100; STICKLINE(XYS0>0,XYS0,0,2,0),COLORRED; STICKLINE(XYS0<0,XYS0,0,2,0),COLORGREEN; PJGJ:AMO…

x86服务器与arm服务器

服务器是提供计算服务的设备&#xff0c;服务器的构成包括处理器、硬盘、内存、系统总线等&#xff0c;和通用的计算机架构类似&#xff0c;但是由于需要提供高可靠的服务&#xff0c;因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。在网络环境下…

服务器 raid配置

这里写目录标题 首先启动Server在启动界面&#xff0c;按键盘ESC或Del键进入BIOS。设置启动模式为“LEGACY”传统模式&#xff0c;F4 保存并退出重启服务器。ctrlA进入raid配置 首先启动Server在启动界面&#xff0c;按键盘ESC或Del键进入BIOS。 设置启动模式为“LEGACY”传统模…

TaiShan服务器介绍

TaiShan服务器系列介绍 TaiShan 100服务器2016年 基于Kunpeng916处理器 最多16各DDR4内存 支持5个PCIe 3.0扩展插槽 支持SAS/SATA硬盘和SSD 支持板载GE/10GE网络 TaiShan 200服务器2019年 基于Kunpeng 920处理器 最多支持32个DDR4内存 支持最多8个PCLe 4.0扩展插槽 支持NVMe …

中国服务器销售排名,IDC Q3:华为FusionServer Pro智能服务器发货量、销售额荣登中国区x86标准服务器排名双冠王...

据IDC发布的《中国区服务器季度跟踪报告》显示&#xff0c;2020年第三季度中国区x86标准服务器市场(标注1)&#xff0c;华为FusionServer pro智能服务器发货量及销售额双居中国区第一(标注2)&#xff0c;其中机架、高密型号服务器&#xff0c;均列单品类发货量、销售额第一&…

华为x86服务器年销售额,卖了荣耀后,华为又要卖资产?这次是国内第2的X86服务器...

去年11月份&#xff0c;华为将荣耀卖了&#xff0c;从那以后荣耀独立了&#xff0c;开始了自由发展。 为何要卖荣耀&#xff0c;其实大家都知道的&#xff0c;华为把荣耀拿在手中&#xff0c;只能是等死&#xff0c;因为没有足够的芯片供应&#xff0c;荣耀无法推出新手机&…

x86服务器部署kylin v10(arm版)虚拟机

本次讲解在x86 linux环境下使用qemu进行arm版银河麒麟的部署&#xff0c;适用于运维人员进行相关项目的趟雷操作 qemu、VMware、docker区别 讲到虚拟机&#xff0c;得益于windows环境下的盛行&#xff0c;很多人第一时间想到的是VMware。亦或者考虑到部署的方便&#xff0c;考…

中国 X86 服务器市场 10 年来首次负增长

IDC《2019年第一季度中国X86服务器市场跟踪报告》显示&#xff0c;2019年第一季度中国X86服务器市场出货量662,504台&#xff0c;同比下滑0.7%&#xff1b;市场规模35.90亿美元&#xff08;约合240.90亿元人民币&#xff09;&#xff0c;同比增长13.5%。 2018年第一季度中国X86…

浪潮x86服务器芯片,用别人的芯片,做自己的X86服务器:国内浪潮第一,华为第二...

众所周知&#xff0c;在PC领域&#xff0c; X86 架构的芯片是一家独大的&#xff0c;虽然目前也有一些厂商想要向X86架构发起挑战&#xff0c;比如华为去年推出了鲲鹏主板&#xff0c;想将 鲲鹏920 用于PC&#xff0c;但就目前来讲&#xff0c;还需要很长时间。 所以一直以来&a…

2020年x86服务器厂商TOP10最新榜单,精彩不?

【全球财经观察 | 阿明微评】x86服务器市场的变化&#xff0c;阿明一直在关注&#xff0c;因为云计算的根基之一就是服务器。 x86服务器厂商这些年的发展也很有意思&#xff0c;首先看资本运作带来的影响。 在服务器整体市场领域&#xff0c;不管是因为资本组合形成新竞争力&…

x86 服务器常见问题和故障诊断流程

服务器常见问题汇总 服务器支撑着整个企业的信息数据&#xff0c;对公司的信息储存、业务开展、正常运作等等环节都具有着至关重要的意义。然而&#xff0c;服务器在日常运行过程中&#xff0c;由于其复杂的硬件结构、繁琐的运行原理&#xff0c;经常会出现一些大大小小的问题…

x86服务器(HP/DELL/IBM)测试分析(上)

x86架构是开放的&#xff0c;所以在同一个世界里的供应商做出的服务器都没有原则性差异&#xff0c;比如HP/DELL/IBM&#xff08;卖给联想了&#xff0c;工艺和设计仍然是这队的&#xff09;&#xff0c;比如联想&#xff08;收的IBM不算这里&#xff09;/浪潮。这些服务器都是…

大型机、小型机、x86服务器的区别

原文地址为&#xff1a; 大型机、小型机、x86服务器的区别 原文&#xff1a;http://servers.pconline.com.cn/gc/1202/2679853_1.html 大型机、小型机、x86服务器的区别  首先来讲x86服务器&#xff0c;与平常人们所接触的台式机笔记本类似&#xff0c;采用CISC架构处理器。…

阿里云 x86计算机,什么是x86服务器?x86是多少位系统?

windows操作系统的服务器。 1)什么是x86服务器? 简单来说,X86服务器就是采用一系列以“86”为结尾处理器作为CPU的服务器。 x86服务器价格便宜、兼容性好、稳定性较差、安全性不算太高,在现在的服务器市场里,主要用在中小企业和非关键业务中。 x86服务器,与平常人们所接触…