在 ISO 标准协议集中,数据链路层采用了高级数据链路控制(High-level Data Link Control,HDLC)规程(或称协议)。HDLC 是在同步数据链路控制规程(Synchronous Data Link Control,SDLC)上发展起来的。SDLC 是1969年由IBM 研制的面向比特的控制规程,1974年被用于IBM 公司的SNA 计算机网系统,后被ANSI 定为国家标准,称为美国高级数据通信控制规程(Advanced Data Communication Control Procedure,ADCCP),1975年被ISO 定为国际标准。1976年CCITT 对之做了部分修改,并作为标准在X.25 建议中公布,称为HDLC。
1.HDLC 的基本配置和响应方式
HDLC 是通用的数据链路控制协议,可用于点对点和点对多点的数据通信,有主站(primary station)和次站(secondary station)之分。当开始建立数据链路时,允许选用特定的操作方式。
所谓链路操作方式,是指某站点以主站方式操作还是以从站方式操作,或者是二者兼备。
在链路上用于控制的目的站称为主站,其他的受主站控制的站称为次站或从站。主站负责对数据流进行组织,并且对链路上的差错实施恢复。主站需要比从站有更多的逻辑功能,所以当终端与主机相连时,主机一般总是主站。当一个站连接多条链路的情况下,该站对于一些链路而言可能是主站,而对另外一些链路而言又可能是从站。有些站可兼备主站和从站的功能,则称为复合站,用于复合站之间信息传输的协议是对称的,即在链路上主站、从站具有同样的传输控制功能。
HDLC 可适用于链路的两种基本配置,即非平衡配置和平衡配置。非平衡配置的特点是由一个主站控制链路的工作,主站发出的帧叫作命令(command),次站发出的帧叫作响应(response)。平衡配置的特点是链路两端的两个站都是复合站(combined station),复合站同时具有主站与次站的功能,因此每个复合站都可以发出命令和响应。
HDLC 规程有3 种响应方式,分别介绍如下。
1)正常响应方式(Normal Responding Model,NRM)
由主站发送指令帧,该帧的控制格式中的P 位如置“1”,则要求此站启动传输,次站当且仅当收到主站发来的控制段P 为1 的帧,才启动向主站传送数据信息,次站启动后可传一帧或多帧,次站F=1 表示最后一帧,这种方式适合半双工方式。在HDLC 的控制字段中,P/F(Poll/Final)位称为探询、终止位,探询位P 是主站用来请求(探询)次站发送信息或做出响应的,终止位F 是次站用来响应主站探询的。
2)异常响应方式(Anomalous Responding Model,ARM)
次站可随时启动向主站发送数据,不必等主站发出启动命令,此方式可用于半双工和全双工方式。
3)平衡型异步响应方式(Balance Anomalous Responding Model,BARM)
这是ARM 的改进型,其特点是:在点对点链路通信时,双方既是主站,又是次站,都有权随时启动传输数据,不必等待对方指令。显然,BARM 对高效率的全双工点对点链路较为合适。
2.HDLC 的帧格式
数据链路层的传输单位是以帧为单位的,帧被称为数据链路协议数据单元,HDLC 的帧结构如图3-8所示。
图3-8 HDLC 的帧格式
HDLC 的一帧由下列字段组成。
1)标志字段F
帧首尾均有一个由固定比特序列01111110 组成帧标志字段F,其作用主要有两个:帧起始与终止定界符和帧比特同步,即F 表示下一帧开始和上一帧结束,一码多用,效率高。
发送时,发送站监测标志之间的比特序列,当发现有5 个连续的1 时,就插入一个0,从而保证了帧内数据传输的透明性;接收时,接收方对标志之后的比特序列进行检测,如果发现5 个连续的1 比特,其后如果为0,则将之删除以还原为原来的比特流。
HDLC 规程规定以01111110 为标志字段,但在信息字段中也可能有同一种格式的字符。为确保帧标志字段F 在帧内的唯一性,在帧地址字段、控制字段、信息字段、帧检验字段中采用了零比特填充技术(或称为‘0’位插入技术)。发送方在发送标志字符外的所有信息时,只要遇到连续5 个‘1’,就自动插入一个‘0’;接收方在接收数据(除标志段外)时,如果连续接收到5 个‘1’,就自动将其后的一个‘0’删除,以恢复原有形式,其过程如下:(www.xing528.com)
设CPU 输出7F3A
2)地址字段A
主站到副站的发送帧指明副站地址,而当副站向主站发响应帧时,该字段指明发往主站信息的次站地址。在非平衡结构中,帧地址字段总是填入从站地址;在平衡结构中,帧地址字段填入应答站地址。
全1 地址是广播地址,而全0 地址是无效地址。因此,有效地址共有254 个。这对一般的多点链路是足够的,如果用户超过了这一数据,按照协议规定,地址字段可以按8 bit 的整数倍来进行扩展。
3)控制字段C
控制字段功能和格式较复杂,用于构成各种命令和响应,以便对链路进行监视和控制。发送方主站和组合站利用控制字段来通知被寻址的从站或组合站执行约定的操作;相反,从站用该字段作对命令的响应,报告已完成的操作或状态的变化,该字段是HDLC 的关键。
控制字段中的第1 位或第1、2 位表示传输帧的类型,HDLC 中有信息帧(I 帧)、监控帧(S 帧)和无编号帧(U 帧)3 种不同类型的帧。
4)信息字段I
信息字段可以是任意的比特序列组合,包含有要传送的数据,但不是每一帧都必须有信息字段。为确保数据的透明性,应执行‘0’比特插入和删除操作。
5)帧校验字段FCS
FCS(Frame Check Sequence)字段称为帧校验序列,采用16 位CRC 循环冗余编码进行校验,CCITT 建议其生成多项式g ( x )=x16+x12+ x5+ 1。除了标志字段和自动插入的‘0’以外,一帧中其他的所有信息都要参加CRC 校验。
3.HDLC 的帧类型
HDLC 控制字段为8 位,它的内容取决于帧的类型。HDLC 定义了3 种类型的帧,分别为信息帧(I 帧)、监控帧(S 帧)和无编号帧(U 帧)。
1)信息帧(I 帧)
带有CI 控制段格式的帧叫信息帧,用于传送有效信息或数据。帧内含有信息段,通信过程中I 帧计数。
2)监控帧(S 帧)
带有CS 控制段格式的帧叫监控指令响应帧,监控帧用于差错控制和流量控制。主站对次站是监控指令帧,次站到主站的帧叫监控指令响应帧。S 帧中无信息段,因S 帧纯属指令和监控位的传输,故在通信过程中不计数。
3)无编号帧(U 帧)
带有CU 控制段格式的帧叫无编号帧。全称为无编号指令/响应帧,无编号帧因其控制字段中不包含编号N(S)和N(R)而得名。主站到次站的U 帧叫无标号指令帧,次站到主站的U 帧叫无编号响应帧。U 帧常用于通信之初定义通信方式,提供对链路的建立、拆除以及多种控制功能。带信息段的U 帧用于调机用,在通信过程中不计数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。