循环冗余检验(CRC)在数据链路层的应用

需积分: 18 9 下载量 187 浏览量 更新于2024-08-20 收藏 19.99MB PPT 举报
"循环冗余检验的原理-计算机网络课件-谢希仁" 循环冗余检验(CRC)是一种在数据通信和存储中广泛使用的检错技术,主要应用于数据链路层。其基本思想是在发送的数据块(通常称为信息字段或数据帧)后面附加一个冗余码,这个冗余码由特定的算法计算得出,用于接收端进行错误检测。当接收端接收到数据后,同样使用该算法计算接收到的完整数据(包括原始数据和冗余码)的冗余码,并与接收到的冗余码进行比较。如果两者相同,则认为数据传输无误;若不相同,则判断数据在传输过程中发生了错误。 在CRC过程中,首先将要发送的数据划分为固定长度的组,例如每个组包含k个比特。例如,假设有一个数据组M=101001,长度k=6。为了增加冗余码,我们需要选择一个生成多项式G(x),这个生成多项式通常是一个二进制系数的多项式,比如G(x)=x^n+1,其中n是冗余码的位数。在本例中,如果n=3,那么G(x)=x^3+1=10001。 发送端的操作如下: 1. 将数据M左移n位,形成M' = 1010010000。 2. 使用异或操作,将M'与生成多项式G(x)的二进制表示异或。如果G(x)=10001,结果将是101001 ^ 10001 = 101010。 3. 如果异或结果非零,重复步骤2,即将异或结果左移一位并与G(x)异或,直到得到的结果为零或者进行了n次异或操作。在这个例子中,我们只需进行一次异或,得到的冗余码为101。 因此,发送的数据变为M' +冗余码 = 1010010000 + 101 = 1010011011,这个完整的序列被发送到接收端。 在接收端,同样的过程被执行,计算接收到的数据的冗余码,并与接收的冗余码进行比较。如果计算出的冗余码与接收的冗余码一致,那么认为数据传输正确。如果不一致,说明在传输过程中可能存在错误。 此外,文件还涉及了计算机网络的基础知识,包括计算机网络在信息时代中的重要作用,因特网的概述,如其发展历程、标准化工作以及它作为网络的网络的特性。还介绍了因特网的组成,分为边缘部分(用户和应用)和核心部分(通信子网和路由器)。此外,还涵盖了计算机网络的分类、性能指标、非性能特征、体系结构等概念。这些内容构成了计算机网络学科的基础,对于理解和研究网络通信至关重要。