Appearance
HDLC 高级数据链路控制
考情分析
HDLC 是数据链路层面向比特的协议,408 中通常以选择题形式考查,重点包括:HDLC 的帧格式与各字段含义、三种帧类型的区分方式(控制字段前几位)、三种站类型与操作模式,以及 HDLC 与 PPP 的对比。近年真题中 HDLC 与 PPP 的对比是热门考点。
考频:★★★
HDLC 概述
HDLC(High-Level Data Link Control,高级数据链路控制)是 ISO 制定的面向比特的数据链路层协议。它是从 IBM 的 SDLC 协议发展而来的,是最重要的数据链路层协议之一。
核心特征:
- 面向比特:以比特为单位进行数据传输,帧中的数据可以是任意比特串
- 使用零比特填充法实现透明传输
- 支持可靠传输:信息帧带有序号,可以进行差错控制和流量控制
- 适用于点对点和多点链路
三种站类型
HDLC 定义了三种站类型,用于描述链路上各节点的角色:
| 站类型 | 功能描述 | 发送的帧 |
|---|---|---|
| 主站(Primary Station) | 控制链路的操作,负责发送命令帧 | 命令帧 |
| 从站(Secondary Station) | 受主站控制,响应主站的命令 | 响应帧 |
| 复合站(Combined Station) | 既能发送命令帧,也能发送响应帧 | 命令帧 + 响应帧 |
三种数据操作方式
不同的站类型组合对应不同的操作模式:
1. 正常响应模式(NRM)
- 链路配置:不平衡配置(一个主站 + 一个或多个从站)
- 从站必须在收到主站的许可(轮询)后才能发送数据
- 主站负责控制整个链路
- 典型应用:主从式网络
2. 异步平衡模式(ABM)
- 链路配置:平衡配置(两个复合站)
- 每个复合站都可以主动发起数据传输,不需要对方许可
- 这是目前使用最广泛的模式
- 典型应用:点对点链路
3. 异步响应模式(ARM)
- 链路配置:不平衡配置(一个主站 + 一个或多个从站)
- 从站可以不经主站轮询就主动发送响应帧(这是与 NRM 的区别)
- 主站仍然负责链路管理
- 实际中很少使用
HDLC 帧格式
HDLC 的帧由以下字段组成,所有帧共享统一格式:
┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
│ 标志 F │ 地址 A │ 控制 C │ 信息 I │ FCS │ 标志 F │
│ 01111110 │ 8 位 │ 8/16 位 │ 可变长 │ 16 位 │ 01111110 │
│ (8位) │ │ │ │ │ (8位) │
└──────────┴──────────┴──────────┴──────────┴──────────┴──────────┘各字段详解
1. 标志字段 F(Flag)
- 固定为
01111110(即0x7E) - 帧的起始和结束都用这个标志
- 两个相邻帧之间可以共用一个标志字段
2. 地址字段 A(Address)
- 通常 8 位,可扩展
- 在命令帧中填写对方(从站)的地址
- 在响应帧中填写本站(从站)的地址
- 即地址字段始终标识的是从站地址
3. 控制字段 C(Control)
- 8 位或 16 位
- 这是 HDLC 帧中最重要的字段,决定了帧的类型和功能
- 通过控制字段的前 1~2 位来区分帧类型(详见下节)
4. 信息字段 I(Information)
- 可变长度,携带上层数据
- 并非所有帧都有信息字段(S 帧和部分 U 帧没有)
5. 帧检验序列 FCS(Frame Check Sequence)
- 16 位,使用 CRC 校验
- 校验范围:地址字段 + 控制字段 + 信息字段
三种帧类型
HDLC 通过控制字段的前 1~2 位区分三种帧类型,这是高频考点:
| 帧类型 | 控制字段格式 | 区分标志 | 用途 |
|---|---|---|---|
| 信息帧(I 帧) | 0 N(S) P/F N(R) | 第 1 位为 0 | 传输用户数据 |
| 监督帧(S 帧) | 10 SS P/F N(R) | 前 2 位为 10 | 流量控制和差错控制 |
| 无编号帧(U 帧) | 11 MM P/F MMM | 前 2 位为 11 | 链路管理 |
信息帧(I 帧)
控制字段结构(8 位):
┌───┬─────────┬─────┬─────────┐
│ 0 │ N(S) 3位│ P/F │ N(R) 3位│
└───┴─────────┴─────┴─────────┘- 第 1 位 = 0:标识为 I 帧
- N(S):发送序号,3 位(序号范围 0~7)
- P/F:轮询/终止位(Poll/Final)
- N(R):接收序号,表示期望收到对方的下一帧编号(相当于捎带确认)
- I 帧既携带数据,又可以捎带确认
监督帧(S 帧)
控制字段结构(8 位):
┌────┬────────┬─────┬─────────┐
│ 10 │ SS 2位 │ P/F │ N(R) 3位│
└────┴────────┴─────┴─────────┘- 前 2 位 = 10:标识为 S 帧
- SS:监督功能码,指定具体类型
00:RR(Receive Ready)——准备接收,确认 N(R)-1 号帧01:REJ(Reject)——拒绝,请求从 N(R) 开始重传(对应 GBN)10:RNR(Receive Not Ready)——接收方忙,不能接收11:SREJ(Selective Reject)——选择拒绝,仅重传 N(R) 号帧(对应 SR)
- S 帧没有信息字段,不携带用户数据
无编号帧(U 帧)
控制字段结构(8 位):
┌────┬────────┬─────┬─────────┐
│ 11 │ MM 2位 │ P/F │ MMM 3位 │
└────┴────────┴─────┴─────────┘- 前 2 位 = 11:标识为 U 帧
- MM + MMM:共 5 位编码,可定义 32 种命令/响应
- 用于链路的建立、拆除和管理
- 常见 U 帧:SABM(建立异步平衡模式)、DISC(断开连接)、UA(确认)
- U 帧没有序号,因此叫"无编号帧"
透明传输:零比特填充法
HDLC 使用 01111110 作为帧定界标志。为了防止数据中出现与标志相同的比特串,采用零比特填充法:
发送方规则: 在标志字段之间的数据部分,每遇到连续 5 个 1,自动在其后插入一个 0。
接收方规则: 在标志字段之间的数据部分,每遇到连续 5 个 1,自动删除其后的 0。
示例:
原始数据: 01111110 10
↑ 连续6个1,含5个1后需要插0
发送时填充: 011111 0 110 10
接收时还原: 01111110 10这样保证了数据部分永远不会出现 01111110,不会与标志字段冲突。
HDLC 与 PPP 的对比
这是 408 考试中的高频对比考点,务必牢记:
| 对比项 | HDLC | PPP |
|---|---|---|
| 面向类型 | 面向比特 | 面向字节 |
| 传输可靠性 | 支持可靠传输(I 帧有序号,可确认和重传) | 不支持可靠传输(无序号,不提供纠错) |
| 链路类型 | 点对点、多点链路均支持 | 仅支持点对点链路 |
| 操作模式 | NRM、ABM、ARM 三种模式 | 只有点对点一种模式 |
| 透明传输 | 零比特填充法 | 字节填充法(异步)/ 零比特填充法(同步) |
| 帧定界标志 | 01111110 | 0x7E(即 01111110,相同) |
| 帧类型 | I 帧、S 帧、U 帧三种 | 仅一种帧格式 |
| 站类型 | 主站、从站、复合站 | 无站类型区分(对等通信) |
| 协议复杂度 | 复杂 | 简单 |
| 应用场景 | 传统广域网链路 | Internet 拨号/宽带接入 |
核心区别记忆口诀: HDLC 面向比特有序号(可靠),PPP 面向字节无序号(不可靠)。
易错点
1. 帧类型的判断依据是控制字段的前 1~2 位,不是帧中有没有信息字段
虽然 S 帧和部分 U 帧没有信息字段,但判断帧类型的标准是控制字段:第 1 位为 0 是 I 帧,前 2 位为 10 是 S 帧,前 2 位为 11 是 U 帧。
2. 地址字段填写的始终是从站地址
无论命令帧还是响应帧,地址字段标识的都是从站。在 ABM 模式中两站都是复合站,地址字段标识的是响应方。
3. HDLC 支持可靠传输而 PPP 不支持
HDLC 的 I 帧有发送序号 N(S) 和接收序号 N(R),可以实现确认和重传机制。PPP 帧没有序号字段,不提供可靠传输服务——这是两者最本质的区别之一。
4. U 帧叫"无编号帧"是因为没有序号,不是因为没有编号功能码
U 帧的控制字段中有 5 位 M 码用于区分不同的命令/响应,但没有 N(S) 和 N(R) 序号字段,所以叫"无编号帧"。
高频考点清单
- HDLC 是面向比特的协议(与面向字节的 PPP 区分)
- 控制字段区分帧类型:
0开头为 I 帧,10开头为 S 帧,11开头为 U 帧 - I 帧携带数据且有序号(N(S) 和 N(R)),S 帧用于监督控制,U 帧用于链路管理
- 三种站类型:主站(发命令)、从站(发响应)、复合站(都能发)
- 三种操作模式:NRM(需轮询)、ABM(平衡,最常用)、ARM(可主动响应)
- 零比特填充法:连续 5 个 1 后插入 0
- HDLC 与 PPP 的核心区别:面向比特 vs 面向字节、可靠 vs 不可靠、多模式 vs 单模式