在这篇文章中,我们将探讨计算机网络中的错误检测问题。我们将看到一些有助于检测错误的标准错误检测代码。因此,让我们开始吧。
目录:
- 错误简介
- 错误的类型
- 错误检测代码
- 简单的奇偶校验
- 二维奇偶校验
- 校验码
- 循环冗余检查
误差简介
众所周知,错误是指收到的信息与发送的信息不一致的情况。检测错误对于信息和消息的正确和完美传输是非常重要的。在计算机网络中,基本上有两种类型的错误需要被检测和纠正。
错误的类型
单一比特错误
顾名思义,在这种类型的错误中,只有一个或单个比特从0变成1,或从1变成0。让我们举个例子:
假设要发送的信息是000100,收到的信息是001100。因此,位(粗体部分)从0变为1,我们可以看到只有一个位的错误。
爆发式错误
在这种类型的错误中,有多个比特从0变为1或从1变为0。我们可以简单地说,当多个比特出现错误时,它被称为突发错误。让我们举个例子:
假设要发送的信息是 0100010001000011,收到的信息是 0101110101100011。在这种类型的错误中,重要的是,我们采取突发错误的长度从第一个损坏的位到最后一个损坏的位。因此,对于这个消息,突发错误的长度将是8(黑体字的位)。
在网络中,错误检测是指用于检测数据从发送方传输到接收方时引入的噪声或其他损害的技术。错误检测确保了数据在脆弱网络中的可靠传递。它最大限度地减少了将不正确的数据帧传递给接收器的概率或可能性,即未检测到的错误概率。因此,如果我们用非常简单的词语来定义错误检测,那么它将是这样的:错误检测只不过是为了识别网络中的错误。当一个信息被发送时,它可能会被噪声扰乱,或者数据可能被损坏。为了避免这种情况,我们采用了错误检测代码,这是附加在数字信息上的额外数据位,以帮助我们检测传输过程中是否发生了错误。因此,有各种错误检测代码或技术来检测计算机网络中的错误。我们将简要地探讨它们中的每一个,看看它们是如何检测错误的,它们是如何工作的等等。
错误检测代码
一般来说,在计算机网络中,有四种基本的错误检测代码。它们是:
- 简单奇偶校验
- 二维奇偶校验
- 校验和
- 循环冗余检查
简单奇偶校验
简单奇偶校验码是最基本和最简单的错误检测码。在这个代码中,一个k位的数据字被改变为一个n位的代码字,其中n=k+1。有一个额外的位被称为奇偶校验位,用来使码字中的1(1)的数量为偶数。尽管有些实现方式规定了1的奇数。这个类别的最小汉明距离是2,这意味着该码是一个单比特的错误检测码,这就是为什么它也被称为单奇偶校验。它不纠正错误。
工作原理
在这项技术中,在发送方有一个编码器,在接收方有一个解码器。编码器对信息或码字进行编码,首先它将检查原始信息中1的总数或0的数量。如果信息中1的数量是偶数,那么我们将在原始信息的最后加上0,否则我们将在最后加上1,使1的总数为偶数。这个使1的数量为偶数的过程被称为偶数奇偶性。最后要添加的位被称为奇偶校验位。
在接收方,解码器对收到的信息进行解码,如果传输正确,就不会有错误,接收方的信息将与发送方的信息相同。但如果传输不正确,它将通过检查奇偶校验位来检测错误。
优点
- 它非常容易使用和实现。
- 它可以检测到单比特错误,这对小型网络有帮助。
- 与其他错误检测代码相比,它在检测错误方面花费的时间较少。
不足之处
- 这种技术的主要问题是它只能检测单比特错误。
- 如果有两个比特的错误,那么它就无法正常工作。
- 它不提供纠错的设施。
二维奇偶校验
正如我们在上面看到的,单一奇偶校验很容易,但不是很有利。因此,二维奇偶校验是单奇偶校验的升级版。通过使用这种技术可以提高性能,它以表格的形式组织了比特块。它可以检测以及纠正一个或多个比特错误。
工作
在这里,我们将通过把信息放在不同的行里来维护一个矩阵。然后像我们在单一奇偶校验技术中所做的那样,在这里我们也将根据1和0的数量添加一个奇偶校验位。如果信息中1的数量是偶数,那么我们将在原始信息的末尾添加0,否则我们将在末尾添加1,使1的总数为偶数。这个过程对矩阵的每一行和每一列都要进行。这样,我们将产生一个新的比特(来自列),所以现在我们将发送附加的比特和新的比特给接收器。接收方通过检查奇偶校验位来检测错误,如果传输时没有问题,就不会有错误,否则就会检测出错误。
优点
- 它可以检测并纠正一个或多个比特错误。
- 与单一奇偶校验相比,它的效率更高。
- 这种技术的性能非常好,因为它是简单奇偶校验的升级版。
不足之处
- 在某些情况下,只有奇数位的错误可以被检测和纠正,而偶数位的错误只能被检测而不能被纠正。
- 这种方法不能检测到甚至没有比特的错误。
校验和(CHECKSUM
校验和是一个数字和字母的序列,用于检查数据的错误。它是一种用于检测计算机网络中错误的技术。校验和在互联网上被几个协议使用,尽管不是在数据链路层。
工作
我们将看到校验和错误检测的工作和方法。 校验和生成器从发送方开始,校验和生成器将代码字分成等长的p比特的小单元。然后,用一补法将它们相加得到一个新的码字。这个结果也是p位的,并再次进行补码。补足后的结果被称为校验和。校验和被添加到原始码字的末尾,然后生成的码字被传输到接收方。 校验器现在在接收方,收到的数据与校验和一起被传输到校验器。然后,这些收到的数据被分成相等的小单元,然后最后的结果被补充。如果这个答案是零,意味着没有错误,否则可以检测到错误。
优点
校验和错误检测代码或技术有助于检测具有偶数位或奇数位的错误。
缺点:该代码不能检测到比特数为零的错误。
这种代码不能检测存在于子单元中的错误,所以当我们进一步传输信息时就会出现问题,因为它不能检测这些错误。
循环冗余检查
这种代码也被称为CRC。循环冗余检查(CRC)是一种用于检测数字数据错误的技术。CRC根据文件或更大的数据集的构建产生一个固定长度的数据集。CRC用于存储设备,如硬盘等。CRC以二进制除法为基础,也被称为多项式编码校验。
工作原理
在这项技术中,在发送方,(k-1)个零被附加在原始码字的末端。现在,这个新生成的码字被由生成器多项式形成的密钥分割。生成器多项式是类似于一个正常的方程,如x3+x+1或x2+1。对于x3+x+1的密钥将是1011,对于
x2+1的密钥是101。现在,根据生成器多项式,钥匙就在那里,我们用钥匙来划分附加的代码字。这里使用的除法操作将是标准的算术除法。除法后得到的余数被称为CRC余数。
在接收方,新产生的数据被传送到接收方,我们将再次进行与上述相同的除法
如果余数为零,那么就不会有错误,否则就会检测出错误。
优点
- 这只是一个简单的代码,可以在任何形式的应用中制作和实现。
- 它可以很容易地查看单比特错误和多个突发错误。
- CRC在二进制硬件中的实现非常简单,它能很好地检测传输中的噪声引起的错误。
不足之处
- 它不适合用于保护数据。
- 在这种情况下,数据溢出的可能性很大。
因此,现在我们已经探索和讨论了计算机网络中错误检测的各个方面。我们已经看到了所有的错误检测代码的工作,优点和缺点。现在,我想用一个希望来结束这篇文章,希望所有正在阅读这篇文章的人一定要研究这个主题。
谢谢你,
祝你阅读愉快。