【概述】
高级数据链路控制协议(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 的信息帧使用序号与确认机制,能提供可靠传输