错误检测码 - 校验和


错误和错误检测

当比特通过计算机网络传输时,由于干扰和网络问题,它们可能会发生损坏。损坏的比特会导致接收方收到伪数据,这些数据被称为错误。

错误检测技术负责检查通过网络传输的帧中是否发生了任何错误。它不考虑错误比特的数量和错误类型。

为了进行错误检测,发送方需要与数据比特一起发送一些额外的比特。接收方根据附加的冗余比特进行必要的检查。如果它发现数据没有错误,则在将消息传递到上层之前删除冗余比特。

有三种主要的帧错误检测技术:奇偶校验、校验和和循环冗余校验 (CRC)

校验和

这是一种块码方法,其中校验和是基于要使用某种算法传输的数据块中的数据值创建的,并附加到数据上。当接收方获取此数据时,会计算一个新的校验和并将其与现有的校验和进行比较。不匹配表示发生错误。

校验和错误检测

对于校验和错误检测,数据被分成固定大小的帧或段。

  • 发送端 - 发送方使用 1 的补码算术将段相加以获得总和。然后对总和进行求反以获得校验和,并将其与数据帧一起发送。

  • 接收端 - 接收方使用 1 的补码算术将传入的段与校验和相加以获得总和,然后对总和进行求反。

如果结果为零,则接受接收到的帧;否则丢弃它们。

示例

假设发送方想要发送 4 个 8 位帧,其中帧为 11001100、10101010、11110000 和 11000011。

发送方使用 1s 补码算术添加位。使用 1s 补码算术添加两个数字时,如果存在进位,则将其添加到总和中。

添加所有 4 个帧后,发送方对总和进行求反以获得校验和 11010011,并将其与数据帧一起发送。

接收方执行所有帧(包括校验和)的 1s 补码算术总和。对结果进行求反,发现为 0。因此,接收方认为没有发生错误。

更新于: 2023年9月13日

38K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告