☰
软考网工数据通信基础下篇:交换方式、差错控制与海明码计算全解析
2026/9/24 18:36:55 网站建设 项目流程

备考软考网工,最容易被低估的一章就是数据通信基础。很多人觉得“不就是通信原理吗,看看就会了”,结果真题一刷,海明码算错、交换方式记混、滑动窗口理解反,上午题直接丢个4、5分。尤其是你手上的《第二章 数据通信基础(下)》,它不再是概念性的铺垫,而是真正进入通信系统的核心原理,涉及交换方式、差错控制、同步方式这些硬骨头,也是软考网工上午题里反复出题的高频地带。这篇文章我就以考纲为骨架,结合我自己的复习和实战做题经验,把第二章节里最核心的考点拆成一节一节的大白话,帮你理清逻辑、记住结论、算得对题。

先说一个总的大判断:这一章适合谁、解决什么问题。如果你是刚把“数据通信基础(上)”中的信道、带宽、香农公式看完的考生,这一篇就是帮你衔接上篇,把“信号怎么在网络上安全、高效地送到对方”这件事彻底搞懂。如果你已经刷过题但正确率忽高忽低,这篇更适合当“防呆笔记”用,对照你错题里的已知条件快速定位。这一章的内容,上午题大概占4到8分,集中在交换方式对比、CRC和海明码计算、滑动窗口的应用上。把这几个点吃透,这章的分数基本都是送分题。

1. 章节定位与核心难点拆解

1.1 这一章在考纲里的真实分量

很多人对软考网工的复习有个误区,认为网络工程师考的是路由交换、IP协议、网络配置这些偏“实用”的内容,通信基础这种理论性章节可以速刷。但你去翻近十年的上午真题,数据通信基础每年稳定出3到5道题,其中“下篇”涉及的交换方式和差错控制,更是每年必考。

为什么考纲要放这些内容?因为网络工程师不光是配设备的,你得理解数据从一端到另一端经过什么处理,才能在排障时判断瓶颈在哪、为什么太慢、为什么出错。比如分组交换中“存储转发”机制决定了端到端时延的计算方式,经典题目是“数据串经过n个节点,总时延是多少”,如果你不理解分组的处理过程,套公式都会套错。再比如CRC校验,虽然实际抓包工具里不会让你手算,但Wireshark里一帧数据为什么被标记为“bad FCS”,背后就是CRC的原理,理解了才能看明白错误帧的来源。

所以,这一章不是“背背就行”的章节,而是要你真正理解机制、会算关键参数。我复习的时候把“下篇”拆成三大块:交换方式、差错控制、同步与传输。三大块各有各的考法,但底层逻辑是彼此关联的——交换方式决定了数据怎么走,差错控制保证了走的过程中不出错,同步方式则规定了“什么时候算一个数据位”。

1.2 三个核心模块的逻辑线索

我建议你不要零散地背知识点,而是顺着一条线走:数据要发送,第一步是选择路径和方式,这就是交换;第二步是保证可靠性,如果出错要能发现或纠正,这就是差错控制;第三步是接收方要能正确识别出哪些比特属于同一个数据单元,这就是同步。

这三个步骤环环相扣。交换方式解决“怎么从A到B”,差错控制解决“怎么保证从A到B不丢不错”,同步解决“从哪开始读、读到哪结束”。理解了这条主线,你再看教材目录就会特别清楚——上半部分讲信道的物理特性,是“路”的问题;下半部分讲交换、差错和同步,是“车怎么开、怎么保证货不坏、怎么让收货人看懂单据”的问题。

我在复习时做了一个笨办法:把每个模块都画成一个“场景图”。比如交换方式,就想象成你要寄快递——电路交换是打电话,先拨通再说话,线路全程占用;报文交换是寄一个大包裹,每次中转整个包裹一起搬;分组交换是把大包裹拆成小纸箱,每个小纸箱单独走,到了目的地再拼装。这样记,比死记硬背定义牢靠得多。

1.3 为什么这章的题容易错

我刷题的时候发现,这章的出错点不是知识量大,而是“太容易混淆”。比如电路交换、报文交换、分组交换的优点和缺点,单看都能理解,一放进选择题四个选项里,就分不清了。再比如检错码和纠错码的区别,奇偶校验、CRC、海明码各自能发现几位错、能纠正几位错,这种细节特别容易踩坑。

再加上计算题的“拐弯”。CRC求余数,很多人会了步骤却错在模2除法没对齐;海明码校验位的位置和取值,很多人记住了公式却在具体排列时把数据位和校验位搞反。这些问题不是你不会,而是缺少一个系统的“防错清单”。下面我按模块逐个展开,把每个容易踩坑的点都说透。

2. 三大交换方式,从电路交换到分组交换

2.1 电路交换:老式电话的思维模型

电路交换是最容易理解的一种交换方式,因为它的模型就是打电话。整个过程分三步:建立连接、通信、释放连接。你在手机上拨号,对方接通之前,网络已经为你预留了一条从主叫到被叫的物理通道,这条通道在整个通话期间被这对用户独占,即使你不说话,线路也不给别人用。

从这里就能推出它的三个特点:第一,时延小且固定,因为通道已经建立,数据传输不需要在每个节点停下判断往哪走;第二,数据有序到达,因为是同一条路,先发的先到;第三,线路利用率低,因为一路通话独占了整条链路,静默期也无法复用。

电路交换在软考里的考法,经常是拿它和分组交换对比。比如题目说“某网络要求数据有序到达且时延小,应选用哪种交换方式”,答案就是电路交换。反过来,如果题目强调“线路利用率高、数据可能乱序”,那就是分组交换了。这个对比要记扎实,别等上了考场才现推。

2.2 报文交换:整包存储转发的思想

报文交换是存储转发技术的雏形。报文就是你完整的一份数据,比如一封邮件。发送方把整个报文发给中间的交换节点,节点把它整个收下来,存储到缓冲区,再根据目的地址选择下一个节点转发出去。整个过程是“先存储、后转发”。

好处很明显:不需要像电路交换那样预先建立连接,而且线路不是独占的——报文先存着,等线路空闲了再走,所以线路利用率高了不少。但缺点同样突出:报文可能很长,在每个节点上都要完整存一遍,导致节点需要很大的缓冲区;同时存储转发带来了额外时延,如果报文沿着多个节点走,每个节点都要完整接收再转发,端到端的时延会很大,甚至可能比电路交换慢很多。

报文交换在现在的实际网络中已经很少作为独立技术存在,但它的思想是分组交换的基石。考试中会把它作为一种“过渡技术”出现,考题通常让你比较报文交换和分组交换的差异——主要区别就是报文交换以完整报文为单位,分组交换把报文切分成更小的分组。

2.3 分组交换:现代网络的核心机制

分组交换和报文交换一样基于存储转发,但它把大的报文切割成一个个有固定上限的小分组,每个分组都附带源地址、目的地址和序号。各分组在网络中可以独自选择路径,到达目的端后再按序号重组。这是现代计算机网络的基本工作方式,也是软考网工这一章的重心。

分组交换内部又分为两种:数据报方式和虚电路方式。数据报方式是“无连接”的,每个分组独立选路,所以同一个报文的不同分组可能走不同的路径,到达顺序可能乱掉,需要接收方重组。它的优点是不需要建立连接,网络出现故障时分组可以绕行,生存能力强。虚电路方式则是在传输前先建立一条逻辑连接,所有分组沿着同一逻辑路径走,因此分组能按序到达,且网络可以预留资源,服务质量更好。

这两者的区别是上午题选择题的高频考点。有一个特别经典的出法:题目列出四个特征,让你判断哪个属于虚电路、哪个属于数据报。我每次做这种题都提醒自己,判断的核心是“是否建立连接、是否按序到达、是否同一条路径”,三个条件卡下去,答案就很明显了。

2.4 三种交换方式的对比表与做题口诀

我用一张表把这三种方式的要点汇总一下,这个表也是我考前反复默写的内容:

交换方式是否建立连接数据单元线路利用率时延特点典型应用
电路交换需要,先建后传连续比特流低,独占线路时延小且固定传统电话网
报文交换不需要完整报文较高时延大,每个节点存储转发已被分组交换取代
分组交换(数据报)不需要分组高,动态共享时延波动,可能乱序IP网络
分组交换(虚电路)需要,逻辑连接分组高时延较小,按序到达帧中继、ATM

我自己编了个做题口诀:“电路独占时延小,报文整包存转发,分组切块利用率高,虚电路按序数据报乱”。这个口诀不押韵,但记起来特别管用,考场上对着选择题的选项往里套就行。特别是题目中出现“按序到达”“时延固定”“实时性强”这些关键词,优先考虑电路交换;出现“线路利用率高”“动态分配带宽”“可能乱序”,优先考虑分组交换的数据报方式。

3. 差错控制:网络传输的体检系统

3.1 差错从哪来,检错和纠错是什么

数据在信道上传输时,会受到噪声、干扰等因素的影响,导致某些比特从0变成1或者从1变成0,这就是差错的来源。差错控制的核心思路是在数据中加入冗余信息,让接收方能够根据冗余信息判断数据有没有被破坏。如果只能判断“有错”而不能定位,是检错机制;如果不仅能判断“有错”还能定位错在哪一位并自动改正,是纠错机制。

软考网工里考的检错机制主要有三种:奇偶校验码、CRC循环冗余校验、海明码。其中奇偶校验码最简单,CRC是实际应用最广泛的,海明码是既能检错又能纠错的经典代表。

需要先建立一个大概念:检错比纠错容易得多。就像体检报告告诉你“身体有点问题”容易,但让你精确到“哪个器官的哪个细胞出了问题”就很难。检错码只需要加少量冗余,而纠错码的冗余开销大很多。这也是为什么实际网络传输中,重传机制(ARQ)比前向纠错更常用——因为检测到错误后让发送方重新传一遍,往往比直接纠正更省成本。

3.2 奇偶校验码:简单但能力有限

奇偶校验分奇校验和偶校验。偶校验的做法是:在一组数据后面附加一个校验位,使得整个码字中“1”的个数保持为偶数。比如数据是1010,里面有2个1,已经偶数,所以校验位为0,发送10100。接收方收到后统计1的个数,如果是偶数就认为没出错,如果是奇数就认为出错了。

从考试角度看,奇偶校验的考点有三个。第一,它能检测出奇数个比特错误,检测不出偶数个比特错误。因为偶数个位翻转后,1的奇偶性不变。第二,它没有纠错能力,只能重传。第三,实际常见考题会给你一串数据,让你写出校验位的值,这种题就是数“1”的个数,不存在难点。

别看奇偶校验简单,它在实际中仍然在用,最典型的就是串口通信中的奇偶校验位。但它在网络传输中能力太弱了,所以更强大的是CRC。

3.3 CRC循环冗余校验:软考计算题大户

CRC的原理可以这么理解:发送方把原始数据看作一个二进制数,用一个双方约定好的“生成多项式”去做模2除法,得到余数就是校验码,把校验码附加在数据后面一起发送。接收方用同样的多项式对整个接收码字做模2除法,如果余数为0,就认为数据没出错;如果余数不为0,就说明传输中出现了差错。

这里的关键操作是“模2除法”。它和普通除法的区别在于:每一步相减时不做借位,实质上就是按位异或。我给你一个具体的例子。假设原始数据是1101,生成多项式是1011,它对应多项式x³+x+1,最高次数是3,所以要在数据后面补3个0,得到1101000。

然后用1101000对1011做模2除法:

  • 第一步:取被除数前四位1101,与1011异或,得到0110,去掉前导0就是110。补下一位0,得到1100。
  • 第二步:1100与1011异或,得到0111,去掉前导0就是111。补下一位0,得到1110。
  • 第三步:1110与1011异或,得到0101,去掉前导0就是101。补下一位0,得到1010。
  • 第四步:1010与1011异或,得到0001。此时已经处理完所有位,余数取三位(因为生成多项式最高次幂是3),为001。

所以CRC校验码是001,发送的完整码字是1101001。接收方收到后,用1101001除以1011,如果余数为0就判定无错。

这种题在考试中属于“会者不难”的类型。我踩过的坑是容易把余数的位数字数搞错,生成多项式最高次幂是几,余数就是几位。还有一个坑是,做题时最后一步余数如果前面有0,千万别把0丢了,比如余数算出来是01,你非要写成1,就会因为位数不对而出错。

3.4 海明码:能纠错的重量级选手

海明码是这一章的“压轴计算题”,软考上午题中常考“给定数据位数量,求至少需要几位校验位”,或者“给出海明码,判断哪一位出错”。这两个考点,每个都要会算。

先解决校验位个数的问题。假设原始数据有m位,校验位有r位,那么总码字长度为m+r位。r位校验位最多能表示2的r次方种状态,其中一种状态表示“没有错误”,剩下2的r次方减1种状态用来指示出错位置。因此必须满足:2^r >= m+r+1。

举个例子,如果数据位m=5,则需要的校验位r要满足2^r >= 5+r+1,也就是2^r >= r+6。r=3时,8 >= 9不成立;r=4时,16 >= 10成立,所以至少需要4位校验位。这个不等式要背下来并会代数字,这是高频考点,基本每年都有。

解决了校验位数量,下一步是安排校验位的位置。规则是:校验位放在2的幂次位置,也就是第1位、第2位、第4位、第8位……数据位按顺序填入剩下的位置。比如数据位有4位:d1、d2、d3、d4,校验位有3位:p1、p2、p4,则码字排列为:

位号7654321
类型d4d3d2p4d1p2p1

每个校验位负责的“管辖范围”由位号的二进制表示决定。比如p1放在第1位,它管辖所有位号二进制最低位为1的位,即1、3、5、7位;p2放在第2位,管辖所有位号二进制第二位为1的位,即2、3、6、7位;p4放在第4位,管辖所有位号二进制第三位为1的位,即4、5、6、7位。计算校验位取值时,把管辖范围内所有数据位做异或运算,使整个组的1的个数满足偶校验。

以数据1011为例,d1=1,d2=0,d3=1,d4=1。则:

  • p1 = d1 xor d2 xor d4 = 1 xor 0 xor 1 = 0
  • p2 = d1 xor d3 xor d4 = 1 xor 1 xor 1 = 1
  • p4 = d2 xor d3 xor d4 = 0 xor 1 xor 1 = 0

所以完整的海明码为:位7到位1依次是1、1、0、0、1、1、0?等等,按表重新排列:位7放d4=1,位6放d3=1,位5放d2=0,位4放p4=0,位3放d1=1,位2放p2=1,位1放p1=0,得到1100110。这就是发送的海明码。

如果接收方收到的码字有错误,它会对三个校验组分别做校验,每组结果为1表示该组出错,结果为0表示该组正常。把三个校验结果按“p4 p2 p1”的顺序拼成一个二进制数,这个数就是出错位的位置。比如校验结果是p4=1、p2=0、p1=1,拼成101,也就是第5位出错。这个机制特别巧妙,也是海明码能够纠错的原因。软考常考这一计算流程,熟练之后做一道题只要两分钟。

4. 海明码计算全解:很多考生卡在这一步

4.1 校验位数量的确定,别只背公式要会推

前面已经提到了核心不等式2^r >= m+r+1,但很多考生只背公式不会推,遇到题目稍微变一下就会懵。其实推导思路很简单:r位校验位能表示的二进制状态有2^r种,全部码字包括数据位和校验位一共m+r位,每一位都有可能出错,所以需要有m+r种状态来指向具体某一位,另外还要一种状态表示“全部正确”。因此2^r的取值范围必须覆盖m+r+1种情况。

考试中常见的是反着考:告诉你码字总长度,问你至少需要几位校验位。比如码字总长度为12位,问你校验位至少几位。这种题需要自己设m=12-r,然后代入不等式尝试。r=4时,2^4=16,m+r+1=12+1=13,16>=13成立,所以校验位至少4位。如果是选择题,最快的做法是直接把选项代进去试,一个选项一个选项算,基本十秒搞定。

4.2 校验位的位置排放规则与常见错误

放校验位时,最常见的一个错误是把校验位放在最高位或者紧挨着数据位放,这是不对的。海明码规定校验位必须放在位号为2的幂次的位置上,也就是第1、2、4、8、16位……这个位置排列必须烂熟于心。

我做题时的习惯是,先在草稿纸上画好一个位置表格,把1到12的位号写下来,圈出2的幂次位,写上p1、p2、p4、p8,然后把数据位按从高到低的顺序填进剩余位置。这个过程一定要慢,宁可多花三十秒检查位置,也不要因为填错位置导致后面全错。

另外一个容易忽视的细节是,不同教材对数据位的编号方向不同。有些教材数据位从小到大排,有些从大到小排,如果你用“按顺序填入”的方式,一定要看清楚题目给的数据是“对应高位的最大序号”还是“对应低位的最小序号”。软考通常以“从高位到低位填入剩余位置”为准,但最好还是看题目已知条件,如果题目明确写了“d1在最高位”或者“d1在最低位”,就按题目来。

4.3 校验位的取值计算详解

校验位取值采用的是偶校验分组异或。每一个校验位的值是它管辖范围内所有数据位的异或结果。计算时不要怕麻烦,一组一组来。p1管1、3、5、7位里的数据位,p2管2、3、6、7位里的数据位,p4管4、5、6、7位里的数据位。位数越多,p8管8、9、10、11、12位等等,规律都是“从自己的位号开始,连续取r位,然后跳r位”。比如p1:取1位跳1位,即1、3、5、7、9、11;p2:取2位跳2位,即2、3、6、7、10、11;p4:取4位跳4位,即4、5、6、7、12;p8:取8位跳8位,即8到15位。

实操时,我建议先写出每个校验位的管辖位号,再把数据位代进去做异或。0和0异或为0,0和1异或为1,1和1异或为0,偶数个1结果就是0,奇数个1结果就是1。这样计算很快,也不容易错。

4.4 一个完整例子:从数字计算到出错定位

我们再来完整走一遍,方便你对照练习。假设数据是1010(4位),计算海明码。

先确定校验位个数:m=4,r=3时,8 >= 4+3+1=8正好成立,所以r=3。码字总长度7位。校验位放第1、2、4位,数据位放第3、5、6、7位。假设数据从高位开始对应d4=1(位7)、d3=0(位6)、d2=1(位5)、d1=0(位3)。

计算校验位:

  • p1 = d1 xor d2 xor d4 = 0 xor 1 xor 1 = 0
  • p2 = d1 xor d3 xor d4 = 0 xor 0 xor 1 = 1
  • p4 = d2 xor d3 xor d4 = 1 xor 0 xor 1 = 0

所以码字从位1到位7依次为:p1=0,p2=1,d1=0,p4=0,d2=1,d3=0,d4=1,即0100101。

假设在传输过程中,第5位(也就是d2)从1变成了0,接收方收到0100001。接收方重新计算三个校验组:

  • 第1组:位1、3、5、7,即0、0、0、1,异或结果1,说明这一组有错。
  • 第2组:位2、3、6、7,即1、0、0、1,异或结果0,说明这一组无错。
  • 第3组:位4、5、6、7,即0、0、0、1,异或结果1,说明这一组有错。

按p4、p2、p1组合得到101,也就是十进制5,可以判定第5位出错,将其取反即可恢复原始数据。这就是海明码既能检测错误又能纠正错误的完整逻辑。软考如果考这个流程,务必每一步都写清楚,尤其最后“异或结果是几就说明第几位出错”这一步,是最容易丢分的地方。

5. 可靠传输:ARQ与滑动窗口

5.1 停等ARQ:简单可靠但效率低

差错控制解决了“发现错误”的问题,但发现错误之后怎么办?实际网络用的是自动重传请求,也就是ARQ。它的核心思想是:接收方发现错误后,不给发送方确认消息,或者直接给一个否定确认,发送方超时后重新发送该数据帧。

最基础的是停等ARQ,也叫停等协议。发送方每发送一个帧就停下来等待接收方的确认,收到确认后才发下一个帧;如果超时没收到确认,就重发当前帧。它的优点是实现极其简单,可靠性高;缺点也非常明显,发送方大部分时间在等待,链路利用率很低。

软考里关于停等ARQ的考点有两个:一是工作流程,二是发送窗口和接收窗口的大小。停等ARQ中,发送窗口和接收窗口都为1。为什么发送窗口是1?因为发送方最多只能有一个未确认的帧。为什么接收窗口也是1?因为接收方每次只能按序接收一个帧,乱序的帧直接丢弃。

5.2 连续ARQ:后退N帧与选择重传

停等ARQ效率太低了,所以出现了连续ARQ,让发送方不必等待每一个确认,而是一口气发送多个帧。连续ARQ又分两种:后退N帧和选择重传。

后退N帧的特点是:接收方只能按序接收,如果某个帧出错,接收方丢弃该帧及之后所有帧,发送方要重传出错帧及其之后的所有帧。比如发送方发了1、2、3、4、5五个帧,第3帧出错,那么接收方丢弃3、4、5,发送方收到否定确认后从第3帧开始全部重新发一遍。它的优点是接收方缓冲区只需保存一个帧,缺点是有大量重传浪费。

选择重传的特点是:接收方可以接收乱序帧,但只发送否定确认来要求重传出错的帧。比如还是1到5帧,第3帧出错,接收方把第4、5帧先缓存起来,只要求重传第3帧。它的优点是大大减少重传量,缺点是需要接收方有足够大的缓冲区。

这两者的区别,考试常从“接收窗口”和“发送窗口最大值”两个角度出题。后退N帧的发送窗口最大不能超过2的n次方减1,选择重传的发送窗口最大不能超过2的(n-1)次方。这里的n是帧序号的位数。比如序号字段占3位,后退N帧最多能发7个帧,选择重传最多能发4个帧。为什么有这种区别?因为序号位数有限,窗口太大会导致新旧帧序号难以区分。这个原理理解即可,考试更多是直接套公式。

5.3 滑动窗口与真题变形

滑动窗口是连续ARQ的具体实现机制。发送方维护一个发送窗口,窗口内的帧可以连续发送,收到确认后窗口向前滑动。接收方维护一个接收窗口,只有落在接收窗口内的帧才会被接收缓存。

软考经常出这样的变形题:已知序号位数为n,问采用选择重传时,某时刻已发送但未确认的帧最多有几个。其实答案就是发送窗口的最大值2^(n-1)。如果题目问后退N帧,答案就是2^n-1。这里要特别小心,别把n和实际帧编号搞混。比如序号用3位二进制表示,序号范围是0到7,能表示8个不同序号,但后退N帧的发送窗口最大是7而非8,这就是我刚说的那个“减一”的原因。

另一个常见考法是给出窗口大小,让你判断最小需要的序号位数。我有个解题顺序供你参考:第一步判断协议类型(停等、后退N帧还是选择重传),第二步写出发送窗口的最大公式,第三步代入窗口大小求出n的最小值。分三步走,基本不会漏条件。

6. 同步方式与易混淆考点辨析

6.1 异步传输与同步传输的区别

同步问题的本质是:接收方怎么知道从哪里开始读数据,哪里结束。异步传输面向字符,它以字符为单位,每个字符前面加一个起始位,后面加一个停止位。起始位从高电平变为低电平,接收方检测到这个跳变就开始采样,然后读取8个数据位。停止位回到高电平,表示该字符传输结束。它的优点是不需要共享时钟,缺点是每个字符都要额外加起始位和停止位,开销大、效率低。

同步传输则面向比特或帧,它不需要每个字符都加起始位和停止位,而是通过特定的同步码(比如前导码)让接收方建立比特级同步,然后连续传输一长串比特,最后用帧尾标识结束。它的开销小、效率高,但对时钟同步要求更高。

我复习时的一个记忆锚点:异步传输对应的英文是Asynchronous,用单片机串口UART来理解最直观;同步传输对应的是Synchronous,用以太网帧前导码来理解。软考如果考概念题,关键词“起始位停止位”指异步,“帧同步”“比特同步”指同步。

6.2 单工、半双工和全双工

数据传输方向这个考点虽然基础,但经常混在“数据通信基础下”这一章的综合题里。单工是指数据只能往一个方向传输,比如广播信号,接收方不能回传数据。半双工是指可以双向传输,但同一时间只能一个方向传,比如对讲机,要么说我听,要么我听你说。全双工是指可以同时双向传输,比如手机通话,两边都能同时说话和听。

考试中考概念很少直接问定义,更多是结合交换方式或链路场景判断。比如“使用一对光纤实现双向通信,应采用哪种方式”,答案是全双工,因为两根光纤一根发一根收,可以同时进行。如果只有一根物理线路但分时复用,那就是半双工。

6.3 易混考点速查表

我把这一章里容易混淆的几组概念整理成一张表,考前快速过一遍非常有效:

易混点判断锚点
电路交换 vs 分组交换是否独占线路,是否按序到达
数据报 vs 虚电路是否建立连接,是否同路径,是否按序
检错 vs 纠错能否定位错误位,CRC只能检错,海明码能纠错
奇偶校验 vs CRC奇偶校验只能检奇数位错,CRC用模2除法求余
后退N帧 vs 选择重传出错后重传多少帧,接收窗口是否大于1
异步 vs 同步是否有起始位停止位,是一个字符还是连续帧
单工 vs 半双工 vs 全双工单向、分时双向、同时双向

这张表我贴在了复习笔记本的首页,每次做题前扫一遍,能有效避免低级错误。尤其是“检错vs纠错”这一行,考试特别喜欢把“CRC能发现哪类错误”和“海明码能纠正几位错误”放在一起考,你要是把两者能力记混,基本上就是一题错、后面连锁错。

7. 常见问题与备考踩坑实录

7.1 海明码算错的典型原因

我备考期间刷了大量海明码题目,发现错误集中在三个地方。第一个是校验位个数用错不等式,常见错误是把2^r >= m+r+1写成了2^r >= m+r,导致r少算一位。第二个是校验位位置放错,把校验位放在1、2、3、4而不是1、2、4、8,一步错步步错。第三个是分组管辖范围取错,比如p2管辖的是2、3、6、7位,有些人会误写成2、3、4、5位。

针对这三个错误,我的解决办法很简单:每道题先在草稿纸上把位置表完整画出来,再标出每个校验位的管辖组,再进行异或计算。虽然多花几十秒,但正确率能提到95%以上。

7.2 CRC余数计算时的前导零问题

CRC计算中,模2除法每一步的结果如果前面出现0,很多人会直接把0丢掉,这在中间过程没问题,但在最后一步会出问题。比如最终余数是001,你写成1,发送的校验码就少了一位,接收端验证时永远对不上。所以最后写余数时,一定要根据生成多项式的最高次幂补齐位数,最高次幂是3就写三位,是4就写四位。我在考场上吃过这个亏,所以特别提醒你。

另一个CRC坑是生成多项式的二进制表示。有的题目给的是x^3+x+1,有的给的是x^3+x^2+1,两者对应不同的二进制数:前者是1011,后者是1101。做题前先把多项式展开成二进制再动手,不要凭印象直接算。

7.3 交换方式的题干陷阱

交换方式的选择题,最常见的是“看似正确但张冠李戴”的干扰项。比如题干说“线路利用率高,适合突发性数据通信”,选项给了电路交换,很多人觉得电路交换速度快就选它,实际上线路利用率高是分组交换的特点。

我总结了一组题干关键词和对应选项:看到“建立连接”“时延小”“实时”,选电路交换;看到“存储转发”“报文”,先判断是不是报文交换;看到“分组”“动态带宽”“利用率高”“可能乱序”,选分组交换;看到“逻辑连接”“按序到达”“服务质量”,选虚电路。这些关键词是一一对应的,做题时圈出来再选,准确率很高。

7.4 复习顺序建议与刷题心得

如果你现在刚开始复习这一章,我建议你按这样的顺序走:先理解三大交换方式,把“存储转发”这个底层思想吃透,然后学差错控制,先搞懂CRC和海明码的计算,再回来看ARQ,因为ARQ依赖差错控制的结果,最后过一遍同步和易混点。千万别一上来就刷题,这章计算题多,公式和位置排列没记住就做题,错多了容易打击信心。

刷题的时候,我推荐把近五年的上午真题集中拿出来,只做数据通信相关的题,按我上面说的模块分类整理错题。每道错题不要只看选项,要回归到对应的知识点,比如错在海明码,就再重算一遍完整流程,而不是光背答案。这样坚持两周,这章基本就能拿满分了。

最后再分享一个小技巧:这章的知识点适合做成“一页纸总结”,把交换方式对比表、海明码位置规则、CRC计算步骤、滑动窗口公式抄在一张A4纸上,考前只看这一页。我第一次考的时候,整理完这页纸之后,再做这章的题,心里踏实了特别多。别小看这个动作,它能把零散的知识真正压进脑子里。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询