如何进行CRC校验

article/2025/9/27 14:29:21

为了保证数据传输的可靠性,计算机网络传输数据时,必须采用差错检验措施,数据链路层广泛应用了循环冗余检验CRC(Cyclic Redundancy Check)的检错技术。

基本原理:
CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列;附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系。如果因干扰等原因使数据序列中的某一位或某些位发生错误,这种特定关系就会被破坏。因此,通过检查这一关系,就可以实现对数据正确性的检验。

冗余码:发送端,先把数据划分为组,假设每组k个比特。假定待传送的数据M=101001,CRC运算就是在数据M后面添加供差错检验用的n位冗余码。用二进制的模2运算进行2^n乘M的运算,这相当于在M后面添加n个0。得到k+n位的数除以收发双方事先商定的长度为(n+1)位的除数p,得出商是Q余数是R(n位,比p少一位)。

在接收端把接收到的数据以帧为单位进行CRC检验:把收到的每一帧都除以同样的除数P(模2运算),然后检查得到的余数R:
如果在传输过程中无差错,那么经过CRC检验后得出的余数R肯定是0。
总之在接收端对收到的每一帧数据进行检测后,有以下两种情况:
1、若余数R=0,则判定这个帧没有错,就接受;
2、若余数R≠0,则判定这个帧有错,就丢弃。

一种简便的方法是使用多项式来表示循环冗余检验过程,在上边的例子中,用多项式P(X) = x^3 +X^2+1表示P = 1001(最高位对应X^3,最低位对应X^0)。

例题:要发送的数据为1101011011,采用CRC的生成多项式是P(X)=X^4+X+1,试求应添加在数据后面的余数。
数据在传输过程中最后一个1变成了0,问接收端能否发现?
数据在传输过程中最后两个1变成了0,问接收端能否发现?

解答如下:
要发送的数据为1101011011,采用CRC的生成多项式是P(X)=X^4+X+1,,则可用11010110110000除以10011获得数据后面的余数,其余数为1110,计算过程如下图:
这里写图片描述
数据传输过程中最后一个1变成0,则接收端用11010110101110(数据最后一个1变成0即:1101011010,余数为1110)除以10011,获得余数为1101,不是0000,故接收端判定该数据帧有错。
数据传输过程中最后两个1变成0,则接收端用11010110001110(数据最后一个1变成0即:1101011000,余数为1110)除以10011,获得余数为1011,不是0000,故接收端判定该数据帧有错。

在数据链路层若仅仅使用循环冗余检验CRC差错检测技术提供可靠传输服务,只能做到对帧的无差错接收。注意:我们现在并没有要求数据链路层向网络层提供可靠传输服务,可靠传输服务指:数据链路层的发送端发什么,在接收端就收到什么。传输差错分为两种:1、比特差错(1可能变成0,0可能变成1);2、收到的帧没有出现差错,但出现了帧丢失、帧重复等。故在数据链路层使用CRC校验,能够实现无比特差错的传输,但这还不是可靠传输。


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

相关文章

CRC校验(个人小结)

前言 之前曾经在通信原理课程学习过、也在项目中使用软件模拟过CRC校验。但是仍然有许多困惑的地方,在网上找的资料也是零零散散,于是自己根据课程学习、项目实践以及网上的资料,做一个小结。不当之处请在评论区指出。推荐一个CRC在线校验工…

CRC码校验纠错原理

在接收端收到了CRC码后用生成多项式为G(x)去做模2除,若得到余数为0,则码字无误。若如果有一位出错,则余数不为0,而且不同位出错,其余数也不同。可以证明,余数与出错位的对应关系只与码制及生成多项式有关,而…

CRC校验详解(附代码示例)

目录 1.CRC校验原理 2.生成多项式 3.以CRC-16校验为例讲解编程实现 3.3.1 完全按照CRC原理实现校验 3.3.2 工程中常用CRC校验过程 3.3.3 改进的CRC校验过程 4.以CRC-8校验为例讲解查表法 5.以CRC-16校验为例讲解查表法 5.1.生成表格 5.2.查表法实现 6.代码链接 CRC校…

详述CRC校验码(附代码)

关注星标公众号,不错过精彩内容 来源 | 一口Linux CRC校验应用比较广泛,通常在通信领域用的比较多,即便是自定义通信协议,也可以添加CRC校验码,使其通信更加可靠。 今天就来进一步描述CRC校验码。 一、CRC概念 1. 什么…

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

目录 CRC(循环冗余校验) CRC 校验码的生成 CRC 的发送方与接收方 发送方 接收方 除法异或运算示意图 CRC(循环冗余校验) CRC(Cyclic Redundancy Check)循环冗余检验,是一种用于检测数字数…

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…