面向字符的帧定界和面向比特的帧定界


帧定界是数据链路层的功能,其中网络层的数据包被封装成帧。数据帧可以是固定长度的,也可以是可变长度的。在可变长度帧定界中,要传输的每个帧的大小可能不同。因此,使用一段比特模式作为分隔符来标记一个帧的结束和下一个帧的开始。

两种类型的可变大小帧定界是:

  • 面向字符的帧定界
  • 面向比特的帧定界

面向字符的帧定界

在面向字符的帧定界中,数据以字节序列的形式传输,来自 8 位编码系统(如 ASCII)。面向字符的帧定界中帧的组成部分包括:

  • 帧头 - 它包含帧的源地址和目标地址,以字节形式表示。

  • 有效载荷字段 - 它包含要传递的消息。它是一系列可变的数据字节。

  • 帧尾 - 它包含用于错误检测和纠错的字节。

  • 标志 - 标志是帧定界符,用于指示帧的开始和结束。它是一个 1 字节,表示协议相关的特殊字符。

面向字符的协议适用于文本传输。标志被选择为不用于文本编码的字符。但是,如果协议用于传输多媒体消息,则消息字节序列中可能会存在标志字节的模式。为了防止接收方将该模式视为帧的结束,使用字节填充机制。在此,在消息中每个与标志字节模式相同的字节之前都填充一个称为转义字符 (ESC) 的特殊字节。如果在消息字节中找到 ESC 序列,则在其前面填充另一个 ESC 字节。

面向字符的帧定界的一个问题是它给消息增加了过多的开销,从而增加了帧的总大小。另一个问题是最近使用的编码系统具有 16 位或 32 位字符,这与 8 位编码冲突。

面向比特的帧定界

在面向比特的帧定界中,数据以比特序列的形式传输,上层可以将其解释为文本和多媒体数据。

面向字符的帧定界中帧的组成部分包括:

  • 帧头 - 它包含表示帧的源地址和目标地址的比特。

  • 有效载荷字段 - 它包含要传递的消息。它是一系列可变的比特。

  • 帧尾 - 它包含错误检测和纠错比特。

  • 标志 - 标志是充当帧定界符的比特模式,用于指示帧的开始和结束。它通常为 8 位,包含六个或更多连续的 1。大多数协议使用 8 位模式 01111110 作为标志。

面向比特的协议适用于传输任何比特序列。因此,消息中可能存在标志比特的模式。为了防止接收方将其视为帧的结束,使用比特填充机制。当消息中 0 比特后面跟着五个连续的 1 比特时,在五个 1 的末尾填充一个额外的 0 比特。当接收方收到消息时,它会在每个五个 1 的序列之后删除填充的 0。然后,未填充的消息被发送到上层。

更新于:2020年6月27日

10K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告