HDLC协议核心机制与软考网规高频考点全解析
2026-10-18 20:31:55
0次

备考软考网规那阵子,数据链路层协议刷到最后,我发现一个规律:HDLC几乎是每年必出的角色。虽然这本考点笔记被归在“局域网”章节里,但HDLC真正的主场其实是广域网串行链路,这并不妨碍软考把它当成数据链路层协议的核心考点来反复考。帧标志、零比特填充、三种工作方式、I/S/U帧、滑动窗口……每一块都能出题,而且经常是一道题串好几个知识点。

这篇笔记,我按自己复习时的理解重新组织了一遍HDLC的知识结构。不按教材目录顺序,而是按“协议解决什么问题 → 帧怎么组成 → 帧怎么分类 → 可靠传输怎么实现 → 考试怎么挖坑”这条逻辑线来写。如果你正被一堆缩写搞得头大,跟着这条线走下来,HDLC这几分应该能稳拿。

1. 为什么软考网规绕不开HDLC:先摸清考情再决定怎么学

1.1 数据链路层协议这么多,为什么偏偏是HDLC

很多朋友有同样的问题:数据链路层要背的协议一大堆,以太网、PPP、帧中继、HDLC,为什么软考网规对HDLC情有独钟?

我的理解是,HDLC是一个“承上启下”的协议。向上看,它能解释数据链路层最核心的三大功能:封装成帧、透明传输、差错控制;向下看,它是串行线路上最常见的数据链路层封装方式之一。更重要的是,HDLC的控制字段设计非常经典——通过一个字节区分多种帧类型,还带序号和确认号,这种设计思路在后面的TCP协议里还能看到影子。软考出题人当然喜欢这种“考一题带一片”的知识点,性价比太高了。

另外还有个现实原因:HDLC的概念辨析度高。它和PPP经常被拿来对比,和某厂商的私有HDLC又不一样,这些“看似一样实则不同”的地方正是选择题的天然素材。你复习的时候不要只盯着单个知识点,要把HDLC放入整个数据链路层协议坐标系里看。

1.2 网规考试中HDLC的常见出题位置

从综合知识的历年真题来看,HDLC主要出现在数据通信基础、局域网与广域网这两个章节相关的题目中。题型以单选题为主,偶尔出现在案例分析题的某一个小问里,比如让你判断某条串行链路的封装方式、计算零比特填充后的数据。

我统计过自己刷题时遇到的HDLC题目,基本逃不出这几类

  • ▪▪ ▪ 概念辨析题:面向比特与面向字符的区别、HDLC与PPP的区别、三种工作方式的特征。
  • ▪▪ ▪ 帧格式题:给一个控制字段的十六进制值,判断帧类型,或者求N(S)、N(R)。
  • ▪▪ ▪ 比特填充计算题:给一段数据,要求写出零比特填充后的结果,或者反过来还原。
  • ▪▪ ▪ 可靠传输机制题:滑动窗口大小、序号位数、回退N帧与选择性重传的区别。

这几类题都有明确的套路,掌握了就是送分题。怕的是概念记混淆,比如把“零比特填充”和“字符填充”搞混,或者把S帧和U帧的最低两位记反,这种失分非常可惜。

1.3 复习HDLC的一条主线逻辑

我第一遍复习HDLC时也有点乱。后来我换了一个思路:不要按知识点的类型去背,而是按“协议要解决的问题”去串。

数据链路层要解决三件事:怎么把比特流切成帧(成帧)、怎么让数据里的特殊比特不影响传输(透明传输)、怎么发现并处理错误(差错控制)。HDLC对这三个问题的答案正好就是它的三大考点:帧标志、零比特填充、滑动窗口与帧类型。把这三个问题想明白了,HDLC就不再是零散的缩写,而是一套完整的解题方案。

所以下面几节我会按这条线展开:先讲协议的核心机制,再逐字段拆帧,然后讲帧类型,最后讲可靠传输。每个部分我都会结合软考的常见考法来说。

2. HDLC协议核心机制拆解:面向比特、透明传输与三种工作方式

2.1 面向比特与面向字符的本质区别

HDLC的全称是高级数据链路控制规程,它的一个关键词是“面向比特”。与之相对的是“面向字符”,代表协议是早期的BSC。两者的区别听起来很抽象,但用一句话就能说明白:面向字符的协议,用某个字符(如控制字符)来标识帧的开始和结束,数据里面如果出现相同的字符就要做字符填充;面向比特的协议,用固定的比特模式来标识帧边界,数据里面如果出现相同的比特模式就做比特填充。

你不需要去背BSC的细节,但要能理解“面向比特”带来的好处:处理效率高、不依赖字符集、适合传输二进制数据。软考常考的一个点是,HDLC在通信线路上传输的不是字符流,而是原始的比特流,因此它对数据内容没有任何限制,这就是所谓的“透明传输”。透明两个字你从字面上理解就行:数据链路层对上层的数据是透明的,不管上层传什么比特组合,链路层都能原样送达,不需要上层做任何妥协。

2.2 透明传输的核心:零比特填充到底怎么填

透明传输不是天然就能实现的。HDLC的帧标志是固定的01111110,如果用户数据里也恰好出现01111110,接收端就会误以为这是帧边界。解决方法是零比特填充,也叫“0比特插入/删除法”。

规则很简单:发送端扫描要发送的比特流,每当连续出现5个1,就在第5个1后面强制插入一个0。接收端收到数据后,扫描比特流,每当连续出现5个1,就看第6位是不是0,如果是0就把这个0删除,恢复原始数据。这样一来,数据中就不会出现多于5个连续1的情况,自然不可能出现01111110这个帧标志模式。

我举个例子。假设信息字段里有这样一串数据:0111111111110(开头一个0,中间连续10个1,末尾一个0)。发送端的处理过程是

  • ▪▪ ▪ 先扫到011110?不对,从左往右数,遇到第5个1就插0。
  • ▪▪ ▪ 原数据第1位是0,直接发;第2-6位是连续5个1,在第6位(第5个1)后面插入0;然后继续数,后面的第7-11位又是连续5个1,再插入0。

结果是:011111011111000。你数一下,这个序列里最长连续1只有5个,不会出现01111110。接收端收到后,每看到5个1后面跟0,就把这个0删掉,最终还原成原始数据。

软考真题里很喜欢出这类计算题,给你一段原始数据,让你选填充后的结果。做题时不用紧张,动手画一下,逐位扫描即可。我记得考试时最怕慌,一慌就容易少数几个1。你可以在草稿纸上按“每5个1画一个分隔符”的方式处理,又快又准。

2.3 三种工作方式与链路配置

HDLC有三种工作方式,这是概念题的重灾区。

第一种是正常响应方式(NRM)。它对应非平衡配置,链路一端是主站,另一端是从站。主站可以随时向从站发送命令,从站只有在收到主站的探询(P位为1)后,才能发送响应帧,而且发完最后一帧必须置F位为1,表示响应结束。它的使用场景是点对多点,比如一台主站连多台从站。

第二种是异步响应方式(ARM)。同样是非平衡配置,但比NRM宽松:从站即使没有被主站探询,也可以主动发送响应。这种方式的语义比NRM复杂,实际应用不多。

第三种是异步平衡方式(ABM)。它是平衡配置,链路两端都是复合站,两台设备地位平等,任何一方都可以主动发起通信,不必等对方探询。这是现代通信中使用最广泛的方式,点对点全双工链路基本都是ABM。

做题时的记忆点:看到“主从、探询、点对多点”就选NRM;看到“从站可主动发”选ARM;看到“双方平等、全双工”选ABM。另外要记清楚,非平衡配置对应NRM和ARM,平衡配置只对应ABM。这个对应关系一旦记住,选择题基本不会错。

3. HDLC帧格式逐字段拆解:从标志位到FCS

3.1 帧结构总览与最短帧长

HDLC的帧由六个部分组成:帧标志、地址字段、控制字段、信息字段、帧校验序列、帧标志。基本格式里,地址字段和控制字段通常各占1字节,FCS是2字节或4字节,信息字段长度可变。

你可能注意到,帧的首尾各有一个标志字段。这不是写错了,是必须的。首标志告诉接收端“帧开始了”,尾标志告诉接收端“帧结束了”。中间的数据经过零比特填充,不会和标志冲突。所以一个帧的最小长度是不算信息字段的:帧标志1字节加地址1字节加控制1字节加FCS 2字节,一共5字节(40比特)。有些题目会问最小帧长,你按这个结构算就行。如果用了扩展寻址和控制字段,那长度又要另算,但软考网规一般只考基本格式。

帧的有效性还有一个隐性的校验:接收端如果收到的帧长度小于最短帧长,直接丢弃,这被称作“流产帧”。这不是HDLC独有的,以太网也有最小帧长限制,思路是一样的。

3.2 帧标志、地址字段与控制字段的功能分工

先看帧标志01111110。接收端靠它来建立帧同步。刚开机时,接收端不断扫描比特流,一旦匹配到01111110,就认为找到了帧起始边界。之后每收到一个完整帧,读到下一个01111110就认为帧结束。这里有一个细节:在连续传输多个帧时,前一帧的尾标志可以直接当作下一帧的首标志,所以HDLC的帧与帧之间甚至可以没有间隔,效率很高。

地址字段在不同类型的帧里含义不太一样。命令帧里的地址字段填的是接收站的地址,响应帧里的地址字段填的是发送站的地址。这个规则第一眼看有点绕,但背后的逻辑是:不管是命令还是响应,地址字段都指向从站。因为主站地址往往是固定的,不需要重复填写,只写从站地址就够了。软考偶尔会出判断题考这个,你记住“地址字段指从站”就没问题。

控制字段是整个帧的核心。基本格式下它占1字节,通过最低位来区分帧类型;扩展格式下占2字节,序号从3位扩展到7位。控制字段里不仅包含帧类型,还包含发送序号N(S)、接收序号N(R)和探询/结束位P/F。可以说,HDLC的可靠传输机制全部浓缩在这一个字节里。

3.3 信息字段与FCS校验范围

信息字段是真正承载上层数据的地方,长度不固定。I帧的信息字段承载用户数据;S帧和U帧一般没有信息字段,或者只在U帧中承载一些管理信息。你要知道,不是所有HDLC帧都有信息字段,S帧和U帧的控制功能更多。

帧校验序列FCS采用循环冗余校验(CRC),计算范围是地址字段、控制字段和信息字段,不包含帧标志。软考一般不要求你手算CRC,但会考你“FCS校验哪些字段”这类概念题。还要记住,HDLC常用的生成多项式是CRC-CCITT(16位,x^16+x^12+x^5+1),这是基础常识。

这里有个容易混淆的点:FCS是16位还是32位?取决于用的是基本格式还是扩展格式。基本格式FCS是16位,扩展格式可以是32位。考试给帧格式图的时候,一般会标出来。没标的话,默认按16位处理。

4. 控制字段与帧类型识别:I帧、S帧、U帧怎么看怎么算

4.1 控制字段的最低两位决定一切

HDLC的三种帧类型,靠控制字段的最低两位区分。很多教材写的是:第1位为0是I帧,第1、2位为10是S帧,第1、2位为11是U帧。这里容易产生歧义,我用自己的方法记:把控制字段转成8位二进制,看最右边两位。

  • ▪▪ ▪ 最右一位是0,也就是最低位bit0=0,这是I帧。
  • ▪▪ ▪ 最右两位是“01”,注意这是按二进制的正常书写顺序从右往左读,也就是bit0=1、bit1=0,这是S帧。
  • ▪▪ ▪ 最右两位是“11”,bit0和bit1都是1,这是U帧。

做选择题时,最快的办法是用十六进制直接判断:控制字段十六进制值的最低位是0、2、4、6、8、A、C、E(偶数)时,最低位必为0,是I帧。看到值的低两位是0x01或0x05、0x09等(即 mod 4 = 1),是S帧;低两位是0x03、0x07、0x0B等(即 mod 4 = 3),是U帧。这个速判法我刷题时屡试不爽。

4.2 I帧、S帧、U帧各自的格式与用途

I帧(信息帧)用来传输用户数据,同时携带确认信息。它的控制字段里,有3位发送序号N(S)、3位接收序号N(R)和1位P/F。N(S)表示当前发送的帧编号,N(R)表示期望接收的下一个帧编号,也就是确认N(R)-1及之前的所有帧。这个机制和TCP的确认号本质相同,理解TCP的滑动窗口后再回来看HDLC,会发现一切都很熟悉。

S帧(监控帧)不携带用户数据,专门用于链路监控和流量控制。它有4种类型:RR(接收就绪)、RNR(接收未就绪)、REJ(拒绝)、SREJ(选择性拒绝)。RR和RNR负责流量控制,RR表示还能继续收,RNR表示暂时收不动了;REJ和SREJ负责差错控制,REJ要求从出错帧开始重传,SREJ只要求重传出错的那一帧。

U帧(无编号帧)的作用比较杂,主要用于链路的建立、释放和模式设置。常见的U帧命令包括:SABM(设置异步平衡模式)、UA(无编号确认)、DISC(释放连接)、DM(断开模式)、FRMR(帧拒绝)等。U帧没有序号,所以也不能携带确认信息,它的控制字段除了最低两位为11外,其余6位都是命令/响应的编码。

4.3 一个控制字段字节的完整判读示例

纸上谈兵没有用,我们拿真实字节练一练。假设控制字段是十六进制0xBA,二进制是10111010。从最右边看,最低位是0,所以这是I帧。

按I帧格式排列,从高到低依次是:N(R) 3位 | P/F 1位 | N(S) 3位 | bit0(固定0)。把0xBA的8位拆开

  • ▪▪ ▪ bit7-bit5是101,所以N(R)=5。
  • ▪▪ ▪ bit4是1,所以P/F=1。
  • ▪▪ ▪ bit3-bit1是101,所以N(S)=5。

结论:这是一个I帧,发送序号N(S)=5,接收序号N(R)=5,P/F位置1。

再看一个S帧的例子。控制字段0x15,二进制00010101,最低位是1,最低两位是01,所以是S帧。接着看bit3-bit2:00?不对,0x15的二进制00010101,bit3=0、bit2=1?我按位拆:bit7=0、bit6=0、bit5=0、bit4=1、bit3=0、bit2=1、bit1=0、bit0=1。所以S类型是01,对应RNR(接收未就绪)。N(R)=bit7-bit5=000=0,P/F=bit4=1。这个帧可以翻译为:RNR响应帧,确认0号及之前的帧(不是重点),接收方当前处于忙状态。

软考真题里,给控制字段判帧类型的题基本都是这个套路。你在考场上只要按位拆,不要凭眼力猜。

5. 滑动窗口与差错控制:HDLC的可靠传输机制

5.1 3位序号与7帧窗口

HDLC的可靠传输依赖滑动窗口机制。基本格式下,N(S)和N(R)各占3位,所以帧序号范围是0到7,能表示8个编号。但注意,HDLC的发送窗口最大是7,不是8。原因在于,如果用满8个序号,接收端就没法区分“新帧”和“重发帧”了,必须保留一个窗口大小=1的冗余,确保发送窗口加接收窗口不超过2的3次方。

这个“最大窗口是7而不是8”是考试的高频细节。你可能会觉得奇怪,但实际上就是约定俗成的安全边界。扩展格式下N(S)和N(R)各占7位,窗口最大值就是127。你只需要记住两个数:基本格式窗口7,扩展格式窗口127。

发送端可以连续发送窗口内所有帧,不必等一个一个确认;接收端也允许连续确认多帧。这就是“连续ARQ”带来的效率提升。你对比一下最简单的停等协议(发一帧停一下),HDLC在卫星链路这类高时延链路上的优势非常明显。

5.2 回退N帧与选择性重传到底有什么区别

差错控制也是软考喜欢考的点。HDLC支持两种ARQ策略:回退N帧(Go-back-N)和选择性重传(Selective Repeat)。

回退N帧的逻辑是:接收端发现某一帧出错,就丢弃该帧以及之后所有帧,发送端收到REJ帧后,从出错帧开始把所有帧重发一遍。优点是实现简单,缺点是出错后要重传大量正确的帧,信道浪费严重。这适合误码率低的链路,因为出错概率小,偶尔回退一次成本还可以接受。

选择性重传的逻辑是:接收端发现某一帧出错,先缓存后面收到的帧,只要求发送端重传出错的那一帧。HDLC里用SREJ帧来通知发送端。优点是效率高,缺点是接收端要有缓存能力,实现复杂。它适合高时延链路,比如卫星链路——如果来回要几百毫秒,回退N帧会让链路瞬间瘫痪,选择性重传就从容得多。

软考常考的辨析点是:REJ对应回退N帧,SREJ对应选择性重传;REJ重传从出错帧开始的后续所有帧,SREJ只重传指定序号的那一帧。这个区别一定要拎清。

5.3 P/F位在可靠传输里的真实作用

P/F位在这三种帧里都有,但含义视发送方身份而定。主站发送命令帧时,P位(探询)置1,表示“从站我需要你响应”;从站发送响应帧时,F位(结束)置1,表示“我的响应序列到此结束”。在NRM模式下,P=1的探询帧发出后,被探询的从站必须开始传输,最后以一个F=1的帧收尾。这保证了链路不会出现“谁也不说话”的僵局。

在ABM模式下,双方地位平等,P和F仍然配对使用:一方发P=1的帧询问,另一方用F=1的帧应答。需要注意的是,P和F在比特流里是同一个位置,只是站在不同角色上叫法不同。做题时看到“主站发送、要求响应”就选P;看到“从站响应、最后一帧”就选F。

我自己的记忆技巧是:P是问询(Poll),F是结束(Final)。P在命令帧里,F在响应帧里,两者成对出现,一问一答,一开一合。

6. 软考网规HDLC高频考点速查与避坑指南

6.1 高频考点与典型考法

到了复习后期,你需要一张速查表来帮自己确认知识是否到位。我整理了自己刷题时反复遇到的知识点

这张表我建议你考前最后一天再扫一遍,对照着回忆每个考点下面的细节,能想起来就过,想不起来的立刻翻书。这种主动回忆比单纯看书有效得多。

6.2 易错点盘点:我踩过的坑

HDLC里有些细节,刷题时一开始真的非常容易掉坑。我把它们的坑点总结出来,你复习时直接绕过。

第一个坑是把“零比特填充”和PPP的“字符填充”搞混。PPP在异步链路上用0x7E标志并进行字符填充,在同步链路上也可以使用零比特填充;HDLC是标准的面向比特协议,永远用零比特填充。做题时看到字符填充、控制转义字符,要警惕是不是在说PPP。

第二个坑是控制字段帧类型的判定顺序。拿到一个十六进制控制字段,有些同学直接看整个字节的十六进制奇偶性,比如0x01是奇数就说是U帧,这是错的。正确做法是先看最低位确定是不是I帧,再看最低两位是不是01或11。0x01是S帧(RR),最低两位确实是01,不是U帧;0x03才是U帧。我第一次就记反了,后来用“S即Start、U即Ultimate”的方式才理顺:S帧最低两位01,U帧最低两位11。

第三个坑是N(R)的含义。N(R)表示期望下次接收的帧序号,不是最后一个正确帧序号。比如N(R)=3,表示0到2号帧都已正确接收,期望收到3号帧。选择题里会把这两个说法混着出,一个不留神就选错。你可以把它当成“下一个期望序号”来记,并且和TCP的确认号“期望收到的下一个字节序号”联系起来,两个协议就都记住了。

第四个坑是HDLC协议栈的定位。HDLC只负责数据链路层的成帧、透明传输和差错控制,它不负责网络层的路由和选址。有些题目问“HDLC能不能协商网络层地址”,答案是“不能”。这也是HDLC和PPP的重要区别——PPP有NCP层可以协商网络层协议,HDLC没有这个能力。

6.3 考前记忆口诀与收尾建议

最后分享几个记忆口诀,都是我复习时自己编的,方便、好记,每个人也可以改成自己熟悉的版本。

  • ▪▪ ▪ 帧标志:“零一一一一一一零”——01111110,7个1夹两个0?不对,是0开头、六个1、0结尾。你可以默念“零、六个一、零”,写出来就是01111110。
  • ▪▪ ▪ 零比特填充:“逢五连一就插零,接收逢五删零还原”。
  • ▪▪ ▪ 帧类型:“0是信息,01监控,11无编号”。
  • ▪▪ ▪ 工作方式:“正主从、异主动、平平等”。正常响应方式最严格,主站探询才响应;异步响应方式较宽松,从站可以主动发;异步平衡方式最平等,双方都能主动发。

HDLC这块内容,只要你按“成帧→透明→差错”这条主线梳理,再配合真题把帧类型判断和比特填充的计算练熟,拿分并不难。我个人刷题的习惯是,每次错在HDLC上都会单独记一笔,考前再看一眼自己的错误集,比刷一套新题更管用。

这个知识点后续还能继续扩展。比如你用HDLC的思路去理解PPP的LCP、NCP协商过程,会发现PPP像“会说话的HDLC”,两者对比着学,数据链路层这一章就打通了。串行链路封装、路由器串口配置等实操场景里,HDLC也经常和PPP并列出现,考察时如果是实际配置题,基本原理相同,重点看链路类型是同步还是异步。你复习时留个心眼,把HDLC和PPP的分工、适用场景并行记忆,价值会翻倍。

相关内容

软考高级系规论文经验教训,...
第4章 信息系统规划 1、以组织战略为起点做规划,坚持战略性、整体...
2026-10-18 20:32:02
软考高级:系统规划与管理师...
本文章围绕软考高级系统规划与管理师(系规)2025年下半年起使用的...
2026-10-18 20:32:02
软考系统规划与管理师综合知...
1. 软考系统规划与管理师考试概述 系统规划与管理师作为计算机技术...
2026-10-18 20:32:01
系统架构设计师软考备考全攻...
每年软考报名季,“系统架构设计师”的咨询热度总能排进前三。我被人问...
2026-10-18 20:32:01
软考系统规划与管理师真题解...
1. 软考系统规划与管理师考试概述 系统规划与管理师作为计算机技术...
2026-10-18 20:32:00
软考系规:第11至17章知...
第 11 章 信息系统治理 章节定位 属于高层顶层管理,是 IT ...
2026-10-18 20:32:00

热门资讯

软考系规,第12章信息系统服务... (1)安全性:可用性、完整性、保密性 (2)可靠性:完备性、连续性、稳定性、有效性、可追溯性 (4)...
软考网规案例真题解析:2021... 阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。 案例一 安全测评工程师小张对某单...
分享|通过网络规划设计师(高级... 软考高级证书有很多福利,比如直接落户、入专家库、副高职称。本人结合自己的大学专业和自身情况,从高级里...
备考软考系规案例和论文必知必会... 备考群里最常出现的一句话是:这题我明明背过,一合上书就想不起来。 系统规划与管理师是软考高级里最容易...
软考系规论文写作格式讲解【附范... 写软考系规论文时,最先要定的不是写什么内容,而是 “ 我是谁 ” 。本次讲解就把论文的视角选择、整体...
软考系规案例分析:RTO、RP... 做系规案例大题的时候,如果题干遇到机房突发灾难、业务中断且伴随数据丢失的场景,我们应该怎么切入分析?...
软考高级系规,第9章信息安全规... 附件1:理解背诵知识和结构框架合集,详细版更新完毕,部分重要章节如下 1. 第4章信息系统规划,理解...
软考网规备考:软件开发与项目管... 1. 软考网规备考指南:软件开发与项目管理核心考点精析 作为国内IT领域最具含金量的职业资格认证之一...
软考网规备考:计算机网络基础考... 我记得刚开始准备软考网规的时候,最头疼的不是路由协议配置,也不是大型网络方案设计,而是“计算机网络基...
HDLC协议核心机制与软考网规... 备考软考网规那阵子,数据链路层协议刷到最后,我发现一个规律:HDLC几乎是每年必出的角色。虽然这本考...
软考梦工厂

软考梦工厂

扫码关注我们