网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

CRC和FCS之间有什么区别呢?

更新时间:2026年03月27日   作者:spoto   标签(Tag):

循环冗余校验(CRC):循环冗余校验通常被称为错误检测机制,因为会在特殊数字后面附加一段数据,这样就能检测到在存储过程中发生的任何变化。
这是一种更复杂的算法,它基于简单的CHECKSUM和MODULAR ARITHMETIC运算原理而构建。在处理每个输入词时,这些算法会被逐一应用,因为这些输入词实际上可以看作是多项式的系数组合。
CRC通常用于数字网络和存储设备中,用于检测原始数据中的意外更改。如果CRC生成器的位数为n位,那么CRC的位数就是(n-1)位。

CRC工作条件:

具有CRC功能的设备会为每块要发送或存储的数据计算出一个短且固定的二进制序列,这个序列被称为“校验值”或“CRC”。然后,该校验值会被附加到数据中,从而形成一段编码后的数据。如果CRC值不匹配,那么说明该数据块中存在错误。

CRC工作/研究

示例:

问题:请构造一个CRC消息。其中,除数为1101,而数据为1011011。

解决方案:由于除数的长度为4,因此我们需要在单词的末尾添加4-1=3个零。
给定的数据为1011011,而CRC位为000,即1011011000(数据加上接收到的CRC结果)。

发送方:

发送端

因此,CRC值“001”被添加到消息“1011011”中。
传输过来的消息是:1011011001

接收方:

接收端

上述例子说明,发送方能够无误地将数据发送给接收方,而接收方也能正确接收到这些数据。
假设接收方收到了损坏的数据包,那么接收方的提示信息就不会显示为0。

帧校验序列FCS(帧校验序列)是一种用于检测错误的编码方式,它被添加到协议中各个帧中。这些帧被用来从源端向目标端发送有效载荷数据。也就是说,这些帧的作用就是负责将数据从源端传输到目标端,从而让应用程序能够接收并处理这些数据。

  • FCS是唯一能够实现错误检测与恢复的协议。这一功能是通过协议中的各种独立机制来完成的。
  • 一般来说,当接收器能够计算出整个帧的校验和,以及接下来几个字节的校验和时,就会发送FCS。因为这些字节的校验和预计会得出相同的固定结果。
  • 以帧校验序列(FCS)结尾的帧结构,有助于检测在数据传输过程中发生的32位循环冗余校验数据的损坏情况。

示例:

问题:假设有一个以二进制形式表示的消息,其内容为1011 0001 1011。同时,还有一个除数,其表示为110101。那么,请计算出该消息的帧检查序列(Frame Check Sequence, FCS)是多少呢?

解决方案:如果除数有 n 位,那么我们需要在消息的末尾添加 n-1 位。这里,除数的长度为 6 位,因此需要在消息的末尾添加 5 个零,然后再进行 XOR 运算。
给定的模式序列或除数为110101。

FCS中的比特数 = 比特模式序列的数量减1
= 6 - 1
= 5位。

请考虑给定的数据为:101100011011

填充5个零,因为FCS位有5个。

为了确定FCS编码是否有效,可以使用循环冗余校验方法,通过执行XOR运算来实现这一目的。

注意:在FCS中,当MSB位为0时,我们会插入一个与除数长度相同的零位序列,然后执行XOR运算。

FCS示例

因此,帧检查的顺序就是如此。1 0 0 0 0其余的部分则构成了FCS代码。

传输的序列包括消息以及FCS编码。
因此,传输的序列为:10110001101110000

CRC与FCS之间的区别

CRCFCS1.2.3.4.5.6.
CRC的全称是Cyclic Redundancy Check。FCS的全称是Frame Check Sequence。
CRC并不仅限于网络领域,它还被许多其他技术所使用。FCS是专门用于以太网帧结构的。
CRC是一种校验和类型,它使用特定的算法来检测数据在计算或传输过程中的完整性。FCS是一种利用算法来检测帧的方法。
这是一种错误检测机制。它能够检测错误并恢复受损的数据。
CRC错误表示数据已经损坏了。FCS错误表示在数据传输过程中,数据帧发生了损坏。
在CRC算法中,数据可能会受到损坏。这些数据在传输过程中并未被损坏。
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料