2010年408真题第34题,一道把计算机网络里最基础的分组交换网络传输时延概念考到极致的经典选择题。我第一次做这道题时,几乎没犹豫就选了"两个800ms"——报文先传到路由器需要800ms,路由器再传到主机乙又需要800ms,加起来1600ms,多合理。结果一对答案才发现,题目问的不止报文交换,还有一个分组交换,而分组交换的答案不是1600ms,不是800ms,而是一个让很多考生摸不着头脑的801ms。
如果你正在准备408考研,或者正在复习计算机网络里分组交换、存储转发、时延计算这部分内容,这道题是你绕不过去的标杆题。它看似只有一道选择题,实际上把报文交换和分组交换在存储转发条件下的时延模型、单位换算、流水线思想全部考了一遍。今天我把这道题的来龙去脉完整拆开,从机制到计算,从误区到变式,一次性讲透。
1. 这道真题的坐标:2010年第34题为什么值得反复研究
1.1 它在408试卷里的位置
2010年是408第一次全国统考的第一年,命题组还在摸索期,那一年计算机网络部分的题目整体偏基础,但第34题是个例外。它考的不是"背概念",而是把"分组交换网络的传输时延"从机制到计算完整地考了一遍。放在整张试卷里看,它是当年计算机网络部分区分度比较高的一道题:基础扎实的同学一分钟算出答案,概念模糊的同学会在1600ms、800ms、801ms三个数字之间反复横跳。
从408考纲来看,这道题覆盖了两个常考考点:一是交换方式(电路交换、报文交换、分组交换)的对比,二是时延的构成与计算。这两个考点在每年真题里几乎都会换着花样出现。尤其值得注意的是,分组交换这一节近几年考得越来越细,比如有的年份考"分组交换中最后一个分组的时延",有的年份考"加上了传播时延之后总时延怎么算",有的年份考"多台路由器串联时分组交换的总时延"。这些题追根溯源,都是2010年第34题的变体。
1.2 为什么说它是时延计算的"母题"
我之所以把它叫"母题",是因为它的模型足够干净。整道题只有两段链路、一台路由器、一种报文长度、一种分组大小,不涉及复杂的排队模型,也不涉及时延的叠加顺序,条件给得清清楚楚。这种干净模型最适合用来理解"分组交换为什么比报文交换快"这个根本问题。
很多同学复习时容易陷入一个误区:把时延题当成小学数学题,记住了几个公式就开始套,结果题目一变就懵。2010年34题非常适合用来破除这个误区。你如果只是背下"分组交换总时延 = (分组数+链路数-1)×单分组单链路发送时延",那你只能算这一道题;但你如果理解了802ms和801ms差在哪里、为什么多出来的1ms来自最后一个分组在第二段链路上的发送时间,那你在考场上遇到任何分组交换的时延题,都能飞快地画出时间轴。
我再强调一点:这道题背后是一个真实工程问题的缩影。互联网为什么要把数据拆成一个个分组发送,而不是把整个文件一股脑丢出去?就是因为分组交换可以在路由器上形成流水线式转发,前一个分组还在第二段链路上跑,后一个分组已经从主机出发了。2010年34题用一道选择题,把这个核心思想精确地表达了出来。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 题目里的隐藏条件:读题阶段就要抓住的四个关键词
2.1 题干完整还原
先还原题干。原题大致是这样的:
主机甲通过一个路由器(存储转发方式)与主机乙互联,两段链路的数据传输速率均为10Mbps。主机甲分别采用报文交换和分组大小为10kb(忽略分组首部开销)的分组交换向主机乙发送一个8Mb的报文,若忽略链路传播延迟、处理延迟和排队延迟,则两种交换方式完成该报文传输所需的总时间分别为( )。
四个选项的组合基本围绕800ms、801ms、1600ms这几个数字展开。这里先不给答案,后面会完整推导。大家先跟我一起把题干条件拆开看。
读题阶段最忌讳的就是看到"忽略"两个字就直接跳过。实际上,一道时延计算题的所有信息,都藏在这些看似"无关紧要"的限定词里。题目中的每一个条件都在做减法——减掉你不该考虑的东西,剩下的部分才是考你的重点。
2.2 "存储转发方式"到底决定了什么
第一个关键词是"存储转发方式"。它意味着路由器必须把收到的完整数据单元先存下来,校验无误后,才能开始往下一跳转发。这个机制决定了数据在经过路由器时,必然会产生一次完整的"接收等待"。
精确地说,存储转发会产生两类时间开销:一是接收完整数据的时间,二是把数据发送到下一段链路的时间。当传播时延和处理时延被忽略时,路由器内部的"存储+转发"时间就集中表现为第二段链路上的发送时延。
很多同学在这里会犯一个隐藏错误:以为路由器收到第一个bit就能立刻往出转发。那是"直通交换"(cut-through)的思想,不是存储转发。题目明确写了"存储转发方式",就排除了"边收边发"的模型。这一点决定了我们在计算时,必须把"整包到达路由器"当作一个关键时间节点。
2.3 三个"忽略"和一组单位数字
题目中明确忽略三类时延:传播延迟、处理延迟、排队延迟。
- 传播延迟,是信号在链路上跑的时间,等于链路长度除以信号传播速度。题目里假设为0,意思是发出去的bit"瞬间"到达对端,但不代表发送过程本身不花时间。
- 处理延迟,是路由器进行查表、校验、转发的内部耗时。假设为0后,路由器只要存满一个数据单元就能立刻转发,没有任何额外等待。
- 排队延迟,是数据在路由器出口队列中排队等待发送的时间。假设为0后,路由器永远不用排队,出口链路随时空闲。
这三项全部归零之后,整个时延模型只剩下一项:发送时延,也叫传输时延,也就是把数据从端口"
