HDLC协议
扫描二维码
随时随地手机看文章
关于HDLC协议的关键要点:
由国际标准化组织(ISO)在1970年代开发,基于IBM的SDLC(Synchronous Data Link Control)协议。定义在ISO 33009和ISO 4335标准中。是许多其他数据链路层协议(如PPP、帧中继的LAPF、ISDN的LAPD)的基础或灵感来源。
核心特点
- 面向比特: 以比特流为单位进行传输和解析,不依赖于特定的字符编码(如ASCII)。这与面向字节的协议(如IBM的BISYNC)不同。
- 同步传输: 要求发送方和接收方时钟同步,通常通过调制解调器或专用线路实现。
- 全双工通信: 支持数据同时在两个方向上传输。
- 点对点与多点: 最初设计支持点对点和多点(多点)配置(如轮询/选择)。
- 可靠性: 提供可靠的、有序的数据传输,通过以下机制实现:
- 帧定界: 使用唯一的比特序列01111110(称为标志)来标识帧的开始和结束。
- 比特填充(零比特插入): 在发送端,在数据字段中每遇到连续的5个“1”后,自动插入一个“0”,以确保标志序列01111110的唯一性,防止数据被误认为是帧边界。接收端在收到连续的5个“1”后,会删除紧随其后的“0”。
- 错误检测: 使用循环冗余校验(CRC),通常是16位或32位CRC,检测传输过程中的比特错误。
- 确认机制: 使用序号(N(S)发送序号,N(R)接收序号)和确认(ACK)机制来保证帧的可靠传输和顺序。
- 流量控制: 使用接收就绪(RR)、接收未就绪(RNR)等监控帧进行流量控制,防止接收方被淹没。
- 重传机制: 通过超时和否定确认(REJ, SREJ)实现损坏帧或丢失帧的重传。
HDLC帧结构
一个标准的HDLC帧包含以下几个字段:
| Flag | Address | Control | Information | FCS | Flag |
| 8b | 8b | 8b | Variable | 16b | 8b |
标志 (Flag - 8 bits): 01111110,标识帧的开始和结束。
- 地址 (Address - 8 or more bits): 在点对点链路中通常意义不大(可设为一个特定值,如0xFF代表广播/所有站),主要用于多点配置中标识从站。
- 控制 (Control - 8 or 16 bits): 帧的核心,定义帧的类型(信息帧-I帧,监控帧-S帧,无编号帧-U帧)并包含序号(N(S), N(R))、轮询/终止位(P/F)以及控制功能码。
- I帧 (Information): 携带上层数据,包含N(S)和N(R)序号,用于流量控制和确认。
- S帧 (Supervisory): 用于流量控制和错误控制(如RR, RNR, REJ, SREJ),包含N(R)序号和P/F位。
- U帧 (Unnumbered): 用于链路管理(如建立连接-SABM/DISC,断开连接,模式协商,测试等),不包含序号,但有功能码和P/F位。
- 信息 (Information - Variable length): 可选字段,仅存在于I帧和某些U帧中,用于承载网络层(第3层)的数据包(如IP数据包)。S帧没有信息字段。
- 帧校验序列 (Frame Check Sequence - FCS, 通常16或32 bits): 包含对整个帧(除去标志位)计算的CRC校验码,用于检测传输错误。
操作应用场景
- NRM (Normal Response Mode): 传统的多点模式。一个主站控制链路,从站只有在被主站显式轮询后才能传输。
- ARM (Asynchronous Response Mode): 多点模式的一种变体,允许从站未经轮询即可发起传输(例如发送U帧)。
- ABM (Asynchronous Balanced Mode): 最常用的模式,尤其在点对点链路中(如路由器间串行连接)。每个站点(称为组合站)兼具主站和从站功能,可以平等地发起传输和控制链路,无需轮询。PPP协议在底层就使用了HDLC的ABM模式帧结构。
HDLC是一个极其重要且基础的数据链路层协议标准。它定义了面向比特、可靠同步通信的核心机制(帧结构、定界、填充、错误检测、确认、流量控制)。虽然纯标准HDLC在今天的公共互联网中直接应用较少(很大程度上被更灵活、功能更丰富的PPP所取代),但它的设计理念和帧结构深刻影响了后续众多关键的网络协议(PPP、帧中继、ISDN LAPD等),是理解现代数据链路层技术的重要基础。在特定的专有设备互连或某些传统系统中,仍可能遇到其实现或变体。