首页 > 技术文章 > HDLC

zhugenmin 2019-11-25 22:55 原文

高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输 数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(Synchronous Data Link Control)协议扩展开发而成的。

特点

1. HDLC是面向比特的数据链路控制协议的典型代表,该协议不依赖于任何一种字符编码集;
2. 数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;
3. 全双工通信,有较高的数据链路传输效率;
4. 所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重发,传输可靠性高;
5. 传输控制功能与处理功能分离,具有较大灵活性。
高级数据链路规程(HDLC),是位于数据链路层的协议之一,其工作方式可以支持半双工、全双工传送,支持点到点、多点结构,支持交换型、非交换型信道,它的主要特点包括以下几个方面:
1. 透明性:为实现透明传输,HDLC定义了一个特殊标志,这个标志是一个8位的比特序列,(01111110),用它来指明帧的开始和结束。同时,为保证标志的唯一性,在数据传送时,除标志位外,采取了0比特插入法,以区别标志符,即发送端监视比特流,每当发送了连续5个1时,就插入一个附加的0,接收站同样按此方法监视接收的比特流,当发现连续5个1时而第六位为0时,即删除这位0。
2. 帧格式:HDLC帧格式包括地址域、控制域、信息域和帧校验序列。
3. 规程种类:HDLC支持的规程种类包括异步响应方式下的不平衡操作、正常响应方式下的不平衡操作、异步响应方式下的平衡操作。

 

 

 

分类

信息帧(I帧)

信息帧用于传送有效信息或数据,通常简称I帧。I帧以控制字第一位为“0”来标志。
信息帧的控制字段中的N(S)用于存放发送帧序号,以使发送方不必等待确认而连续发送多帧。N(R)用于存放接收方下一个预期要接收的帧的序号,N(R)=5,即表示接收方下一帧要接收5号帧,换言之,5号帧前的各帧接收到。N(S)和N(R)均为3位二进制编码,可取值0~7
 
监控帧(S帧)
监控帧用于差错控制流量控制,通常简称S帧。S帧以控制字段第一、二位为“10”来标志。S帧不带信息字段,只有6个字节即48个比特。S帧的控制字段的第三、四位为S帧类型编码,共有四种不同编码,分别表示:
00——接收就绪(RR),由主站或从站发送。主站可以使用RR型S帧来轮询从站,即希望从站传输编号为N(R)的I帧,若存在这样的帧,便进行传输;从站也可用RR型S帧来作响应,表示从站希望从主站那里接收的下一个I帧的编号是N(R)。
01——拒绝(REJ),由主站或从站发送,用以要求发送方对从编号为N(R)开始的帧及其以后所有的帧进行重发,这也暗示N(R)以前的I帧已被正确接收。
10——接收未就绪(RNR),表示编号小于N(R)的I帧已被收到,但当前正处于忙状态,尚未准备好接收编号为N(R)的I帧,这可用来对链路流量进行控制。
11——选择拒绝(SREJ),它要求发送方发送编号为N(R)单个I帧,并暗示其它编号的I帧已全部确认。
可以看出,接收就绪RR型S帧和接收未就绪RNR型S帧有两个主要功能:首先,这两种类型的S帧用来表示从站已准备好或未准备好接收信息;其次,确认编号小于N(R)的所有接收到的I帧。拒绝REJ和选择拒绝SREJ型S帧,用于向对方站指出发生了差错。REJ帧用于GO-back-N策略,用以请求重发N(R)以前的帧已被确认,当收到一个N(S)等于REJ型S帧的N(R)的I帧后,REJ状态即可清除。SREJ帧用于选择重发策略,当收到一个N(S)等SREJ帧的N(R)的I帧时,SREJ状态即应消除。

无编号帧(U帧)

无编号帧因其控制字段中不包含编号N(S)和N(R)而得名,简称U帧。U帧用于提供对链路的建立、拆除以及多种控制功能,但是当要求提供不可靠的无连接服务时,它有时也可以承载数据。这些控制功能5个M位(M1、M2、M3、M4、M5,也称修正位)来定义。5个M位可以定义32种附加的命令功能或32种应答功能,但现在许多是空缺的。

推荐阅读