说起计算机网络复习,谢希仁老师这本第八版教材几乎是无数人的入门标配。很多人把第一章“概述”当成纯记忆章,觉得背背概念就过去了,但真正考试和考研408里,第一章的失分点恰恰最多。第一章看起来是“常识”,实际上埋了整本书最基础的定义、性能指标计算、分层模型对比这些硬核内容,一旦理解不到位,后面学数据链路层、网络层会很吃力。
这篇内容我打算不按教材顺序逐题念答案,而是把第一章习题按题型拆开,讲清楚每类题背后的原理和易错点,尤其是时延计算、分组交换与电路交换对比、五层协议这些高频考点,全部给出可直接套用的解题步骤和避坑方法。不管你是期末突击、考研备考,还是单纯想把计算机网络基础打扎实,照着这篇梳理一遍,第一章基本就稳了。
1. 第一章到底在讲什么:从目录到核心主线
1.1 为什么第一章容易被低估
第一次翻开谢希仁第八版的人,很容易被第一章“温柔的外表”骗了。它不像第三章讲CSMA/CD那样满屏协议细节,也不像第四章路由算法那样全是表格和计算,第一章通篇在说定义、分类、性能、体系结构,看起来只要“记住”就行。
但实际做题你会发现,第一章的题目恰恰是“看着都会,一算就错”。比如请你说说电路交换和分组交换谁更快,很多同学背了结论“分组交换更好”,但题目换成具体数值让你算总时延,立刻不知道链路条数k、分组个数、存储转发时延怎么代入。再比如“时延带宽积”这个概念,教材一句话带过,但计算题里稍微变个单位就错一片。
我的建议是第一遍复习先别急着刷题,先把第一章的主线抽出来:计算机网络是什么——怎么分类——性能怎么衡量——靠什么组织起来(协议与分层)。这条主线一旦建立,后面的概念都是往框架里填肉。
1.2 全章的隐形主线:从“是什么”到“怎么分层”
谢希仁第一章的章节结构其实暗含了一个递进逻辑:
- 首先回答“计算机网络是什么”,给出定义和分类,包括广域网、城域网、局域网、个人区域网,以及公用网和专用网的区别。
- 然后回答“网络是怎么构成的”,把互联网分成边缘部分和核心部分,边缘部分是主机,核心部分是路由器等交换设备,两者通过接入网连接。
- 接着回答“网络好不好用、快不快”,引出速率、带宽、吞吐量、时延、时延带宽积、往返时间RTT、利用率这七个核心性能指标。
- 最后回答“网络这么大,怎么让不同厂商设备互相通信”,于是有了协议、服务、分层,以及OSI七层、TCP/IP四层、五层协议体系结构。
把这四条主线串起来看,第一章就不是零散知识点,而是一张地图。做题时遇到任何一道概念题,先判断它考的是哪条主线,再回忆对应知识块,正确率会明显提升。
2. 概念型习题的精解与辨析
2.1 计算机网络定义与分类的三种考法
教材里计算机网络的定义很严谨:把若干台计算机通过通信设备与线路连接起来,在协议控制下实现资源共享和信息传递的系统。考试一般不会直接让你默写定义,而是换着方式考你三个点。
第一,考“资源共享”和“信息传递”的区别。有些题目会故意写“计算机网络的主要目的是传输数据”,这句话对一半,因为传输数据是手段,最终目的还包括资源共享。单独出现“互联起来的计算机集合就是网络”也不完整,必须强调“在协议控制下”这个关键词。
第二,考网络分类的维度。按作用范围分为广域网WAN、城域网MAN、局域网LAN、个人区域网PAN,按使用者分为公用网和专用网。这里常出判断题,比如“广域网覆盖范围大,所以传输速率一定比局域网高”,这就是错误选项,因为广域网往往跨地区长距离传输,速率反而可能低于某些高速局域网。
第三,考互联网与互连网的区别。第八版教材明确区分了这两个词:互连网是网络互连形成的大网络,泛指由多个计算机网络互连而成的网络;互联网则特指全球最大的那个互连网,使用TCP/IP协议族。很多同学在这里栽跟头,记住“互联网是大写开头的专有名词,互连网是通用说法”这个区分。
2.2 性能指标:八个指标一个都不能混
第一章最核心的计算基础就是性能指标,期末和考研都爱考,而且喜欢在一个选项里混着考。我先把七个指标列成一张对照表,后面计算题还要单独展开。
| 指标 | 物理含义 | 常用单位 | 关键点 |
|---|---|---|---|
| 速率 | 每秒传输的比特数 | bit/s,也叫bps | 注意bit和Byte换算,1 Byte = 8 bit |
| 带宽 | 网络通信线路传送数据的能力 | bit/s | 单位与速率相同,表示最高数据率 |
| 吞吐量 | 单位时间内通过某个网络或接口的实际数据量 | bit/s | 受带宽和网络负载限制 |
| 时延 | 数据从一端传到另一端所需时间 | s | 包含发送、传播、处理、排队四部分 |
| 时延带宽积 | 传播时延 × 带宽,表示链路中正在传输的比特数 | bit | 理解成“管道里同时在跑的比特” |
| 往返时间RTT | 从发送方发送数据到收到确认总共经历的时间 | s | 不包含发送时延,只算往返路上的时间 |
| 利用率 | 信道或网络被利用的时间百分比 | 无 | 不是越高越好,超过一定值时延会急剧增大 |
这里最有迷惑性的是“带宽”这个词。日常口语里带宽指网速,但教材里带宽是信道能传递的最高数据率,是个固定能力值,吞吐量才是实际跑出来的数据率。考题如果问“某链路带宽为100 Mbit/s,实际传输速率为80 Mbit/s”,前者是带宽,后者是吞吐量,一定要区分清楚。
还有个很容易忽略的点:网络利用率过高会引起时延急剧增大,教材给了一个公式 D = D0 / (1 - U),U是利用率。很多人背了公式但没理解,当U趋近于1时,分母趋近于0,时延趋近无穷大。所以网络设计不是让信道利用率越高越好,必须留出余量。
2.3 协议、服务、接口:水平与垂直的关系
“协议是水平的,服务是垂直的”这句话是第一章的高频考点,也是一堆人搞混的地方。
协议是同一层对等实体之间通信的规则,比如两个主机上的运输层协议在相互通信,这叫水平。服务是下层通过接口向上层提供功能,比如网络层为运输层提供数据传送服务,这叫垂直。接口是上层使用下层服务的“窗口”,也叫服务访问点SAP。
常考的选择题有两种出法。一种问“协议与服务的关系”,正确表述是:协议的实现保证了能够向上一层提供服务,本层的服务用户只能看见服务而无法看见下面的协议,也就是说协议对上层透明。另一种问“对等实体”的含义,比如“两个主机中运输层之间通信时,它们是对等实体吗”,答案是肯定的,因为对等实体指同一层次的两个实体。
我记得有一道经典辨析题:“网络协议由语法、语义和同步三个要素组成,其中语法规定了事件实现顺序”,这句话是错的,因为规定事件实现顺序的是“同步”,语法只负责规定数据与控制信息的结构或格式,语义负责确定动作和响应。很多同学把语法和同步记反了,做题时只要看到“顺序”两个字,直接锁定同步即可。
3. 计算型习题的完整推导
3.1 时延计算:发送时延与传播时延的单位陷阱
第一章计算题的大头就是时延。教材把总时延拆成四部分:发送时延、传播时延、处理时延、排队时延,其中前两个是计算主力,后两个在题目里通常忽略不计。
- 发送时延 = 数据块长度(bit) ÷ 信道带宽(bit/s),也就是把数据“推”进信道需要的时间。
- 传播时延 = 信道长度(m) ÷ 电磁波在信道上的传播速率(m/s),也就是比特在信道上“跑”的时间。
我拿一道自己编的典型题演算一遍:
一条长度为100 km的链路,电磁波传播速率为 2×10^8 m/s,信道带宽为 10 Mbit/s,现要发送一个 1 MB 的文件,求发送时延和传播时延。
先算传播时延:100 km = 100×10^3 m,传播时延 = (100×10^3) ÷ (2×10^8) = 0.5×10^-3 s = 0.5 ms。
再算发送时延。这里有个大坑:文件大小是1 MB,很多人直接写 1×10^6×8 bit,得出发送时延0.8 s。严格来说,计算机存储容量里1 MB = 2^20 B = 1,048,576 B,转换成bit就是 1,048,576×8 = 8,388,608 bit。带宽单位里M是10^6,所以发送时延 = 8,388,608 ÷ (10×10^6) ≈ 0.839 s。
所得结论:发送时延约839 ms,传播时延只有0.5 ms,两者差了三个数量级。这就是为什么很多填空题问“数据量大时,总时延主要取决于发送时延”,因为瓶颈在发送端把数据推入信道的过程。
3.2 时延带宽积与往返时间RTT的物理意义
时延带宽积这个指标,公式很简单:时延带宽积 = 传播时延 × 带宽。但怎么理解它很关键。我常用“水管模型”来解释:一条水管从你家接到小区门口,水从入口流向出口需要一段时间,这段时间里水管里已经充满了正在流动的水。时延带宽积就相当于“水管里正在流动的水量”,单位是bit,表示发送端发出后还在链路上“没到达接收端”的那些比特。
延续上面那道题,传播时延0.5 ms,带宽10 Mbit/s,则时延带宽积 = 0.5×10^-3 × 10×10^6 = 5000 bit。这意味着发送端从第一个比特进入链路到第一个比特被接收端收到之前,链路上同时存在5000 bit的数据。如果发送端和接收端之间需要确认机制(比如停止等待协议),这5000 bit就对应着“发送端最多能发出多少数据而收不到确认”的上限。
往返时间RTT则是一个更直观的概念,它表示从发送方发出数据开始,到发送方收到来自接收方的确认总共经历的时间。注意RTT只包含“路上跑的时间”和接收端处理确认的时间,不包含发送端自己发送数据的发送时延。有个易错判断题:“RTT等于两倍的传播时延”,这个说法要加前提:当处理时延、排队时延、发送确认的时间都可忽略时,RTT才近似等于两倍的传播时延。判断题里只要说得太绝对,你就得小心。
3.3 分组交换与电路交换的延时对比计算
这是第一章最经典的计算题型,没有之一。电路交换的特点是先建立连接再传数据,连接建立需要时间s;分组交换不需要建立连接,但每个分组在途经的每个路由器上都有一次“存储转发”的时延。
教材里给过一个通用模型:要发送的数据共x bit,从源主机到目的主机共经过k段链路,每段链路的传播时延为d,数据传输速率为b bit/s。电路交换建立连接的时间为s。现在比较两种方式的总时延。
电路交换总时延 = 连接建立时间s + 所有链路传播时延k×d + 发送时延(x/b)。
分组交换要复杂一点。假设报文划分成若干个分组,每个分组长度为p bit(含首部,但简化计算时通常忽略首部)。分组的数量为 x/p 个(这里x和p都是bit数,所以数量刚好是x/p)。第一个分组从源主机发出经过第一段链路到达第一个路由器,需要时间 p/b + d;路由器收到后立即转发,又经过 p/b + d 到下一跳。这样推导到最后一批分组,总时延可以写成:
分组交换总时延 ≈ (x/p)×(p/b) + k×d + (k-1)×(p/b)
第一项是源主机把所有分组全部发送出去的总发送时延,第二项是k段链路的传播时延之和,第三项是每个分组在中间k-1个路由器上经历的存储转发时延(后面的分组每经过一个路由器都要等前面分组转发完)。
如果题目再简化,假设忽略传播时延d和处理时延,那么:
- 电路交换总时延 = s + x/b
- 分组交换总时延 = x/b + (k-1)×p/b
两式相减,只要 (k-1)×p/b < s,也就是所有分组在路由器上的额外转发时延之和小于电路交换的连接建立时间,分组交换就更优。这也解释了为什么电路交换适合长时间持续通信(连接建立时间被摊薄),而分组交换适合突发数据传输(不用先花时间建立连接)。
举个具体数字。假设x = 10000 bit,b = 1000 bit/s,k = 4,p = 1000 bit,s = 0.5 s。分组交换总时延 = 10000/1000 + 3×(1000/1000) = 10 + 3 = 13 s。电路交换总时延 = 0.5 + 10000/1000 = 10.5 s。这种情况下电路交换反而更快,因为分组太多、每个分组的转发时延累加起来超过了建连时间。如果s = 2 s,则电路交换总时延12 s,分组交换13 s仍然更慢;如果s = 5 s,则电路交换15 s,分组交换更优。这组数字说明,背诵“分组交换优于电路交换”是危险的,一切以计算为准。
4. 分层结构原理题与高频考点
4.1 OSI七层、TCP/IP四层与五层协议的对照
体系结构这一节,几乎所有考试都会出对照题。我给你一张整理好的对照表,然后解释记忆逻辑。
| 五层协议 | OSI七层 | TCP/IP四层 | 核心功能 |
|---|---|---|---|
| 应用层 | 应用层 | 应用层 | 提供应用程序间通信 |
| 应用层(会话层、表示层功能合并) | 会话层 | 应用层 | 管理会话、同步 |
| 应用层(会话层、表示层功能合并) | 表示层 | 应用层 | 数据格式转换、加密压缩 |
| 运输层 | 运输层 | 传输层 | 端到端可靠通信 |
| 网络层 | 网络层 | 网际层 | 分组转发与路由选择 |
| 数据链路层 | 数据链路层 | 网络接口层 | 相邻节点间可靠传输 |
| 物理层 | 物理层 | 网络接口层 | 透明传输比特流 |
简化记忆的诀窍是:OSI七层的会话层和表示层功能,在TCP/IP里被并进了应用层;OSI的数据链路层和物理层,在TCP/IP里被并进了网络接口层。所以五层协议可以理解成“七层取中间、两端合并”的折中方案,这也是教材重点采用的模型。
常考的一个点是:面向连接和面向无连接的服务分别在哪一层?网络层和运输层都可以提供这两种服务,但绝大多数教材强调运输层的TCP是面向连接的,UDP是无连接的;网络层的IP协议是无连接的。有人会误以为“网络层只提供无连接服务”,实际上网络层也可以有虚电路这种面向连接的实现方式,只是互联网采用的IP是无连接的数据报服务。
4.2 各层核心功能与典型设备对应
另一类高频题是“某个设备或功能属于哪一层”。我按照五层模型整理了一组最常考的对应关系:
- 物理层:中继器、集线器,负责透明地传送比特流,不关心比特代表什么含义。
- 数据链路层:网桥、交换机(传统二层交换机),负责将比特组合成帧,处理相邻节点之间的传输差错。
- 网络层:路由器,负责分组转发和路由选择。
- 运输层:没有典型的硬件设备,体现为主机操作系统中的TCP/UDP协议栈。
- 应用层:各种应用软件,如HTTP、FTP、DNS、SMTP等。
考试判断题喜欢考“交换机是网络层设备”之类的话术,一定要记住:普通交换机工作在数据链路层,路由器才是网络层设备。三层交换机虽然能处理IP,但那是集成了路由功能的特殊设备,考试默认场景下两者要区分清楚。
这个知识点还容易跟“网桥转发表”这类题绑定。网桥根据MAC地址转发帧,属于数据链路层。所以复习第一章时看到“网桥”“交换机”这类词,先反应到二层,再看题目要不要你算转发表,那是第三章的内容了,但基础概念第一章节就得定下来。
4.3 第一章最容易被问到的“为什么分层”
原理题里必有一道是“为什么要分层”。答案不是一句“为了简化问题”就完了,要分几条说明:
- 各层之间相互独立,某一层不需要知道下一层如何实现,只需要通过接口使用下一层提供的服务。
- 灵活性高,任何一层实现技术变化,只要接口关系不变,上下层都不受影响。
- 易于实现和维护,整个大问题被分解成若干小问题逐个解决。
- 促进标准化工作,每层功能明确,各厂商可以分别开发符合标准的模块。
答题时最好再加一句“分层也有缺点,比如有些功能会跨层重复出现”,比如差错校验在数据链路层和运输层都有,增加了开销。答出这一句会比只会背优点的人显得有理解深度,阅卷时容易拿高分。
还有一个相关的高频概念——协议栈。所谓协议栈就是将所有协议按层次组合在一起构成的系统,最典型的就是TCP/IP协议栈。题目如果问“一台主机里能同时运行多种协议栈吗”,答案是可以的,不同协议栈可以由操作系统加载,服务不同的应用需求,但互联网主机至少要有TCP/IP协议栈才能接入互联网。
5. 常见错误与考前自查清单
5.1 我做题时踩过的坑
第一个坑是分不清“bit/s”和“Byte/s”。教材里速率、带宽、吞吐量统统用bit/s,但很多应用软件显示的下载速度是Byte/s,一换算就要乘8。做题时题目给100 Mbit/s带宽,问传10 MB文件要多久,如果直接把10当10 M用,结果会差近8倍。我的习惯:先统一单位再代入公式,文件大小先乘8转成bit,带宽里的M统一按10^6处理。
第二个坑是传播时延和发送时延的顺序。总时延是先把数据全部发送到链路上,然后数据头开始传播,所以总时延不是简单相加了事,而是要看有几个数据块、经过几段链路。特别是分组交换里“最后一个分组到达终点”的时间,很多同学只算了发送时延和传播时延,漏掉了中间路由器的k-1次存储转发时延。我建议做题时画一条时间轴,把每个分组的发送、传播、转发过程标上去,基本不会错。
第三个坑是RTT和时延带宽积的组合题。比如题目说“RTT为100 ms,带宽为1 Gbit/s,求发送窗口至少多大才能让信道利用率达到100%”,第一步就得求时延带宽积,但要注意时延带宽积用的是单向传播时延,也就是RTT的一半,不是RTT本身。很多参考书喜欢在这里挖坑,公式用错直接扣分。
5.2 第一章核心考点速查表
把章节过完一遍,我整理了一份考前30分钟速查表,全部是选择题和填空题的最爱。
| 考点 | 易错点 | 一句话结论 |
|---|---|---|
| 网络分类 | 广域网速率不一定高于局域网 | 按范围分类,不代表速率等级 |
| 互联网 vs 互连网 | 专有名词混淆 | 互联网特指全球TCP/IP网络 |
| 协议三要素 | 语法/语义/同步对应关系 | 结构格式选语法,动作响应选语义,顺序时序选同步 |
| 时延类型 | 发送时延与传播时延混淆 | 跟数据量有关的是发送时延,跟距离有关的是传播时延 |
| 时延带宽积 | 单位是bit不是s | 传播时延乘带宽,表示链路上正在传输的比特数 |
| RTT | 不是简单的2倍传播时延 | 包含处理、确认等其他时间,判断题慎选绝对表述 |
| 协议与服务 | 水平垂直搞反 | 协议是水平的,服务是垂直的 |
| 分层好处 | 只答简化问题太单薄 | 独立、灵活、易维护、标准化四条必须完整 |
| 各层设备 | 交换机/路由器归属 | 交换机二层、路由器三层 |
考前把这个表从头过一遍,再针对不熟的点回看教材对应小节,性价比很高。
5.3 给408考研同学的第一章衔接建议
很多准备408的同学会问,谢希仁教材第一章和考研大纲匹配度怎么样,要不要配合网课。先说结论:第一章内容高度匹配408选择题考点,但408不会只考背诵,而是把第一章的性能指标计算作为背景,结合后面的传输层、网络层一起出综合题。
所以我的建议是,第一章复习要做到两个“熟练”:一是时延计算和分组交换推导要熟练到看到数据就能列式;二是五层协议体系结构要熟练到能随时画出层次图并说出每层协议的例子。比如看到HTTP要立刻反应出它在应用层、底层依赖TCP、TCP又依赖IP,这个链一旦断了,后面就很难补。
网课方面,湖科大教书匠的计算机网络课对零基础很友好,适合先把概念过一遍,但光看课不刷题不行,408真题里第一章相关的选择题一定要刷两遍以上。如果你有精力,把谢希仁教材每章后面的习题都做一遍,对建立“计算机网络思维”帮助非常大,尤其是一章的计算题,妥妥的送分题,绝不能丢。
最后再分享一个小技巧:复习第一章时别急着往后翻,先自己默写一遍五层协议栈和每层主要协议。能写出来,说明第一章的骨架已经装进脑子了;写不出来,回头再看一遍本章的体系结构图。这个习惯我一直用到考研前,每次默写都能发现自己的知识漏洞,比盲目刷题高效得多。