单选题 HDLC协议采用的帧同步方法为______。
【正确答案】 C
【答案解析】本题考查数据链路层协议HDLC的基本概念。
HDLC源于IBM开发的SDLC,SDLC是由IBM开发的第一个面向位的同步数据链路层协议。随后,ANSI和ISO均采纳并发展了SDLC,并且分别提出了自己的标准,ANSI提出了高级数据链路控制规程(Advanced Data Communication Control Procedure, ADCCP),而ISO提出了HDLC。
作为面向位的同步数据控制协议的典型,HDLC只支持同步传输。但是HDLC既可工作在点到点线路方式下,也可工作在点到多点线路方式下;同时HDLC既适用于半双工线路,也适用于全双工线路。HDLC协议的子集被广泛用于X.25网络、帧中继网络以及局域网的逻辑链路控制(Logic Link Control,LLC)子层作为链路层协议以支持相邻结点之间可靠的数据传输。
1.HDLC帧格式
HDLC协议的帧格式如图1所示。

图1 HDLC协议的帧格式

每个字段的含义如下:
(1)标志字段F(Flag)。该字段为01111110的位模式,用以标识帧的开始与结束,也可以作为帧与帧之间的填充。在连续发送多个帧时,同一个标识既可用于表示前一帧的结束,又可用于表示下一帧的开始。通常在不进行帧传送的时刻,信道仍处于激活状态,在这种状态下发送方不断地发送标识字段,而接收方则检测每一个收到的标识字段,一旦发现某个标识字段后面不再是一个标识字段,便可认为新的帧传输已经开始。采用“0位插入法”可以实现用户数据的透明传输。
(2)地址字段A(Address)。该字段的内容取决于所采用的操作方式。每个结点都被分配一个唯一的地址。控制帧中的地址字段携带的是对方结点的地址,而响应帧中的地址字段所携带的地址是本结点的地址。某一地址也可分配给不止一个结点,这种地址称为组地址。利用一个组地址传输的帧能被组内所有的结点接收。还可以用全“1”地址来表示包含所有结点的地址,全“1”地址称为广播地址,含有广播地址的帧传送给链路上所有的结点。另外,还规定全“0”的地址不分配给任何结点,仅作为测试用。
地址字段长度通常是8位,可表示256个地址。当地址字段的首位为“1”时,表示地址字段只用8位;若首位为“0”时,表示本字节后面1个字节是扩充地址字段。这就意味着HDLC地址字段可以标识超过256个以上的站点地址。
(3)控制字段C(Control)。控制字段占用1个字节长度。控制字段用于构成各种命令及响应,以便对链路进行监视与控制。该字段是HDLC帧格式的关键字段。控制字段中的第1位或第2位表示帧的类型,即信息帧I帧、监控帧S帧和无编号帧U帧。3种类型的帧控制字段的第5位是轮询/终止(Poll/Final,P/F)位。
(4)信息字段I(Information)。信息字段可以是任意的二进制位串,长度未作限定,其上限由FCS字段或通信结点的缓冲容量来决定。目前,国际上用得较多的是1000~2000位,而下限可以是0,即无信息字段。另外,监控帧中不可有信息字段。
(5)帧校验序列。在HDLC协议的所有帧中都包含一个16位的帧校验序列(FrameCheck Sequence,FCS),用于差错检测。HDLC协议的校验序列是对整个帧的内容进行CRC循环冗余校验,但标志字段和0位插入部分不包括在帧校验范围内。HDLC协议帧校验序列的生成多项式一般采用多项式x 16 +x 12 +x 5 +1。
2.HDLC帧类型
HDLC的控制字段有8位。如果第1位为“0”时,表示该帧为信息帧;第1、2位为“10”时,表示该帧为监控帧;第1、2位为“11”时,表示该帧为无编号帧。
(1)信息帧(Information Frame)用于传送有效信息或数据,通常简称为I帧,其控制字段的帧格式如图2所示。

图2 信息帧控制字段格式

I帧控制字段的第1位为0。HDLC协议采用滑动窗口机制,允许发送方不必等待确认而连续发送多个信息帧。控制字段中的N(S)用于存放发送帧的序列,N(R)用于存放接收方下一个预期要接收的帧的序号。N(S)与N(R)均为3位,可取值0~7。
(2)监控帧(Supervisor Frame)用于差错控制和流量控制,通常称为S帧。监控帧以控制字段第1、2位为“10”来标志。监控帧控制字段格式如图3所示。

图3 监控帧控制字段格式

监控帧控制字段的第3、4位为监控帧类型编码,共有4种不同的编码,如下表所示。
监控帧的功能及N(R)字段含义
帧类型 Type字段 功能描述 |N(R)字段的含义
RR 00 接收就绪,请求发送下一帧 期望接收的下一个I帧的序号
REJ 01 请求重新发送序号为N(R)的所有帧 重发帧的开始序号
RNR 10 请求暂停发送数据帧 N(R)之前各帧已正确接收
SREJ 11 请求重发指定帧 重发帧的顺序号
接收方可以用接收就绪(Receive Ready,RR)监控帧应答发送方,希望发送方发送序号为N(R)的信息帧。RR帧就相当于专门应答帧(因为一般情况下,应答信息都是通过反向数据帧的捎带来完成的)。
接收方可以用拒绝(REject,REJ)监控帧来要求发送方重传编号为N(R)之后所有的信息帧(包括N(R)),同时暗示N(R)以前的信息帧被正确接收。
接收方返回接收未就绪(Receive Not Ready,RNR)监控帧,表示编号小于N(R)的信息帧已被收到,但目前正忙,尚未准备好接收编号为N(R)的信息帧,这可用来对链路进行流量控制。
接收方返回选择拒绝(Select REJect,SREJ)监控帧来要求发送方只发送编号为N(R)的信息帧,并暗示其他编号的信息帧已经全部正确接收到。
RR监控帧和RNR监控帧有两个主要功能:首先这两种监控帧用来表示接收方已经准备好或未准备好信息;其次确认编号小于N(R)的所有信息帧都正确接收到。
REJ监控帧和SREJ监控帧用于向发送方指出发生了差错,REJ监控帧用于GO-BACK-N策略,用于请求重发N(R)起始的所有帧;SPEJ帧用于选择重传协议,用于指定重发某个特定帧。
(3)无编号帧U(Unnumbered Frame)用控制字段第1、2位为“11”来标识,如图4所示。