什么是错误检测码?
错误检测码是由特定程序生成的一系列数字,用于检测通过计算机网络传输的数据中的错误。
当比特通过计算机网络传输时,由于干扰和网络问题,它们可能会发生损坏。损坏的比特会导致接收方收到虚假数据,这些数据被称为错误。
错误检测码确保消息在通过噪声信道发送之前进行编码。编码方式使得接收端的解码器能够以较高的成功概率检测传入信号中是否存在错误。
错误检测码的特点
当使用后向纠错技术进行可靠的数据传输时,会采用错误检测码。在这种方法中,接收方向发送方发送反馈消息,以告知是否已收到无错误的消息。如果存在错误,则发送方会重新发送消息。
错误检测码通常是分组码,其中消息被分成固定大小的比特块,并在这些块中添加冗余比特以进行错误检测。
错误检测包括检查是否发生了任何错误。错误比特的数量和错误类型无关紧要。
错误检测技术
有三种主要的错误检测技术
奇偶校验
奇偶校验是通过向数据添加一个额外的比特(称为奇偶校验比特)来完成的,以使 1 的数量在偶校验的情况下为偶数,在奇校验的情况下为奇数。
在创建帧时,发送方会计算其中 1 的数量,并按以下方式添加奇偶校验比特
在偶校验的情况下:如果 1 的数量为偶数,则奇偶校验比特值为 0。如果 1 的数量为奇数,则奇偶校验比特值为 1。
在奇校验的情况下:如果 1 的数量为奇数,则奇偶校验比特值为 0。如果 1 的数量为偶数,则奇偶校验比特值为 1。
在收到帧后,接收方会计算其中 1 的数量。在偶校验检查的情况下,如果 1 的数量为偶数,则接受该帧,否则将其拒绝。奇校验检查也采用类似的规则。
奇偶校验仅适用于单比特错误检测。
校验和
在这种错误检测方案中,应用以下过程
数据被分成固定大小的帧或段。
发送方使用 1 的补码算术将这些段相加以获得总和。然后对总和取补码以获得校验和,并将其与数据帧一起发送。
接收方使用 1 的补码算术将传入的段与校验和相加以获得总和,然后对其取补码。
如果结果为零,则接受接收到的帧;否则将其丢弃。
循环冗余校验 (CRC)
循环冗余校验 (CRC) 涉及将发送的数据位进行二进制除法,除数由通信系统预先确定。除数是使用多项式生成的。
在这里,发送方对数据段进行二进制除法,除数为预先确定的除数。然后将余数(称为 CRC 位)附加到数据段的末尾。这使得生成的数据单元能够被除数整除。
接收方将传入的数据单元除以除数。如果没有余数,则假定数据单元是正确的并被接受。否则,则表示数据已损坏,因此被拒绝。