网工干货知识

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

什么是帧检查序列?

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

帧校验序列(Frame Check Sequence,FCS)指的是在帧中额外添加的用于检测错误的比特位。它被用于HDLC协议的错误检测。FCS是一个2字节或4字节的字段,用于检测在网络中传输的帧中的地址字段、控制字段以及信息字段中的错误。通过这种方式,可以确保数据帧在从发送方传输到接收方的过程中不会受到传输介质的影响而损坏。

HDLC帧格式

特点:

  • 这是一种存在于HDLC帧中的错误检测代码。
  • 其大小在2字节到4字节之间不等。
  • 它被用于通信协议中。
  • 它仅负责错误检测,而不负责错误的恢复工作。
  • 所采用的FCS技术的类型,取决于网络所使用的协议。

目的:

在通过通信介质传输数据时,数据帧很容易发生损坏。在将数据帧传输到网络之前,会先添加FCS比特到数据帧中。在接收端,会再次计算FCS码,然后将其与数据帧中的FCS比特进行比较。如果FCS匹配,则数据传输成功;否则,该数据帧将被丢弃。因此,FCS比特的作用就是用于错误检测。

FCS仅用于错误检测,并不提供任何关于错误恢复的具体信息。错误恢复技术完全依赖于传输协议本身。以下是一些例子,说明不同协议如何处理通过FCS检测到的错误:

  1. 以太网的数据链路层协议规定,如果检测到错误,则应该丢弃数据帧,并且不会采取任何措施来恢复因错误而导致的状态。 如果发送方使用以太网协议将消息发送到目的地,那么该消息会被分解成多个数据帧。每个数据帧都会包含FCS位。这些数据帧随后通过传输介质进行传输。 如果在传输过程中,有任何一帧的数据被损坏了,那么该帧的FCS位就会发生变化。 在目标位置,会计算出FCS值,然后将其与每帧的FCS值进行比较。如果损坏的帧的FCS值与计算出的FCS值不匹配,那么该帧就会被丢弃。 由于以太网并没有规定在检测到错误时应该采取什么措施来处理损坏的数据帧,因此这些数据就会丢失。
     
  2. TCP协议规定,如果检测到数据帧存在错误,那么这些数据帧应该被丢弃。同时,TCP还会重新发送那些已损坏的数据帧,从而实现错误的恢复。 如果发送方使用TCP协议将消息发送给目的地,那么该消息会被划分为多个数据帧。每个数据帧都包含FCS位。这些数据帧随后通过传输介质进行传输。 如果在传输过程中,有任何帧发生损坏,那么其FCS位就会发生变化。 在目标地址处,会计算FCS值,并将其与每帧的FCS值进行比较。如果损坏帧的FCS值与计算出的FCS值不匹配,那么该帧将被丢弃。 在这种情况下,TCP会启动错误恢复机制,重新传输那些损坏的数据帧。这样一来,数据就不会丢失了。

实施:

接收器会计算整个帧的累计和,其中包含了尾随的FCS值。然后,将计算结果与帧中的FCS位进行比较。如果两者匹配,则传输成功;否则,该帧将被丢弃。通常情况下,FCS的最高位会先被发送出去,不过也可以反过来,先发送最低位。

为了进行错误检测,人们使用了不同的技术来计算FCS码。以下是一些用于检测传输帧中错误的技术:

  1. 简单奇偶校验:为了检测错误,会在帧中添加一个奇偶校验位。奇偶校验位有两种类型:奇校验和偶校验。在奇校验模式下,如果数据中1的个数为奇数,则奇偶校验位设置为0;如果1的个数为偶数,则奇偶校验位设置为1。而在偶校验模式下,如果数据中1的个数为奇数,则奇偶校验位设置为1;如果1的个数为偶数,则奇偶校验位设置为0。这里的奇偶校验位实际上属于帧中的FCS代码的一部分。
  2. 二维奇偶校验:每行和每列都会计算出相应的奇偶校验位,然后将这些奇偶校验位添加到数据帧中。对于单个行或列来说,计算奇偶校验位的过程其实与简单的奇偶校验检查类似。在这种技术中,所有行和列的奇偶校验位组合起来就构成了FCS码。
  3. 校验和:数据被划分为多个段,这些段都通过1的补码算术方式相加。最终得到的数值再经过补码运算后,就得到了校验和。 校验和会与其他数据一起被发送到目的地。在接收端,所有数据的校验和会被用1的补码方式进行计算,之后再将得到的数值进行反补运算,从而得到最终的校验和。 如果最终结果为零,那么传输过程就被认为成功了;否则,该帧数据将被丢弃。 有时,校验和可以被视为CRC错误检测算法的FCS代码。
  4. 循环冗余校验(CRC):在数据单元的末尾添加了一组冗余位,这样得到的数据就可以被某个预先确定的二进制数整除。这些冗余位被称为循环冗余校验位。在接收端,数据会被这个预定的数值进行除法运算;如果余数等于0,那么该帧数据可以被接受;否则,该帧数据将被丢弃。在这种算法中,循环冗余校验位被视作FCS位。

工作:

在数据传输过程中,数据经常会受到损坏。因此,在传输过程中,会在帧的末尾添加校验序列来确保数据的完整性。 FCS的计算可以通过各种错误检测技术来实现,例如奇偶校验、校验和等。 在目的地,FCS的计算方式与在发送方站点时使用的相同技术一样。 然后,将得到的结果与数据帧中存在的FCS比特进行比较。如果两者相同,则接受该帧,并认为传输成功;否则,该帧将被丢弃,因为可能发生了传输过程中的错误。

例如,假设在一个网络中,有两台设备,分别被称为A和B,它们都遵循TCP协议。 A希望以这样一种方式将数据发送给B:即B不会接受被损坏的数据帧,从而确保通信过程无错误。 因此,A会将每个帧的数据分割成若干大小为m的段,然后通过使用1的补码方式将这些段相加来计算校验和。之后,将计算得到的校验和添加到每个帧的末尾,然后再发送该帧数据。 现在,B会使用1的补码方式来计算该帧的累计值以及FCS位的值。如果累计值等于零,那么该帧将被接受;否则,该帧将被丢弃。 由于该网络遵循TCP协议,因此当检测到出现故障时,A可以重新传输那些损坏的帧。 这样,沟通就会更加高效,因为不会出现因错误而导致的沟通不一致的情况。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

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