计算机网络 数据链路层中的错误检测和纠正

数据链路层中的错误检测和纠正

数据链路层 使用错误控制技术,以确定从源到目的地传输的帧(即数据的位流)具有一定的准确性。

错误

当位在计算机网络上传输时,它们可能会因干扰和网络问题而受损。损坏的位导致目的地接收到虚假数据,称为错误。

错误类型

错误可以分为三种类型,即单比特错误、多比特错误和突发错误。

  • 单比特错误 - 在接收到的帧中,只有一个位被损坏,即从0变为1或从1变为0。
    数据链路层中的错误检测和纠正

  • 多比特错误 - 在接收到的帧中,多个位被损坏。
    数据链路层中的错误检测和纠正

  • 突发错误 - 在接收到的帧中,多个连续位被损坏。
    数据链路层中的错误检测和纠正

错误控制

错误控制可以通过两种方式进行

  • 错误检测 - 错误检测是检查是否发生了任何错误。错误比特的数量和错误的类型都无关紧要。

  • 错误纠正 - 错误纠正是确定已损坏的比特数量和损坏比特的位置。

对于错误检测和错误纠正,发送方需要在数据比特之外发送一些附加比特。接收方根据附加的冗余比特进行必要的检查。如果发现数据没有错误,它会在将消息传递给上层之前移除冗余比特。

错误检测技术

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

奇偶检验

奇偶检验是通过向数据添加一个额外的比特,称为奇偶校验位,使得1的数量在偶奇校验的情况下要么是偶数,要么是奇数。

在创建帧时,发送方计算其中1的数量,并以以下方式添加奇偶校验位

  • 对于偶校验:如果1的数量是偶数,则奇偶校验位值为0。如果1的数量是奇数,则奇偶校验位值为1。

  • 对于奇校验:如果1的数量是奇数,则奇偶校验位值为0。如果1的数量是偶数,则奇偶校验位值为1。

收到帧后,接收器计算其中的1的数量。在偶校验检查中,如果1的数量是偶数,则接受该帧,否则拒绝。奇校验检查也采用类似的规则。

校验位适用于单比特错误检测。

校验和

在这种错误检测方案中,采用以下过程

  • 将数据分成固定大小的帧或片段。

  • 发送方使用1的补码算法将这些片段相加以得到和。然后对和进行取反得到校验和,并将其与数据帧一起发送。

  • 接收方使用1的补码算法将传入的片段和校验和相加以得到和,然后对其进行取反。

  • 如果结果为零,则接受接收到的帧;否则,将其丢弃。

循环冗余检查(CRC)

循环冗余检查(CRC)涉及到由通信系统约定的预定除数对发送的数据位进行二进制除法。除数使用多项式生成。

  • 在这里,发送方通过除数对数据段进行二进制除法。然后将余数称为CRC位附加到数据段的末尾。这使得结果数据单元能够被除数整除。

  • 接收方通过除数对接收到的数据单元进行除法。如果没有余数,则认为数据单元是正确的并接受它。否则,认为数据已损坏,因此拒绝。

纠错技术

纠错技术可以找出被损坏的位的确切数量和位置。有两种主要的方式

  • 向后纠错(重传) - 如果接收方检测到传入帧中的错误,则请求发送方重新传输该帧。这是一种相对简单的技术。但它只能在重传不昂贵(如光纤)且重传时间相对于应用需求较短的情况下高效使用。

  • 向前纠错 - 如果接收方检测到传入帧中的某些错误,则执行纠错码,生成实际的帧。这样可以节省重传所需的带宽。在实时系统中是不可避免的。但是,如果错误太多,需要重新传输帧。

四种主要的纠错码有:

  • 汉明码
  • 二进制卷积码
  • Reed-Solomon码
  • 低密度奇偶校验码

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

计算机网络 精选笔记