Skip to content

2011年 408 计算机网络 第 35 题

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

题目

数据链路层采用选择重传协议(SR)传输数据,发送方已发送了 0 ~ 3 号数据帧,现已收到 1 号帧的确认,而 0、2 号帧依次超时,则此时需要重传的帧数是( )。

错因

A

只重传 1 个——可能误以为只看最近超时的 1 帧。但题面明确说 0 和 2 都超时了,应各自独立重传。错的根源:忽略 SR 是"每帧独立超时" 而不是"一帧超时影响后续"。

C

按 GBN 思路算——把 0 号超时后回退 N 帧,重传 0、2、3 共 3 帧。但本题是 SR 协议,不是 GBN:SR 只重传超时的帧(0 和 2),不会"连带"重传未超时的 3 号。错的根源:把 SR 和 GBN 的重传策略搞反。

D

按"全部重传"算——把 0、1、2、3 都重传 4 帧。但 1 号已经被确认(题面给出),不需要重传;3 号也未超时,不需要重传。错的根源:以为发送窗口里的所有帧都要重传,没意识到已 ACK 的不重传、未超时的不重传。

总解析

第一步:列出每帧的状态

帧号已发送?已收 ACK?超时?
0✅ 超时
1✅ 已确认
2✅ 超时
3❌ 未超时

第二步:明确 SR 协议的重传策略

SR(Selective Repeat,选择重传)的核心特征:

  • 每帧维护独立的超时计时器
  • 超时哪一帧就重传哪一帧——不影响其他帧
  • 接收方独立缓存乱序帧,按序号交付应用

与 GBN(Go-Back-N)形成鲜明对比:GBN 一帧超时,从该帧起所有后续帧都要重传(即使后续帧已成功到达)。

第三步:判断哪些帧需要重传

帧号是否重传原因
0✅ 重传已超时未确认
1❌ 不传已被 ACK 确认
2✅ 重传已超时未确认
3❌ 不传未超时(仍在等待 ACK)

重传 0 和 2 共 2 帧

最终答案是 B(2)

编者注(生僻术语):SR vs GBN 的核心差异是重传开销 vs 接收复杂度的工程权衡——

  • GBN:接收方简单(只缓存按序帧,乱序丢),但浪费带宽(一错全错)
  • SR:接收方复杂(要缓存乱序帧),但带宽利用率高(只重发错的)

现代实际系统(TCP)虽然概念上更接近 GBN(只用累计 ACK),但通过 SACK 选择确认机制实现了类似 SR 的效果——TCP 这是一种"GBN 框架 + SR 优化"的混合模式。

最后更新:

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

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