精华内容
下载资源
问答
  • https://blog.csdn.net/hm108106/article/details/73332465 CRC循环冗余校验码
    展开全文
  • 循环冗余校验码(CRC)广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据未产生r个校验位来进行编码,其编码长度为k+r。由此可知,循环冗余校验码是由两部分组成的,左边为信息码(数据),右边...
    书面解释

    循环冗余校验码(CRC)广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据未产生r个校验位来进行编码,其编码长度为k+r。由此可知,循环冗余校验码是由两部分组成的,左边为信息码(数据),右边为校验码。若信息码占k位,则校验码占n-k位。其中,n为CRC码的字长,所以CRC码又称为(n,k)码。校验码是由信息产生的,校验码位数越长,该代码的校验能力就越强。在求CRC编码时,采用的是模2运算。模2运算加减运算的规则是按位运算,不发生借位和进位。

    通俗来讲,就是信息在编码的时候,在信息的尾部加入一些校验信息,让生成后的编码能够与生成多项式的值相除 余数等于0. 若接收方接收编码后进行校验运算 得出的计算结果余数不为0,则在传输的过程中出现了错误。

    模2除法与普通除法的区别
    普通二进制数的除法需要进位借位,然后将两个数进行进行减法运算,而模2除法不需要进位借位操作,两个数进行的是异或运算。异或运算即同则为0,不同为1,比如 1 和 0 为1,0 和 0 为 0 ,1 和 1 为 1。
    参考于下图
    在这里插入图片描述

    CRC计算例子

    在这里插入图片描述
    x4+x3+x+1对应二进制数为 11011,怎么算的呢?
    x4对应的是1 0000 ,x3对应的是1000 ,x2为0 * 100,x对应10,这样相加起来的就是11011了。
    然后根据生成多项式的最高指数位来确定补全余数的位数,x4+x3+x+1中的最高指数位为4,那就要在原始报文后添加4个0,再对其进行模2运算。

    补充

    CRC主要目的就是检查错误,设计的初衷没有考虑纠错,但不代表不能纠错。但是其纠错比较繁琐,在日常考试中都是考察CRC检错运算或求校验码。

    展开全文
  • 文章目录循环冗余校验码CRCCRC介绍例题详解例题1例题2总结 循环冗余校验码CRC CRC介绍 1.收发方约定好一个生成多项式G(x) 2.发送方基于待发送的数据和生成多项式计算出差错检验码(冗余码),将其添加到待传输数据的...

    该博客参考视频链接:

    循环冗余校验码CRC

    CRC介绍

    1.收发方约定好一个生成多项式G(x)
    2.发送方基于待发送的数据和生成多项式计算出差错检验码(冗余码),将其添加到待传输数据的后边一起传输。
    3.接收方通过生成多项式来计算收到的数据是否产生了误码
    在这里插入图片描述
    在这里插入图片描述
    对于生成多项式,这里举个例子:
    G(x) = x4 + x2 + x + 1
    = 1 * x4 + 0 * x3 + 1 * x2 + 1
    x1 + 1
    生成多项式各项系数构成的比特串:10111
    *
    下面是常用的生成多项式:
    在这里插入图片描述

    例题详解

    例题1

    这里的运算方法使用的是异或,也就是图片中的加号外加一个小圆圈,如果算出来的满4位(针对本题而言,其他题目还得看生成的多项式最高位+1位),那么商置1,可以直接进行异或运算,如果算出来的不满4位,则商置0。
    这里最后算出的余数为001,将其放到待发送数据的尾部,构成101001001后发送。
    在这里插入图片描述

    例题2

    这里的算法跟例题1其实相差不大,只不过是拿传输过来的数据对生成多项式进行异或运算,同样也是满4位针对本题而言,其他题目还得看生成的多项式最高位+1位),商置1,不满则置0。
    最后算出来的余数如果是0,那么传输过来的数据没有误码,如果不是(例如本题,则传输的数据有误码)
    在这里插入图片描述

    总结

    1.检错码只能检测出桢在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误
    2.要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错,但纠错码的开销比较大,在计算机网络中较少使用
    3.循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层
    在这里插入图片描述

    展开全文
  • 数据链路层CRC(循环冗余码)差错校验码详解 CRC差错校验码是数据链路层用来进行差错校验的一个码。 CRC编码过程 假设要编码的数据D,有d个比特,发送节点要将它发送给接收节点。发送方和接收方要先协商一个r + 1比特...

    数据链路层CRC(循环冗余码)差错校验码详解

    CRC差错校验码是数据链路层用来进行差错校验的一个码。

    CRC编码过程

    假设要编码的数据D,有d个比特,发送节点要将它发送给接收节点。发送方和接收方要先协商一个r + 1比特模式,成为生成多项式。我们将其表示为G。我们将要求G的最高有效位(最左边)的比特是1。

    我们要有一个数据D,比如 1001
    这个数据有d个比特,也就是4个比特
    需要附加 r 个比特作为校验码 R
    编码过后会变成数据会变成D + R
    数据有d + r个比特
    使得得到的数据D+R进行模2运算恰好能被G整除

    在这里插入图片描述

    CRC差错检测过程

    接收方用G去除接收到的D+R数据,如果余数为非0,则有差错,如果余数为0,则无差错

    CRC计算

    所有CRC计算采用模2算术来做,在加法中不进位,在减法中不借位。这意味着加法和减法是相同的,而且这两种操作等价于异或(XOR)操作。

    1011 XOR 0101 = 1110

    异或操作:不同的为1,相同为0。也就是0 XOR 0 = 0,1 XOR 1 = 0,0 XOR 1 = 1。

    乘法和除法是相同的。

    给定D 和 R, D * 2r XOR R就等于 D + R数据。

    如何计算R

    我们要求出R使得对于n有:
    D * 2r XOR R = nG

    也就是说,我们要选择 R 使得G能除 D * 2r XOR R 而没有余数。如果对上面的等式两边都 XOR R.

    D * 2r = nG XOR R

    根据上面的等式可以得出,如果我们用G 除 D * 2r,余数刚好是R

    R = remainder (D * 2r / G)

    也就是使用D * 2r去除以 G。余数就是R。

    如何计算G

    G 作为多项式,有两种写法,一种是x2 + x + 1的写法,一种是二进制写法 111。

    我们需要用 D * 2r 除以 G 。所以我们需要求出G的二进制写法,才能做除法运算。

    这个转换的方法:

    1. 首先把末尾的1看成x0,也就是x的0次幂
    2. 这样提取出x的所有幂
    3. 对应幂的位置填1,如果没有对应幂的位置则填0
    转换例子1

    G = x4 + x + 1

    提取出来的幂分别是 4,1,0。
    没有的幂是3,2。
    在对应的位置填上1或0。
    4 3(无) 2(无) 1 0
    1 0 0 1 1
    这个G的二进制就是 10011。

    其实很简单,0次幂对应个位,1次幂对应十位,一直往上加就行了,有1次幂十位就是1,没有就是0.

    转换例子2

    G = x6 + x4 + x2 + 1

    6 5(无) 4 3(无) 2 1(无) 0
    1 0 1 0 1 0 1

    对应的二进制就是 1010101

    计算CRC编码

    给定 D = 101110, G = 1001, d = 6, r = 3。计算D的CRC编码后的数据

    首先求R。

    用D/G可以得出结果为101011,余数为011,余数就是R。

    然后把R放到D后面。

    编码后就是 101110 011

    展开全文
  • 【计算机网络】CRC校验码||循环冗余码详解及计算习题
  • CRC校验码计算详解 (网络工程师考试必备) 以实例说明:2008年下半年上午试题(18)。 采用CRC进行差错检验,生成多项式为G(X)=X4+X+1,信息码字为10110,则计算出的CRC校验码是: A. 0000 B. 0100 C. 0010 ...
  • 常用的校验方式有奇偶校验、异或校验、累加和校验(可以看我之前的一篇文章累加和校验算法(CheckSum算法))、循环冗余校验(CRC校验)等等。 奇偶校验、异或校验、累加和校验都比较简单,且易于实现,但是检错能力...
  • CRC循环冗余校验学习及总结

    千次阅读 2017-06-03 13:01:55
    循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误...
  • 校验码——CRC循环冗余校验码 一、码距 二、奇偶校验码 奇偶校验码是一种增加二进制传输系统最小距离的简单和广泛采用的方法。例如,单个的奇偶校验将使码的最小距离由一增加到二。 一个二进制码字,如果...
  • 循环校验码

    2017-11-01 10:05:22
    针对CRC校验的详解循环冗余校验检错方案,1. CRC 校验原理,2.CRC 校验码的计算示例
  • 冗余码:用M’除以P,得出余数R,R为n位 将得出的R添加在M’中最后n个0的位置 即可得出最终应传送的数据 注:此过程中的计算,均不产生进位,采用相同得0,相异得1的规则 例题详解 要发送的数据序列为101011,设...
  • crc16校验详解文档

    2013-03-27 20:36:04
    循环冗余校验码(CRC)是通信协议中一种重要的检测方法,本文档详细讲述CRC16的原理及数学计算,另有相关程序代码供读者参考
  • crc校验详解

    千次阅读 2017-06-15 16:01:48
     CRC即循环冗余校验码(Cyclic Redundancy Check[1] ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式...
  •  循环冗余校验是数据通信领域中最常用的一种差错校验码,主要用来检测或校验数据传输或者保存后可能出现的错误。其特征是信息字段和校验字段的长度可以任意选定。 工作原理:  CRC检错方法的工作原理可以从发送端...
  • CRC校验详解

    千次阅读 2016-08-16 16:15:26
    循环冗余校验码(CRC)的基本原理是:在K位信息;编辑本段;几个基本概念;1、多项式与二进制数码;多项式和二进制数有直接对应关系:x的最高幂次对应;多项式包括生成多项式G(x)和信息多项式C(x);如生成多项式为G...
  • 【Linux】详解CRC校验

    2017-06-27 18:25:28
     CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面...
  • CRC校验详解(附代码示例)

    千次阅读 2019-11-08 10:15:21
    CRC校验即循环冗余校验(CyclicRedundancyCheck),是基于数据计算一组效验,用于核对数据传输过程中是否被更改或传输错误。首先看两个概念,后续会用到。 模2除法:也叫模2运算,就是结果除以2后取余数。模2除法...
  • Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验,用于核对数据传输过程中是否被更改或传输错误。 假设数据传输过程中需要发送15位的二进制信息g= 101 0011 1010 0001,这串二进制可表示为代数...
  • 蓝牙:CRC原理详解(附crc16校验代码)

    千次阅读 2019-03-19 19:54:01
    CRC原理详解(附crc16校验代码) ...CyclicRedundancyCheck循环冗余检验,是基于数据计算一组效验,用于核对数据传输过程中是否被更改或传输错误。 算法原理 假设数据传输过程中需要发送15位的二进制信息g=101001...
  • CRC8 详解

    万次阅读 2016-06-24 15:33:21
    CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。  CRC校验可以简单地描述为:例如我们要发送一些数据(信息字段),...
  • CRC详解及在LTE中的应用

    万次阅读 2015-03-26 16:09:50
     CRC即循环冗余校验码(Cyclic Redundancy Check), CRC检验原理实际上就是在一个K位二进制数据序列之后附加一个R位二进制检验码(序列),从而构成一个总长为N=K+R位的二进制序列;附加在数据序列之后的这个检验...
  • 链路层信道详解

    千次阅读 2021-04-08 09:07:04
    文章目录一、链路层概述链路层提供的服务链路层在何处实现二、差错检验和纠正技术奇偶校验检验和方法循环冗余检测三、多路访问协议信道划分协议时分多路复用(TDM):频分多路复用(FDM):分多址(CDMA):随机接...
  • 计网-数据链路层

    2021-01-13 16:40:54
    2.循环冗余校验码CRC 2.1计算校验位 2.2接收端校验 3.最大传输单元MTU 3.1 MTU对IP协议的影响 3.2 MTU对UDP协议的影响 3.3 MTU对TCP协议的影响 4.以太网协议详解 4.1 以太网中数据帧结构 封装成帧 封装成...
  • 复用技术数据链路层概述封装成帧透明传输差错检测奇偶校验码循环冗余校验码CRC最大传输单元MTUMTU路径MTU以太网协议详解Mac地址以太网协议数据格式传输过程网络层概述IP协议讲解虚拟互连网络IP协议IP协议的格式...
  • CRC:循环冗余码校验 B站计算详解 IP子网划分 2进制计算, 10进制表示结果 子网掩码就是个占位符,子网掩码永远是与ip地址成对出现的,表示网络号与主机号的分割线在哪 (子网掩码属于ip地址的一部分) ...
  • 20.2.3 循环冗余码校验 405 20.3 数据校验实战 407 20.3.1 数据帧格式定义 408 20.3.2 数据校验实验 411 第二十一章 深入编程 423 22.1 编程规范 423 21.1.1 排版 423 21.1.2 注释 425 21.1.3 标识符 427 21.1.4 ...

空空如也

空空如也

1 2
收藏数 30
精华内容 12
关键字:

循环冗余校验码详解