首页 / 资讯中心 / 文章详情

《计算机网络:自顶向下方法》第6版课后习题答案深度解析与高效使用指南

《计算机网络:自顶向下方法》第6版课后习题答案深度解析与高效使用指南 ★ FEATURED ARTICLE
1. 为什么“课后习题答案”值得认真对待1.1 从一道习题看整门课的骨架很多人拿到《计算机网络自顶向下方法》这本书第一反应是“书太厚了先找份答案对着看”。我当年也是这么干的结果第一次期中考试就栽了跟头——题目稍微换个场景我就不知道从哪下手。后来我才明白这本书的课后习题不是用来“对答案”的它是作者精心设计的一套思维训练系统。每一章的习题都在逼你从应用层往下走一层一层剥开网络的面纱。第6版相比第5版在章节顺序和习题编排上做了不少调整。最明显的变化是作者把一些原本放在后面的内容提前了比如网络安全部分被拆散融入各章而不是单独堆在最后。这个改动直接影响了习题的分布——你会在应用层就看到关于加密和认证的题目而不是等到最后才碰。所以如果你手里拿的是第5版的答案去对第6版的题会发现很多题号对不上甚至有些题目的前提条件都变了。我见过太多人在这上面吃亏。有个同学拿着旧版答案做第6版第二章的题结果“HTTP持久连接”那道题的参数完全不一样他算了半天觉得答案不对最后发现是版本问题。所以第一件事确认你用的是第6版教材对应第6版的习题答案。这不是废话是血泪教训。1.2 这本书的习题到底在考什么自顶向下的习题设计有一个核心逻辑先让你看到网络应用长什么样再带你往下挖。比如第一章的“总览”部分习题会让你计算分组交换网的时延、吞吐量这些题看起来是数学实际上是在帮你建立“网络性能”的直觉。第二章应用层题目会围绕HTTP、SMTP、DNS展开很多题需要你实际去抓包或者模拟请求。第三章传输层TCP的拥塞控制、流量控制是重头戏习题里会有大量关于窗口大小、超时重传的计算。到了网络层和数据链路层题目会变得更“硬”——路由算法、IP分片、CSMA/CD的效率计算这些都需要你动手算。我个人的经验是这本书的习题答案不能只看结果必须看推导过程。因为很多题目的答案不是唯一的作者在答案里会解释“为什么选这个方案而不是那个”。比如TCP拥塞控制那道经典的“Tahoe vs Reno”对比题答案里会详细画出拥塞窗口的变化曲线如果你只看最终数值根本理解不了两种算法的本质区别。还有一个特点这本书的习题经常让你“设计一个协议”或者“分析某种场景下的性能”。这类题没有标准答案但答案册里会给出一个参考思路。我建议你在看参考答案之前先自己写一遍设计思路哪怕写得很粗糙。然后再对照答案看看自己漏掉了哪些边界条件。这个过程比单纯“看懂答案”有价值十倍。1.3 适合哪些人参考不适合哪些人这份答案整理适合三类人第一类是在校学生正在上计算机网络课需要课后练习来巩固第二类是考研党这本书是很多院校的指定参考书习题风格和真题有相似之处第三类是已经工作的开发者想补一补网络基础但没时间从头啃书想通过做题来快速定位知识盲区。不适合哪类人如果你只是想“抄答案交作业”那我劝你别浪费时间。这本书的习题答案如果只抄结果考试的时候该不会还是不会。另外如果你完全没有网络基础连“分组交换”和“电路交换”的区别都说不清直接看答案会很痛苦。建议先把每章前面的正文过一遍至少把核心概念搞懂再来看题。我个人的做法是先通读一章正文然后合上书把课后习题从头到尾做一遍能写多少写多少。做完之后再对照答案用红笔标出错误和遗漏。最后把错题涉及的知识点回到正文里再读一遍。这个循环走下来一章大概需要三到四个小时但效果非常扎实。2. 各章习题的核心考点与答案逻辑拆解2.1 第一章总览——时延、吞吐量与分层模型第一章的习题看起来简单其实暗藏杀机。最典型的题目是计算“分组从源到目的地经过多个路由器时的总时延”。很多人的第一反应是把所有链路的传输时延加起来但忽略了排队时延和处理时延。答案册里会明确告诉你在理想情况下处理时延可以忽略但排队时延取决于网络负载不能简单相加。我印象最深的一道题是两个主机之间有一条带宽为R的链路分组长度为L问端到端时延是多少。标准答案是L/R加上传播时延。但答案册里补充了一句如果考虑分组交换的存储转发机制每个路由器都会引入额外的传输时延。这个补充非常关键因为考试的时候经常把“经过N个路由器”作为条件让你算总时延。如果你只算了一次L/R那就错了。还有一道关于“分层模型”的题为什么网络要分层答案册给出的解释是“模块化设计便于独立演进”。但我觉得这个答案太简略了。实际做题的时候你需要结合具体例子来说明比如应用层的HTTP不需要关心底层是以太网还是Wi-Fi传输层的TCP也不需要知道IP层用的是IPv4还是IPv6。这种“关注点分离”的思想才是分层模型的核心价值。提示第一章的习题不要死记公式重点理解每个时延分量的物理意义。考试的时候经常把“传播时延”和“传输时延”混在一起考这两个概念一定要分清。2.2 第二章应用层——HTTP、DNS与Socket编程应用层的习题是最贴近实际开发的。HTTP部分会考“持久连接与非持久连接”的性能对比答案册里会给出具体的计算过程假设一个页面有N个内嵌对象非持久连接需要2N1个RTT持久连接需要N1个RTT。这个公式一定要自己推导一遍因为考试的时候可能会变形成“流水线方式”或“非流水线方式”公式会不一样。DNS部分有一道经典题递归查询和迭代查询的区别。答案册里画了一个层次图但我觉得文字描述更清楚递归查询是“你帮我查到底”迭代查询是“你告诉我下一步找谁”。实际做题的时候经常会把这两种查询方式混在一起让你判断某个场景下用的是哪种。我的经验是看是谁发起的查询。如果是本地DNS服务器向根服务器发起通常是迭代如果是主机向本地DNS服务器发起通常是递归。Socket编程的习题需要你写代码。答案册里会给出UDP和TCP的Python示例。我建议你把这些代码实际跑一遍用两台机器或者两个终端一个当客户端一个当服务端。跑通之后你会对“端口号”“套接字”“三次握手”这些概念有完全不同的理解。光看答案里的代码你永远不知道bind和listen到底在干什么。2.3 第三章传输层——TCP拥塞控制与可靠传输第三章是整本书最难的部分也是习题答案最厚的一章。TCP的拥塞控制有多个版本Tahoe、Reno、NewReno、CUBIC。第6版重点讲的是Reno和CUBIC。答案册里会画出拥塞窗口随时间变化的曲线你需要理解每个阶段的行为慢启动、拥塞避免、快速重传、快速恢复。有一道题我做了三遍才搞懂假设TCP连接在慢启动阶段拥塞窗口从1个MSS开始每经过一个RTT翻倍问经过多少个RTT才能达到某个阈值。答案册给出的公式是2^n 阈值所以n log2(阈值)。但这里有个坑如果阈值不是2的幂需要向上取整。而且实际中慢启动不是严格翻倍因为ACK的到达是连续的。答案册里会说明“这是简化模型”考试的时候按简化模型算就行。可靠传输部分GBN和SR的对比是必考题。答案册里会给出窗口大小和序号空间的关系GBN要求窗口大小≤2^k - 1SR要求窗口大小≤2^(k-1)。这个结论一定要记住考试经常考。但更重要的是理解为什么GBN的接收窗口是1所以发送窗口不能超过序号空间的一半SR的接收窗口和发送窗口一样大所以发送窗口不能超过序号空间的一半。注意第三章的习题一定要动手画时序图。光看文字答案很容易漏掉细节比如超时重传的时机、ACK的累积确认机制。画图的时候用不同颜色的笔标出数据包和ACK一目了然。2.4 第四章网络层——IP分片、路由算法与NAT网络层的习题计算量很大。IP分片那道题几乎每年都考一个大的IP数据报经过MTU较小的链路时如何分片答案册里会给出详细的计算步骤先算每个分片能携带的最大数据量MTU减去IP头长度然后算需要多少个分片最后设置每个分片的偏移量和标志位。这里最容易错的是偏移量的单位不是字节而是8字节的倍数。所以实际偏移量要除以8。路由算法部分Dijkstra和距离向量是重点。答案册里会给出完整的计算过程包括每一步的表格更新。我建议你自己先算一遍然后对照答案看看哪一步的松弛操作做错了。距离向量算法还有一个经典问题计数到无穷。答案册里会解释水平分割和毒性逆转如何解决这个问题。这部分内容考试经常出简答题需要你能用自己的话把原理说清楚。NAT那道题也很有意思一个家庭网络有多个设备如何通过一个公网IP访问互联网答案册里会给出NAT转换表的示例包括内部IP、内部端口、外部IP、外部端口。你需要理解NAT对端到端连接的影响比如为什么P2P应用需要NAT穿透。这部分内容和实际开发关系很大建议多花点时间。2.5 第五章链路层——CSMA/CD、MAC协议与交换机链路层的习题相对独立但计算题不少。CSMA/CD的效率公式是必考的效率 1 / (1 5 * 传播时延 / 传输时延)。答案册里会解释这个公式的推导过程包括为什么是5而不是其他数字。这个公式在考试的时候经常直接套用但你要知道它的前提条件网络负载饱和、帧长度固定、传播时延远小于传输时延。MAC协议部分ALOHA和CSMA的对比是重点。答案册里会给出吞吐量的计算公式纯ALOHA的最大吞吐量是0.18时隙ALOHA是0.37CSMA可以更高。这些数字需要记住但更重要的是理解为什么时隙ALOHA比纯ALOHA效率高——因为时隙ALOHA把时间离散化了减少了冲突窗口。交换机部分自学习算法的习题很典型一个帧到达交换机时交换机如何更新转发表答案册里会给出完整的流程先记录源MAC和入端口然后查找目的MAC如果找到就转发找不到就泛洪。这里有个细节如果目的MAC和源MAC在同一个端口交换机会丢弃该帧。这个规则考试经常考。2.6 第六章无线与移动网络——WiFi、蜂窝与移动IP第6版把无线和移动网络单独成章习题难度适中。WiFi部分会考CSMA/CA和CSMA/CD的区别为什么无线不能用冲突检测答案册里会解释因为无线信号衰减快而且存在隐藏终端问题发送方无法同时监听和发送。所以WiFi采用冲突避免而不是冲突检测。蜂窝网络部分移动性管理的习题比较抽象。答案册里会解释归属代理和外地代理的概念以及移动IP的路由过程。这部分内容如果只看答案很容易一头雾水。我的建议是画一个简单的拓扑图一个移动节点从归属网络移动到外地网络数据包如何经过归属代理转发。画完图之后再看答案里的文字描述就清楚多了。2.7 第七章多媒体网络——流式传输与QoS多媒体网络的习题偏概念计算题较少。流式传输部分会考“客户端缓冲”的作用为什么要缓冲答案册里会解释因为网络时延抖动缓冲可以平滑播放。缓冲大小的计算是一个考点缓冲时间 最大时延抖动 - 最小时延抖动。这个公式需要理解考试的时候可能会给一组时延数据让你算。QoS部分漏桶算法和令牌桶算法的区别是重点。答案册里会给出具体的参数计算漏桶速率、桶大小、令牌生成速率。这部分内容如果只看公式很容易混淆。我建议用生活类比漏桶就像水龙头滴水不管上面倒多少水下面总是匀速滴令牌桶就像停车场有令牌才能进令牌可以积累。这样理解之后再去看公式就清晰了。2.8 第八章网络安全——加密、认证与防火墙网络安全部分的习题需要一定的密码学基础。对称加密和非对称加密的对比是必考DES、AES、RSA的区别。答案册里会给出密钥长度和安全性之间的关系以及为什么RSA比AES慢。这部分内容考试经常出简答题需要你能说清楚“为什么对称加密适合加密数据非对称加密适合加密密钥”。认证部分数字签名和消息摘要的习题很典型。答案册里会解释数字签名用私钥签名公钥验证消息摘要用于保证完整性。这里有个容易混淆的点数字签名本身不加密消息只保证来源和完整性。如果需要保密还要用接收方的公钥加密。这个流程考试经常考建议自己画一遍。防火墙部分包过滤和状态检测的区别是重点。答案册里会给出ACL规则的示例包括允许和拒绝的规则顺序。这里有个坑ACL规则是从上到下匹配的一旦匹配就停止。所以规则的顺序非常重要。考试的时候可能会给一组规则让你判断某个数据包是否通过。我的经验是从第一条规则开始逐条比对不要跳。3. 如何高效使用这份答案我的实操流程3.1 做题前的准备工具与环境在开始做题之前你需要准备几样东西。第一是教材本身第6版纸质的或者电子的都行。第二是答案册确保是第6版对应的。第三是草稿纸和笔很多计算题需要手算。第四是抓包工具Wireshark或者tcpdump第二章和第三章的很多题目需要实际抓包来验证。我个人的习惯是每章开始之前先花十分钟把本章的“关键术语”过一遍。这本书每章末尾都有术语表把那些术语的中英文对照看一遍做题的时候就不会因为术语不熟而卡住。比如“congestion window”和“receive window”的区别如果不清楚第三章的题根本没法做。还有一个建议准备一个错题本。不是简单地抄题目而是记录“我为什么错了”和“正确的思路是什么”。比如“IP分片偏移量忘记除以8”这种错误记下来之后下次就不会再犯。我当年整理了整整一本错题考前翻一遍比看教材还管用。3.2 做题时的策略先易后难标记疑问每章的习题通常有30到40道不要从头到尾按顺序做。先快速浏览一遍把题目分成三类一眼就会的、需要想一想的、完全没思路的。先做第一类快速过一遍确认自己的理解没问题。然后做第二类这部分是提升的关键。最后做第三类如果想了十分钟还没思路直接看答案但要看懂之后自己再写一遍。我特别想强调“标记疑问”这个习惯。做题的时候如果某个地方不确定哪怕最后蒙对了也要在旁边打个问号。对答案的时候重点看这些打问号的地方。很多时候你蒙对的题其实理解是错的只是运气好。如果不标记对答案的时候一看“对了”就放过去了考试的时候同样的知识点换个问法就错了。还有一点计算题一定要写过程。哪怕你觉得心算就能出结果也要把公式和中间步骤写下来。因为考试的时候过程分往往比结果分还重要。而且写过程能帮你发现自己的思维漏洞。比如TCP拥塞控制的题如果你只写最终窗口大小不写每个RTT的变化很容易漏掉某个阶段。3.3 对答案时的技巧看推导不看结果对答案的时候最容易犯的错误是“只看结果对不对”。如果结果对了就翻过去如果结果错了就看一眼正确答案然后觉得自己“懂了”。这种对答案方式效果几乎为零。正确的做法是不管结果对不对都要看答案的推导过程。因为很多时候你的结果对了但思路是错的或者你的结果错了但思路是对的只是某个参数算错了。我举个例子第二章有一道题计算非持久HTTP连接的总响应时间。答案册里给出的公式是2N1个RTT。如果你只记这个公式考试的时候题目变成“流水线方式的持久连接”你就不会了。但如果你看推导过程理解每个RTT对应什么操作不管题目怎么变你都能自己推导出来。还有一个技巧对答案的时候用不同颜色的笔。黑色写自己的答案红色写正确答案蓝色写自己的反思。比如“这道题我漏掉了排队时延”“这道题的公式我记反了”。这样复习的时候一眼就能看到自己的薄弱环节。3.4 复习时的重点错题和概念图复习阶段不要再从头做题了。重点看错题本和概念图。概念图是我自己画的一种笔记把每章的核心概念用箭头连起来标注它们之间的关系。比如第三章从“可靠传输”出发分出“停等协议”“GBN”“SR”然后每个协议再分出“发送窗口”“接收窗口”“序号空间”。画完概念图之后你会发现很多题目其实是在考同一个知识点。错题本的使用也有技巧不要只看错题要看“当时为什么错”。如果是概念不清就回到教材把相关段落再读一遍。如果是计算失误就找几道类似的题再练一遍。如果是审题不清就在题目上把关键词圈出来提醒自己下次注意。我个人的经验是考前一周把错题本从头翻一遍每道错题在心里默想一遍正确的思路。如果某道题想了半天还是卡壳就重点标记考前再看一遍。这样下来考试的时候遇到类似的题基本不会出错。4. 常见问题与避坑指南4.1 版本混淆第5版和第6版的差异这是最常见的问题。第6版和第5版相比章节顺序有调整习题也有增删。最明显的变化是第6版把“网络安全”拆散到各章而第5版是单独一章。所以如果你用第5版的答案对第6版的题会发现很多题号对不上甚至有些题目的前提条件都变了。具体来说第6版第二章增加了“HTTP/2”和“QUIC”相关的内容习题里也有涉及。第5版没有这些。第三章的TCP拥塞控制第6版增加了CUBIC算法的介绍习题里也有相关计算。如果你用旧版答案这些题就没有参考。怎么避免最简单的办法看教材的封面和版权页确认是第6版。然后找答案的时候也找明确标注“第6版”的。如果实在找不到就对照目录看看章节标题是否一致。第6版的目录里“无线与移动网络”是第六章“网络安全”是第八章。如果目录对不上答案肯定不对。4.2 答案不一致不同来源的答案有出入怎么办网上的答案来源很多质量参差不齐。有时候同一道题两个版本的答案不一样。遇到这种情况不要慌先自己推导一遍。如果自己的推导和其中一个答案一致那就以自己为准。如果两个答案都和自己不一样那就回到教材看看教材里有没有相关的例题或说明。我遇到过一道题计算CSMA/CD的效率。一个答案给的是1/(15a)另一个给的是1/(13.44a)。后来我查了教材发现第6版用的是1/(15a)而3.44a是更精确的模型。考试的时候按教材的公式来就行。所以当答案不一致的时候以教材为准。还有一个办法看答案的推导过程。如果某个答案只有结果没有过程那它的可信度就低。如果两个答案都有过程那就对比过程看看哪个更合理。很多时候答案不一致是因为对题目的理解不同比如“传播时延”是否包含在“传输时延”里。这种时候看教材的定义最靠谱。4.3 计算题陷阱单位、取整和边界条件计算题是丢分的重灾区。我总结了几种常见的陷阱。第一是单位时延的单位是毫秒还是秒带宽的单位是Mbps还是MB/s这些一定要看清。比如“10Mbps”和“10MB/s”差了8倍算错了就全错。第二是取整IP分片的偏移量必须是8的倍数所以计算的时候要向上取整。TCP的拥塞窗口通常是整数个MSS如果算出来是小数要取整。这些细节答案册里会说明但做题的时候很容易忽略。第三是边界条件比如“窗口大小不能超过序号空间的一半”这个条件在计算的时候一定要检查。如果算出来的窗口大小超过了限制就要取最大值。还有“超时重传”的题如果超时时间小于RTT那就会一直重传这种边界情况考试经常考。提示做计算题的时候先把所有已知条件列出来统一单位然后写公式最后代入数值。不要跳步跳步容易出错。4.4 概念题误区不要用“常识”代替“定义”概念题看起来简单但很容易丢分。因为很多人用“常识”去答题而不是用教材里的“定义”。比如“为什么TCP需要三次握手而不是两次”常识可能会说“为了确认双方都能收发”但教材里的标准答案是“为了防止已失效的连接请求报文段突然又传送到了服务端因而产生错误”。这个答案更具体也更符合考试要求。再比如“为什么网络要分层”常识可能会说“为了简化设计”但教材里的答案是“模块化设计便于独立演进关注点分离”。这些标准表述需要记住考试的时候按教材的表述来答不要自己发挥。我的建议是每章的核心概念把教材里的定义抄一遍然后用自己的话复述一遍。如果自己的话和教材的意思一致那就说明理解了。如果偏差很大就回去再读教材。4.5 实操题建议代码要跑抓包要看第二章和第三章有很多实操题比如写一个Socket程序、抓一个HTTP请求。这些题不要只看答案一定要自己动手跑一遍。我当年就是只看答案觉得自己懂了结果考试的时候让写一个简单的UDP客户端我连bind和sendto的参数顺序都记不清。跑代码的时候建议用两台机器或者一台机器开两个终端。一个当客户端一个当服务端。这样你能看到完整的交互过程。抓包的时候用Wireshark过滤HTTP或者TCP看看三次握手的具体过程看看ACK号是怎么变化的。这些直观的体验比看文字答案深刻得多。还有一个建议把抓到的包保存下来和答案里的时序图对照。你会发现实际抓包的结果和教材里的简化模型有差异比如实际的RTT不是固定的ACK的到达也不是严格周期的。这些差异能帮你理解“简化模型”和“实际情况”的区别。4.6 时间管理每章应该花多少时间这个问题因人而异但我可以给一个参考。如果你每天能投入两小时一章大概需要三到四天。第一天通读正文第二天做习题第三天对答案和整理错题第四天复习和画概念图。这样下来八章大概需要一个月。如果你时间紧比如考前突击那就重点做每章的前20道题后面的题看答案理解思路。但我不建议完全跳过习题因为这本书的习题和考试题风格非常接近跳过习题等于放弃了最好的复习材料。还有一点不要在一道题上死磕太久。如果想了十五分钟还没思路就看答案。看懂之后自己再写一遍。死磕半小时不如看答案后自己写一遍。因为死磕的时候你的思维已经卡住了再看答案也很难有新的启发。5. 从答案到能力如何把习题转化为真正的网络功底5.1 建立自己的知识框架做完一遍习题之后你会发现很多知识点是重复出现的。比如“时延”这个概念第一章考第三章考第四章还考。这时候你需要把这些散落的知识点串起来建立一个自己的知识框架。我的做法是画一张大图把五层模型画出来然后把每章的核心概念填进去。比如应用层填HTTP、DNS、SMTP传输层填TCP、UDP网络层填IP、路由算法链路层填以太网、WiFi。然后标注每个概念的关键参数和公式。这张图不用很漂亮自己能看懂就行。有了这张图之后做题的时候就能快速定位这道题考的是哪一层涉及哪些概念需要哪些公式这样就不会出现“不知道从哪下手”的情况。5.2 把习题和实际网络问题对应起来这本书的习题很多都来自实际网络问题。比如“为什么视频流需要缓冲”对应的是实际中的视频卡顿问题。“为什么TCP需要拥塞控制”对应的是网络拥塞导致的丢包和延迟。如果你能把习题和实际问题对应起来理解会深刻得多。我举个例子第三章有一道题计算TCP在丢包时的吞吐量。答案册里给出的公式是“吞吐量 窗口大小 / RTT”。这个公式在实际中用来估算网络性能。如果你做过Web开发就知道为什么有时候下载速度上不去——不是带宽不够而是RTT太大窗口大小受限。再比如第四章的NAT题对应的是实际中的“为什么我的服务器在外网访问不了”。理解了NAT的工作原理你就知道需要在路由器上做端口映射。这种“习题到实际”的对应能帮你把知识变成能力。5.3 用习题答案反推教材的编写逻辑这本书的习题答案有一个特点很多答案会引用教材里的某一段话或某一个图。如果你仔细看会发现答案的推导过程其实就是教材正文的浓缩版。所以对答案的时候不妨反推一下作者为什么出这道题他想考哪个知识点这个知识点在教材的哪一页这种反推能帮你理解教材的编写逻辑。比如第二章的HTTP习题作者先考非持久连接再考持久连接最后考流水线。这个顺序和教材正文的顺序一致。理解了这一点你就知道每道题在知识体系中的位置复习的时候也能更有针对性。5.4 从“对答案”到“出题”最高效的学习方式是自己出题。做完一章的习题之后试着模仿作者的风格自己出几道题。比如把原题里的参数改一改或者把场景换一换。然后自己写答案再对照原题的答案看看自己的思路对不对。这个过程能帮你发现自己的知识盲区。比如你觉得自己懂了TCP拥塞控制但让你自己出一道“计算拥塞窗口”的题你可能就不知道从哪下手。这时候你就知道需要回去再读教材了。我当年复习的时候自己出了大概五十道题覆盖了所有章节。考试的时候发现有好几道题和我自己出的题思路很像。那种感觉比押中题还爽。5.5 长期维护把答案变成自己的笔记最后一点这份答案不要用完就扔。把它变成你自己的笔记。每做一遍就在上面补充自己的理解和心得。比如“这道题我错了三次原因是……”“这个公式可以这样记……”。这样下来这份答案就变成了你个人的学习档案。我到现在还保留着当年整理的答案册上面密密麻麻写满了批注。有时候工作中遇到网络问题翻一翻当年的笔记还能找到思路。这份答案的价值远远超过了“课后习题答案”本身。注意整理笔记的时候不要只抄答案要写自己的话。用自己的话复述一遍才能真正内化。如果只是抄写那和复印机没什么区别。6. 几个容易被忽略的细节6.1 答案里的“假设”和“简化”这本书的答案经常出现“假设”“简化”这样的词。比如“假设没有排队时延”“简化模型下忽略处理时延”。这些假设不是随便写的它们定义了题目的边界。做题的时候一定要看清这些假设因为考试的时候如果题目没有这些假设你就不能直接用答案里的公式。我遇到过一道题计算分组交换的端到端时延。答案里假设“所有分组长度相同”所以总时延是N * L/R。但如果题目说“分组长度不同”这个公式就不适用了。所以看答案的时候把“假设”圈出来提醒自己注意适用条件。6.2 图表题答案里的图怎么看这本书的习题有很多图表题比如画TCP的拥塞窗口曲线、画GBN的时序图。答案册里的图通常比较简略你需要自己补充细节。比如拥塞窗口曲线答案里只画了大致趋势但你需要标出每个阶段的具体数值和转折点。我的建议是自己先画一遍然后和答案对比。如果自己的图和答案的趋势一致但数值有偏差那就检查计算过程。如果趋势都不一致那就说明对算法的理解有误需要回去读教材。6.3 编程题答案里的代码不一定最优第二章和第三章的编程题答案里给出的代码通常是最简版本不一定是最优的。比如UDP客户端的代码答案里可能没有处理异常也没有设置超时。实际写的时候你需要自己补充这些。我的建议是把答案里的代码跑通之后试着改进它。比如加上异常处理、加上超时重传、加上日志输出。这样不仅能加深理解还能锻炼编程能力。我当年就是把答案里的TCP客户端改成了一个支持多线程的版本虽然花了不少时间但收获很大。6.4 开放题没有标准答案怎么办这本书有一些开放题比如“设计一个协议”“分析某种场景下的性能”。这类题没有标准答案答案册里给出的只是参考思路。遇到这种题不要纠结“我的答案对不对”而是关注“我的思路是否合理”。我的做法是先自己写一个方案然后对照答案看看自己漏掉了哪些考虑因素。比如设计一个可靠传输协议你可能只考虑了丢包但答案里还考虑了乱序、重复、超时。这些遗漏的点就是你需要补充的知识。6.5 跨章综合题如何串联知识点这本书的有些题会跨章比如“一个HTTP请求从客户端到服务端经过了哪些层每层做了什么”这种题需要你把五层模型串起来。答案册里会给出一个完整的流程但你需要自己理解每一步。我的建议是画一个流程图从应用层开始一层一层往下标注每层的协议和数据单元。比如应用层是HTTP报文传输层加上TCP头变成报文段网络层加上IP头变成数据报链路层加上帧头帧尾变成帧。画完这个图你对网络分层的理解会深刻很多。7. 我个人的使用体会这份答案我用了整整一个学期从最开始的对答案到后来的自己推导再到最后的自己出题每个阶段都有不同的收获。最大的体会是答案不是用来“看”的是用来“用”的。如果你只是把答案看一遍觉得自己懂了那考试的时候该不会还是不会。但如果你把答案当成一个工具用它来检验自己的理解、发现自己的盲区、补充自己的知识那它的价值就远远超过了“课后习题答案”本身。还有一个体会不要怕犯错。我当年做错了很多题有些题错了三四遍才搞懂。但正是这些错误让我对知识点的理解更加深刻。考试的时候那些我错过的题反而成了我最擅长的部分。所以错题不可怕可怕的是错了不改。最后分享一个小技巧把答案册里的关键公式和结论抄在一张卡片上随身带着。等车的时候、排队的时候拿出来看一眼。不用刻意背看多了自然就记住了。我当年就是这么把TCP拥塞控制的公式记下来的比死记硬背有效多了。
阅读完成 · 觉得有帮助?
咨询建站