Alex_McAvoy

想要成为渔夫的猎手

HDLC 协议

【概述】

高级数据链路控制协议(High-level Data Link Control,HDLC)与 PPP 一样,是广域网的数据链路层的链路控制协议,直接应用在两个直接连接的结点的链路上,是面向比特的链路协议

HDLC 中,结点被称为,根据功能不同,站被分为三类:

  • 主站:负责控制链路操作,发出的帧被称为命令帧
  • 从站:受控于主站,按主站的命令进行操作,发出的帧被称为响应帧
  • 复合站:既具有主站的功能又具有从站的功能,可发出命令帧,也可发出响应帧

由此,HDLC 适用于链路的两种基本配置:

  • 非平衡配置:由一个主站控制整个链路工作
  • 平衡配置:链路两端的站均为复合站,每个复合站可平等发起数据传输,不需要得到对方复合站的允许

【数据传输方式】

当主站向从站传输数据时,根据从站响应传输的方式,可分为以下三类:

  • 正常响应方式:非平衡配置下的操作方式,从站只有在收到主站许可后,才可进行响应
  • 异步响应方式:非平衡配置下的操作方式,从站在没有接到主站的允许下,就可进行响应
  • 异步平衡方式:平衡配置下的操作方式,每一个复合站都可以进行对另一端站点的数据传输

【HDLC 帧】

HDLC 是面向比特的,其格式如下图所示

HDLC 采用比特填充法进行首尾定界,其首部的第一个标志字段 $F$ 为帧起始标志,固定为 0111 1110,尾部的最后一个标志字段 $F$ 为帧终止标志,同样固定为 0111 1110

首部的第二个字段 $A$ 为地址字段,在使用非平衡方式传输时,为从站地址;在使用平衡方式传输时,为应答站地址

首部的第三个字段为控制字段,根据该字段的第 $1$、$2$ 位的取值,将 HDLC 帧划分为三类:

  • 信息帧 I:第 $1$ 位为 0,用于传输数据,或使用捎带技术对数据进行确认
  • 监督帧 S:第 $1$、$2$ 位为 10,用于流量控制与差错控制,执行对信息帧的确认
  • 无编号帧 U:第 $1$、$2$ 位为 11,用于提供对链路的建立、拆除等控制

信息部分的长度是可变的,没有规定其最大长度,同时由于采取了零比特填充法,为了透明传输,当其中出现连续的 $5$ 个 1 时,再其后要填充一个 0

尾部的第一个字段为帧检验序列 FCS,即 CRC 中的冗余码,检验部分包括地址字段 A、控制字段 C、信息字段

可以发现,HDLC 帧与 PPP 帧十分相似,但两者具有以下不同:

  • PPP 面向字节,HDLC 面向比特
  • PPP 帧比 HDLC 帧多一个协议字段,当该字段取值为 0x0021 时,表明信息字段为 IP 数据报
  • PPP 不使用序号与确认机制,只保证无差错接收,端到端的差错检测由高层负责,是不可靠传输;HDLC 的信息帧使用序号与确认机制,能提供可靠传输
感谢您对我的支持,让我继续努力分享有用的技术与知识点!