简介:计算机网络谢希仁教材的课后习题解答资料,同时覆盖第八版与第七版内容,主要面向网络工程、计算机及相关专业本科生,也适合准备考研或期末复习的读者。文件包内为一份PDF电子文档,共1个文件,大小1.63MB,体积小巧,方便在线查看或下载后打印。内容按教材章节顺序编排,以第一章概述为例,给出了从1-01到1-18等题目的详细参考解答,涉及计算机网络提供的服务、分组交换要点、电路交换与分组交换时延比较、因特网发展阶段、网络分类、常用性能指标、发送时延与传播时延计算等核心知识点。答案多采用分点或公式推导形式,便于读者对照教材理清解题思路、巩固基础概念。目前已有197人学习使用,适合正在学习谢希仁计算机网络课程并需要课后答案辅助理解的读者。
1. 计算机网络谢希仁第八版课后答案:不是背答案,而是学解题路径
计算机网络谢希仁第八版课后答案这份资源,刚拿到手时我也以为是“抄作业专用”的PDF,翻完第1章才发现,真正的价值不在概念题的标准答法,而在1-09、1-10、1-17这一串计算题里藏着整套时延分析的骨架。无论你是期末冲刺、408备考,还是工作里偶尔要估算链路性能,把这条推导线拎清楚,比背二十个名词解释都管用。这份答案覆盖了第七版和第八版的常用题号,教材改版后也能对上。适合正在啃第一章的同学,也适合想快速回看“时延公式到底怎么来的”的从业者。
2. 分组交换时延公式:四个变量与一个极值问题的完整推导
第1章的大多数概念题靠记忆就能拿分,但1-09、1-10这两道计算题不一样。它们考的是你能不能把“时延 = 发送时延 + 传播时延 + 存储转发时延”在具体场景里拆开。答案直接给了式子,却没解释每项从哪来;很多同学背下来就往试卷上写,换个k值就翻车。
2.1 四个变量的边界条件
先从题设条件说起。要传送的报文共x bit,从源点到终点经过k段链路,每段链路传播时延为d,链路数据率为b,电路交换建立时间为s,分组交换的分组长度为p。另有一道题加了控制信息h,每个分组实际传输量是p+h。
这些变量的单位必须统一,否则代入公式单位对不上。
| 变量 | 物理含义 | 常用单位 | 典型取值 |
|---|---|---|---|
| x | 报文总长度 | bit | 10⁷ |
| b | 链路数据率 | bit/s | 10⁵~10⁹ |
| k | 链路段数 | 段 | 2~10 |
| d | 单段传播时延 | s | 10⁻⁵~10⁻² |
| p | 分组数据部分长度 | bit | 待优化变量 |
| h | 每个分组控制信息 | bit | 20~40 |
题设里有两个容易被忽略的隐藏条件:一是各结点排队等待时间忽略不计,二是传播时延只算链路传输时间,不算结点内部处理时间。这意味着分组交换时延只由三部分构成:源端把全部分组发完的发送时延、整条链路上的传播时延、中间结点逐跳转发的存储转发时延。
2.2 电路交换与分组交换的时延对比
先看不含控制信息h的基础版本。电路交换需要先建立连接,时延表达式为:
电路交换时延 = kd + x/b + s其中kd是k段链路的传播时延,x/b是源端把整条报文发上线路的发送时延,s是电路建立时间。注意电路建立之后,数据是“洗好澡再进浴缸”的,中间结点不做存储转发。
分组交换的基础版本时延为:
分组交换时延 = kd + x/b + (k-1) * p/b第一项kd同样是传播时延;第二项x/b是源端把所有分组连续发完的总发送时间,因为无控制信息时,x个比特的总发送时间就是x/b,与分组大小无关;第三项(k-1) * p/b是中间结点的存储转发延迟,每个中间结点要等收到一个完整分组才能转发,k段链路有k-1个中间结点,每个结点转发一个分组耗时p/b。
两式相减,分组交换比电路交换多出的部分正是(k-1) * p/b,少的部分是s。所以当s > (k-1) * p/b时,分组交换时延更小。这个结论的直觉是:如果建立连接的时间比逐跳存储转发还长,分组交换自然占优。
2.3 引入控制信息后的极值问题
1-10题把条件改得更接近真实网络:每个分组除了p bit数据,还要带h bit控制信息,转发时也按p+h一起传。此时总时延D为:
D = kd + (x/p) * ((p+h)/b) + (k-1) * ((p+h)/b)逐项拆解:
(x/p) * ((p+h)/b):x/p是分组数量,每个分组在源端占用的发送时间是(p+h)/b,两者相乘是源端发完全部分组的总时间。展开后等于x/b + xh/(pb),第二项就是全部分组首部带来的额外发送开销,分组p越小这一项越大。(k-1) * ((p+h)/b):中间k-1个结点逐跳转发,每个结点对一个分组的存储转发耗时(p+h)/b。kd:传播时延,与p无关。
把D展开成关于p的表达式:
D = kd + x/b + xh/(b*p) + (k-1)*p/b + (k-1)*h/b要使D最小,对p求导并令导数为零:
dD/dp = -xh/(b*p²) + (k-1)/b = 0解得:
p* = sqrt(x*h/(k-1))二阶导数2xh/(b*p³)恒大于零,说明这是极小值点。这个结果一眼就能看出规律:分组太小,控制信息占比失控;分组太大,中间结点存储转发时间变长。最优p刚好是两者的平衡点,而且链路数k越大,最优分组越小,因为中间结点多了,分组过大时逐跳转发的累积代价会更明显。
2.4 公式使用的三个误区
第一个误区:有人把(x/p) * ((p+h)/b)直接当成x/b,丢掉xh/(b*p)这一项,这样算出来的最优p就完全不对了。展开时务必保留首部开销项。
第二个误区:忘记乘分组数量。计算源端发送时间时,必须用(x/p) * (p+h)/b,而不是单个分组的(p+h)/b。
第三个误区:把传播时延kd也乘上分组数量,这是错把逐跳传播当成了逐分组传播。传播时延只与链路长度和信号速度有关,与分成多少组无关。
3. 传播时延、发送时延与传输效率:三个最容易混的计算
第1章里概念题再多,真正拉开分差的还是计算题。1-17、1-18、1-19这三道题分别考发送时延、传播时延和封装效率,很多人做错不是因为不会算,而是把“发送时延”和“传播时延”当成了一回事。
3.1 发送时延和传播时延先分清
发送时延是“把数据放进信道”的时间,等于数据长度除以数据率;传播时延是“数据在信道里跑”的时间,等于信道长度除以信号传播速率。前者取决于速率和数据量,后者只取决于物理距离和介质。
以1-17题为例:收发距离1000km,信号速率2×10⁸ m/s,数据长度10⁷ bit,速率100kb/s。
发送时延 = 10⁷ / 10⁵ = 100 s 传播时延 = 10⁶ / (2×10⁸) = 0.005 s此时发送时延是传播时延的两万倍。把条件换成数据长度10³ bit、速率1Gb/s:
发送时延 = 10³ / 10⁹ = 10⁻⁶ s = 1 μs 传播时延 = 10⁶ / (2×10⁸) = 0.005 s结论直接反转。这个结论不是考完就完的,实际网络设计里它决定了很多东西:传大文件时加大带宽立竿见影,因为瓶颈是发送时延;传小报文时加大带宽没用,因为瓶颈已经变成了传播时延,这也是为什么跨洋链路不管带宽多大,RTT都降不下来。
3.2 正在传播的比特数本质是时延带宽积
1-18题问不同媒体长度和数据率下,链路上正在传播的比特数。计算逻辑是:先算传播时延,再乘以数据率。
| 媒体长度 | 传播时延 | 1Mb/s 时比特数 | 10Gb/s 时比特数 |
|---|---|---|---|
| 10cm | 5×10⁻¹⁰s | 5×10⁻⁴ bit | 5 bit |
| 100m | 5×10⁻⁷s | 5×10⁻¹ bit | 5×10³ bit |
| 100km | 5×10⁻⁴s | 5×10² bit | 5×10⁶ bit |
| 5000km | 2.5×10⁻²s | 5×10⁴ bit | 5×10⁸ bit |
10cm网卡电缆在1Mb/s速率下,链路里半个比特都放不下,这说明带宽再高,链路太短也用不上;而5000km的广域网在10Gb/s速率下,链路上同时有5×10⁸ bit在飞行,这对应着大约62.5MB的数据悬在途中。
这个“传播时延 × 数据率”就是时延带宽积,它决定了TCP窗口至少要做多大才能把链路填满。做网络性能估算时,我一般会先用这个公式算一次链路容量,再看传输层窗口够不够,很多吞吐上不去的案例都卡在这儿。
3.3 传输效率:封装开销占比怎么算
1-19题给了一个很具体的封装过程:100字节应用数据,加20字节TCP首部,再加20字节IP首部,最后加18字节以太网首尾,总开销58字节。
效率1 = 100 / (100+20+20+18) = 63.3% 效率2 = 1000 / (1000+20+20+18) = 94.5%思路不复杂,分子是应用层数据,分母是应用层数据加所有层的封装开销。但这里有个容易踩的坑:题目给的是TCP场景,首部20字节;如果换成UDP,传输层首部只有8字节,总开销就是46字节而不是58字节。考试时题目怎么给就怎么算,平时却应该把这个式子写成通用形式:
传输效率 = L / (L + 传输层首部 + 网络层首部 + 链路层首尾)L越大效率越高,所以TCP有Nagle算法合并小报文、HTTP/2要做多路复用,本质都是在减少首部开销占比。如果只看AB两问的答案而不看这个通式,题目微调一下就又不会了。
4. 分层与协议:从“为什么要分层”到五层模型速记
计算题能拿分,概念题也不能丢,毕竟第1章选择题和简答题的出题密度一直不低。1-20到1-27这几道题围绕分层结构、协议三要素和五层模型展开,背下来不难,但要理解每一条背后的理由。
4.1 分层的五个直接理由
问“为什么要分层”,直接答五条:各层独立,本层只调用下层服务而不关心服务怎么实现;灵活性好,一层内部变化不影响其他层;结构可分割,每层选最合适的技术实现;易于实现和维护;促进标准化。
这五条不是空话,每条都能对应一个真实场景。比如TCP从IPv4平滑过渡到IPv6,靠的就是“网络层变化不影响运输层”,这正是灵活性条目的含义。答题时建议先写“各层独立、灵活性好、结构可分割、易于实现维护、促进标准化”,再各补一句解释,简答题基本满分。
4.2 协议三要素:语法、语义、同步
网络协议三要素是高频填空题:语法规定数据与控制信息的结构或格式,语义规定需要发出何种控制信息、完成何种动作、做出何种响应,同步规定事件实现顺序的详细说明。
这里最容易丢分的是“同步”。很多人把同步理解成“时钟同步”,其实协议里的同步指的是时序关系,即谁先发、谁后发、收到后多久应答。TCP三次握手就是同步的典型体现——SYN、SYN+ACK、ACK的顺序本身就是协议的一部分。
4.3 协议是“水平”的,服务是“垂直”的
1-21题这句话值得单独拎出来讲:协议是控制两个对等实体进行通信的规则,而服务是下层通过层间接口向上层提供的能力。协议是“水平的”,服务是“垂直的”。
举个日常例子,你调用HTTP接口时,只需要知道它能返回什么数据,不需要知道TCP怎么拆包、IP怎么选路,这就是“上层只看见服务、看不见协议”;而对等实体之间必须遵守同样的HTTP规范才能对话,这就是“协议在水平方向上约束对等层”。还应注意“服务访问点SAP”是相邻两层交互的逻辑接口,考试中常与端口号、socket这类具体概念挂钩,但SAP本身是抽象概念。
4.4 五层协议各层功能一页讲完
综合OSI和TCP/IP优点的五层模型,每层功能可以用一个词概括:
| 层次 | 核心功能 | 数据单位 | 传输性质 |
|---|---|---|---|
| 应用层 | 为用户的应用进程提供直接服务 | 报文 | 端到端 |
| 运输层 | 两个进程之间可靠端到端通信 | 报文段 | 端到端 |
| 网络层 | 选择路由,分组正确送达目的站 | 分组/数据报 | 逐跳 |
| 数据链路层 | 相邻结点间无差错传帧 | 帧 | 逐跳 |
| 物理层 | 透明传送比特流 | 比特 | 逐跳 |
注意区分端到端和逐跳:物理层、数据链路层、网络层的通信发生在相邻结点之间,每段链路各管一段;运输层的通信发生在源主机进程和目的主机进程之间,中间路由器完全不理会TCP首部。这个区分在判断题和选择题里反复出现。
4.5 Everything over IP 与 IP over Everything
最后是“everything over IP”和“IP over everything”这两个说法。前者指TCP/IP协议栈可以为各式各样的应用提供服务,HTTP、SMTP、DNS都跑在IP之上;后者指IP协议可以在各式各样的物理网络上运行,以太网、ATM、无线链路都能承载IP分组。
这两句话的共同点是IP协议的地位:上层应用百花齐放,下层网络五花八门,IP夹在中间做“万能胶水”。答题时能举出“微信视频走TCP/UDP、底层链路可能是5G也可能是光纤”这种例子,就算真懂了。1-23题的“约会不见不散”同样值得记一笔:协议必须考虑异常情况,否则双方互相等待死锁,这放到网络里就是“协议要能处理丢包、超时、重传”。
5. 避坑:这份课后答案里的五处“暗伤”
PDF资源好用,但毕竟是从旧扫描件整理过来的,里面有不少OCR残留和版本错位的痕迹。这几处坑不提前说清楚,对着答案复习时很容易被带偏。
5.1 OCR 残影:把 ARPANET 认成 APPANET
现象:答案里出现“从单个网络APPANET向互联网发展”,看起来像某个没听说过的网络。
原因:这是典型的OCR识别错误,原书是ARPANET(阿帕网),扫描件里R被认成了P,类似的还有“2X108”这种丢了上标的写法。
解决:看到这类拼写异常直接按常识修正。ARPANET是互联网的前身,这个知识点在选择题里经常出现,错了非常可惜。识别这类问题有个技巧:把它放回原句里读一遍,不通顺的基本都是OCR残影。
5.2 公式被 OCR 截肢:p=[(xh)/(k-1)]^0.5 是怎么复原的
现象:1-10题答案末尾出现“求得p=[(xh)/(k-1)]"0.51”,看着像0.5次方又像乱码。
原因:原稿是p=√(xh/(k-1)),OCR把根号识别成了引号加0.5,导致公式看起来像“0.51”。
解决:遇到数学公式乱码,不要猜,直接回到题目推导一遍。这道题先写总时延D,再对p求导令导数为零,自然得到根号形式。我自己的习惯是:所有带根号、上标、下标的公式一律按“推导复原”而不是“看字面复原”,这样顺带把知识点又过了一遍。
5.3 版本错位:第七版第八版题号对不上
现象:拿着第八版教材目录去PDF里定位,发现第1章题号对不上,某些题在第七版是1-09,在第八版可能已经变成1-11。
原因:答案PDF本身混合了两个版本的内容,第八版部分章节重新编号过,而水印里还混着“谢希仁计算机网络第七版课后答案”这样的残留文字。
解决:以习题内容为准,不要以题号或页码为准。搜索时用“关键词+题号”定位,比如搜“报文长度和分组长度分别为x和p+h”,跳转比翻目录快得多。这道题两个版本的题干几乎一样,只是编号错位,不影响使用。
5.4 背答案陷阱:换数就翻车
现象:把1-19题答案背成“100字节时63.3%,1000字节时94.5%”,期末考试把应用层数据长度改成500字节就不知道分母该加什么。
原因:只背结果不背通式。题目给了TCP 20字节、IP 20字节、以太网18字节,这三个数字是针对这一题的,换一种封装协议或换一组数据就全部失效。
解决:每次对完答案,额外做一步抽象:100/(100+20+20+18)写成L/(L+TCP+IP+MAC),再把L换成500验证一遍。这样背的是“计算路径”,不是“具体数值”。
5.5 答案里“10Gb/s”的口径不统一
现象:1-18题题面问“数据率为1Mb/s和10Gb/s时”,但答案部分按1Gb/s计算,得出来的比特数比按10Gb/s算少一个数量级。
原因:原始文件不同来源的录入口径不一致,题面写了10Gb/s,答案却按10Gb/s=10⁹b/s处理了。
解决:以题面为准重新算。10Gb/s是10¹⁰ b/s,不是10⁹ b/s;遇到答案里数量级可疑的数字,用“传播时延×数据率”重算一遍。这也是这类PDF的共同特点——答案可以作为参考,但不能当作免检产品。
6. 进阶:把课后答案变成考前自查清单
资源拿到手不能只当“答案书”用。我的习惯是用它反推考点,把每一道题映射成一张速查表,考前只看表不翻PDF。
先整理高频考点:
| 考点 | 核心公式/结论 | 易错点 |
|---|---|---|
| 发送时延 | 数据长度/数据率 | 与传播时延混淆 |
| 传播时延 | 链路长度/信号速率 | 与距离单位换算 |
| 分组交换总时延 | kd + x/b + (k-1)(p+h)/b | 漏掉存储转发项 |
| 最优分组长度 | p = √(xh/(k-1)) | 忘记乘x/p个分组 |
| 时延带宽积 | 传播时延 × 数据率 | 链路短时会小于1 |
| 传输效率 | L/(L+各层首尾) | 首部字节数随协议变化 |
| 协议三要素 | 语法、语义、同步 | 同步是时序而非时钟 |
| 五层功能 | 物理/链路/网络/运输/应用 | 区分端到端与逐跳 |
速查表背完后,做三遍,每一遍的强度不同。
第一遍盖住答案独立做题,卡壳的地方用红笔标记,这时标记出来的是“真不会”,而不是“看过答案我以为我会”。第二遍对照答案改,重点看卡壳处的公式展开,比如分组交换时延里(k-1)(p+h)/b为什么是这一项。第三遍把题目条件换数,比如把k从5改成8、把h从20改成40,口头推一遍结果,能推出来才算掌握。
做完这三遍,整份PDF才算真正“消化”了。我从那以后,每次拿到课后答案类资源,都强制自己走一遍“先做、再对、换数复验”的流程,坚决不给自己看答案找借口。这份PDF本身内容够全,第1章的计算题、概念题、简答题都覆盖到了,但能不能变成分数,最终还是取决于你用它的方式。希望帮到你。
本文还有配套的精品资源,点击获取