Skip to content

2024年 408 计算机网络 第 37 题

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

题目

如图所示,主机甲向乙发送数据,采用 SR 滑动窗口协议,发送窗口为 4,序号为 0 ~ 7。在 t1 时刻,帧 F1 出错,甲在 t1 和 t2 时刻发送的数据帧分别是( )。

主机甲主机乙F0F1丢失F2F3ACK0ACK2ACK3丢失t1时间

图中 F1 在传输中丢失(接收方未收到、所以不会有 ACK1);ACK0、ACK2、ACK3 是接收方对应每帧的单独确认(SR 协议特征);ACK3 在返回甲的路上丢失。t1 标在甲收到 ACK0 的时刻;t2 是后续 F1 超时(图中省略,下文计算)。

错因

A

两端都错

  • t1 误填 F1:t1 是甲刚收到 ACK0 的时刻,F0 确认后窗口右移、应该发新帧 F4。F1 此时还没超时(甲不知 F1 已丢,得等定时器到期)
  • t2 误填 F3:F3 已经发过、且接收方实际收到(ACK3 是乙发的,丢失发生在返程)。即便 ACK3 丢导致 F3 进入"待确认"状态,t2 时刻是F1 超时触发的——SR 协议只重传出错那一个帧

B

t1 误填 F1(同 A 第一项),t2 答 F4 错——t2 是F1 超时触发的重传时刻,应该重传 F1,不是发新帧 F4。

C

顺序颠倒 + 第一项错——把"先重传后发新"反着来了。SR 协议的核心是接收方缓存乱序帧、发送方窗口在最早未确认帧被确认时才右移。t1 时甲收到 ACK0,最早未确认帧(F0)被确认 → 窗口右移 → 应该发 F4 而不是 F3(F3 已经发过)。

总解析

SR 协议(Selective Repeat)的两个核心规则

  1. 接收方对每个正确接收的帧单独发 ACK(不像 GBN 那样累积 ACK)
  2. 发送方窗口仅当最早未确认帧被确认时右移(即便后续帧已 ACK 也不能跳过)

追踪甲发送窗口的演进

时刻事件甲已发未确认已收 ACK发送窗口此时甲能发
初始[F0, F1, F2, F3]F0 ~ F3
发送 F0~F3 后F0, F1, F2, F3[F0, F1, F2, F3](满)不能发新(窗口满)
t1:收到 ACK0F1, F2, F3F0[F1, F2, F3, F4](右移 1)F4(新帧)
收到 ACK2F1, F2 实际已发 + F4F0, F2[F1, F2, F3, F4](不动;F1 是最早未确认)F4 已发
ACK3 丢失(甲未收到)F1, F2, F3, F4(按甲视角 F3 仍未确认)F0, F2不动
t2:F1 定时器超时重传 F1(仅重传出错的那一帧,SR 特征)

SR 协议下 t2 不会重传 F2/F3/F4(GBN 协议才会"回退 N"重传)——只重传超时的 F1。

最终答案

  • t1 时刻 → F4(窗口右移后发的新帧)
  • t2 时刻 → F1(F1 超时后选择性重传)

最终答案是 D(F4、F1)

理解要点:SR 与 GBN 的关键差别都集中在"出错时怎么处理"——

  • GBN(回退 N):F1 超时后回退到 F1 重发整窗(F1, F2, F3 全重发)
  • SR(选择重传):F1 超时后只重传 F1,其他帧已被接收方缓存

SR 网络利用率高、但接收方需要更多缓存。本题选 D 的核心是认对 SR 的"选择"特征。

编者注(答案存疑):题面"在 t1 时刻,帧 F1 出错"对应图里 F1 在传输中丢失(出错的一种)。骨架原文有的版本里是"F3 出错"但与图中实际事件不符——按图实际事件 F1 丢失 + ACK3 丢失推理出答案 D,与骨架一致。我们在题面里采用了与图一致的"F1 出错"表述。

最后更新:

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

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