当前位置:文档之家› HDLC协议

HDLC协议

什么是HDLC?HDLC是什么意思?

HDLC英文全称High level Data Link Control,高级数据链路控制,HDLC是一个在同步网上传输数据、面向位的数据链路层协议,它是个由1970年代IBM所提出的对称式资料连结控制(Synchronous Data Link Control,SDLC)所研发出来的ISO标准。

高级数据链路控制(HDLC)协议是基于的一种数据链路层协议,促进传送到下一层的数据在传输过程中能够准确地被接收(也就是差错释放中没有任何损失并且序列正确)。HDLC 的另一个重要功能是流量控制,换句话说,一旦接收端收到数据,便能立即进行传输。H DLC 具有两种不同的实现方式:高级数据链路控制正常响应模式即HDLC NRM(又称为SDLC)和 HDLC 链路访问过程平衡(LAPB)。其中第二种使用更为普遍。HDLC 是 X.25 栈的一部分。

HDLC 是面向比特的同步通信协议,主要为全双工点对点操作提供完整的数据透明度。它支持对等链路,表现在每个链路终端都不具有永久性管理站的功能。另一方面,HDLC NRM 具有一个永久基站以及一个或多个次站。

HDLC LAPB 是一种高效协议,为确保流量控制、差错监测和恢复它要求额外开销最小。如果数据在两个方向上(全双工)相互传输,数据帧本身就会传送所需的信息从而确保数据完整性。

帧窗口是用于在接收第一个帧已经正确收到的确认之前发送复帧。这就意味着在具有长“turn-around”时间滞后的情况下数据能够继续传送,而不需要停下来等待响应。例如在卫星通信中会发生这种情形。

通常,帧分为三种类型:

信息帧:在链路上传送数据,并封装OSI体系的高层;

管理帧:用于实现流量控制和差错恢复功能;

无编号帧:提供链路的初始化和终止操作。

协议结构

Flag ― 该字段值恒为 0x7E。

Address Field ― 定义发送帧的次站地址,或基站发送帧的目的地。该字段包括服务访问点(6比特)、命令/响应位(表示帧是否与节点发送的信息帧有关或帧是否被节点接收)、地址扩展位(通常设置为1字节长)。当设置错误时,表示一个附加字节。

Extended Address ― HDLC 为基本格式提供了另一种扩展。通过多方协定,Address Field 可以被扩展为多个字节。

Control Field ― 识别帧类型。另外,根据帧类型划分,该字段还包括序列号、控制特性和差错跟踪。

FCS ― 帧校验序列(FCS)字段通过许可传输帧数据的完整性,使高层物理差错控制可以被校验。

2 HDLC协议概述

HDLC(High-Level Data Link Control,高层数据链路协议)是一组用于在网络节点间传送数据的协议,是在数据链路层中广泛使用的一种协议。在HDLC 协议中,数据被组成一个个的单元(称为帧),通过网络传输,由接收方确认收到,同时HDLC协议也管理数据流和数据发送的间隔时间。HDLC协议中每帧所传输的数据可以含有任意数量的比特位,而且帧的开始和结束是靠约定的比特模式(标志)来定界的,是一种“面向比特”的协议。HDLC的帧格式见图1。地址是目的地址,控制字节根据不同的内容定义不同的帧类型,每帧中所传输的数据长度为8的任意整数倍,每帧数据都需要作CRC校验。

HDLC(高级数据链路控制规程)

HDLC是可靠性高,高速传输的控制规程。其特点如下:可进行任意位组合的传输;可不等待接收端的应答,连续传输数据;错误控制严密;适合于计算机间的通信。HDLC相当于OSI基本参照模型的数据链路层部分的标准方式的一种。HDLC的适用领域很广,近代协议的数据链路层大部分都是基于HDLC的。

HDLC是面向比特的链路控制规程,其链路监控功能通过一定的比特组合所表示的命令和响应来实现,这些监控比特和信息比特一起以帧的形式传送。

以下是ISO/IEC 3309标准规定的HDLC的基本帧结构。

其它的HDL C标准也有类似的HDLC帧结构。每帧的起始和结束以“7E”(01111110)做标志,两个“7E”之间为数据段(含地址数据、控制数据、信息数据)和帧校验序列。帧校验采用CRC算法,对除了插入的“零”以外的所有数据进行校验。为了避免将数据中的“7E”误为标志,在发送端和接收端要相应地对数据流和帧校验序列进行“插零”及“删零”操作。

各种HDLC协议间的区别之一是帧校验序列的CRC算法不同,这

种不同表现在几个方面:

a、 HDLC帧校验序列的位数不同,如16位和32位等;

b、 CRC生成多项式不同,如对于16位的CRC,CCITT V .41标准的多项式是x16+x12+x5+1,ANSI CRC-16标准的多项式是x16

+x15+x2+1等;

c、 CRC序列的起始化条件不同,如可以初始化为全“0”、全“1”等;

d、 CRC计算结果的处理方式不同,如可以直接把CRC结果发送,或对CRC结果取反后再发送等;

e、对接收到的数据做CRC校验时,合格判据不同,因为有了上述的不同处理自然会得到不同的结果,由此造成合格判据不同,例如有的标准以校验结果“1DOF”判为无错误[2]。而有的ASIC芯片以校验结果“F0B8”判为无错误[3]。

HDLC协议 - HDLC

——面向比特的同步协议:High Level Data Link Control(高级数据链路控制规程)。

一.特点与格式

面向比特的协议中最有代表性的是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),所有场都是从最低有效位开始传送。

1. SDLC/HDLC标志字符

SDLC/HDLC协议规定,所有信息传输必须以一个标志字符开始,且以同一个字符结束。这个标志字符是01111110,称标志场(F)。从开始标志到结束标志之间构成一个完整的信息单位,称为一帧(Frame)。所有的信息是以帧的形式传输的,而标志字符提供了每一帧的边界。接收端可以通过搜索"01111110"来探知帧的开头和结束,以此建立帧同步。

2.地址场和控制场

相关主题