1. 数据通信复习题的整体知识框架拆解
1.1 为什么数据通信复习题值得系统整理
数据通信这门课有个特点:概念多、公式杂、协议层次容易混淆,很多人学完之后脑子里是一团浆糊。我见过不少同学,课本翻了三遍,一到做题还是分不清“基带传输”和“频带传输”的区别,搞不明白“香农公式”和“奈奎斯特准则”各自适用的场景。这不是智力问题,是知识框架没有搭起来。
数据通信复习题(一)这个标题,表面上看就是一套练习题,但它背后承载的是一个完整的知识体系。从信号与频谱、传输介质、编码与调制,到复用技术、差错控制、交换方式,再到OSI参考模型和TCP/IP协议栈,这些内容环环相扣。如果只是零散地刷题,不做系统梳理,遇到综合题就会露馅。
我整理这套复习题的核心思路是:以“信号如何在网络中从A点可靠地传到B点”为主线,把零散的知识点串成一条逻辑链。这条链上的每一个环节,都对应着复习题中的一类典型问题。你顺着这条链走一遍,就能把大部分考点覆盖到。
这套内容适合谁?如果你是正在准备期末考试的学生,这套梳理能帮你快速建立框架;如果你是考研复习数据通信或计算机网络相关科目,这里面的公式推导和协议分析思路同样适用;如果你已经工作,想回头补一补通信基础,这套内容也能当做一个系统性的回顾材料。
1.2 复习题背后的五大核心模块
我把数据通信复习题(一)涉及的内容归纳为五个核心模块,每个模块对应一类典型题型和一组必须掌握的核心概念。
模块一:信号与信道基础。这部分是地基。你需要搞清楚模拟信号和数字信号的区别、周期信号的频谱特性、傅里叶级数的物理含义、信道的带宽和容量概念。典型题目包括:给定信号表达式画波形、计算信号的带宽、用奈奎斯特公式或香农公式求信道容量。
模块二:编码与调制技术。这是把比特变成信号的过程。常见考点包括:NRZ、曼彻斯特、差分曼彻斯特编码的波形绘制和对比;ASK、FSK、PSK、QAM调制方式的原理和星座图;PCM编码的三个步骤(采样、量化、编码)及相关计算。
模块三:传输介质与复用技术。双绞线、同轴电缆、光纤各自的特性和适用场景;频分复用、时分复用、波分复用的原理和区别;统计时分复用的效率计算。
模块四:差错控制与数据链路层功能。奇偶校验、CRC循环冗余校验的计算过程;海明码的编码和纠错原理;停等协议、后退N帧协议、选择重传协议的窗口机制和效率分析。
模块五:交换技术与网络体系结构。电路交换、报文交换、分组交换的对比;OSI七层模型和TCP/IP四层模型的对应关系;各层的核心功能和典型协议。
这五个模块不是孤立的。比如你在做CRC校验题的时候,需要先理解数据链路层帧的结构;在分析分组交换延迟的时候,需要用到信道容量和传输时延的计算。所以复习的时候,一定要有全局观。
1.3 复习题使用的三个常见误区
在展开具体内容之前,我先说说我观察到的三个高频误区,这些坑我自己也踩过。
误区一:只背公式不理解适用条件。奈奎斯特公式C=2W·log₂V和香农公式C=W·log₂(1+S/N)长得像,但适用场景完全不同。前者针对无噪声的理想低通信道,后者针对有噪声的信道。考试的时候题目给的条件不同,选的公式就不同。很多人背了公式但不会判断用哪个,这就是没理解公式背后的假设。
误区二:把编码和调制混为一谈。编码是把数字数据变成数字信号,调制是把数字数据变成模拟信号。曼彻斯特编码属于编码,QAM属于调制。这个区分在选择题和简答题里经常考,但很多人做题时脑子一热就搞混了。
误区三:忽略计算题的中间步骤。数据通信的计算题往往需要多步推导,比如先算信噪比,再算信道容量,再算传输时间。很多人只记最终公式,中间步骤一塌糊涂,稍微变个题型就不会了。我的建议是,每道计算题都要把中间过程写清楚,这样即使最后结果算错了,过程分也能拿到。
2. 信号与信道核心考点深度解析
2.1 模拟信号与数字信号的本质区别
复习题里经常出现这样一道题:“判断以下信号是模拟信号还是数字信号,并说明理由。”看似简单,但真要写清楚理由,需要从几个维度来对比。
模拟信号的核心特征是连续取值——幅度随时间连续变化,比如正弦波、语音信号。数字信号的核心特征是离散取值——幅度只能取有限个值,通常是0和1两种状态。但这里有个容易混淆的点:数字信号在传输过程中,物理层面上仍然是连续的电压或电流波形,只是它承载的信息是离散的。
我通常用一个类比来解释:模拟信号就像水龙头的开关,可以拧到任意角度,水流连续可调;数字信号就像电灯开关,要么开要么关,只有两种状态。但电灯开关按下去的瞬间,电流的变化过程其实是连续的,只是我们只关心“开”和“关”这两个状态。
在复习题中,常见的判断题包括:
- 方波是数字信号还是模拟信号?(答案:方波在理想情况下是数字信号,但实际电路中由于带宽限制,方波的边沿会有过渡过程,变成近似梯形的波形。)
- 经过采样后的信号是模拟信号还是数字信号?(答案:采样后幅度仍然是连续的,所以还是模拟信号;只有经过量化之后才变成数字信号。)
注意:采样和量化是两个不同的步骤。采样是时间上的离散化,量化是幅度上的离散化。PCM编码中,先采样再量化最后编码,顺序不能乱。
2.2 傅里叶分析与信号带宽的计算
傅里叶级数在数据通信里的核心应用是:任何周期信号都可以分解为直流分量和一系列正弦谐波之和。这个结论的工程意义在于,它告诉我们一个信号占用了多宽的频带。
复习题中常见的题型是:给定一个周期方波信号,求其傅里叶级数展开,并说明需要保留多少次谐波才能基本恢复原信号。这类题目的解题步骤是:
- 写出信号的周期T和基频f₀=1/T。
- 根据波形对称性判断哪些谐波分量为零(奇函数只有正弦项,偶函数只有余弦项)。
- 计算各次谐波的幅度系数。
- 根据题目要求的精度,确定需要保留的谐波次数。
实际工程中,方波的带宽通常取基频的3到5倍。比如一个1kHz的方波,要传输它的主要能量,信道带宽至少需要3kHz到5kHz。这就是为什么数字信号传输需要比信号基频宽得多的信道。
我见过一道典型的计算题:某周期矩形脉冲信号的周期为1ms,脉冲宽度为0.2ms,求其频谱中第一个零点对应的频率。解题思路是:脉冲宽度τ=0.2ms,频谱的第一个零点出现在f=1/τ=5kHz处。这个结论在分析数字信号带宽时非常有用——脉冲越窄,占用的频带越宽。
2.3 奈奎斯特准则与香农公式的适用场景对比
这两个公式是数据通信复习题中出题频率最高的考点,没有之一。我把它们的核心区别整理成了一张表:
| 对比维度 | 奈奎斯特准则 | 香农公式 |
|---|---|---|
| 公式 | C = 2W·log₂V | C = W·log₂(1+S/N) |
| 适用条件 | 无噪声理想低通信道 | 有噪声信道 |
| 关键参数 | 带宽W、码元种类数V | 带宽W、信噪比S/N |
| 核心结论 | 码元速率受带宽限制 | 信道容量受带宽和信噪比共同限制 |
| 典型题型 | 给定带宽和码元数求最大速率 | 给定带宽和信噪比求最大容量 |
这里有一个非常容易出错的地方:奈奎斯特准则中的V是码元的种类数,不是比特数。如果一个码元可以取4种不同的电平,那么V=4,每个码元携带log₂4=2个比特。很多人直接把V当成比特数代入,结果就错了。
香农公式中,信噪比S/N通常用分贝表示,需要先转换。转换公式是:S/N(dB) = 10·log₁₀(S/N)。比如题目说信噪比为30dB,那么S/N = 10^(30/10) = 1000。
我个人的经验是,做这类题目时先判断信道有没有噪声。如果题目明确说“无噪声”或者“理想信道”,用奈奎斯特;如果提到了信噪比或者噪声功率,用香农。如果两个条件都给了,通常两个公式都要用,取较小值作为实际信道容量。
2.4 信道延迟与传输时间的计算方法
复习题中另一类高频计算题是:计算数据从发送端到接收端的总延迟。这个总延迟由四部分组成:
- 发送时延= 数据长度 / 发送速率
- 传播时延= 传输距离 / 传播速度(电磁波在介质中的速度,通常取2×10⁸ m/s)
- 处理时延= 节点处理数据所需的时间(通常题目会给出或忽略)
- 排队时延= 数据在节点缓冲区等待的时间(通常题目会给出或忽略)
很多人在做这类题时,容易把发送时延和传播时延搞混。我用一个类比来解释:发送时延就像你把一封信一个字一个字地写出来所需要的时间;传播时延就像信写好后,邮递员把信从你家送到收信人家所需要的时间。两者是完全不同的概念。
一道典型的题目是:主机A向主机B发送一个1000字节的文件,链路带宽为10Mbps,链路长度为2000km,信号传播速度为2×10⁸ m/s。求总延迟。
解题过程:
- 发送时延 = 1000×8 bit / 10×10⁶ bps = 0.8ms
- 传播时延 = 2000×10³ m / 2×10⁸ m/s = 10ms
- 总延迟 = 0.8 + 10 = 10.8ms
注意单位换算:1字节=8比特,1km=1000m,1Mbps=10⁶bps。这些换算看起来简单,但考试时因为单位搞错而丢分的人不在少数。
3. 编码与调制技术的实操分析
3.1 数字编码方式的波形绘制与对比
数字编码是把比特序列转换成数字信号的过程。复习题中常见的编码方式包括NRZ、NRZI、曼彻斯特编码和差分曼彻斯特编码。我逐一分析它们的规则和特点。
NRZ编码:高电平表示1,低电平表示0。规则最简单,但存在两个问题:一是长时间没有电平跳变时,接收方无法从信号中提取时钟同步信息;二是如果出现连续的0或连续的1,信号会一直保持同一电平,导致直流分量积累。
NRZI编码:电平跳变表示0,电平不变表示1(或者反过来,取决于具体定义)。这种编码解决了连续1的同步问题,但连续0仍然会导致电平不变。
曼彻斯特编码:每个比特周期的中间都有一次电平跳变。从高到低表示0,从低到高表示1(或者反过来)。这种编码的优点是自带时钟同步信息,因为每个比特周期中间都有跳变。缺点是编码效率只有50%,因为每个比特需要两个信号周期。
差分曼彻斯特编码:每个比特周期的中间也有跳变,但跳变只用于时钟同步。比特的值由比特周期开始处是否有跳变来决定:有跳变表示0,无跳变表示1。这种编码比曼彻斯特编码抗干扰能力更强。
在复习题中,经常要求画出给定比特序列的编码波形。我的建议是:先在草稿纸上画出比特序列的时间轴,然后按照编码规则逐位画出波形。画完之后检查两点:一是每个比特周期中间是否有跳变(曼彻斯特类编码),二是连续相同比特时波形是否正确。
实操心得:画波形题最容易出错的地方是比特周期的边界。建议先用竖线把每个比特周期分隔开,再在每个周期内画波形,这样不容易画错。
3.2 模拟调制技术的星座图分析
模拟调制是把数字数据调制到模拟载波上的技术。复习题中常考的有ASK、FSK、PSK和QAM。其中PSK和QAM的星座图分析是重点。
ASK(幅移键控):用载波的幅度变化表示数字信息。2ASK就是载波有和无两种状态。星座图上表现为两个点,分别位于原点的两侧。
FSK(频移键控):用载波的频率变化表示数字信息。星座图上无法直接表示,因为频率变化不体现在幅度-相位平面上。
PSK(相移键控):用载波的相位变化表示数字信息。2PSK有两个相位状态(0°和180°),星座图上是两个点。4PSK有四个相位状态(45°、135°、225°、315°),星座图上是四个点,每个点携带2个比特。
QAM(正交幅度调制):同时利用幅度和相位携带信息。16QAM的星座图上有16个点,每个点携带4个比特。星座图上点与点之间的距离越小,抗噪声能力越差。
复习题中常见的题型是:给定星座图,判断调制方式,计算每个码元携带的比特数,分析抗噪声性能。解题的关键是:星座图上点的数量决定了每个码元携带的比特数(比特数=log₂点数),点与点之间的最小距离决定了抗噪声性能(距离越大,抗噪声能力越强)。
3.3 PCM编码的三步流程与计算
PCM(脉冲编码调制)是把模拟信号转换成数字信号的标准方法。复习题中经常要求计算PCM编码后的数据速率。
PCM的三个步骤是:
- 采样:按照奈奎斯特采样定理,采样频率必须不低于信号最高频率的2倍。如果信号最高频率为f_max,则采样频率f_s ≥ 2f_max。
- 量化:把采样后的幅度值离散化为有限个量化级别。如果量化级别数为L,则每个采样值需要log₂L个比特表示。
- 编码:把量化后的值用二进制编码表示。
PCM编码后的数据速率计算公式为:R = f_s × log₂L
举个例子:一个语音信号的最高频率为4kHz,采样频率为8kHz,量化级别为256级。则数据速率R = 8000 × log₂256 = 8000 × 8 = 64kbps。这就是标准数字电话的速率。
复习题中常见的变体是:给定数据速率和量化级别,求最大可采样的信号频率。这时候需要反过来用公式:f_max = f_s / 2 = R / (2 × log₂L)。
注意:量化级别L通常是2的整数次幂,这样编码时每个采样值正好用整数个比特表示。如果题目给的L不是2的整数次幂,需要向上取整。
3.4 编码效率与传输带宽的关系
编码效率和传输带宽之间有一个直接的权衡关系。编码效率越高,需要的传输带宽越窄;编码效率越低,需要的传输带宽越宽。
以曼彻斯特编码为例,它的编码效率是50%,意味着要传输R bps的数据,信号频率至少需要R Hz,信道带宽至少需要2R Hz(因为曼彻斯特编码的信号频率范围是从R/2到R)。而NRZ编码的效率接近100%,传输R bps的数据只需要R/2 Hz的带宽。
这个关系在复习题中经常以选择题的形式出现:“以下哪种编码方式需要的信道带宽最大?”答案通常是曼彻斯特编码或差分曼彻斯特编码。
我个人的经验是,记住一个核心原则:编码信号中跳变越频繁,占用的频带越宽。曼彻斯特编码每个比特周期中间都有跳变,所以频带最宽;NRZ编码只有在比特变化时才有跳变,所以频带最窄。
4. 差错控制与协议机制的实战拆解
4.1 CRC循环冗余校验的手算过程
CRC校验是数据链路层最常用的差错检测方法。复习题中经常要求手动计算CRC校验码。我把完整的计算步骤整理如下。
假设生成多项式G(x) = x⁴ + x + 1,对应的二进制为10011。要发送的数据为1101011011。
第一步:确定生成多项式的阶数r。G(x)的最高次项是x⁴,所以r=4。
第二步:在数据后面补r个0。数据变成11010110110000。
第三步:用补零后的数据除以生成多项式(模2除法)。模2除法的规则是:不借位,按位异或。
具体计算过程:
1100001010 ___________ 10011 ) 11010110110000 10011 ----- 10011 10011 ----- 00001 00000 ----- 00010 00000 ----- 00101 00000 ----- 01011 00000 ----- 10110 10011 ----- 01010 00000 ----- 10100 10011 ----- 01110 00000 ----- 1110余数为1110,所以CRC校验码为1110。发送的完整帧为11010110111110。
实操心得:模2除法手算时,商的值不重要,重要的是余数。每次只需要看当前余数的最高位,如果是1就商1并异或生成多项式,如果是0就商0并继续。建议用竖式排列,对齐每一位,避免错位。
4.2 海明码的编码与纠错原理
海明码是一种能够纠正一位错误的线性纠错码。复习题中经常要求计算海明码的校验位数量,或者给定接收到的码字判断是否有错并纠正。
海明码的核心公式是:2^r ≥ m + r + 1,其中m是数据位数,r是校验位数。
比如,要传输8位数据,需要多少位校验位?代入公式:2^r ≥ 8 + r + 1。当r=4时,2⁴=16 ≥ 13,满足条件。所以需要4位校验位,总码长为12位。
海明码的校验位插入位置是2的幂次方位置:第1、2、4、8、16...位。每个校验位负责校验一组特定的数据位,分组规则是:第i个校验位负责所有二进制表示中第i位为1的位置。
纠错时,把接收到的码字重新计算校验位,得到的校验结果组成一个二进制数,这个数就是出错的位置。比如校验结果为101,表示第5位出错,把第5位取反即可纠正。
复习题中常见的题型是:给定数据和校验方式,求海明码;或者给定接收到的海明码,判断是否有错并纠正。解题的关键是记住校验位的分组规则,这个规则用文字描述比较绕,但用二进制位置编号来理解就很清晰。
4.3 滑动窗口协议的窗口机制与效率计算
滑动窗口协议是数据链路层的核心协议,包括停等协议、后退N帧协议和选择重传协议。复习题中经常要求计算协议的信道利用率。
停等协议:发送方每发送一帧就等待确认,收到确认后才发送下一帧。信道利用率U = T_frame / (T_frame + 2T_prop),其中T_frame是发送一帧的时间,T_prop是单向传播时延。
后退N帧协议:发送方可以连续发送多帧,接收方只按序接收。如果某帧出错,从该帧开始的所有后续帧都要重传。窗口大小W ≤ 2^n - 1,其中n是序号位数。
选择重传协议:发送方可以连续发送多帧,接收方可以乱序接收并缓存。只有出错的帧需要重传。窗口大小W ≤ 2^(n-1)。
信道利用率的通用公式是:U = (W × T_frame) / (T_frame + 2T_prop),其中W是窗口大小。当W足够大时,利用率趋近于1。
我见过一道典型的计算题:链路带宽为1Mbps,单向传播时延为10ms,帧长为1000比特,序号位数为3位。求后退N帧协议的最大信道利用率。
解题过程:
- T_frame = 1000 / 10⁶ = 1ms
- 2T_prop = 20ms
- 窗口大小W = 2³ - 1 = 7
- U = (7 × 1) / (1 + 20) = 7/21 ≈ 33.3%
如果换成选择重传协议,W = 2^(3-1) = 4,U = (4 × 1) / 21 ≈ 19%。可以看到,在同样的序号位数下,后退N帧协议的窗口更大,利用率更高。但选择重传协议的重传效率更高,因为只重传出错的帧。
注意:窗口大小的计算中,序号位数n决定了窗口的上限。后退N帧的窗口上限是2^n - 1,选择重传的窗口上限是2^(n-1)。这个区别的原因是选择重传需要区分“新帧”和“重传帧”,所以窗口不能超过序号空间的一半。
4.4 协议效率与误码率的关系分析
协议效率不仅受窗口大小和传播时延的影响,还受误码率的影响。当误码率较高时,重传次数增加,有效吞吐量下降。
对于停等协议,考虑误码率p时,平均传输次数为1/(1-p)。所以有效利用率U_eff = U × (1-p)。
对于后退N帧协议,如果一帧出错,后续W-1帧都要重传。平均重传帧数为W × p / (1-p)。所以有效利用率会进一步下降。
复习题中常见的题型是:给定误码率和窗口大小,比较不同协议的有效吞吐量。解题的关键是先算理想情况下的利用率,再乘以误码率修正因子。
我个人的经验是,做这类题目时先画一个时间轴,标出每一帧的发送时间和确认到达时间,这样不容易搞混。特别是后退N帧协议,重传的时候是从出错帧开始全部重传,时间轴上的帧会重叠,画图能帮助理清思路。
5. 交换技术与网络体系结构的综合梳理
5.1 三种交换方式的延迟对比
电路交换、报文交换和分组交换是数据通信中三种基本的交换方式。复习题中经常要求比较它们的延迟特性。
电路交换:通信前需要建立一条专用通路,建立连接有延迟,但一旦连接建立,数据传输没有额外的处理延迟。适合长时间、大流量的通信。
报文交换:整个报文作为一个整体存储转发,每个节点需要接收完整个报文才能转发。延迟与报文长度和节点数量成正比。
分组交换:把报文分成固定长度的分组,每个分组独立存储转发。延迟与分组长度和节点数量成正比,但由于分组长度远小于报文长度,所以延迟更小。
一道典型的计算题是:要传输一个1000字节的报文,经过3个节点,链路带宽为1Mbps,每个节点的处理延迟为1ms。比较报文交换和分组交换的总延迟(分组大小为100字节)。
报文交换:
- 每个节点接收完整报文的时间 = 1000×8 / 10⁶ = 8ms
- 3个节点总传输时间 = 3 × 8 = 24ms
- 加上处理延迟 = 24 + 3×1 = 27ms
分组交换:
- 每个分组长度 = 100×8 = 800比特
- 每个分组的传输时间 = 800 / 10⁶ = 0.8ms
- 10个分组,流水线传输,总时间 = (10 + 2) × 0.8 = 9.6ms
- 加上处理延迟 = 9.6 + 3×1 = 12.6ms
可以看到,分组交换的延迟明显小于报文交换。这就是为什么现代网络都采用分组交换。
5.2 OSI七层模型与TCP/IP四层模型的对应关系
OSI七层模型和TCP/IP四层模型的对应关系是复习题中的必考内容。我用一张表来梳理:
| OSI七层 | TCP/IP四层 | 核心功能 | 典型协议 |
|---|---|---|---|
| 应用层 | 应用层 | 为用户提供网络服务 | HTTP、FTP、SMTP |
| 表示层 | 应用层 | 数据格式转换、加密解密 | JPEG、ASCII |
| 会话层 | 应用层 | 建立、管理、终止会话 | RPC |
| 传输层 | 传输层 | 端到端可靠传输 | TCP、UDP |
| 网络层 | 网络层 | 路由选择、分组转发 | IP、ICMP |
| 数据链路层 | 网络接口层 | 帧的封装、差错控制 | Ethernet、PPP |
| 物理层 | 网络接口层 | 比特流传输 | RS-232、RJ-45 |
复习题中常见的题型是:给定一个功能描述,判断它属于哪一层。比如“路由选择”属于网络层,“流量控制”属于传输层或数据链路层,“数据加密”属于表示层。
我个人的记忆方法是:从下往上记,物理层管比特,数据链路层管帧,网络层管分组,传输层管端到端连接,应用层管用户服务。每一层的核心数据单元(PDU)名称不同,这也是常考的点。
5.3 各层协议数据单元与封装过程
数据在网络中传输时,需要经过逐层封装。复习题中经常要求描述封装过程或画出封装示意图。
封装过程从应用层开始:
- 应用层产生数据,加上应用层头部(如HTTP头部)。
- 传输层加上TCP或UDP头部,形成段(Segment)。
- 网络层加上IP头部,形成分组(Packet)。
- 数据链路层加上帧头和帧尾,形成帧(Frame)。
- 物理层把帧转换成比特流发送。
接收方收到数据后,逐层解封装,去掉各层头部,最终把数据交给应用层。
复习题中常见的题型是:给定一个数据包,分析各层头部的内容和作用。比如IP头部中的源IP地址和目的IP地址用于路由选择,TCP头部中的端口号用于标识应用进程。
注意:封装过程中,每一层都会增加额外的开销。比如一个1000字节的应用数据,加上TCP头部20字节、IP头部20字节、以太网帧头14字节和帧尾4字节,最终传输的数据量是1058字节。这个开销在计算传输效率时需要考虑。
5.4 网络性能指标的计算与分析
复习题中经常要求计算网络的性能指标,包括带宽、吞吐量、时延、时延带宽积、往返时间等。
带宽:信道的最高数据传输速率,单位是bps。吞吐量:实际的数据传输速率,通常小于带宽。时延:数据从发送端到接收端的总时间,包括发送时延、传播时延、处理时延和排队时延。时延带宽积:传播时延 × 带宽,表示链路上能容纳的比特数。往返时间(RTT):从发送方发送数据到收到确认的总时间。
一道典型的题目是:链路带宽为100Mbps,单向传播时延为5ms,求时延带宽积。
时延带宽积 = 5×10⁻³ × 100×10⁶ = 5×10⁵比特 = 500kb。这意味着链路上最多可以容纳500kb的数据。
这个指标在分析滑动窗口协议时非常重要。如果窗口大小小于时延带宽积,信道利用率就不高;如果窗口大小大于等于时延带宽积,信道利用率可以接近100%。
6. 复习题实战中的常见问题与排查技巧
6.1 公式混淆类问题的排查方法
数据通信复习题中,公式混淆是最常见的问题。我整理了一张速查表,帮助快速定位用哪个公式:
| 题目条件 | 适用公式 | 注意事项 |
|---|---|---|
| 无噪声、给定带宽和码元数 | 奈奎斯特准则 | V是码元种类数,不是比特数 |
| 有噪声、给定带宽和信噪比 | 香农公式 | 信噪比需要从dB转换为比值 |
| 给定数据量和速率求时间 | 发送时延 = 数据量/速率 | 注意单位换算 |
| 给定距离和速度求时间 | 传播时延 = 距离/速度 | 电磁波速度取2×10⁸ m/s |
| 给定窗口和时延求利用率 | U = W×T_frame/(T_frame+2T_prop) | 窗口大小受序号位数限制 |
| 给定采样率和量化级求速率 | R = f_s × log₂L | L通常是2的整数次幂 |
排查方法:拿到题目后,先圈出关键条件(有无噪声、是否给定信噪比、是否给定码元数),然后对照表格选择公式。如果题目给了多个条件,可能需要多个公式联立。
6.2 计算题中间步骤的检查要点
计算题丢分往往不是因为不会做,而是因为中间步骤出错。我总结了几个检查要点:
单位检查:每一步计算后检查单位是否正确。比如发送时延的单位应该是秒,如果算出来是毫秒,需要转换。带宽的单位是bps,数据量的单位是比特,两者相除得到秒。
数量级检查:算完结果后,用常识判断数量级是否合理。比如一个1Mbps的链路传输1000字节的数据,发送时延应该是毫秒级,如果算出来是秒级,肯定错了。
公式适用性检查:确认使用的公式是否满足题目条件。比如奈奎斯特准则只适用于无噪声信道,如果题目提到了噪声,就不能用。
边界条件检查:比如窗口大小的计算,后退N帧的窗口不能超过2^n - 1,选择重传的窗口不能超过2^(n-1)。如果算出来的窗口超过这个限制,说明序号位数不够。
实操心得:我习惯在做完每道计算题后,把结果代回原题验证。比如算出发送时延后,用数据量除以发送时延,看是否等于给定的带宽。这样能快速发现计算错误。
6.3 波形绘制题的常见错误与纠正
波形绘制题是数据通信复习题中的“送分题”,但也是“送命题”。我见过太多人因为波形画错而丢分。常见的错误包括:
错误一:比特周期边界画错。每个比特占用的时间宽度应该相等。建议先用竖线把时间轴等分,再在每个等分区间内画波形。
错误二:曼彻斯特编码的跳变方向搞反。曼彻斯特编码的规则是:从高到低表示0,从低到高表示1(或者反过来)。一定要看清题目给的规则,不同教材可能定义不同。
错误三:差分曼彻斯特编码的初始参考电平搞错。差分曼彻斯特编码需要一个初始参考电平,第一个比特周期的开始处是否有跳变取决于这个参考电平。题目通常会给出初始电平,如果没有给出,需要根据上下文判断。
错误四:NRZ编码的连续相同比特没有保持电平。NRZ编码中,连续的1或连续的0应该保持同一电平,不能有跳变。
纠正方法:画完波形后,逐位检查。对于曼彻斯特类编码,检查每个比特周期中间是否有跳变;对于NRZ类编码,检查连续相同比特的电平是否保持。
6.4 协议分析题的解题思路与技巧
协议分析题通常要求分析滑动窗口协议的工作过程,或者计算协议效率。解题思路如下:
第一步:确定协议类型。根据题目描述判断是停等协议、后退N帧协议还是选择重传协议。
第二步:确定窗口大小。根据序号位数计算窗口上限,然后根据题目条件确定实际窗口大小。
第三步:画出时间轴。标出每一帧的发送时间、到达时间、确认时间。对于后退N帧协议,注意重传时从出错帧开始全部重传;对于选择重传协议,只重传出错帧。
第四步:计算效率。根据时间轴计算有效传输时间和总时间,两者相除得到效率。
我个人的经验是,协议分析题一定要画图。光靠脑子想很容易乱,画了时间轴之后,每一帧的状态一目了然。特别是遇到超时重传的情况,时间轴能帮你理清哪些帧被重传了,哪些帧被丢弃了。
6.5 复习题刷题策略与时间分配建议
最后说说刷题策略。数据通信复习题(一)通常覆盖前几章的内容,难度中等。我的建议是:
第一遍:按章节刷。每复习完一章,做对应章节的题目。这一遍不追求速度,追求理解。每道题都要搞清楚为什么选这个答案,计算题的每一步都要写清楚。
第二遍:按题型刷。把计算题、选择题、简答题分开刷。计算题重点练速度和准确率,选择题重点练知识点的覆盖面,简答题重点练表达的完整性。
第三遍:模拟考试。找一套完整的试卷,限时完成。这一遍模拟真实考试环境,训练时间分配能力。
时间分配上,选择题和填空题控制在30%的时间,计算题和协议分析题占50%,简答题占20%。如果某道题卡住了,先跳过,做完其他题再回来。数据通信的题目往往前后有关联,后面的题目可能会给你前面的提示。
注意:复习题中的错题一定要整理。我习惯用不同颜色的笔标注错题原因:红色表示公式用错,蓝色表示计算错误,绿色表示概念不清。复习后期只看错题,效率最高。
数据通信这门课,说到底就是理解“信号怎么传、差错怎么控、网络怎么连”这三个核心问题。复习题只是手段,不是目的。把每道题背后的原理搞清楚,比刷十道题都有用。我在实际做题中发现,那些能考高分的人,不是刷题最多的人,而是每道题都吃透的人。