翻开《计算机网络:自顶向下方法》第一章的朋友,十有八九正在为课后习题抓耳挠腮。刚看完协议栈、时延公式、分组交换这些概念时觉得自己懂了,合上书面对课后题却不知道从哪下笔,尤其是夹杂着单位换算和存储转发细节的计算题,错一次就怀疑人生。这篇文章就是针对“第一章课后习题参考答案”做的中文解析型整理,我不按书里的题号逐条搬运原题,而是把各版教材配套资料里高频出现的题型拆开,按考点分类给出答题框架、标准公式和我自己踩过的坑。适合刚自学完第一章需要刷题巩固的人,也适合考前一周拿来做题型速览。
第一次带这门课的时候,我也以为第一章只是概念铺垫,结果批改作业发现错误率最高的恰恰是那些看起来最基础的计算题。后面我把历届学生错得最多的点集中复盘了一遍,总结成这套解析思路,你会发现第一章的课后题其实分三类:概念背诵题、链路计算题、协议辨析题,其中计算题占了半壁江山,而且套路非常固定。
1. 第一章到底在讲什么,考试到底怎么考
1.1 先搭框架:三张图和一张表
在开始对答案之前,我强烈建议先把第一章的核心脉络捋一遍,否则直接看题目解析会非常散。第一章整章其实就是在回答四个问题:互联网是什么、边缘怎么接入核心网、数据怎么在核心网里走、端到端时延怎么算。围绕这四个问题,你需要做到闭眼能画出三张图。
第一张是“因特网组成图”,左边是端系统,右边是端系统,中间是分组交换机和链路。这张图背后是“网络边缘”和“网络核心”这两个概念,课后题里大量题目都在问你“某个设备属于边缘还是核心”“分组交换和电路交换的区别是什么”。
第二张是“协议栈分层图”,应用层、运输层、网络层、链路层、物理层,每层一个名字、一个核心职责、一个代表性协议。第一章习题里让你“指出某协议属于哪一层”的题基本都从这里出。
第三张是“时延构成图”,节点处理时延、排队时延、传输时延、传播时延,这四类时延的位置必须能在图上标出来。很多人把传输时延和传播时延搞混,就是因为在图上找不准位置。
一张表则是“OSI七层模型与TCP/IP四层模型对照表”。这部分概念题在历年考试里几乎必有一问,标准答法我会在第三章细讲。
提示:第一章的课后题虽然有几十道,但真正涉及复杂计算的其实就那几个模型,思路通了之后,剩下的题只是换数字。
1.2 官方配套资料怎么用
题目在复习时最容易踩的误区是:对着所谓“官方答案”死记硬背。我这里的“官方解析”,指的是教材配套的教师手册、公开课答疑资料里整理出来的标准解答思路的中文整理。你要把它当成“评分标准”来看,而不是“标准答案”来背。
举个例子,课后题里问“为什么分层是必要的”,教师手册给的标准要点是三条:模块化便于设计与维护、各层独立更新、复用公共服务。如果你只背这三句话,题目换个角度问“分层带来什么弊端”,你就答不上来了。
所以我建议的用法是这样:第一遍,自己独立做一遍题,卡住了先翻书,确认公式后继续算;第二遍,对照官方解析,重点看你漏了哪个步骤;第三遍,把错题按题型归类,形成自己的答题模板。这样一来,官方答案只负责帮你校准,主动权始终在你手里,考试时才不会遇到“背过但不会用”的尴尬。
2. 必考计算题:四类时延与吞吐量,答案全流程拆解
2.1 传输时延与传播时延:先分清楚再套公式
第一章计算题里最基础也最容易翻车的,是传输时延(transmission delay)和传播时延(propagation delay)的区分。我教过的很多同学,考试时能把公式默写出来,但一代入数字就把链路距离除以链路带宽,完全驴唇不对马嘴。
先看定义。传输时延指的是把数据全部送上链路所需的时间,公式是:
传输时延 = 分组长度 L / 链路带宽 R
它衡量的是“路由器某个端口发数据的耗时”,单位由 L 和 R 决定。注意这里的 L 是比特数,不是字节数;R 是 bps,不是 KB/s。
传播时延指的是一个比特在链路上跑完物理距离所需的时间,公式是:
传播时延 = 链路距离 d / 信号传播速度 s
它衡量的是“电磁波在介质里飞多久”,和分组大小、链路带宽完全无关。光缆里的传播速度大约是 2×10^8 米/秒,而不是真空中的 3×10^8 米/秒,这点很多题目会直接在题干里给出,别自己瞎默认。
我批作业时遇到一个很典型的例子:某链路长 500 公里,带宽 10 Mbps,发送一个 1000 kbit 的分组,传播速度取 2×10^8 m/s,请计算传输时延、传播时延和总时延。
标准做法是先把单位统一。1000 kbit 就是 1000×10^3 bit,也就是 10^6 bit,除以 10 Mbps,即 10×10^6 bps,得到传输时延 0.1 秒,也就是 100 毫秒。传播时延则是 500×10^3 米除以 2×10^8 米每秒,得到 2.5 毫秒。两者相加得到 102.5 毫秒。
这道题还有两个常用变体。第一个变体是问“带宽延迟积”,也就是 R 乘以端到端传播时延,算出来是这个链路里最多能容纳多少比特,稍难的题会问“至少需要多少比特才能填满链路”,本质上就是让你求带宽延迟积。第二个变体是问“如果增大链路带宽,总时延会不会变小”,很多人直接答会变小,但实际上只能降低传输时延,传播时延不变,所以在短距离高带宽场景里带宽提升对总时延的改善非常有限。
实操心得:看到任何带“距离”的题,先条件反射地把传播时延单独算出来;看到带“分组长度”的题,先条件反射地把传输时延单独算出来。这两个动作一分家,单位就不会串。
2.2 分组交换与电路交换:存储转发是核心考点
第一章最核心的计算题场景是分组交换与电路交换的时延对比。这类题目通常给你一个文件大小、若干条链路、每条链路的带宽和距离,然后分别计算两种交换方式下的端到端总时延,最后让你比大小。
先说电路交换,标准公式是:
总时延 = 连接建立时间 s + 报文长度 x / 链路带宽 R + 传播时延总和
为什么是这样一个结构?因为电路交换在通信开始前先建立一条专用线路,建立好了之后,数据就沿着这条线路源源不断地走,不需要中间节点存储转发,所以传输阶段的时间几乎就是“把数据倒进管道”的时间。
然后是分组交换,情况要复杂一些。分组交换网里的路由器是存储转发的:它必须等整个分组完整到达,才能往下一跳转发,不能像电路交换那样一比特来一比特走。假设发送一个报文,把它分成 P 个分组,每个分组长度 L 比特,从源到目的端一共经过 H 条链路(也就是有 H-1 台路由器),每条链路带宽都是 R,传播时延合计为 d/s,那么总时延的近似公式是:
分组交换总时延 ≈ H × (L / R) + (P - 1) × (L / R) + d/s
第一个部分 H×(L/R) 是第一个分组从源端到目的端一路被存储转发所花的时间,第二个部分 (P-1)×(L/R) 是后续每个分组相对于前一个分组在源端的发送间隔。这里的前提是无排队、链路带宽一致、所有分组的 L 相同。
我把这个公式拆成这么细,是因为课后题最喜欢在这里埋坑。例如它会把一个报文分成两个分组,问你“分组的数量增大之后总时延怎么变”,如果你直接从直觉上说“分组越多开销越大、时延越大”,就掉坑了。在忽略首部开销的理想模型里,分组无限小时,总时延会趋于 H × (L/R) + d/s,其中 L 此时趋于单个比特的“等效分组长度”,反而更接近电路交换的连续传输效果。但实际中分组有首部,路由器还要处理,所以并非越小越好。
再举一个我用来上课的数值例子。假设要发送一个 10 Mbit 的文件,端到端经过一台路由器,也就是两条链路,每条链路带宽 10 Mbps,距离 500 公里,传播速度 2×10^8 m/s,电路交换的建立时间是 0.5 秒。
电路交换:0.5 秒建立连接,加 10 Mbit / 10 Mbps 等于 1 秒传输时间,再加传播时延 500×10^3 × 2 / (2×10^8) 约为 5 毫秒,总时延约 1.505 秒。
分组交换:如果整个文件不分包直接当成一个大分组,在两条链路上存储转发,传输时延是 2 × (10 Mbit / 10 Mbps) = 2 秒,加传播时延 5 毫秒,总时延约 2.005 秒。
但如果把文件分成 100 个分组,每个分组 0.1 Mbit,那么第一个分组的端到端时延是 2 × (0.1 Mbit / 10 Mbps) = 20 毫秒,后续 99 个分组每个相隔 10 毫秒,总时延约 20 + 990 + 5 = 1015 毫秒,约为 1.015 秒。这个例子很直观地说明了为什么分组交换的流水线方式能逼近甚至优于电路交换:它不需要排队等待建立连接,又能通过并行转发降低大文件的总时延。
注意:计算中如果题目说“忽略处理时延”,就不用额外加;如果题目给了分组首部开销,例如每个分组携带 40 字节首部,那每个分组的实际传输长度要加上首部长度再除以带宽,很多同学在这里漏算。
2.3 吞吐量:瓶颈链路说了算
吞吐量题是第一章计算题里的送分题,但送分也会丢分。它的核心就一句话:端到端吞吐量等于路径上的最小链路带宽,也就是瓶颈链路。
课后题常见的出法是给你一条路径,上面三截链路分别是 2 Mbps、1.5 Mbps、3 Mbps,问你端到端吞吐量是多少,答案当然是 1.5 Mbps。这就相当于一个水管系统,不管前面的管子多粗,最后最细的那截管子决定了水流上限。
更进阶一点,题目会问多个连接共享瓶颈链路的情况。比如一个 1 Mbps 的瓶颈链路上同时跑着 10 个应用连接,在理想公平调度下,每个连接只能分到 0.1 Mbps。这个结论看起来简单,但实际场景里应用层吞吐量还受 TCP 拥塞控制、服务器发送能力、接收端处理能力影响,后两者是在后续章节才展开的。
我在答疑时发现,学生丢分往往不是因为不会取最小值,而是没有先判断哪些链路是真正承载业务的链路。题目里偶尔会混入一条与实际数据流无关的管理链路,或者故意把某一段写成全双工而另一段写成半双工,让你误判吞吐量。所以我的建议是:先在草稿纸上把“源端到目的端的完整数据路径”画出来,再逐段写带宽,最后做 min 运算。
除了 min 运算,第一章还有一种更“学术”的吞吐量表达方式:如果某条链路的到达速率是 a 个分组每秒,每个分组 L 比特,链路带宽 R,那么流量强度 = aL / R。当流量强度大于 1 时,队列会无限增长;等于 1 是临界状态;小于 1 才有稳定吞吐量可言。这个概念是后面排队时延分析的钥匙,稍后我会专门讲。
3. 概念题参考答案:协议、分层、接入网与OSI模型
3.1 协议与分层的标准答法
第一章概念题里,出现频率最高的三道题是:什么是网络协议、为什么要分层、分层有什么优缺点。这三道题看似基础,但很多学生答不到采分点。
“什么是网络协议”的标准答法分三层。第一层是定义:协议是网络中对等实体之间进行通信所遵循的规则集合。第二层是三要素:语法、语义、时序。语法规定报文格式和结构,语义规定字段含义以及发送方和接收方如何解释这些字段,时序规定事件发生顺序和速度匹配。第三层是例子:比如 HTTP 请求和响应必须遵循固定的请求行、头部、空行、实体主体结构,这就是语法的体现。
“为什么要分层”的标准答法是从工程角度切入:一个大问题太难直接实现,所以按功能拆成多个小问题分层解决;每一层只需向上一层提供服务、向下一层使用服务,内部实现可以独立修改;不同层的更新替换互不影响,例如应用层换了新的应用协议,不必改动物理层设备。
“分层有什么优缺点”则要辩证答。优点是模块化、灵活性高、标准化能力强,可以促进互联互通;缺点是层次之间可能有功能冗余,首部开销增加,性能会有一定损失,而且有些跨层优化(比如应用深知链路质量)在严格分层模型里很难做。我改卷时特别看重最后一条,能写出“跨层设计的需求催生了后续章节的进阶话题”的学生,通常理解得比较透。
3.2 接入网与物理介质的基础辨析
接入网这块的课后题通常以选择题或简答题的形式考察,核心是让你区分 DSL、HFC、FTTH 和无线上网这几种接入方式的技术本质。
DSL 是电话线上跑数字信号,利用电话线中高频段传下行数据,低频段传语音,所以可以在上网的同时打电话。它的缺点是传输距离有限,离局端越远速率越低。
HFC 是有线电视网络,光纤到小区、同轴电缆入户,带宽由同一小区内所有用户共享,晚高峰时段会明显变慢,因为共享介质上的冲突和负载都在上升。
FTTH 是光纤到户,通常配合无源光网络 PON 技术,用分光器把一根纤芯的信号分给多个用户,上行和下行通过波分复用隔离。它是目前家庭宽带趋势里最接近“接入瓶颈在后端而不在管道”的方案。
无线上网则要区分两种:一种是通过无线局域网接入,比如在家里用路由器覆盖的 Wi-Fi,本质是把无线电波作为最后一段接入介质;另一种是通过蜂窝移动网络,依赖基站覆盖小区。
回答这种题的时候,最好动手画一条“端系统—接入网—核心网”的链路,并把访问因特网时经过的每一类设备标出来,比如调制解调器、交换机、路由器、防火墙。第一章习题里有一类题就是让你把这些设备按层级排列,画图是最稳的做法。
3.3 OSI七层模型与TCP/IP四层对照
OSI 七层模型是概念题里的另一个固定考点,几乎每年都会有一道“根据功能判断是哪一层”的题。为了避免丢分,我建议你按“功能关键词”来记,而不是按死背层名。
OSI 七层从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。物理层管比特传输的电气和机械特性;数据链路层管相邻节点之间的帧传输,比如差错检测、可靠传输;网络层管跨网络的寻址和路由,代表性功能是 IP 寻址和分组转发;传输层管端到端的进程通信,包括 TCP 和 UDP 的端口、可靠数据传输、拥塞控制;会话层管建立和管理会话;表示层管数据格式转换、加密和压缩;应用层直接为用户提供服务。
TCP/IP 四层模型则把 OSI 的上三层合并为应用层,把链路层和物理层合并为网络接口层,剩下网络层和传输层。第一章教材通常用的是五层模型,也就是把物理层和数据链路层分开,所以你在作答时一定要先看清题目要求的是“七层”“四层”还是“五层”。
记忆口诀我这里可以提供一套:协议进程找传输,路由寻址靠网络,链路成帧邻节点,底层比特物理通。把每层一句口诀写下来,选择题基本十拿九稳。真正拉开差距的是综合题:给你一个 Web 访问过程,问你“用户输入网址后,应用层、传输层、网络层、链路层分别做了什么”,这道题在后续章节还会反复出现,但第一章就可以开始练习了。
4. 高频错题与避坑实测记录
4.1 单位换算与公式套用陷阱
我统计过自己带过的几个班级,第一章计算题出错原因前三名分别是单位没换算、带宽延迟积概念混淆、漏加存储转发时延。单位问题尤其严重。
最常见的坑是“Mbps”和“MB/s”的换算。1 Mbps 是 10^6 bit/s,而 1 MB/s 是 10^6 字节每秒,也就是 8 × 10^6 bit/s,两者差了 8 倍。课后题里经常给出“文件大小 5 MB”,链路带宽是“10 Mbps”,如果你直接按 5/10 计算,得到的是 0.5 秒,实际上是 5×8/10 = 4 秒。
另一个坑是 kbit 和大写 K 的区分。很多时候题干写的是 “1000 kbit”,这里 k 表示千,也就是 10^3,不是 1024。计算题里只要没有明确说按 1024 处理,一律按 10^3 算。在信息论题目里,单位前缀和计算机体系结构里的 1024 进制经常把人绕晕,第一章时延计算统一走十进制。
公式套用方面,最隐蔽的坑是处理时延和排队时延“给与不给”。题目若说“忽略处理时延”,那就不再考虑节点处理;若题目没说,默认排队时延为零。很多同学一旦看到题里有“队列”两个字,就以为必须把排队时延算出来,其实题目可能明确要求“假设排队时延忽略不计”。
4.2 排队时延的极限条件与误用场景
排队时延是第一章里最抽象也最容易用错公式的概念。教材上的经典结论是:在稳定条件下,流量强度 μ 等于 aL/R,其中 a 是到达速率,L 是每个分组的比特数,R 是链路带宽。当 μ 接近 1 时,平均排队时延会趋近无穷大。
我见过很多同学直接用公式“平均排队时延 = μ/(1-μ) × 传输时延”硬套,结果越算越离谱。这个公式来自 M/M/1 队列的简化模型,它成立的前提是到达过程是泊松过程、服务时间指数分布、队列容量无限。第一章课后题里真正让你用这个公式的情况非常少,更多时候只是让你定性地判断流量强度变大后时延会怎么变。
所以我的建议是:看到排队时延相关的题,先看题目有没有给出足够的信息让你建立排队模型,如果只给了到达速率、分组长度和带宽,那就只能算到流量强度这一层。写出“流量强度为 0.8,已接近临界,若继续增长队列将急剧膨胀”这样的结论,比强行算出一个伪精确的排队时延更安全,也更容易踩到采分点。
4.3 计算题答案模板与踩坑记录
如果你希望考试时计算题不丢步骤分,可以按下面这个模板来组织答案。首先是列出已知量并统一单位,把距离、带宽、分组大小都写成米、bps、bit 的标准形式。然后是写明公式来源,比如“根据传输时延公式 L/R”,这一句看起来很虚,但改卷时能快速帮你判断公式是否用对。接下来是代入数值和单位约简,最后是结论用一句话点出物理意义。
我自己做题时还会在草稿纸上画一条链路图,把发送端、路由器、接收端标出来,然后逐个节点写“传输时延”和“传播时延”。这一步能直接把存储转发漏算的问题暴露出来。比如一条链路到另一条链路的转折点,很多人以为数据一进路由器就能立刻出,实际上必须完整接收后才能转发,漏掉这一次存储转发,答案就会差一个分组的传输时延。
我还踩过另一个坑:题目问“端到端的最小时间是多少”,我直接算了一条路径的时延,结果题目里同时给出了两条备选路径,要求选最优路由。第一章其实不会涉及路由算法,但会以“最短路径选择”的形式考察时延求和,所以答题前先看清路径是固定的还是需要自己选的。
5. 复习建议:把官方答案变成自己的答题能力
5.1 刷题顺序与时间分配
第一章课后题如果全部做完大约需要两到三个完整下午,我建议按“概念题先行、计算题居中、综合题收尾”的顺序来刷。
第一个下午专门做概念题,也就是协议、分层、接入方式、OSI 模型这类。这些题不需要大量计算,但需要你把术语完整写出来。我建议不要只看答案,而是把官方解析里的三要素改成自己的话写一遍,写完再对照,这样印象更深。
第二个下午集中做时延计算题。从单链路开始,逐步过渡到多跳存储转发,再到分组交换与电路交换对比,最后做吞吐量题。每一类题型做三道左右就停下来,整理通用步骤,不要追求题海。
第三个下午做综合题和错题复盘。把官方答案里出现过的图形类题目,比如 TDM 时隙分配、分组交换的时序图、OSI 模型功能匹配,全部画一遍。画图的过程比背答案更有用,因为第一章的很多概念都是空间和时间上的直观问题,不动笔是想象不出来的。
5.2 考场两分钟检查法
考试时做第一章计算题,我建议养成两个检查习惯。第一个习惯是做完后立刻检查单位,把答案里的单位写全,比如“秒”而不是光秃秃的数字。第二个习惯是反向推算:如果算出总时延,那就扣掉传播时延和排队时延,单独看一下传输时延是否合理。举个例子,你算出来的总时延若小于单个分组的传输时延,那一定哪里错了。
还有一个考场上容易被忽略的成本是题目里的“答案要求几位小数”。老师没说保留几位,就不要自己用分数代替小数,也不要默认保留两位,写成分式反而更安全。批改时清晰的过程比精确到小数点后五位的数值更占优势。
我个人观察到的规律是,第一章的课后题能力会在第三章会因为 TCP、路由选择等内容再次被检验,所以现在花时间整理出的做题模板,后面能帮你省不少力气。
最后分享一个小技巧:每学完一章,就把这章课后题里做错的那几道题,用一句话总结成一个“易错卡”,比如“存储转发别漏第一个分组的逐跳累计”“Mbps 与 MB/s 差 8 倍”。考前只看这些卡片,比重新翻一遍书效率高得多。这个习惯我从带第一届学生时开始用,一直用到现在,反馈很好。