计算机网络——CRC循环冗余检验
一、循环冗余检验原理
在发送端
- 先把数据划分为组,假定每组 k 个比特,假定一个待传送的数据 M(k位),CRC运算就是在数据 M 的后面添加供差错检测用的 n 位冗余码,然后构成一个帧发送出去,一共发送 (k+n) 位。
- 在所要发送的数据后面增加 n 位的冗余码,虽然增大了数据传输的开销,但却可以进行差错检测。当传输可能出现差错时,付出这种代价往往是很值得的。
在接收端
- 把接收到的数据以帧为单位进行 CRC 检验:把收到的每一个帧都除以相同的除数,然后检查得到的余数R。
- 如果传输过程中无差错,那么经过 CRC 检验后得出的余数 R 肯定是 0;如果出现差错,则余数不为 0。
二、例子
- 题目:已知信息码元序列为 M = 1101011011,除数 P = 10011,计算 CRC 校验码。
- 解析:
- 发送端:
- 由 M位数 得 k=10 ,由 P位数 得 n=4;
- 给 M 后面 补 n 个 0,作为被除数:11010110110000;
- 进行运算,计算出 n位余数=1110;
- 将 余数加到 M 后面,就组成了 CRC校验码:11010110111110;
- 接收端:
- 将 CRC校验码 作为被除数:11010110111110,P 仍为除数;
- 进行运算,计算出 余数;
- 为0,则说明无差错;
- 发送端:
计算机网络——CRC循环冗余检验相关推荐
- CRC 循环冗余检验【计网必考】
CRC 循环冗余检验作为一个重点,也是数据链路层必考的一个考点,所以我把差错检测单独拿出来分析一起看一下.总结不易,一个简单的攒,Thanks♪(・ω・)ノ 目录 一.介绍及工作原理 二.校验计算过程 ...
- CRC循环冗余检验的纠错功能和代码实现
CRC循环冗余检验的纠错功能和代码实现 写这篇文章呢,主要是想聊一下CRC的纠错功能,虽然我们谈到CRC很少说到它的纠错功能,但不代表没有,因此写一文以记录下它的纠错功能以及如何用java代码实现. ...
- 计算机网络crc校验实验报告,CRC校验实现-实验报告(附主要实现代码)
计算机网络 实验报告 班级:03计算机B班 实验名称:CRC校验实现 姓名:kikikind 学号:086 指导老师:何怀文 日期:2006-4-22 1.学习CRC循环冗余检验原理 2.掌握实现方法 ...
- 数据链路层差错检测:CRC(循环冗余检验)
1.循环冗余检验(CRC): 在发送端,先把数据划分为祖,假定每组K个比特.现假定待传送的数据M = 101001(k=6).CRC运算就是在数据M后面添加提供差错检测的n位冗余码,然后构成一个帧发送 ...
- 【数据校验杂谈】循环冗余检验 (CRC) 算法原理
2019独角兽企业重金招聘Python工程师标准>>> 循环冗余检验 (CRC) 算法原理 Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验码,用于 ...
- 循环冗余检验 CRC
一.总体流程: 把要发送的每组数据2^nM(k+n位)除以除数P(n+1位),计算出冗余码FCS(n位),然后再求出要发送的数据:2^nM+R. 接受端把收到的数据除以除数P,看余数R是否为0,如果为 ...
- 【算法】CRC 循环冗余校验
1.概述 循环冗余校验CRC (Cyclic Redundancy Check)是一种数据链路层的差错控制技术. 在数据的传输过程中可能会产生比特错误: 1可能变为0,0可能变为1. 在一段时间内,传 ...
- 数据链路层的循环冗余检验
关于CRC 循环冗余检验码即为CRC,所求冗余码为FCS.循环冗余检验是数据链路层进行差错检测的一个方法.即检验发送的一串二进制数据到接收时里面是否产生误码.基本思路是:通过计算生成校验码,检错时将数 ...
- 从原理到代码理解CRC循环冗余校验
概述:本文详细介绍了CRC循环冗余计算的数学原理,算法中使用的参数说明,并以Modbus协议中的CRC-16算法为例,进行手算验证,同时提供LabVIEW和C语言的直接计算CRC-16 值的代码以及C ...
- 循环冗余检验CRC原理
为什么引入CRC 现实的通信链路都不会是理想的.这就是说,比特在传输的过程中可能会产生差错:1可能会变成0,0可能会变成1,这就叫做比特差错.在一段是时间内,传输错误的比特占所传输比特总数的比率成为误 ...
最新文章
- ora-01653表空间扩展失败产生的场景和处理方法
- 前端工程基础知识点--Browserslist (基于官方文档翻译)
- 8086 汇编指令手册查询(转)
- 软件包 sun-java6-jdk 没有可供安装的候选者
- 深入理解JVM虚拟机(九):运行期优化与JIT编译器
- ITK:过滤器Filter和ParallelizeImageRegion比较
- bootcss echarts_数据可视化插件使用(Echarts)
- linux mysql服务器安装_Linux服务器MySQL安装
- JAVA进阶教学之(单链表数据结构)
- java token redis生成算法_Redis实现单点登录
- mysql 组内排名_【原】MySQL分组排序(包含组内排名、求中位数)
- [SDOI2009]HH的项链 BZOJ1878
- 鼠标离开 表格隐藏html,excel中滚动鼠标表格隐藏怎么取消
- 如果讲不明白Spring Cloud核心组件,那我就白编故事了
- 计算机导论怎么不挂科,我们删除的数据,最后都去了哪里?
- Android端M3U8视频下载管理器----M3U8Manger
- JavaWeb JavaBean,MVC三层架构
- 存储系统 - IOPS与带宽的关系
- 3DMax如何制作弧形椅子?
- 从c++到java+android