网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

计算机网络中的错误检测

更新时间:2026年03月27日   作者:spoto   标签(Tag):

错误检测是一种用于计算机网络中的技术,其目的是判断在数据传输过程中,数据是否发生了损坏。在传输数据之前,发送方会在数据中添加冗余比特;接收方则通过检查这些冗余比特来确认接收到的数据的完整性。如果检测到错误,那么损坏的数据帧将被丢弃,同时可以通过适当的错误控制机制来请求重新传输数据。

  • 能够检测出由噪声、干扰或信号失真引起的错误。
  • 采用冗余位来进行一致性检查。
  • 常见的技术包括奇偶校验、校验和以及循环冗余校验(CRC)。
  • 有助于保持数据的完整性以及可靠的通信效果。

错误类型

单比特错误

当发生单比特错误时,就会发生这种情况。只有一点在数据传输过程中,传输的数据单元可能会发生更改,从而导致数据损坏。

单比特错误

2. 突发错误

当数据单元中的两个或更多连续位在传输过程中被破坏时,就会发生突发错误。

突发错误

错误检测方法

为了检测错误,一种常见的做法是引入冗余位,这些冗余位能够提供额外的信息。用于错误检测的多种技术包括:

  • 简单奇偶校验
  • 二维奇偶校验
  • 校验和
  • 循环冗余校验(CRC)

简单奇偶校验


简单奇偶校验是一种基本的错误检测技术。在这种技术中,会在数据传输之前在数据单元中添加一个额外的比特位,这个额外的比特位被称为“奇偶校验位”。这个奇偶校验位有助于接收方判断传输的数据是否发生了损坏。

  • 能够检测传输数据中出现的所有单比特错误。
  • 能够检测到任何奇数个比特错误,因为奇数的比特变化会改变数据的奇偶性。
  • 无论是在硬件还是软件方面,都很容易实施。
  • 当偶数个比特位发生损坏时,系统无法检测到这些错误。
  • 不适合用于那些噪音较大且经常出现错误的通信环境。

奇偶校验位用于确保数据具有特定的奇偶性。奇偶性有两种类型:

  • 即使是平等的情况该奇偶校验位被设置成这样一种状态:数据中的1的总数量(包括奇偶校验位本身)必须是偶数。
  • 奇 parity该奇偶校验位被设置成这样的状态:数据中的1的总数量(包括奇偶校验位本身)必须是奇数。
简单奇偶校验

这种方案使得1的数量变为偶数,因此被称为“偶校验检查”。

2. 二维奇偶校验

在二维奇偶校验中,每行的奇偶校验位都是单独计算的,这与简单的奇偶校验类似。此外,每列也都会计算相应的奇偶校验位。这些行和列的奇偶校验位会与数据一起被传输到接收端。在接收端,会重新计算这些奇偶校验位,并将其与接收到的奇偶校验位进行比较,从而检测是否存在错误。

  • 能够检测并纠正所有单比特错误,其原理是能够准确识别出错误发生的行和列。
  • 能够检测数据矩阵中不同位置发生的多种多位错误。
  • 相比简单的奇偶校验方法,它具备更出色的错误检测能力。
  • 某些多比特错误模式可能会一直未被检测到。
  • 如果奇偶校验位本身被损坏了,那么错误检测功能就可能无法正常发挥作用。
二维奇偶校验

3. 校验和

校验和是一种用于检测传输数据中存在的错误的技术。在这种方法中,发送方会将数据分割成固定大小的段,然后计算出一个校验和。1的补码进行算术运算。计算得到的校验和会与数据一起被传输到接收端。在接收端,同样会执行相同的计算来验证数据的完整性。

  • 能够检测多种类型的错误,包括单比特错误和多比特错误。
  • 相比简单的奇偶校验和二维奇偶校验,它能够更精确地检测错误。
  • 广泛应用于诸如IP、TCP和UDP等网络协议中。
  • 计算速度快,且在软件中实现起来也很简单。
  • 仅支持错误检测,不提供错误校正功能。
  • 有些错误模式可能不会被发现,尤其是在进行加法运算时,各种错误相互抵消的情况下。
  • 与循环冗余校验等先进技术相比,其可靠性要低一些。

校验和——发件方端的操作

  • 这些数据被划分为 k 个段,每个段由 m 位组成。
  • 所有数据段都是使用1的补码算术方法来添加的。
  • 最终结果的1的补码被计算出来,以此来生成校验和。
  • 校验和会被附加到数据中,然后发送给接收方。

校验和——接收端的处理方式

  • 所有接收到的数据段,包括校验和,都是使用“1的补码”算术方法来进行相加的。
  • 如果最终的结果都是1,那么这些数据就被认为是无误的。
  • 否则,这些数据将被丢弃,这意味着发生了错误。

接收方和发送方的校验和

了解更多关于……的信息校验和

4. 循环冗余校验(CRC)

  • CRC是一种基于二进制除法的校验方法,与采用加法运算的校验和不同。为了使得传输的数据能够被某个预定义的生成多项式整除,会添加一些多余的CRC位。
  • 在接收端,数据会再次被使用相同的多项式进行分割处理。如果余数为零,则表明数据可以被接受;而如果余数不为零,则说明存在传输错误。
  • 在检测单比特错误、多比特错误以及突发错误方面具有极高的有效性,因此其可靠性远高于奇偶校验和校验和的方法。
  • 由于其强大的错误检测能力,这种协议被广泛用于以太网、HDLC和USB等通信协议中。
  • 它仅能进行错误检测,而无法进行错误校正;其有效性取决于所选择的生成多项式。
  • 与简单的奇偶校验或校验和算法相比,这种方法的计算复杂度更高,同时还会增加额外的处理负担。

CRCCRC工作/研究

我们给定了一个长度为n的数据字,以及一个长度为k的除数。

步骤1:在原始消息的末尾添加 k-1 个零。
步骤2:执行对2取模的除法运算
步骤3:除法后的余数 = CRC
步骤4:代码字 = 数据中附加了k-1个零的数字 + CRC校验值

注意:

  • CRC必须包含k-1位。
  • 代码字的长度 = n+k-1位

示例/例子要发送的数据量为1010000,而除数则是以多项式形式表示的,即x。3+1. 下面将介绍CRC算法。

CRC工作/研究

如需详细了解CRC的相关信息,请参考以下内容:循环冗余校验(CRC)

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料