📜  什么是帧校验序列?

📅  最后修改于: 2022-05-13 01:57:02.530000             🧑  作者: Mango

什么是帧校验序列?

帧校验序列 (FCS) 是指添加到帧中用于错误检测的额外比特。它用于HDLC错误检测。它是 2 字节或 4 字节的字段,用于检测通过网络传输的帧的地址字段、控制字段和信息字段中的错误。它用于确保数据帧在从发送方发送到接收方时不会被传输介质破坏。

HDLC 帧格式

HDLC 帧格式

特征:

  • 它是 HDLC 帧中存在的错误检测代码。
  • 它的大小从 2 字节到 4 字节不等。
  • 它用于通信协议中。
  • 它只负责错误检测,不负责错误恢复。
  • 要使用的 FCS 技术类型取决于网络遵循的协议。

目的:

数据帧在通过通信介质传输时经常被破坏。 FCS 位在通过网络传输之前添加到帧中。 FCS 码在目标站点再次计算并与帧的 FCS 位进行比较,如果 FCS 匹配,则认为传输成功,否则丢弃帧。因此,它用于错误检测。

FCS 仅用于错误检测,并没有指定有关错误恢复的任何细节。错误恢复技术完全基于传输协议。以下是演示不同协议如何响应使用 FCS 检测到的错误的示例:

  1. 以太网,数据链路层协议规定在检测到错误时应丢弃数据帧,并且不对错误恢复采取任何动作。如果发送方使用以太网协议向目的地发送一些消息,则该消息被分成数据帧,每个帧都附加了 FCS 位,然后这些帧通过介质传输。如果任何帧在传输过程中损坏,则其 FCS 位将被更改。在目的地,计算FCS并与每个帧的FCS位进行比较,损坏帧的FCS将与计算的FCS不匹配,因此该帧将被丢弃。由于以太网没有指定任何操作,例如在检测到错误时重新传输损坏的帧,因此数据将丢失。
  2. TCP,传输层协议指定在检测到错误时应丢弃数据帧并重新传输损坏的帧并启动错误恢复。如果发送方使用 TCP 协议向目的地发送一些消息,则该消息被划分为数据帧,每个帧都附加了 FCS 位,然后这些帧通过介质传输。如果任何帧在传输过程中损坏,则其 FCS 位将被更改。在目的地计算 FCS 并与每个帧的 FCS 位进行比较,损坏帧的 FCS 将与计算的 FCS 不匹配,因此该帧将被丢弃。 TCP 然后启动错误恢复并重新传输损坏的帧,因此在这种情况下数据不会丢失。

执行:

接收端计算整个帧与尾随 FCS 的运行总和,然后将结果与帧的 FCS 位进行比较,如果结果匹配,则认为传输成功,否则丢弃帧。通常,首先发送 FCS 的 MSB(最高有效位),但也可以将 FCS 反转为先发送 LSB(最低有效位)。

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

  1. 简单奇偶校验:将奇偶校验位添加到帧中以进行错误检测。它有两种类型——奇校验和偶校验。在奇校验中,如果数据包含奇数个 1,则奇偶校验位设置为 0,如果数据包含偶数个 1,则设置为 1。在偶校验中,如果数据包含奇数个 1,则奇偶校验位设置为 1,如果数据包含偶数个 1,则设置为 0。这里,奇偶校验位构成帧的一部分作为 FCS 码。
  2. 二维奇偶校验:为每一行和每一列计算奇偶校验位并附加到数据帧中。单个行或列的奇偶校验位的计算类似于简单的奇偶校验。在这种技术中,所有行和列的奇偶校验位的组合形成了 FCS 码。
  3. 校验和:将数据分成多个段,所有段用1s补码算法相加,得到的和进行补码得到校验和。校验和与其他段一起发送到目的地,并在接收端使用 1 的补码计算所有段的总和,然后对获得的总和进行补码。如果最终结果为零,则认为传输成功,否则丢弃该帧。有时,校验和被认为是 CRC 错误检测算法的 FCS 码。
  4. 循环冗余校验 (CRC):将冗余位序列添加到数据单元的末尾,以便生成的数据完全可以被预定的二进制数整除。这些位称为循环冗余校验位。在接收端,数据除以该预定数,如果余数为 0,则接受该帧,否则丢弃该帧。在该算法中,循环冗余位被认为是 FCS 位。

在职的:

数据在传输时经常被损坏,因此在传输时将帧检查序列附加到帧的末尾。 FCS 是通过使用任何错误检测技术(如奇偶校验、校验和等)来计算的。在目的地,FCS 再次按照在发送方站点生成 FCS 时使用的相同技术进行计算。然后将结果与数据帧中存在的 FCS 位进行比较,如果两者相同,则接受该帧并认为传输成功,否则假设在传输时发生了一些错误,则丢弃该帧。

例如,假设网络中有两个设备,分别是 A 和 B,并且遵循 TCP 协议。 A 想以这样的方式向 B 发送一些数据,使 B 不接受损坏的帧并且通信没有错误。因此,A 将每一帧的数据划分为一些大小为 m 的段,并通过使用 1 的补码对所有段求和并附加到每一帧的末尾来计算校验和,然后传输该帧。现在,B 将使用 1 的补码计算帧的运行总和以及 FCS 位,如果总和为零,则该帧将被 B 接受,否则将被丢弃。由于网络遵循 TCP 协议,因此 A 可以在检测到故障时重新传输损坏的帧。这样沟通会更有效率,因为没有错误会导致沟通不一致。