本篇博客为HDLC协议格式概述篇,后面博客为陆续推出HDLC协议之逻辑实现篇。
高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(Synchronous Data Link Control)协议扩展开发而成的。
七十年代初,IBM公司率先提出了面向比特的同步数据链路控制规程SDLC(Synchronous Data Link Control)。随后,ANSI和ISO均采纳并发展了SDLC,并分别提出了自己的标准:ANSI的高级通信控制过程ADCP(Advanced Data Control Procedure),ISO的高级数据链路控制规程HDLC(High-level Data Link Control)。其特点包括:
1.HDLC是面向比特的数据链路控制协议的典型代表,该协议不依赖于任何一种字符编码集;
2.数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;
3.全双工通信,有较高的数据链路传输效率;
4.所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重发,传输可靠性高;
5.传输控制功能与处理功能分离,具有较大灵活性。
HDLC协议是面向比特型的协议,它比面向字符协议(如IBM提出的BSC协议)具有更大的灵活性和更高的效率。HDLC以帧为传输的基本单位,其结构图如图所示。
其中“F”为帧同步标志,帧头、帧尾相同,均为二进制“01111110”;“A”为接收站地址;“C”为控制码;“Info”为有效数据,必须为8bit的整数倍;“FCS”为帧校验序列,校验区间包括接收站地址、控制命令和有效数据部分,校验方式采用的是CRC(循环冗余校验)。为防止数据被误判为帧同步标志,协议规定,在发送时,当除了帧同步标志外的比特流中连续出现5个“1”码时,在第5个码后面自动插入一个“0”码;在接收时,当除帧同步标志外的比特流中连续出现5个“1”码时,自动剔除5个“1”码后面的“0”码。
文章评论(0条评论)
登录后参与讨论