数据链路层:奇偶检验与CRC

需积分: 0 0 下载量 37 浏览量 更新于2024-08-05 收藏 1.81MB PDF 举报
"CH3数据链路层1" 数据链路层是计算机网络的第二层,它的主要任务是将物理层传输的原始比特流组织成帧,并确保这些帧能正确无误地从源节点传输到目的节点。在这一过程中,数据链路层采用各种错误检测机制来确保数据的完整性。本节主要讨论了两种错误检测方法:奇偶检验和CRC(循环冗余校验)。 奇偶检验是一种简单的错误检测方法,用于检查数据中1的数量是否为奇数或偶数。二维奇偶检验在此基础上更进一步,将数据分为n段,每段占据一行。每一行和每一列都进行单独的奇偶校验。在接收端,如果发现某行或某列的奇偶性不正确,那么可以定位到错误发生的行和列的交叉位置,从而找出错误位。然而,二维奇偶检验只能检测到单个错误位,无法纠正错误,且无法确定偶数位的错误。 CRC(循环冗余校验)是一种更为强大的错误检测方法,其基于模二除法运算。在数据的末尾添加n个0作为校验位,然后用一个预先约定的除数(由S和R双方确定)对整个数据(包括校验位)进行模二除法。这里的“除法”实际上是逐位异或操作,因为是模二运算,所以没有借位,只有异或。如果数据能被除数整除,那么CRC校验通过,否则表示数据在传输过程中出现了错误。CRC的检错率非常高,但同样不具备纠错能力,只能发现错误并要求重传。 在数据链路层,数据帧的丢失、重复和乱序是常见的问题。为了解决这些问题,通常采用超时重传和确认帧机制。当接收方R接收到数据帧后,如果未收到确认帧,它会认为数据帧丢失并触发重传。如果接收方R收到两个相同的数据帧,它会识别并丢弃多余的副本。同时,发送方S在未收到确认帧时也会持续重传,直到收到确认为止。为了确保数据帧的唯一性,可以在帧头中加入序号,以便匹配数据帧和确认帧。 此外,滑动窗口协议是一种有效的流量控制机制,允许发送方在等待确认之前发送多个数据帧,从而提高了效率并减少了传播延迟。这种方法可以处理数据帧的丢失、重复和乱序,确保数据的正确传输。 数据链路层通过奇偶检验和CRC等技术确保数据帧的完整性,并通过超时重传和确认帧机制处理传输中的错误。滑动窗口协议则进一步优化了数据传输的效率和可靠性。这些技术是构建可靠网络通信的基础,对于理解网络底层工作原理至关重要。