1. 为什么我要把第一章的练习题单独拎出来整理
计算机网络这门课,很多人栽跟头不是因为看不懂书,而是因为看懂了书却做不对题。第一章概述部分尤其如此——概念多、术语密、分层模型绕来绕去,考试还特别喜欢在这里出选择题和填空题。我前后带过几轮复习,发现一个规律:凡是第一章练习题正确率低于七成的人,后面章节基本都会崩,因为第二章物理层、第三章数据链路层全都建立在第一章的分层思想和性能指标之上。
这份整理针对的就是第一章第四部分(通常对应“计算机网络性能指标”与“体系结构”相关练习)的题目。我会把每道典型题拆开,讲清楚它考的是什么、为什么这么考、容易错在哪、下次遇到同类题怎么快速判断。适合正在期末复习的本科生、准备考研的计算机专业考生,以及任何想把这门课基础打牢的人。不管你是刚学完第一章还是已经忘得差不多,跟着这份整理过一遍,至少能把第一章的练习题正确率拉到九成以上。
我整理的原则很简单:不抄书、不堆定义,每道题都还原到“出题人想筛掉哪类人”这个层面。下面直接进入正题。
2. 第一章第四部分到底在考什么
2.1 性能指标类题目的核心考点分布
第一章第四部分通常对应教材中“计算机网络的性能”这一节,核心指标就那么几个:速率、带宽、吞吐量、时延、时延带宽积、往返时间RTT、利用率。但出题人不会直接问你“带宽的定义是什么”,而是把这些指标揉进具体场景里让你算、让你比较、让你判断。
我统计过常见的出题角度,大致分布如下:
| 考点 | 出现频率 | 典型题型 | 易错点 |
|---|---|---|---|
| 时延计算 | 极高 | 发送时延+传播时延+处理时延 | 混淆发送时延和传播时延 |
| 时延带宽积 | 高 | 计算链路中“正在路上”的比特数 | 单位换算错误 |
| 吞吐量 vs 带宽 | 高 | 判断实际吞吐量受限于哪段链路 | 误以为吞吐量等于带宽 |
| RTT与有效速率 | 中 | 停等协议下的有效数据传输速率 | 忘记把RTT计入总时间 |
| 利用率与排队时延 | 中 | 利用率升高对时延的影响 | 忽略排队时延的非线性增长 |
| 分层结构判断 | 高 | 某功能属于哪一层 | 混淆服务与协议 |
这张表你可以在复习时对照着看,哪个考点自己错得多,就重点补哪个。我个人经验是,时延计算和时延带宽积这两块必须练到“看到数字就能条件反射列出公式”的程度,因为考试时不会给你太多思考时间。
2.2 体系结构类题目的出题逻辑
体系结构部分的练习题,表面考的是OSI七层和TCP/IP四层的对应关系,实际上考的是“你能不能把某个具体功能定位到正确的层次”。比如“路由选择”属于哪一层、“流量控制”属于哪一层、“数据加密”属于哪一层,这些在选择题里反复出现。
出题人的套路通常是:给你一个具体协议或功能,让你判断它属于哪一层;或者给你两层的对比,让你选出正确的差异描述。还有一种更隐蔽的考法,是问“某一层为上一层提供了什么服务”,这考的是服务、协议、接口三者的区别。
我见过最多人错的一道题是:“OSI参考模型中,第N层为第N+1层提供服务,同时使用第N-1层提供的服务。”这句话本身是对的,但很多人会把它和“协议是水平的,服务是垂直的”搞混。记住一个口诀:协议是同级之间的事,服务是上下级之间的事。同级通信靠协议,上层调用下层靠服务。
3. 时延计算类题目:从公式到条件反射
3.1 发送时延与传播时延的本质区别
这是第一章最容易混淆的一对概念,没有之一。我见过太多人把发送时延和传播时延搞反,导致整道题全错。用生活类比来解释:假设你要把一车货物从仓库运到目的地。
发送时延对应的是“装车时间”——你把货物一件一件搬上车,车装满才能出发。这个时间取决于货物总量和装车速度,也就是数据量和发送速率。
传播时延对应的是“运输时间”——车装满后从仓库开到目的地的时间。这个时间取决于距离和车速,也就是链路长度和信号传播速度。
两者完全独立。发送时延是“把比特推上链路”的时间,传播时延是“比特在链路上跑”的时间。一道典型的计算题会给你数据量、带宽、链路长度、传播速率,让你算总时延。总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延,但第一章的题目通常只考前两项。
注意:发送时延 = 数据量 / 带宽,传播时延 = 链路长度 / 传播速率。这两个公式里的“带宽”和“传播速率”是完全不同的东西,前者单位是比特每秒,后者单位是米每秒。单位换算时务必小心,1 Gb/s = 10^9 b/s,不是 2^10。
3.2 一道典型计算题的完整拆解
题目:主机A向主机B发送一个大小为 10 MB 的文件,链路带宽为 100 Mb/s,链路长度为 1000 km,信号传播速率为 2×10^8 m/s。求总时延(忽略处理时延和排队时延)。
第一步,统一单位。10 MB = 10 × 2^20 B = 10 × 2^20 × 8 bit。这里有个坑:MB 在存储语境下通常是 2^20,但在网络语境下有时按 10^6 算。第一章练习题默认按 2^20 处理,除非题目明确说“10^6”。我建议你做题时先看题目有没有给换算说明,没有就按 2^20 算。
第二步,算发送时延。数据量 = 10 × 2^20 × 8 = 83,886,080 bit。带宽 = 100 Mb/s = 100 × 10^6 b/s = 10^8 b/s。发送时延 = 83,886,080 / 10^8 ≈ 0.839 s。
第三步,算传播时延。链路长度 = 1000 km = 10^6 m。传播速率 = 2×10^8 m/s。传播时延 = 10^6 / (2×10^8) = 0.005 s。
第四步,总时延 = 0.839 + 0.005 = 0.844 s。
这道题的关键在于:发送时延远大于传播时延,因为数据量大、带宽相对小。如果题目换成“发送一个 1000 bit 的小分组”,发送时延就变成 10^-5 s,传播时延反而占主导。这就是为什么小分组场景下传播时延不可忽略,而大文件传输场景下发送时延才是瓶颈。
3.3 时延带宽积:链路中“正在路上”的比特数
时延带宽积 = 传播时延 × 带宽,单位是比特。它的物理意义是:一条链路中最多能容纳多少个比特“正在路上”。你可以把它想象成一根水管,传播时延是水从这头流到那头的时间,带宽是水管每秒能流过的水量,两者相乘就是水管里同时存在的水量。
这个指标在后续章节讲滑动窗口和拥塞控制时会反复用到。第一章的练习题通常直接让你算数值,比如:链路带宽 10 Mb/s,传播时延 20 ms,求时延带宽积。答案 = 10×10^6 × 20×10^-3 = 200,000 bit = 200 kbit。
提示:时延带宽积又被称为“以比特为单位的链路长度”。这个叫法很形象,因为如果把它除以带宽,就还原成传播时延;如果把它除以传播时延,就还原成带宽。考试时如果记不清公式,用单位反推:比特 = 秒 × 比特/秒,只有传播时延乘带宽才能得到比特。
4. 吞吐量与利用率:容易被忽略的“实际值”
4.1 吞吐量不等于带宽
带宽是链路的理论最大传输速率,吞吐量是实际测到的传输速率。两者关系就像高速公路的限速和你的实际车速——限速120,但堵车时你可能只跑40。第一章练习题经常给出一条由多段链路组成的路径,每段带宽不同,问你端到端的吞吐量是多少。
答案是:吞吐量取决于瓶颈链路,也就是带宽最小的那段。比如A到B经过三段链路,带宽分别是 10 Mb/s、5 Mb/s、8 Mb/s,那么吞吐量就是 5 Mb/s。这个结论在后续讲网络核心时会再次出现,第一章只是让你先建立直觉。
我见过一道变体题:如果瓶颈链路的利用率只有50%,吞吐量是多少?答案是 5 × 50% = 2.5 Mb/s。这里考的是利用率对吞吐量的影响。利用率越高,排队时延越大,但吞吐量在达到瓶颈之前会随利用率上升而上升,达到瓶颈后就封顶了。
4.2 利用率与排队时延的非线性关系
利用率 U 和排队时延的关系可以用一个近似公式描述:排队时延 = (U / (1 - U)) × 平均服务时间。当 U 趋近于1时,排队时延趋近于无穷大。这就是为什么网络不能跑到100%利用率,否则时延会爆炸。
第一章练习题通常不会让你算这个公式,但会让你判断“利用率从50%提升到90%,排队时延增加了几倍”。答案是:50%时排队时延 = 1倍服务时间,90%时 = 9倍服务时间,增加了8倍。这个结论在后续讲拥塞控制时非常重要,第一章先让你有个印象。
注意:很多人在做利用率题时只关注数值计算,忽略了“利用率是双向的”——发送方利用率高会导致接收方排队,接收方利用率高会导致发送方等待。第一章的题目通常简化成单向,但你要知道实际网络中两端都会互相影响。
5. 体系结构类题目:分层思想的实战判断
5.1 OSI七层与TCP/IP四层的对应关系
这是必考内容,但出题方式很灵活。最基础的是让你填表对应,进阶的是给你一个功能让你判断属于哪一层。我整理了一个速查表:
| 功能 | OSI层 | TCP/IP层 | 记忆口诀 |
|---|---|---|---|
| 比特传输 | 物理层 | 网络接口层 | 物理传比特 |
| 成帧、差错控制 | 数据链路层 | 网络接口层 | 链路管帧错 |
| 路由选择、分组转发 | 网络层 | 网际层 | 网络找路由 |
| 端到端可靠传输 | 传输层 | 传输层 | 传输端到端 |
| 会话管理 | 会话层 | 应用层 | 会话管对话 |
| 数据格式转换 | 表示层 | 应用层 | 表示管格式 |
| 用户服务 | 应用层 | 应用层 | 应用给服务 |
这张表建议背下来。考试时如果遇到“某功能属于哪一层”的题,先想这个功能是“端到端”还是“点到点”,是“可靠”还是“不可靠”,是“面向连接”还是“无连接”,基本就能定位。
5.2 服务、协议、接口三者的区别
这是概念题的高频考点。我用一个类比来解释:假设你在一家公司工作。
协议是你和同级同事之间的沟通规则——你们怎么开会、怎么发邮件、怎么交接工作。这是水平的。
服务是你所在部门向其他部门提供的能力——比如财务部提供报销服务。这是垂直的,上层调用下层。
接口是你所在部门对外暴露的窗口——其他部门通过这个窗口来请求服务。接口定义了“怎么调用”,服务定义了“能做什么”,协议定义了“同级之间怎么配合”。
考试时常见的错误选项是把“协议”说成“上下层之间的关系”,或者把“服务”说成“同级之间的约定”。记住:协议水平,服务垂直,接口是窗口。
5.3 一道综合判断题的完整分析
题目:以下关于OSI参考模型的描述,正确的是(多选): A. 第N层为第N+1层提供服务 B. 第N层使用第N-1层提供的服务 C. 第N层与第N+1层之间的通信遵循第N层的协议 D. 第N层与对等层之间的通信遵循第N层的协议
分析:A正确,下层为上层提供服务。B正确,上层使用下层服务。C错误,第N层与第N+1层是上下级关系,不是对等关系,它们之间是服务调用,不是协议通信。D正确,对等层之间才遵循协议。所以答案是ABD。
这道题考的就是“协议水平、服务垂直”这个核心判断。很多人错选C,就是把上下级关系也当成了协议关系。我建议你把这道题抄在错题本上,因为它是理解分层思想的关键。
6. 常见问题与排查技巧实录
6.1 单位换算总出错怎么办
这是第一章练习题最高频的失分点。我总结了一个“三步换算法”:
第一步,把所有数据量统一成比特。1 B = 8 bit,1 KB = 2^10 B,1 MB = 2^20 B,1 GB = 2^30 B。如果题目给的是十进制,比如 10^6 B,那就按十进制算。
第二步,把所有速率统一成比特每秒。1 kb/s = 10^3 b/s,1 Mb/s = 10^6 b/s,1 Gb/s = 10^9 b/s。注意这里的 k、M、G 是十进制,不是二进制的 2^10。
第三步,把所有时间统一成秒。1 ms = 10^-3 s,1 μs = 10^-6 s,1 ns = 10^-9 s。
换算完再代入公式,基本不会错。我见过有人把 100 Mb/s 当成 100 × 2^20 b/s 来算,结果差了将近5%,在选择题里就是错。
6.2 分不清“发送时延”和“传播时延”怎么破
用一句话记住:发送时延看数据量和带宽,传播时延看距离和光速。如果题目改的是数据量或带宽,影响的是发送时延;如果题目改的是链路长度或传播介质,影响的是传播时延。
还有一个更直观的判断方法:发送时延是“把数据推出去”的时间,传播时延是“数据在路上跑”的时间。推出去的速度取决于你的网卡和带宽,跑的速度取决于物理介质。两者互不干扰。
提示:在高速局域网中,发送时延通常远大于传播时延;在卫星通信中,传播时延可能远大于发送时延。考试时如果题目说“卫星链路”,优先考虑传播时延;如果说“大文件传输”,优先考虑发送时延。
6.3 体系结构题目的快速判断法
遇到“某功能属于哪一层”的题,按这个顺序判断:
第一,这个功能是“端到端”还是“点到点”?端到端的是传输层及以上,点到点的是网络层及以下。
第二,这个功能是“可靠”还是“不可靠”?可靠传输在传输层(TCP)或数据链路层(某些协议),不可靠转发在网络层。
第三,这个功能是“面向连接”还是“无连接”?面向连接在传输层(TCP)或网络层(某些虚电路),无连接在网络层(IP)。
第四,这个功能是“用户可见”还是“网络内部”?用户可见的是应用层,网络内部的是下面几层。
用这个顺序过一遍,基本不会错。我试过用这个方法做第一章的体系结构题,正确率从七成提到九成以上。
6.4 常见错题速查表
| 错题类型 | 典型错误 | 正确思路 |
|---|---|---|
| 时延计算 | 把发送时延和传播时延相加时单位不统一 | 先统一单位再计算 |
| 时延带宽积 | 忘记乘传播时延,直接用带宽 | 时延带宽积 = 传播时延 × 带宽 |
| 吞吐量 | 取所有链路带宽的平均值 | 取瓶颈链路带宽 |
| 利用率 | 认为利用率100%时吞吐量最大 | 利用率100%时排队时延无穷大 |
| 分层判断 | 把路由选择归到传输层 | 路由选择在网络层 |
| 服务与协议 | 认为上下层之间遵循协议 | 上下层之间是服务关系 |
这张表建议打印出来贴在书桌前,每次做题前看一遍,能避开大部分坑。
7. 我整理这套练习题时踩过的坑
第一次整理时,我把每道题的答案直接抄在题目下面,结果复习时只看答案不看过程,考试遇到变体题还是不会。后来我改成“三步整理法”:第一步,只抄题目不抄答案;第二步,自己先做一遍,把思路写下来;第三步,对照答案,用红笔标出思路断在哪一步。这样整理一遍,比做十道新题都管用。
还有一个坑是只做计算题不做概念题。第一章的概念题看似简单,但选择题里经常设陷阱,比如“带宽越大,传播时延越小”这种明显错误的选项,如果对概念理解不深,考试时一紧张就可能选错。我的建议是计算题和概念题按七三比例分配复习时间,计算题练速度,概念题练准确度。
最后分享一个我常用的自测方法:把第一章第四部分的练习题随机抽十道,限时二十分钟做完,正确率低于八成就重新过一遍知识点。这个方法我用了好几轮,效果很稳。如果你也在复习这门课,不妨试试。