CRC 循环冗余检验【计网必考】

news2024/11/25 23:00:19

CRC 循环冗余检验作为一个重点,也是数据链路层必考的一个考点,所以我把差错检测单独拿出来分析一起看一下。总结不易,一个简单的攒,Thanks♪(・ω・)ノ

目录

一、介绍及工作原理

二、校验计算过程


一、介绍及工作原理

循环冗余校验 CRC 是数据链路层的一种差错控制技术。在数据的传输过程中可能会产生比特错误(1 可能变成 0,0 可能变成 1),为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用相应的差错检测机制。

在数据链路层传送的帧中,广泛使用了 CRC 技术。

在发送端,先把数据划分为组,假定每组 k 个比特;假设待传送的一组数据 M = 101001(现在 k = 6),我们在 M 后面再添加 n 位供差错检验用的冗余码一起发送。

大致计算流程如下:

① 用 2 进制的模 2 运算进行 2 ^ n 乘 M 的运算,这相当于在 M 后面添加了 n 个 0,我们设它为 M2;

② 求冗余码,用得到的 M2 除以事先选定好的长度为(n + 1)位的 P,得出的余数为 R,R 取 n 位;

③ 最后用 R 替换 M2 中最后 n 个 0 的位置,即可得出最终应传送的数据。

二、校验计算过程

已知多项式为 x^6 + x^4 + x^2 + x +1,待传送的数据串为 M = 1101011011。在 M 后面添加供差错检测用的 n 位冗余码一起发送。

第一步,确定除数 P。关于多项式,只要是 CRC 算法就离不开多项式算术,使用多项式算术是为了在二进制计算时无需考虑进位问题,CRC 校验中,多项式可以表示为,ax^5 + bx^4 + cx^3 + dx^2 + ex + 1*x^0,而 CRC 用到的除数 P,正是由多项式的各项系数组成。

展开多项式,5 次方和 3 次方系数都为 0,则 CRC 除数为 1010111

所以为了得到除数,我们只需要观察简写式列出的项即可,为了避免出错,可以从右往左写,这个看个人习惯。

第二步,得到 M2。我们要在原数据串末端加 0,0 的数量由多项式决定,具体来说,多项式的阶数是多少就加几个 0。

例如多项式 x^6 + x^4 + x^2 + x +1,该多项式的最高次项为 6 次项,所以在已知的原数据串末端加 6 个 0,即被除数 1101011011000000

第三步,接下来就可以计算校验和了。

① 将数据串的第一个 1 与除数左对齐,按位进行异或操作

注:此过程中的计算,均不产生进位,采用相同得 0,相异的 1 的规则。

② 将未处理的数据搬下来作为新的数据串,重复操作

 

 注:切记将数据串的第一个 1 与除数左对齐,头部的 0 直接跳过。

一直重复以上操作,直到所有的数据都处理过为止。所得到的结果即是校验和,也就是冗余码,111011(长度为除数-1)

第四步,将校验和加在数据项之后,便是带有 CRC 校验的数据,即最终的结果,1101011011111011。

有一处需要注意的地方是,当最后结果的有效位数较少时,最后拼接校验和的时候,不要漏掉前面的 0 ,具体来讲,所拼接的校验和的长度应与之前加 0 的个数相等。 

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

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

相关文章

zookeeper四字命令_java培训

zookeeper支持某些特定的四字命令,他们大多是用来查询ZK服务的当前状态及相关信息的, 通过telnet或nc向zookeeper提交相应命令,如:echo ruok | nc 127.0.0.1 2181 运行公式:echo 四字命令 | nc 主机IP zookeeper端口…

一文读懂Linux内存分配策略

转载:一文读懂Linux内存分配策略-今日头条 (toutiao.com) 在 Linux 操作系统中,虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同位数的系统,地址空间的范围也不同。比如最常见的 32 位和 64 位系统,如下所示…

r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现

原文链接:http://tecdat.cn/?p3795Glmnet是一个通过惩罚最大似然关系拟合广义线性模型的软件包。正则化路径是针对正则化参数λ的值网格处的lasso或Elastic Net(弹性网络)惩罚值计算的(点击文末“阅读原文”获取完整代码数据&…

[附源码]JAVA毕业设计社区图书馆借阅管理系统(系统+LW)

[附源码]JAVA毕业设计社区图书馆借阅管理系统(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项…

【微服务】版本确认完成,传统方式安装Nacos

目录安装Nacos1.4.1【微服务】SpringCloud和SpringBoot版本选择 【微服务】传统方式安装Nacos 安装Nacos1.4.1 Github地址:https://github.com/alibaba/nacos/releases Nacos1.4.1版本下载地址:https://github.com/alibaba/nacos/releases/download/1.…

170-本地WIFI测试环境配置IP

前几天的时候 博客被删了好多好多篇 算一下 现在是169 按道理的话应该总数是1169的 但是现在只剩下1157了 所以就是被删除了12篇 算了 问题不大 被删了就被删了吧 最近心情真的很不好 五月份的事情一直到现在还是没有走出来 我估计可能要等到下一次自己赚到钱了之后…

基于轨迹优化的自动驾驶汽车跟随自行车模型动力学控制(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 本次使用轨迹优化技术来控制汽车。假设汽车遵循自行车模型的动力学。为了实现稳定和安全的跟踪,我们使用了离散时间…

微信内嵌H5调用相机及支付相关问题

前言 进来项目在做公众号,遇到了一些问题及解决方案,在这里进行记录及分享,希望给大家带来一丝帮助 手机上控制台调试我建议使用vConsole(npm install vconsole) 微信内嵌H5的相机调用 微信内嵌H5我们需要调用扫码功能,则需要用…

如何发布WMS/WMTS离线地图服务

介绍: WMTS(OpenGIS Web Map Tile Service)当前版本是1.0.0。WMTS标准定义了一些操作,这些操作允许用户访问切片地图。WMTS可能是OGC首个支持RESTful访问的服务标准。 WMTS的原理和操作 如果知道一个请求的边界范围&#x…

浅谈用Redis实现分布式锁的方案及细节

前言 我们都知道,在面对并发问题时,有加锁操作和保证原子操作两种解决方案。当我们采用加锁操作的时候,因为Redis多采用集群的方式部署,因此我们就需要考虑到锁在分布式系统中使用的注意事项。接下来就看看Redis的分布式锁问题。…

【檀越剑指大厂—Spring】Spring高阶篇

一.基础概念 1.模块 2.Spring 框架概述。 Spring 是轻量级的开源的 JavaEE 框架 Spring 可以解决企业应用开发的复杂性 Spring 有两个核心部分: IOC 和 AOP IOC:控制反转,把创建对象过程交给 Spring 进行管理 Aop:面向切面,不修改源代码进行功能增强…

SpringBoot办公管理系统oa人力人事办公(含源码+论文+答辩PPT等)

项目功能简介: 本项目含代码详细讲解视频,手把手带同学们敲代码从0到1完成项目 该项目采用技术SpringBoot、SpringMvc(接入层框架)Spring(中间层框架)Hibernate(持久层框架)JPAMD5加密、Tomcat服务器、MySQL数据库 项目含有源码、配套开发软件…

R语言多元动态条件相关DCC-MVGARCH、常相关CCC-MVGARCH模型进行多变量波动率预测...

全文下载链接:http://tecdat.cn/?p23287在本文中,当从单变量波动率预测跳到多变量波动率预测时,我们需要明白,现在我们不仅要预测单变量波动率元素,还要预测协方差元素(点击文末“阅读原文”获取完整代码数…

web安全之通过sqlmap工具进行靶场练习

目录 基础语法 get类型的注入 post类型的注入 基础语法 -u:用于get提交方式,后面跟注入的url网址 --dbs:获取所有数据库 --tables:获取所有数据表 --columns:获取所有字段 --dump:打印数据 -D:查询选择某…

火到爆的扩散模型(Diffusion Model)帮你具象化幻想世界

Diffusion Model 如果你对人工智能有所了解,想必已经听说过Diffusion Model了。如果还没有,那就一起来了解一下吧—— 扩散(Diffusion)对于人能智能而言,是一个借用的概念。在热力学中,它指细小颗粒从高密度…

调节盘的三维建模及加工工艺规程设计

目录 1 调节盘分析 - 1 - 1.1 调节盘结构特点 - 1 - 1.2 调节盘的工艺分析 - 2 - 1.3 调节盘的技术要求 - 3 - 2 毛坯的选择 - 4 - 2.1 毛坯的类型 - 4 - 2.2 毛坯余量的确定 - 4 - 2.3 毛坯草图 - 5 - 3 工艺规程设计 - 6 - 3.1 定位基准的选择 - 6 - 3.1.1 粗基准的选择 - 6 …

2022系统分析师下午卷(案例分析)

试题一(共 25 分) 阅读以下关于软件系统分析与建模的叙述,在答题纸上回答问题 1 至问题 3。 【说明】 某软件公司拟开发一套博客系统,要求能够向用户提供一个便捷发布自已心得,及时有效的与他人进行交流的平台。新用户…

新手学习3D建模,弯道超车攻略!

你做三四月的事,在八九月自有答案。​ – 余世存 📝学建模最重要的是每天抽时间练习 🌻给大家准备了200天建模打卡攻略练习素材 📔人体解剖雕塑学(骨骼、肌肉等电子版💯) 📒3dmax…

第4季6:图像sensor的寄存器操作

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、sensor_write_register函数的解析 在第4季4:图像sensor的驱动源码解析中写到,sensor_register_callback函数的调用关系如下: sensor_register_callback …

英文Paper写作怎么确实合适的介词?

Paper写作中,介词是非常常见的,介词虽是小词,数量也不多,但灵活多变,随处可见,功能强大而且难于掌握。我们不可小看这个角色,不可忽视它在不同句子中的作用,Paper写作过程中应该如何…