您好,欢迎访问三七文档
HDLC协议概述刘文龙(北京理工大学信息与电子学院)学号2120110886摘要:不同企业和不同公司的产品越来越先进,单板也越来越复杂,单板与单板之间,与终端之间数据传输的容量与可靠性要求也越来越高,简单的通讯方式满足不了要求的。HDLC链路控制协议是现在常见的同步协议,为使不了解它的人有一个初步的认识,本文对数据链路层的HDLC协议进行综述介绍,主要内容包括HDLC的发展数据链路控制协议,HDLC协议的主要内容、存在的技术标准以及HDLC的应用和发展前景等。并重点介绍了HDLC的基本概念及帧格式。如果想进一步了解,可以参考和查阅其他相关资料。关键词:HDLC,数据链路层,帧格式,帧结构一HDLC概述1.1HDLC的发展历史高级数据链路控制(High-LevelDataLinkControl或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousDataLinkControl)协议扩展开发而成的.其最大特点是不需要数据必须是规定字符集,对任何一种比特流,均可以实现透明的传输。1974年,IBM公司率先提出了面向比特的同步数据链路控制规程SDLC(SynchronousDataLinkControl)。随后,ANSI和ISO均采纳并发展了SDLC,并分别提出了自己的标准:1*ANSI的高级通信控制过程ADCCP(AdvancedDataControlProcedure),2*ISO的高级数据链路控制规程HDLC(High-levelDataLinkContl)。从此,HDLC协议开始得到了人们的广泛关注,并开始应用于通信领域的各个方面。1.2HDLC的特点HDLC是面向比特的数据链路控制协议的典型代表,有着很大的优势:1*HDLC协议不依赖于任何一种字符编码集;2*数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;3*全双工通信,有较高的数据链路传输效率;4*所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高;5*传输控制功能与处理功能分离,具有较大灵活性。由于以上特点,目前网络设计及整机内部通讯设计普遍使用HDLC数据链路控制协议。HDLC已经成为通信领域额不可缺少的一个重要协议。二数据链路层的控制规程2.1数据链路结构数据链路结构可以分为两种:点-点链路和点-多点链路,如图1所示。图中数据链路两端DTE称为计算机或终端,从链路逻辑功能的角度常称为站,从网络拓扑结构的观点则称为节点。在点-点链路中,发送信息和命令的站称为主站,接收信息和命令而发出确认信息或响应的站称为从站,兼有主、从功能可发送命令与响应的站称为复合站。在点-多点链路中,往往有一个站为控制站,主管数据链路的信息流,并处理链路上出现的不可恢复的差错情况,其余各站则为受控站。2.2数据链路控制规程功能数据链路层是OSI参考模型的第二层,它在物理层提供的通信接口与电路连接服务的基础上,将易出错的数据电路构筑成相对无差错的数据链路,以确保DTE与DTE之间、DTE与网络之间有效、可靠地传送数据信息。为了实现这个目标,数据链路控制规程的功能应包括以下几个部分:1*帧控制数据链路上传输的基本单位是帧。帧控制功能要求发送站把网络送来的数据信息分成若干码组,在每个码组中加入地址字段、控制字段、校验字段以及帧开始和结束标志,组成帧来发送;要求接收端从收到的帧中去掉标志字段,还原成原始数据信息后送到网络层。2*帧同步在传输过程中必须实现帧同步,以保证对帧中各个字段的正确识别。3*差错控制当数据信息在物理链路中传输出现差错,数据链路控制规程要求接收端能检测出差错并予以恢复,通常采用的方法有自动请求重发ARQ和前向纠错两种。采用ARQ方法时,为了防止帧的重收和漏收,常对帧采用编号发送和接收。当检测出无法恢复的差错时,应通知网络层做相应处理。4*流量控制流量控制用于克服链路的拥塞。它能对链路上信息流量进行调节,确保发送端发送的数据速率与接收端能够接收的数据速率相容。常用的流量控制方法是滑动窗口控制法。5*链路管理数据链路的建立、维持和终止,控制信息的传输方向,显示站的工作状态,这些都属于链路管理的范畴。6*透明传输规程中采用的标志和一些字段必须独立于要传输的信息,这就意味着数据链路能够传输各种各样的数据信息,即传输的透明性。7*寻址在多点链路中,帧必须能到达正确的接收站。8*异常状态恢复当链路发生异常情况时,如收到含义不清的序列或超时收不到响应等,能自动重新启动,恢复到正常工作状态。2.3数据链路层协议数据链路控制规程,根据帧控制的格式,可以分为面向字符型、面向比特型。1*面向字符型国际标准化组织制定的ISO1745、IBM公司的二进制同步规程BSC以及我国国家标准GB3543-82属于面向字符型的规程,也称为基本型传输控制规程。在这类规程中,用字符编码集中的几个特定字符来控制链路的操作,监视链路的工作状态,例如,采用国际5号码中的SOH、STX作为帧的开始,ETX、ETB作为的结束,ENQ、EOT、ACK、NAK等字符控制链路操作。面向字符型规程有一个很大的缺点,就是它与所用的字符集有密切的关系,使用不同字符集的两个站之间,很难使用该规程进行通信。面向字符型规程主要适用于中低速异步或同步传输,很适合于通过电话网的数据通信。2*面向比特型ITU-T制定的X.25建议的LAPB、ISO制定的HDLC、美国国家标准ADCCP、IBM公司的SDLC等均属于面向比特型的规程。在这类规程中,采用特定的二进制序列01111110作为帧的开始和结束,以一定的比特组合所表示的命令和响应实现链路的监控功能,命令和响应可以和信息一起传送。所以它可以实现不编码限制的、高可靠和高效率的透明传输。面向比特型规程主要适用于中高速同步半双工和全双工数据通信,如分组交换方式中的链路层就采用这种规程。随着通信的发展,它的应用日益广泛。三HDLC协议3.1HDLC的基本概念3.1.1主站、从站、复合站HDLC涉及三种类型的站,即主站、从站和复合站。1*主站的主要功能是发送命令(包括数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启、流程的控制、差错检测或恢复等。2*从站的主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路控制。3*复合站的主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。3.1.2HDLC链路结构在HDLC中,对主站、从站和复合站定义了三种链路结构,如图2所示图2HDLC链路结构类型3.2HDLC协议的主要内容3.2.1HDLC帧结构HDLC的帧格式如图3所示,它由六个字段组成,这六个字段可以分为五中类型,即标志序列(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验字段(FCS)。在帧结构中允许不包含信息字段I。标志地址控制信息校验码标志8bit8bit8bitn×8bit6或32bit8bit12345678FACIFCSF0N(S)P/FN(R)10SP/FN(R)11MP/FM图3HDLC帧结构1*标志序列(F)HDLC指定采用01111110为标志序列,称为F标志。要求所有的帧必须以F标志开始和结束。接收设备不断地搜寻F标志,以实现帧同步,从而保证接收部分对后续字段的正确识别。另外,在帧与帧的空载期间,可以连续发送F,用来作时间填充。在一串数据比特中,有可能产生与标志字段的码型相同的比特组合。为了防止这种情况产生,保证对数据的透明传输,采取了比特填充技术。当采用比特填充技术时,在信码中连续5个“1”以后插入一个“0”;而在接收端,则去除5个“1”以后的“0”,恢复原来的数据序列,如图4所示。比特填充技术的采用排除了在信息流中出现的标志字段的可能性,保证了对数据信息的透明传输。数据中某一段比特组合恰好001001111110001010出现和F字段一样的情况会误认为是F字段发送端在5个连1之后0010011111010001010填入0比特再发送出去填入0比特在接收端将5个连1之后001001111110001010图4比特填充当连续传输两帧时,前一个帧的结束标志字段F可以兼作后一个帧的起始标志字段。当暂时没有信息传送时,可以连续发送标志字段,使接收端可以一直保持与发送端同步。2*地址字段(A)地址字段表示链路上站的地址。在使用不平衡方式传送数据时(采用NRM和ARM),地址字段总是写入从站的地址;在使用平衡方式时(采用ABM),地址字段总是写入应答站的地址。地址字段的长度一般为8bit,最多可以表示256个站的地址。在许多系统中规定,地址字段为“11111111”时,定义为全站地址,即通知所有的接收站接收有关的命令帧并按其动作;全“0”比特为无站地址,用于测试数据链路的状态。因此有效地址共有254个之多,这对一般的多点链路是足够的。但考虑在某些情况下,例如使用分组无线网,用户可能很多,可使用扩充地址字段,以字节为单位扩充。在扩充时,每个地址字段的第1位用作扩充指示,即当第1位为“0”时,后续字节为扩充地址字段;当第1位为“1”时,后续字节不是扩充地址字段,地址字段到此为止。3*控制字段(C)控制字段用来表示帧类型、帧编号以及命令、响应等。从图5-11可见,由于C字段的构成不同,可以把HDLC帧分为三种类型:信息帧、监控帧、无编号帧,分别简称I帧(Information)、S帧(Supervisory)、U帧(Unnumbered)。在控制字段中,第1位是“0”为I帧,第1、2位是“10”为S帧,第1、2位是“11”为U帧,它们具体操作复杂,在后面予以介绍。另外控制字段也允许扩展。4*信息字段(I)信息字段内包含了用户的数据信息和来自上层的各种控制信息。在I帧和某些U帧中,具有该字段,它可以是任意长度的比特序列。在实际应用中,其长度由收发站的缓冲器的大小和线路的差错情况决定,但必须是8bit的整数倍。5*帧校验序列字段(FCS)帧校验序列用于对帧进行循环冗余校验,其校验范围从地址字段的第1比特到信息字段的最后一比特的序列,并且规定为了透明传输而插入的“0”不在校验范围内。3.2.2HDLC的帧类型1*信息帧(I帧)信息帧用于传送有效信息或数据,通常简称I帧。I帧以控制字第一位为“0”来标志。信息帧的控制字段中的N(S)用于存放发送帧序号,以使发送方不必等待确认而连续发送多帧。N(R)用于存放接收方下一个预期要接收的帧的序号,N(R)=5,即表示接收方下一帧要接收5号帧,换言之,5号帧前的各帧接收到。N(S)和N(R)均为3位二进制编码,可取值0~7。2*监控帧(S帧)监控帧用于监视和控制数据链路,完成信息帧的接收确认、重发请求、暂停发送求等功能。监控帧不具有信息字段。监控帧共有4种,表1是这4种监控帧的代码、名称和功能。表1监控帧的名称和功能记忆符名称比特功能b2b3RR接收准备好00确认,且准备接受下一帧,已收妥N(R)以前的各帧RNR接收未准备好10确认,暂停接收下一帧,N(R)含义同上REJ拒绝接收01否认,否认N(R)起的各帧,但N(R)以前的帧已收妥SREJ选择拒绝接收11否认,只否认序号为N(R)的帧可以看出,接收就绪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状态即应消除。3*无编号帧(U帧)无编号帧用于数据链路的控制,它本身不带编号,可以在任何需要的时刻发出,不影响带编号的信息帧的交换顺序。它可以分为命令帧和响应帧。用5个比特位(即M1、M2)来表示不同功能的无编
本文标题:HDLC协议概述
链接地址:https://www.777doc.com/doc-2875906 .html