HDLC——面向比特的同步协定:High Level Data Link Control(高级数据链路控制规程)。 HDLC是面向比特的数据链路控制协定的典型代表,该协定不依赖于任何一种字元编码集;数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬体实现;全双工通信,有较高的数据链路传输效率;所有帧採用CRC检验,对信息帧进行顺序编号,可防止漏收或重发,传输可靠性高;传输控制功能与处理功能分离,具有较大灵活性。
基本介绍
- 中文名:面向比特的同步协定
- 外文名:The HDLC protocol
- 性质:协定标準
- 领域:计算机
特点与格式
面向比特的协定中最有代表性的是IBM的同步数据链路控制规程SDLC(Synchronous Data Link Control),国际标準化组织ISO (International Standards Organization)的高级数据链路控制规程HDLC(High Level Data Link Control),美国国家标準协会(American National Standards Institute )的先进数据通信规程ADCCP ( Advanced Data Communications Control Procedure)。这些协定的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字元来标誌帧的开始和结束,故称"面向比特"的协定。
帧信息的分段
SDLC/HDLC的一帧信息包括以下几个栏位(Field),所有栏位都是从最低有效位开始传送。
SDLC/HDLC标誌字元
SDLC/HDLC协定规定,所有信息传输必须以一个标誌字元开始,且以同一个字元结束。这个标誌字元是01111110,称标誌栏位(F)。从开始标誌到结束标誌之间构成一个完整的信息单位,称为一帧(Frame)。所有的信息是以帧的形式传输的,而标誌字元提供了每一帧的边界。接收端可以通过搜寻"01111110"来探知帧的开头和结束,以此建立帧同步。
地址栏位和控制栏位
在标誌栏位之后,可以有一个地址栏位A(Address)和一个控制栏位C(Contro1)。地址栏位用来规定与之通信的次站的地址。控制栏位可规定若干个命令。SDLC规定A栏位和C栏位的宽度为8位。HDLC则允许A栏位可为任意长度,C栏位为8位或16位。接收方必须检查每个地址位元组的第一位,如果为"0",则后边跟着另一个地址位元组;若为"1",则该位元组就是最后一个地址位元组。同理,如果控制栏位第一个位元组的第一位为"0",则还有第二个控制栏位位元组,否则就只有一个位元组。
信息场
跟在控制栏位之后的是信息栏位(Information)。信息栏位包含有要传送的数据,亦成为数据栏位。并不是每一帧都必须有信息栏位。即信息栏位可以为0,当它为0时,则这一帧主要是控制命令。
帧校验栏位
紧跟在信息栏位之后的是两位元组的帧校验栏位,帧校验栏位称为FC(Frame Check)栏位, 校验序列FCS(Frame check Sequence)。SDLC/HDLC均採用16位循环冗余校验码CRC (Cyclic Redundancy Code),其生成多项式为CCITT多项式X^16+X^12+X^5+1。除了标誌栏位和自动插入的"0"位外,所有的信息都参加CRC计算。 CRC的编码器在传送码组时为每一码组加入冗余的监督码位。接收时解码器可对在纠错範围内的错码进行纠正,对在校错范 围内的错码进行校验,但不能纠正。超出校、纠错範围之外的多位错误将不可能被校验发现 。
实际套用时的两个技术问题
"0"位插入/删除技术
如上所述,SDLC/HDLC协定规定以01111110为标誌位元组,但在信息栏位中也完全有可能有同一种模式的字元,为了把它与标誌区分开来,所以採取了"0"位插入和删除技术。具体作法是传送端在传送所有信息(除标誌位元组外)时,只要遇到连续5个"1",就自动插入一个"0"当接收端在接收数据时(除标誌位元组)如果连续接收到5个"1",就自动将其后的一个"0"删除,以恢覆信息的原有形式。这种"0"位的插入和删除过程是由硬体自动完成的,比上述面向字元的"数据透明"容易实现。
SDLC/HDLC异常结束
若在传送过程中出现错误,则SDLC/HDLC协定用异常结束(Abort)字元,或称失效序列使本帧作废。在HDLC规程中7个连续的"1"被作为失效字元,而在SDLC中失效字元是8个连续的"1"。当然在失效序列中不使用"0"位插入/删除技术。
SDLC/HDLC协定规定,在一帧之内不允许出现数据间隔。在两帧信息之间,传送器可以连续输出标誌字元序列,也可以输出连续的高电平,它被称为空闲(Idle)信号。
HDLC(高级数据链路控制)产生的背景
面向字元型数据链路层协定的缺点:
控制报文和数据报文格式不一样;
採用停止等待方式,效率低;
只对数据部分进行差错控制,可靠性较差;
系统每增加一种功能就需要设定一个新的控制字元。
面向比特型协定的设计目标:
以比特作为传输控制信息的基本单元;
数据帧与控制帧格式相同;
传输透明性好;
连续传送,传输效率高。
数据链路的配置和数据传送方式
数据链路的配置
非平衡配置
平衡配置
非平衡配置方式
非平衡配置中的主站与从站
主站:控制数据链路的工作过程。主站发出命令
从站:接受命令,发出回响,配合主站工作
非平衡配置中的结构特点
点-点方式
多点方式
非平衡配置方式
正常回响模式(normal response mode,NRM)
主站可以随时向从站传输数据帧;
从站只有在主站向它传送命令帧进行探询(poll),从站回响后才可以向主站传送数据帧。
异步回响模式(asynchronous response mode,ARM)
主站和从站可以随时相互传输数据帧;
从站可以不需要等待主站发出探询就可以传送数据;
主站负责数据链路的初始化、链路的建立、释放与差错恢复等功能。
数据链路的非平衡配置方式
平衡配置方式
链路两端的两个站都是複合站(combined station);
複合站同时具有主站与从站的功能;
每个複合站都可以发出命令与回响;
平衡配置结构中只有异步平衡模式(asynchronous balanced mode,ABM);
异步平衡模式的每个複合站都可以平等地发起数据传输,而不需要得到对方複合站的许可。
数据链路的平衡配置方式
HDLC的帧结构
F(flag) :标誌栏位
01111110
帧同步
传输数据的透明性:当帧其它栏位的比特序列中出现和标誌栏位相同的比特序列时,就后出现判断错误。解决办法是零比特插入与删除: 传送端在两个标誌栏位之间的比特序列中,如果检查出连续的5个1,不管它后面的比特位是0或1,都增加1个0;在接收端,在2个标誌栏位之间的比特序列中检查出连续的5个1之后就删除1个0
A(address) :地址栏位
当地址栏位的首位为1时表示地址栏位为8位;当首位为0时表示地址栏位为16位。
当使用非平衡方式传送数据时,地址栏位总是填入从站地址;当使用平衡方式传送数据时,地址栏位填入应答站地址。
如果地址栏位全为1,表示是广播地址。
C(control) :控制栏位
根据其最前面两个比特的取值,可以分为3大类:信息帧、监控帧和无编号帧,也就是I帧、S帧和U帧。
控制栏位中第1或第1、2位表示传送帧的类型,第1位为“0”表示是信息帧,第1、2位为“10”是监控帧,“11”是无编号帧。
信息帧中,234位为存放传送帧序号,5位为轮询位,当为1时,要求被轮询的从站给出回响,678位为下个预期要接收的帧的序号。
监控帧中,34位为S帧类型编码。第5位为轮询/终止位,当为1时,表示接收方确认结束。
无编号帧,提供对链路的建立、拆除以及多种控制功能,用34678这五个M位来定义,可以定义32种附加的命令或应答功能。
I(information) :信息栏位
只出现在信息帧和无编号帧中,它是网路层的用户数据。
FCS:帧校验栏位
HDLC採用的是CRC校验,校验A、C和I栏位的数据。
生成多项式採用CRC-CCITT,G(X)= X16+X12+X5+1
信息帧
如果控制栏位的b0为0,那幺该帧为信息帧,即I帧
N(S):b1、b2和b3,表示当前传送的信息帧的序号
N(R):b5、b6和b7,表示一个站所已正确接收序号N
(R)-1及以前的各帧,传送站应发序号为N(R)的帧
由于是全双工通信,所以通信双方都有一个N(S)和 N(R)
P/F位:b4,探询/终止位
0,表示没有意义
P=1(询问),如果从站有帧传送,则可以向主站传送
F=1(终止),传送的最后一帧,表示从站已经传送结束
P=1和F=1在帧交换过程中成对出现
信息帧
信息帧
目前传送的序号为3帧
已经正确接收序号为3及以前的各帧,要求对方下一次传送序号为4的帧
使用探询位P=1去询问对方
监控帧
如果控制栏位的b0=1,b1=0,那幺该帧为监控帧,即S帧
无编号帧
如果控制栏位的b0=1,b1=1,那幺该帧为无编号帧,即U帧
没有N(S)和N(R)位,主要起控制作用,它可以在需要时发出,不影响带序号的信息帧的交换顺序
数据链路层的工作过程
简化的信息帧结构的表示方法
一个信息帧的表示
无编号帧的表示方法
SNRM帧与UA帧结构的表示方法