Skip to content

2025年 408 计算机网络 第 39 题

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

题目

Time 是一个提供时间查询服务的 C/S 架构网络应用,支持客户通过 UDP 和 TCP 向 Time 服务器请求时间。若某客户与 Time 服务器通信往返时间为 8ms,则该客户分别通过 UDP 和 TCP 向该服务器请求服务,所需的最少时间分别是( )。

错因

A

把 TCP 当成 UDP 算——以为 TCP 也是"发请求 → 收响应"一个 RTT 搞定,完全忽略了 TCP 必须先三次握手建立连接 才能传数据。这是基础概念漏洞:TCP 是面向连接协议,连接建立本身就要消耗 1 个 RTT。

C

把 UDP 和 TCP 的耗时反了——给 UDP 分配 16 ms(多算了一步)、给 TCP 分配 8 ms(漏算握手)。可能的思路:把 UDP 误以为"发请求 + 收响应 + 还要回个 ACK"(多了一个半 RTT),同时把 TCP 误以为"建好连接后只算一个 RTT"。两个错误都是常见认知偏差。

D

UDP 算成 16 ms 是错的——UDP 是无连接协议,没有任何握手。客户发请求(半 RTT)到服务器,服务器回响应(半 RTT)回客户,合计 1 个 RTT = 8 ms。选 D 的人可能误把 UDP 当成"也要交互握手才能传数据",或者把"请求 + 响应 + 应用层确认"凑够 2 RTT。

总解析

第一步:UDP 走完一次请求 / 响应需要多少 RTT

UDP 无连接、无握手,最少流程:

  1. 客户发"请求时间"报文 → 服务器(半 RTT)
  2. 服务器回"当前时间"报文 → 客户(半 RTT)

合计 1 RTT = 8 ms

第二步:TCP 走完一次请求 / 响应需要多少 RTT

TCP 必须完成三次握手才能传应用数据:

步骤方向累计耗时
① SYN客户 → 服务器0.5 RTT
② SYN+ACK服务器 → 客户1 RTT
③ ACK(可与请求数据捎带)客户 → 服务器1.5 RTT
④ 服务器返响应服务器 → 客户2 RTT

关键技巧:第三次握手 ACK 可以与"请求时间"应用数据捎带(piggyback) 一起发出,省下一次 RTT。这是 TCP "首次数据可与第三次握手一起发"的标准优化。

合计 2 RTT = 16 ms

第三步:核对

UDP 8 ms + TCP 16 ms → 命中选项 B(8 ms,16 ms)

最终答案是 B

编者注(生僻术语):"最少时间" 这里的关键限定 = "成功完成一次时间查询所需的最低 RTT 数",假设网络无丢包、无重传、无拥塞延迟。如果题面问"最坏" 时间,要把 SYN 重传、应用层超时等纳入,结果会大得多——本题只问最少所以走最优路径。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数