定义:HDLC(High-Level Data Link Control,高级数据链路控制),是链路层协议的一项国际标准,用以实现远程用户间资源共享以及信息交互。HDLC协议用以保证传送到下一层的数据在传输过程中能够准确地被接收,也就是差错释放中没有任何损失,并且序列正确。HDLC协议的另一个重要功能是流量控制,即一旦接收端收到数据,便能立即进行传输。
HDLC协议由ISO/IEC13239定义,于2002年修订,2007年再次讨论后定稿。在通信领域中,HDLC协议应用非常广泛,其工作方式可以支持半双工、全双工传送,支持点到点、多点结构,支持交换型、非交换型信道。
在通信质量较差的年代,在数据链路层使用可靠传输协议曾经是一种好的办法。因此,能实现可靠传输的高级数据链路控制(HDLC)就成为当时比较流行的数据链路层协议。
HDLC协议的基本特点
HDLC协议使用统一的帧格式,运用方便;采用零比特插入法,易于硬件实现,且支持任意的位流传输,实现信息的透明传输;全双工通信,吞吐率高,在未收到应答帧的情况下,可连续发送信息帧,提高数据链路传输的效率;采用CRC帧校验序列,可防止漏帧,提高信息传输的可靠性。
主要有四个特点:
-
对于任何一种比特流都可透明传输。
-
较高的数据链路传输效率。
-
所有的帧都有帧校验序列(FCS),传输可靠性高。
-
用统一的帧格式来实现传输。
高级数据链路控制(HDLC)协议是ISO制定的面向比特(PPP是面向字节的)的数据链路控制协议。它可适用于链路的两种基本配置:非平衡配置和平衡配置。
-
非平衡配置的特点是由一个主站控制整个链路的工作。
-
平衡配置的特点是链路两端的两个站都是复合站,每个复合站都可以平等地发起数据传输,而不需要得到对方复合站的允许。
HDLC基本配置
HDLC协议定义了3种类型的站、2种链路配置和3种数据传输方式。3种类型的站如下:
-
主站:主站发出的帧叫命令帧,负责对链路进行控制。
-
从站:从站发出的帧叫响应帧,在主站的控制下进行操作。
-
复合站:既具有主站的功能,也有从站的功能,既可以发送命令帧,也可以发送响应帧。
2种链路配置如下:
(1)非平衡配置。既可用于点对点链路也可用于多点链路。这种链路由一个主站和多个从站组成,可以支持全双工或半双工。
(2)平衡配置。只能用于点对点链路。这种配置由两个复合站组成,同样支持全双工或半双工传输。
3种数据传输方式如下:
正常响应方式(Normal Response Mode,NRM):这种方式适合不平衡配置,主站启动数据传输过程,从站只有收到命令时才能发送数据。
异步平衡方式(Asynchronous Balanced Mode,ABM):这种方式适合两端都是复合站的平衡配置,任何一方都可以启动数据传输。
异步响应方式(Asynchronous Response Mode,ARM):这种方式适合不平衡配置,从站在没有收到主站命令时,就可以启动数据传输服务。
HDLC协议的帧格式
当采用HDLC协议时,从网络层交下来的分组,变成了HDLC协议帧的数据部分,数据链路层在信息字段的头尾各加上24位控制信息,这样就构成了一个完整的 HDLC协议帧,如图所示。
标志字段(F):占 8位,为“01111110”,首尾各有一个“0”作为帧的边界。为防止在两个标志字段F之间出现“01111110”,HDLC使用比特填充的首尾标志法。当一串比特流未加上控制信息时,扫描整个帧,只要发现有5个连续“1”,就立即填入一个“0”。
地址字段(A):占8位。若使用非平衡方式传送数据,为次站的地址;若使用平衡方式传送数据,为确认站的地址。全“1”为广播方式,全“0”为无效地址。
控制字段(C):占8位,最复杂的字段,HDLC 的许多重要功能都靠控制字段实现。根据其最前面两位的取值,可将 HDLC 帧划分为3类:信息帧(I帧)、监督帧(S帧)和无编号帧(U帧)。
3类帧的记忆方式,每当看到HDLC帧的分类就想到“无监息”=“无奸细”。
信息帧用来传输数据信息,或使用捎带技术对数据进行确认和应答;监督帧用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能;无编号帧用于提供对链路的建立、拆除以及多种控制功能。
信息字段(Info):长度任意,存放来自网络层的协议数据单元。
帧检验序列(FCS):占16位,即循环冗余码检验中的冗余码。检验区间包括地址字
段、控制字段和信息字段.
补充知识点:PPP的帧格式和HDLC协议的帧格式的区别
解析:① PPP是面向字节的,而HDLC协议是面向比特的。这里也可以看出,PPP
应该使用字节填充,而HDLC协议应该使用比特填充。② PPP帧比 HDLC协议帧多一个2字节的协议字段。当协议字段值为Ox0021时,表示信息字段是IP数据报。
③PPP不使用序号和确认机制,只保证无差错接收(通过硬件进行循环冗余码校验),而端到端差错检测由高层协议完成。HDLC协议的信息帧使用了编号和确认机制。
PPP协议与HDLC协议的区别