错误检测码 - 校验和
错误和错误检测
当比特通过计算机网络传输时,由于干扰和网络问题,它们可能会发生损坏。损坏的比特会导致接收方收到伪数据,这些数据被称为错误。
错误检测技术负责检查通过网络传输的帧中是否发生了任何错误。它不考虑错误比特的数量和错误类型。
为了进行错误检测,发送方需要与数据比特一起发送一些额外的比特。接收方根据附加的冗余比特进行必要的检查。如果它发现数据没有错误,则在将消息传递到上层之前删除冗余比特。
有三种主要的帧错误检测技术:奇偶校验、校验和和循环冗余校验 (CRC)。
校验和
这是一种块码方法,其中校验和是基于要使用某种算法传输的数据块中的数据值创建的,并附加到数据上。当接收方获取此数据时,会计算一个新的校验和并将其与现有的校验和进行比较。不匹配表示发生错误。
校验和错误检测
对于校验和错误检测,数据被分成固定大小的帧或段。
发送端 - 发送方使用 1 的补码算术将段相加以获得总和。然后对总和进行求反以获得校验和,并将其与数据帧一起发送。
接收端 - 接收方使用 1 的补码算术将传入的段与校验和相加以获得总和,然后对总和进行求反。
如果结果为零,则接受接收到的帧;否则丢弃它们。
示例
假设发送方想要发送 4 个 8 位帧,其中帧为 11001100、10101010、11110000 和 11000011。
发送方使用 1s 补码算术添加位。使用 1s 补码算术添加两个数字时,如果存在进位,则将其添加到总和中。
添加所有 4 个帧后,发送方对总和进行求反以获得校验和 11010011,并将其与数据帧一起发送。
接收方执行所有帧(包括校验和)的 1s 补码算术总和。对结果进行求反,发现为 0。因此,接收方认为没有发生错误。
广告