循环冗余码(CRC)又称为多项式编码,将任何一个由二进制位串组成的编码,与一个只含有0和1两个系数的多项式建立一一对应关系。如:位串1010111对应的多项式为;多项式对应的位串为101111。

多项式的算术运算采用代数域理论的规则。以2为模来完成,即加法没有进位,减法没有借位,模2加法和模2减法都等同于亦或运算。

运算样例

CRC编码原理:

使用CRC时,发送方和接收方必须预先商定一个生成多项式G(X),发送方编码和接收方校验都是利用预先商定的生成多项式来得到。假设G(X)的阶为r,发送方要发送的信息位为k位,CRC的基本思想就是在信息位的尾部追加一个r位的冗余位,使得信息位与冗余位构成的码字所对应的多项式能够被G(X)除尽。当接收方收到码字之后,用G(X)去除对应的码字,如果有余数则表示传输过程中有错误。

CRC具体编码过程:

①收发双方预先商定一个生成多项式G(X),最高次数为r。——>②将发送方要发送的信息位转换为对应的多项式K(X)。——>③G(X)去除K(X)得到的余式就是冗余位对应的多项式R(X)。——>④发送的码字(信息位+冗余位):T(X)=K(X)+R(X)。

CRC编码举例说明:

发送方要发送的信息位为:1010001,对应的多项式K(X)=,生成多项式为G(X)=;由此可知冗余位的位数为 r =4,因此K(X)=(10100010000)。

G(X)去除K(X):

通过除法运算可知,R(X)=1101;故发送的码字(信息位+冗余位):T(X)=K(X)+R(X)=10100011101。

CRC的相关重要性质:

  1. G(X)含有X+1的因子,则能检测出所有的奇数错误。

  2. 若G(X)中不含有X的因子,换句话说,G(X)中含有常数项1,那么能检测出所有突发长度的突发错误。

  3. 若G(X)中不含有X的因子,而且对于任何的e,除不尽+1,则能检测出所有的双错。

  4. 若G(X)中不含有X的因子,则对于突发长度为r+1的突发错误的漏检率为

  5. 若G(X)中不含有X的因子,则对于突发长度的突发错误的漏检率为

Ending... ...

计算机网络:循环冗余码CRC相关推荐

  1. 【计算机网络】CRC校验码||循环冗余码详解及计算习题

    [计算机网络]CRC校验码||循环冗余码详解及计算习题

  2. 计算机网络数据链路层检错编码 --- 循环冗余码CRC

    实例说明 假如要发送的数据是1101 0110 11, 采用CRC校验, 生成多项式是10011, 那么最终发送的数据应该是? 发送端发送过程: 1. 最终发送的数据 = 要发送的数据 + 帧检验序列 ...

  3. 循环冗余码CRC使用matlab实现

    循环冗余编码 基本思想:发送端按照给定的规则,在k个信息比特后面增加L个按照某种规则计算的校验比特:在接收端对收到的信息比特重新计算L个校验比特.比较接收到的校验比特和本地重新计算的校验比特,如果相同 ...

  4. 【计算机网络】CRC校验码的代码实现

    实验目的 应用所学知识,编写代码实现CRC计算和验证功能,并验证CRC编码检验的成功率. 实验步骤 ①我们先进行CRC校验码的设计部分,我使用的是Python程序设计语言. CRC校验的核心原理就是模 ...

  5. 3.3.1网络原理数据链路层之差错控制(检错编码和纠错编码)-(奇偶校验码、CRC循环冗余码、海明码)

    文章目录 0.脑图时刻 1.为什么会出现差错? 2.检验和纠正差错的编码方法 (1)关于数据链路层和物理层的编码区别 (2)冗余编码 3.检错编码 (1)奇偶校验码 (2)循环冗余码(CRC) 4.纠 ...

  6. 3.3.1网络原理数据链路层之差错控制(检错编码和纠错编码)->(奇偶校验码、CRC循环冗余码、海明码)(转载)

    原文链接:https://blog.csdn.net/weixin_43914604/article/details/104864783 本博客为个人学习.研究或者欣赏用,如有侵权,请与我联系删除,谢 ...

  7. 数据链路层之差错控制(检错编码和纠错编码)-(奇偶校验码、CRC循环冗余码、海明码)...

    思维导图 为什么会出现差错? 检验和纠正差错的编码方法 关于数据链路层和物理层的编码区别 冗余编码 检错编码 关于检验码和纠错码中的奇偶校验码.循环冗余码(CRC).海明码可参考我之前写的:校验码(一 ...

  8. 【计网】计算机网络期末总复习-谢希仁(个人总结)理论概念

    文章目录 计算机网络期末复习(个人总结) 第一章 概述 第二章.物理层 第三章 数据链路层 第四章 网络层 第五章 运输层 第六章 应用层 其他补充 算法和协议 题目 计算机网络期末复习(个人总结) ...

  9. 回退n帧协议c语言代码,[计算机网络]Ch.3 数据链路层

    数据链路层 1.DLL层设计问题 1.1 DLL层·功能 数据链路层使用物理层提供的服务在通信信道上发送和接收比特. (1) 向网络层提供一个定义良好的接口 (2) 处理传输错误 (3) 调节数据流, ...

  10. 计算机网络考试试题库-期末考试题库含答案

    一.选择题(第一章 1-10:第二章 11-20;第三章21-35:第四章36-60 :第五章 61-73道:第六章 74-84道:第七章85-90:第九章91-95:第十章96-100) 1.下列四 ...

最新文章

  1. 对《Python核心编程》中“第一个Python程序”的改进
  2. window7环境下安装neo4j server版本踩坑记录
  3. java ,c# 解决安全沙箱问题
  4. tomcat启动成功 未加载项目_欣冠精密eHR系统项目成功启动
  5. 查找字符串中第一个只出现一次的字符
  6. picturectrl控件中加载图片并显示_如何在EasyX窗体中显示图片
  7. .NET5来了你别慌
  8. java+包装类,装箱和拆箱_Java包装类,装箱和拆箱详解
  9. MySQL基础(三)表关系及数据的增删改查
  10. 克里斯蒂安贝尔_克里斯蒂安·贝尔近照!蝙蝠侠骑单车买咖啡,动作娴熟似外卖小哥...
  11. JQuery文件上传插件ajaxFileUpload在Asp.net MVC中的使用[转载]
  12. Windows mobile 下读取手机SIM卡信息
  13. 如何在Java中针对XSD验证XML
  14. ssh无密码登录设置方法以及出现问题 ECDSA host key 和IP地址对应的key不同的解决...
  15. 【msm8953】gpio口模拟pwm详细步骤
  16. WPS Excel+windows批处理批量重排序文件夹
  17. Windows 已经激活,但是显示副本不是正版的解决办法
  18. selected和checked区别
  19. 这个行业一半人月薪超过8千!
  20. ARP(地址解析协议)和RARP(逆地址解析协议)

热门文章

  1. php 判断字幕,100个影视或字幕网站
  2. 网传华为员工未加班领夜宵被冻薪降考评,并终身不得领夜宵
  3. myd导入mysql_数据库是.frm,.myd,myi备份如何导入mysql
  4. kubernetes 非安全部署
  5. 证件照尺寸及背景颜色值
  6. c 语言if函数嵌套使用方法,if函数的嵌套怎么用?
  7. 做webgl遇到的两个坑
  8. (数据结构)树的深度/高度
  9. 要学习使用 calib3D 模块在图像中创建 3D 效果-姿势估计
  10. bilibili怎么用用户名登录_b站账号(bilibili免费账号密码)