Skip to content

2024年 408 计算机网络 第 40 题

计算机网络2024年选择题2分

题目

若浏览器不支持并行 TCP 连接,使用非持久的 HTTP/1.0 协议请求浏览 1 个 web 页,该页中引用同一个网站上 7 个小图像文件,则从浏览器传输 web 页请求建立 TCP 连接开始,到接收完所有内容为止,所需要的往返时间 RTT 数至少是( )

错因

A

把"对象数"算太少或者把每对象 RTT 算太少——只算到 4 RTT,明显遗漏。可能错路:以为浏览器一次能"一并请求所有 8 个对象"用 4 RTT 解决,完全无视"非持久 + 不并行"两个约束。

B

只算了"每对象一次请求-响应共 1 RTT",得到 1(HTML) + 7(图像) + 1(建首连)= 9 RTT。错的根源:忽略了"每个对象都要先单独建立 TCP 连接(三次握手 1 RTT)"——非持久 HTTP/1.0 + 8 个对象 = 8 次独立握手,不是 1 次。

C

只算 7 个图像 × 2 RTT = 14 RTT,漏算了 HTML 页面本身的 2 RTT——HTML 页面(即"web 页")也要 1 次 TCP 建连 + 1 次请求/响应。需要先把 HTML 拿回来浏览器才能解析其中的图片引用,这一步是必不可少的开端。

总解析

第一步:列清楚要传输的对象数量

题面给出:1 个 web 页(HTML 主页面)+ 7 个小图像 = 8 个独立对象

第二步:确认每个对象的 RTT 开销

约束条件:

  • 非持久 HTTP/1.0:每个对象单独打开一次 TCP 连接,传完即关闭
  • 不支持并行 TCP:所有连接串行进行,前一个对象完成后才能开下一个

对每个对象的耗时:

阶段用时
TCP 三次握手(建立连接)1 RTT
发送 HTTP 请求 + 接收 HTTP 响应1 RTT

每对象 = 2 RTT

第三步:列出全过程

步骤对象累计 RTT
1HTML 主页面2
2图像 14
3图像 26
4图像 38
5图像 410
6图像 512
7图像 614
8图像 716

第四步:得到答案

最终答案是 D(16)

编者注(知识延伸):HTTP 协议的"持久 / 并行"两条优化彼此独立——

  • 持久连接(HTTP/1.1 默认):复用同一条 TCP 连接传多个对象,每对象只需 1 RTT(请求-响应),节省的是建连接时间
  • 并行连接(早期浏览器优化):开多条 TCP 同时下载,把串行变并行,节省的是总耗时
  • 非持久 + 不并行(本题):每对象 2 RTT、且全部串行,最耗时
  • 持久 + 流水线(HTTP/1.1 pipeline):1 个 TCP,多请求可同时发出(不等响应),最快可只用 1 RTT 拿完所有响应(理想情况)

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题