终于弄懂 CRC 循环冗余校验 辽
概述
- CRC 即 Cyclic Redundancy Check 的缩写
- CRC 循环冗余校验属于
检错码
,只能检测出现了错误,但无法纠正错误。 - 与CRC循环冗余校验类似的,还有奇/偶校验,但是 CRC 漏检率更低,因此在实际应用中更为重要
使用 CRC 校验数据流程
- 首先需要发送方在原始数据的基础上,加上CRC校验码,组成新的发送数据
- 然后接收方对收到的
原始数据 + 校验码
进行校验,判断数据在传输过程中是否出现错误
发送方对原始数据追加校验码
- 假设原始数据是:
101001
- 生成待追加的校验码,需要使用一个
生成多项式,G(x)(收发双方事先约定)
,例如 G(x) = x3 + x2 + 1 - 构造被除数:原始数据 + 生成多项式最高次项个0,即:
101001000
- 除数:除数实际上就是生成多项式的系数,G(x) 展开得到: G(x) = 1 * x3 + 1 * x2 + 0 * x1 + 1 * x0,即
1101
- 两数相除得余数,并进行补位
(补到与生成多项式最高次项一致)
,即得到校验码。但是,这里的除法跟常规除法并不相同 - 常规除法在上下两行数进行运算时,使用的是减法运算,而这里
使用的是异或
- 通过上述运算,得到校验码
001
,添加到原始数据之后,得到的最终发送数据为101001001
接收方对收到的数据进行校验
- 继续接前文,假设收到的数据为
101001001
- 接收方对该数据做除法,除数仍然是之前使用的多项式的系数
1101
- 过程如下
- 若余数为0,则表示未出错
- 假设,接收方收到的数据出现了错误:
101101001
,校验过程如下:
- 余数不为0,则表示传输过程中出现了错误
结语
计算CRC校验码时,用到的除法运算,内部使用的是
异或运算而非减法运算
计算出余数后,还要对其进行补位,才能得到最终使用的校验码
在计算机网络中,数据链路层将数据封装成帧时,会在帧尾添加校验码,从而判断数据在传输过程中是否发生错误
在实际使用CRC时,采用的生成多项式更为复杂,从而确保较低的漏检率
另外,生成多项式的常数项必须是1
终于弄懂 CRC 循环冗余校验 辽相关推荐
- CRC循环冗余校验(计算机网络)
CRC循环冗余校验 CRC差错检验的过程 提要 CRC的具体过程 例题详解 CRC差错检验的过程 提要 数据在链路层进行传输时,为了保证接收到的数据比特流是准确无误的,会采用CRC循环冗余校验的方式 ...
- CRC循环冗余校验是如何纠错的
引言 昨天同学突然问我CRC循环冗余校验是如何纠错的?我突然大脑一片空白,学过校验码自然知道CRC循环冗余校验码是可以检错和纠错,但是仿佛只知道求出检验码和检错的过程,但是不知道如何纠错的过程,查询书 ...
- CRC循环冗余校验引起的二进制除法如何计算风暴
文章目录 知道两个概念 模2和 模2减 两种不同的二进制除法 除法 模2除法 CRC 循环冗余校验 编码过程 差错检测能力 谈CRC循环冗余校验的之前,先把二进制除法说一下,先回忆一下十进制之间的除法 ...
- crc循环冗余校验 php,crc 循环冗余校验
--- title: crc 循环冗余校验 date: 2018-09-26 updated: 2018-10-06 --- # crc 循环冗余校验 CRC(Cyclic Redundancy Ch ...
- 计算机考研英语一和英语二的区别,考研英语一和英语二的区别 今天终于弄懂了!...
原标题:考研英语一和英语二的区别 今天终于弄懂了! 大家在最后三个月冲刺需要注意: 1.建议留几套真题,做考前模拟,精读真题可以用 <考研圣经>(英语二用)98-07 年的真题,都是逐词逐 ...
- CRC(循环冗余校验) BCC校验(异或校验) 温度换算 在线计算
1,CRC(循环冗余校验)在线计算 2,BCC校验(异或校验)在线计算 3,温度换算 4,在线换算器
- 淘宝特价版拉新赚钱的页面怎么做?我终于弄懂了
淘宝的同胞兄弟特价版,虽然长的朴实无华以至于经常被人问起淘宝特价版靠谱吗?2021年淘宝特价版可谓大火了一把,阿里巴巴不计成本的大力推广淘宝特价版,目的也非常明确要把拼多多占领的市场掠夺回来.最近还传 ...
- CRC循环冗余校验码总结
一.CRC简介 先在此说明下什么是CRC:循环冗余码校验 英文名称为Cyclical Redundancy Check,简称CRC,它是利用除法及余数的原理来作错误侦测(Error Detecting ...
- CRC 循环冗余校验码 的计算方法
循环冗余校验CRC(Cyclical Redundancy Check)字段位于尾部,有32位,有时称为IEEE/ANSI标准的CRC32.要使用一个n位CRC监测 数据传输错误,被检查的消息首先要追 ...
最新文章
- 将资源文件中的数据写回磁盘
- 网络游戏程序中解决加载卡顿的有效方法
- 服务器端使用jsp还是asp_快速了解 ASP.NET Core Blazor
- 修改linux开机画面
- JAVASCRIPT干了不下四五种工作
- ug添加imachining变量_UG用的不够快?是不是还没建标准库
- java netty post_API调用Netty长链接执行发送消息(在线数、用户列表)
- [转]工程师进阶之路(三)
- 在ASP.NET Core 3.1 MVC中集成Vue.js V4和使用Dropzone文件上传
- iOS开发之mac上搭建openfire服务器
- 在微信小程序中使用条形码生成器
- Verilog设计实例(1)线性反馈移位寄存器(LFSR)
- 书籍分享——《创新者的窘境》
- 雷达原理---线性调频信号的MATLAB仿真
- 经典!史上最全免费收录网站搜索引擎登录口
- 阿里云服务器Discuz论坛程序安装
- 网关 路由器 防火墙
- 多边形偏移算法c语言,多边形的偏移填充算法
- 3dmax 创建圆锥体1
- 世界杯优化算法及其Python实现
热门文章
- 计算机主机是什么系统吗,电脑RAM和ROM的区别是什么?RAM和ROM有哪些作用?
- WIN10下如何更改微信聊天记录的默认存储路径
- 无线网主域名服务器,主域名服务器和网关的关系
- vmware装的ubuntu的界面怎么全屏?
- python两个等于号是代表什么_python两个等于号是什么意思_等于号表示什么意思...
- IDEA(2018.2)的下载、安装及破解
- 《大学计算机基础》课程学习(1)——第1章 计算机基础知识
- js中的强制类型转换和进制数表达
- 吴军亲述编程生涯:不用低效率的算法做事情
- configure配置调试