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

错误检测技术:奇偶校验

文章目录

  • 参考
  • 描述
  • 奇校验与偶校验
      • 错误检测技术
          • 奇偶校验
      • 奇校验与偶校验
          • 奇校验
          • 偶校验
          • 局限性
            • 漏网之鱼
  • 奇偶校验的三种形式
      • 水平奇偶校验
      • 垂直奇偶校验
      • 水平垂直奇偶校验
          • 优劣
            • 漏网之鱼

参考

项目描述
搜索引擎Google 、Bing
百度百科奇偶校验
计算机网络 基础与应用(微课版)孟敬

描述

项目描述

奇校验与偶校验

错误检测技术

错误检测技术是数字通信领域中非常重要的一项技术,主要用于检测在数据传输过程中可能出现的错误,保证数据的可靠性。常见的错误检测技术包括奇偶校验、循环冗余校验(CRC)、海明码等。

奇偶校验

奇偶校验是一种简单的错误检测技术,常用于数字通信中。奇偶校验的基本思想是在数据中添加一个(通常情况下,在添加该比特位后,该数据的大小为一个字节,即八比特)额外的比特位(奇偶校验位),使得数据中比特位为 1 的个数能够满足奇偶性的要求。

奇校验与偶校验

奇校验

在需要传输的数据中添加一个奇偶校验位,使得整个数据中 1 的个数为 奇数 发送方在发送数据前计算奇偶校验位,并将其添加到数据包中。
接收方在接收到数据包后,重新计算奇偶校验位,如果计算得到的校验位与发送方发送的校验位不同(发送的数据中,1 的个数为 偶数),则说明在传输过程中出现了错误。

举个栗子

数据位奇校验位数据
0010100100101001
1101010111010101
1010111010101110
偶校验

在传输的数据中添加一个奇偶校验位,使得整个数据中 1 的个数为 偶数 发送方在发送数据前计算奇偶校验位,并将其添加到数据包中。
接收方在接收到数据包后,重新计算奇偶校验位,如果计算得到的校验位与发送方发送的校验位不同(发送的数据中,1 的个数为 奇数),则说明在传输过程中出现了错误。

举个栗子

数据位偶校验位数据
0010100000101000
1101010011010100
1010111110101111
局限性
漏网之鱼

在数据(包括 校验位)中存在奇数个错误时,奇校验与偶校验能够检测出数据发生了变化。但是,如果有偶数个错误时,那么它们会互相抵消,使得数据块中 1 的个数仍然符合奇偶性要求,这时奇偶校验就无法检测出这些错误了,这意味着从理论上来说,奇校验或偶校验仅有 50% 的几率能够检测到错误(但大多数情况是仅存在单个比特位存在差错或者没有差错)。

当数据中存在偶数个错误时,奇偶校验中可能发生的抵消情况可以用如下三个公式表示:

  1. 数据中增加了两个相同的二进制位(01)。

n + 2 n = 3 n n + 2n = 3n n+2n=3n

  1. 数据中减少了两个相同的二进制位。

3 n − 2 n = n 3n - 2n = n 3n2n=n

  1. 数据中增加和减少一个不同的二进制位。

3 n − n + n = 3 n 3n -n +n = 3n 3nn+n=3n

奇偶校验的三种形式

水平奇偶校验

水平奇偶校验的原理是将要发送的数据分为含有 p 位的 q 段数据,对每一个段中的数据位进行奇偶校验,产生一个奇偶校验位,通常放在段的最后一位,作为校验码传输。这种校验方式可以检测出数据的奇偶性是否正确,但无法检测出数据的具体错误位置,也无法纠正错误。

举个栗子

如下为一个示例表格,将大小为三个字节(即 24 bits)的数据划分为 83 段的数据位进行水平偶校验。

D7D6D5D4D3D2D1D0校验位
100101110
011100111
110101110

垂直奇偶校验

垂直奇偶校验的原理是将要发送的数据分为含有 p 位的 q 段数据,将每段数据中对应的比特位进行对齐,对每一个列中的数据进行奇偶校验,产生一个奇偶校验位,通常放在列的最后一位,作为校验码传输。这种校验方式可以检测出数据的奇偶性是否正确,但无法检测出数据的具体错误位置,也无法纠正错误。

举个栗子

如下为一个示例表格,将大小为三个字节(即 24 bits)的数据划分为 83 段的数据位进行垂直偶校验。

D7D6D5D4D3D2D1D0
10010111
01110011
11010111
校验位00110011

水平垂直奇偶校验

水平垂直奇偶校验可以看作是水平奇偶校验与垂直奇偶校验的结合。

举个栗子

如下为一个示例表格,将大小为三个字节(即 24 bits)的数据划分为 83 段的数据位进行水平垂直偶校验。

D7D6D5D4D3D2D1D0水平校验位
100101111
011100111
110101110
垂直校验位00110011
优劣
漏网之鱼

水平垂直奇偶校验的基本思想是将数据划分成多个块,并分别计算每一行和每一列的奇偶校验位,然后将这些校验位一起发送给接收方。接收方在接收到数据后,也会分别计算每一行和每一列的奇偶校验位,然后将计算得到的校验位与发送方发送的校验位进行比较,从而检测数据中是否存在错误。

对于奇数个错误,水平垂直奇偶校验能够检测出所有的错误。 因为在这种情况下,必定会导致至少一行或一列的奇偶校验位与发送方的校验位不一致,从而被检测出来。

对于偶数个错误,水平垂直奇偶校验能够检测出大部分错误。 如果错误所处的行和列中存在偶数个(包括自身)错误,则错误将无法被检测出来。对此,请参考如下示例:

原数据

D7D6D5D4D3D2D1D0水平校验位
100101111
011100111
110101110
垂直校验位001100110

错误数据

由于错误所导致的校验位变化相互抵消,致使发生错误的数据所计算出的检验位与原校验位一致。因此,奇偶校验机制并不能发现数据的变化。

D7D6D5D4D3D2D1D0水平校验位
100101111
011010111
110011110
垂直校验位001100110

水平垂直奇偶校验相对于奇偶校验来说,虽然能够提供更好的错误检测能力,但它仍然存在一定的限制,不能保证检测所有的错误。

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

相关文章:

  • 语义版本控制规范(SemVer)
  • 基于Flask的留言板的设计与实现
  • vmware 详细安装教程
  • Python 爬虫工具
  • 再也不去字节跳动面试了,6年测开经验的真实面试经历.....
  • 第十五章 角色移动旋转实例
  • 数据湖Data Lakehouse支持行级更改的策略:COW、MOR、Delete+Insert
  • 双亲委派机制的原理和作用
  • mac免费杀毒软件哪个好用?如何清理mac系统需要垃圾
  • css 实现太极效果
  • 【前端基础知识】Vue中的变量不是响应式的吗?属性赋值后视图不变化的原因是什么?
  • 如何完全卸载linux下通过rpm安装的mysql
  • [渗透教程]-004-长城防火墙GFW的原理
  • LaTeX基础文本排版命令
  • PLC模糊控制模糊PID(梯形图实现+算法分析)
  • 线程池在Java多线程中的应用
  • 1997-2021年全国30省技术市场成交额(亿元)
  • 【C++】面向对象之多态
  • 卡尔曼滤波器简介——多维卡尔曼滤波
  • 如何用 GPT-4 帮你写游戏?
  • R语言的贝叶斯时空数据模型实践技术应用
  • Lazysysadmin靶机渗透过程
  • 为什么网络安全缺口很大,招聘却很少?
  • SpringBoot手册
  • 【Linux】如何实现单机版QQ,来看进程间通信之管道
  • 从一到无穷大 #6 盘满排查过程
  • ChatGPT技术原理 第九章:数据集和训练技巧
  • NCR被攻击后服务中断!原是BlackCat勒索软件作祟
  • 带你认识什么是BMS(电池管理系统)
  • 安装Ubuntu22.04虚拟机的一些常见问题解决方法