当前位置: 首页 > news >正文

计算机网络之奇偶校验码和CRC冗余校验码

今天我们来看看有关于计算机网络的知识——奇偶校验码和CRC冗余校验码,这两种检测编码的方式相信大家在计算机组成原理当中也有所耳闻,所以今天我就来跟大家分享有关他们的知识。


奇偶校验码

奇偶校验码是通过增加冗余位使得码字中1的个数恒为奇数或偶数的编码方法,它是一种检错码。根据被传输的一组二进制代码的数位中“1”的个数是奇数还是偶数来进行校验,可分为奇校验和偶校验。给每一个码字加一个校验位,用它来构成奇性或偶性校验。具体来说,如果是奇校验,则在数据二进制位后面添加一个奇校验位,使数据位和校验位中二进制位1出现的个数总是奇数个;如果是偶校验,则使1的个数为偶数。

我们按照下图当中的两个编码,分别对他们使用奇偶校验,来更加直观的了解奇偶校验。

奇校验

我们看上面的10100010,它有奇数个1,那么就在最后的校验位加上0。

第二个10100000,它的1为偶数个,那么根据奇校验我们就要在校验位上加上1。

偶校验

偶校验则同理。第一个10100010,有奇数个1,则在校验位上加上1。

第二个10100000,它的1为偶数个,那么根据奇校验我们就要在校验位上加上0。

优缺点

但是奇偶校验码也存在一些问题:

  • 优点:奇偶校验码是一种非常有效的数据验证方法,能够检测出数据传输过程中的错误,保护数据的完整性和准确性。
  • 缺点:然而,奇偶校验码只能检测出错误的数据,而不能确定错误的具体位置,也不能检测出偶数位错误或恶意数据。此外,其效率相对较低,对于复杂的数据校验需求可能不够高效。

CRC冗余校验

CRC是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。CRC利用除法及余数的原理,实现错误侦测的功能。具体来说,CRC是两个字节数据流采用二进制除法(没有进位,使用XOR来代替减法)相除所得到的余数。其中被除数是需要计算校验和的信息数据流的二进制表示;除数是一个长度为n的预定义(短)的二进制数,通常用多项式的系数来表示。

在CRC当中,我们需要通过多项式和异或运算来得到是否出错。如果最终刚好整除,得到0,那么就说明没有出错。反之则有错误。

假设我们有一个多项式G(x)和一个信息位如下:

那么我们可以由多项式G(x)得出用于校验的“除数“10111”,并且因为G(x)的最高位的次数是4,我们就给信息位不上4个0。最后我们用10100010000去除10111,通过异或运算可以得到如下的计算过程:

因为最终的结果为1101,不为0,因此我们可以得出在传输过程中有错误产生。

CRC的检验能力

CRC除了能检查出随机差错外,也可以检查突发的错误。

  • CRC可以检查全部离散的一位错误
  • CRC可以检查全部离散的两位错误
  • 能检查全部的奇数位差错
  • 能检查全部长度小于等于k的突发差错(k是多项式的最高幂值)

总结

总的来讲今天我们看了两种检验方法,希望对大家有所帮助。如果对大家有所帮助,希望大家可以给我一个点赞或关注,这对我非常重要,谢谢!

http://www.lryc.cn/news/380303.html

相关文章:

  • 二叉树经典OJ练习
  • 【OpenHarmony4.1 之 U-Boot 2024.07源码深度解析】008 - make distclean 命令解析
  • QTreeView双击任意列展开
  • Linux入门攻坚——26、Web Service基础知识与httpd配置-2
  • 相由心生与事出反常必有妖
  • 微信小程序---支付
  • Git学习2 -- VSCode中的Git
  • VC++支持断点续下或续传的功能
  • 机器学习数学原理专题——线性分类模型:损失函数推导新视角——交叉熵
  • windows和linux路径斜杆转换脚本,打开即用
  • 在Android系统中,查看apk安装路径
  • 管理不到位,活该执行力差?狠抓这4点要素,强化执行力
  • 应届毕业之本科简历制作
  • SparkOnHive_列转行、行转列生产操作(透视和逆透视)
  • 【人机交互 复习】第2章 Hadoop
  • 国产自研编程语言“仓颉”来了!
  • Swarm 集群管理
  • 从社交网络到元宇宙:Facebook的战略转型
  • 程序猿大战Python——面向对象——继承进阶
  • 【Linux基础】SSH登录
  • 经典机器学习方法(7)—— 卷积神经网络CNN
  • 经典面试题【作用域、闭包、变量提升】,带你深入理解掌握!
  • Dockerfile实战
  • 常用的开源数据集网站
  • html文本被木马病毒植入vbs脚本
  • jsonl 文件介绍
  • 反射机制详解
  • 【数据库】七、数据库安全与保护
  • 卡尔曼滤波-剔除异常值的影响
  • Java程序之动物声音“模拟器”