检错码 - 奇偶校验
错误和错误检测
当比特在计算机网络上传输时,由于干扰和网络问题,它们可能会损坏。损坏的比特会导致接收方收到虚假数据,这被称为错误。
错误检测技术负责检查通过网络传输的帧中是否发生了错误。它不考虑错误位的数量和错误的类型。
为了进行错误检测,发送方需要与数据位一起发送一些额外的位。接收方根据额外的冗余位执行必要的检查。如果发现数据没有错误,则在将消息传递到上层之前删除冗余位。
有三种主要的错误检测技术:奇偶校验、校验和和循环冗余校验 (CRC)。
奇偶校验位
奇偶校验是通过向数据添加一个额外的位(称为奇偶校验位)来完成的,以使 1 的数量根据奇偶校验类型为偶数或奇数。奇偶校验仅适用于单比特错误检测。
奇偶校验的两种类型是
偶校验 - 此处消息中的总位数为偶数。
奇校验 - 此处消息中的总位数为奇数。
通过奇偶校验进行错误检测
发送端 - 创建帧时,发送方计算帧中 1 的数量,并添加奇偶校验位,其值如下确定 -
- 在偶校验的情况下:如果 1 的数量为偶数,则奇偶校验位值为 0。如果 1 的数量为奇数,则奇偶校验位值为 1。
- 在奇校验的情况下:如果 1 的数量为奇数,则奇偶校验位值为 0。如果 1 的数量为偶数,则奇偶校验位值为 1。
接收端 - 接收到帧后,接收方计算帧中 1 的数量。在偶校验的情况下,如果 1 的数量为偶数,则接受该帧;否则,拒绝该帧。在奇校验的情况下,如果 1 的数量为奇数,则接受该帧;否则,拒绝该帧。
示例
假设发送方想使用偶校验方法发送数据 1001101。它将添加奇偶校验位,如下所示。
接收方将通过计算 1 的总数是否为偶数来确定是否发生了错误。当接收上述帧时,可能出现三种情况:无错误、单比特错误检测和无法检测多比特错误。这说明如下 -
广告