一、循环冗余检验原理

  • 在发送端

    • 先把数据划分为组,假定每组 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循环冗余检验相关推荐

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

    CRC 循环冗余检验作为一个重点,也是数据链路层必考的一个考点,所以我把差错检测单独拿出来分析一起看一下.总结不易,一个简单的攒,Thanks♪(・ω・)ノ 目录 一.介绍及工作原理 二.校验计算过程 ...

  2. CRC循环冗余检验的纠错功能和代码实现

    CRC循环冗余检验的纠错功能和代码实现 写这篇文章呢,主要是想聊一下CRC的纠错功能,虽然我们谈到CRC很少说到它的纠错功能,但不代表没有,因此写一文以记录下它的纠错功能以及如何用java代码实现. ...

  3. 计算机网络crc校验实验报告,CRC校验实现-实验报告(附主要实现代码)

    计算机网络 实验报告 班级:03计算机B班 实验名称:CRC校验实现 姓名:kikikind 学号:086 指导老师:何怀文 日期:2006-4-22 1.学习CRC循环冗余检验原理 2.掌握实现方法 ...

  4. 数据链路层差错检测:CRC(循环冗余检验)

    1.循环冗余检验(CRC): 在发送端,先把数据划分为祖,假定每组K个比特.现假定待传送的数据M = 101001(k=6).CRC运算就是在数据M后面添加提供差错检测的n位冗余码,然后构成一个帧发送 ...

  5. 【数据校验杂谈】循环冗余检验 (CRC) 算法原理

    2019独角兽企业重金招聘Python工程师标准>>> 循环冗余检验 (CRC) 算法原理 Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验码,用于 ...

  6. 循环冗余检验 CRC

    一.总体流程: 把要发送的每组数据2^nM(k+n位)除以除数P(n+1位),计算出冗余码FCS(n位),然后再求出要发送的数据:2^nM+R. 接受端把收到的数据除以除数P,看余数R是否为0,如果为 ...

  7. 【算法】CRC 循环冗余校验

    1.概述 循环冗余校验CRC (Cyclic Redundancy Check)是一种数据链路层的差错控制技术. 在数据的传输过程中可能会产生比特错误: 1可能变为0,0可能变为1. 在一段时间内,传 ...

  8. 数据链路层的循环冗余检验

    关于CRC 循环冗余检验码即为CRC,所求冗余码为FCS.循环冗余检验是数据链路层进行差错检测的一个方法.即检验发送的一串二进制数据到接收时里面是否产生误码.基本思路是:通过计算生成校验码,检错时将数 ...

  9. 从原理到代码理解CRC循环冗余校验

    概述:本文详细介绍了CRC循环冗余计算的数学原理,算法中使用的参数说明,并以Modbus协议中的CRC-16算法为例,进行手算验证,同时提供LabVIEW和C语言的直接计算CRC-16 值的代码以及C ...

  10. 循环冗余检验CRC原理

    为什么引入CRC 现实的通信链路都不会是理想的.这就是说,比特在传输的过程中可能会产生差错:1可能会变成0,0可能会变成1,这就叫做比特差错.在一段是时间内,传输错误的比特占所传输比特总数的比率成为误 ...

最新文章

  1. ora-01653表空间扩展失败产生的场景和处理方法
  2. 前端工程基础知识点--Browserslist (基于官方文档翻译)
  3. 8086 汇编指令手册查询(转)
  4. 软件包 sun-java6-jdk 没有可供安装的候选者
  5. 深入理解JVM虚拟机(九):运行期优化与JIT编译器
  6. ITK:过滤器Filter和ParallelizeImageRegion比较
  7. bootcss echarts_数据可视化插件使用(Echarts)
  8. linux mysql服务器安装_Linux服务器MySQL安装
  9. JAVA进阶教学之(单链表数据结构)
  10. java token redis生成算法_Redis实现单点登录
  11. mysql 组内排名_【原】MySQL分组排序(包含组内排名、求中位数)
  12. [SDOI2009]HH的项链 BZOJ1878
  13. 鼠标离开 表格隐藏html,excel中滚动鼠标表格隐藏怎么取消
  14. 如果讲不明白Spring Cloud核心组件,那我就白编故事了
  15. 计算机导论怎么不挂科,我们删除的数据,最后都去了哪里?
  16. Android端M3U8视频下载管理器----M3U8Manger
  17. JavaWeb JavaBean,MVC三层架构
  18. 存储系统 - IOPS与带宽的关系
  19. 3DMax如何制作弧形椅子?
  20. 从c++到java+android

热门文章

  1. 状态机实现的LED交通灯2
  2. 一亿融资在一家芯片初创公司可以烧多久?
  3. h5页面生成图片分享到微信js_H5网页实现微信分享功能
  4. 记录下准备蓝桥杯的过程吧
  5. SCI收录声学学科期刊31种
  6. AM335x开发环境搭建 基于MYD-AM335x开发板 超详细
  7. 二维数组(动态规划)
  8. 如何实现必须关注公众号才能使用微信小程序,从而通过微信小程序免费为公众号吸粉。#微信营销#微信公众号吸粉#微信小程序吸粉
  9. 记录进行Uniprot转化为Entrez ID的过程
  10. 淘宝动态评分绿了怎么办