一 真题2009-35
2009-35题. 数据链路层采用后退N帧(GBN)协议,发送方已经发生了编号为0-7的帧。当计时器超时时,若发送方只收到0,2,3号帧的确认,则发送方需要重发的帧数是()。
A. 2
B. 3
C. 4
D. 5
二 题目要素解析
场景: 数据链路层,后退 N 帧协议 (GBN)。
已知条件:
- 发送方已发送帧:0, 1, 2, 3, 4, 5, 6, 7(共 8 帧)。
- 超时发生时收到的确认(ACK):0, 2, 3。
- 隐含条件:GBN 协议采用累积确认(Cumulative Acknowledgment)。
求: 发送方需要重发的帧数。
核心考点: GBN 协议的确认机制 (累积确认)和重发策略(回退 N 帧)。
三 哔哔详解
这道题的关键在于理解 GBN 协议中 "累积确认" 的含义。
-
分析收到的 ACK:
- 题目说收到了 0, 2, 3 号帧的确认。
- 在 GBN 中,确认帧 ACK n 的意思是:编号为 *n* 的帧以及它之前的所有帧都已经正确收到了。
- 所以:
- 收到 ACK 3 → 说明 0, 1, 2, 3 号帧都已经被接收方正确接收了。
- 收到 ACK 2 和 ACK 0 其实是冗余的,因为 ACK 3 已经包含了它们的确认信息。
-
确定窗口位置:
- 既然 0-3 号帧都确认了,那么发送窗口的下一个要发送的帧 是 4 号。
- 这意味着,4, 5, 6, 7 号帧是未确认的。
-
处理超时与重发:
- 题目提到 "计时器超时"。在 GBN 中,只要超时发生(通常是最早发送的那个未确认帧超时),发送方就会重发所有未被确认的帧。
- 未被确认的帧是:4, 5, 6, 7。
- 一共是 4 帧。
所以,发送方需要重发 4 帧。
四 参考答案
参考答案 C
五 考点精析
5.1 停止等待\GBN\SR 区别与联系
| 比较维度 | 停止等待(Stop-and-Wait, SW) | 后退 N 帧(Go-Back-N, GBN) | 选择重传(Selective Repeat, SR) |
|---|---|---|---|
| 核心思想 | 每发一帧,停等 ACK;收到后才发下一帧。 | 允许连续发送;一旦出错,从第一个未确认帧开始全部重传。 | 允许连续发送;仅重传出错/丢失帧,缓存乱序帧。 |
| 发送窗口大小 | 1 | >1(最大为 2\^n - 1 ,n 为序号位数) | >1(需满足 W_s + W_r \\leq 2\^n ) |
| 接收窗口大小 | 1 | 1 | >1(通常等于发送窗口) |
| 确认方式 | 逐个确认 | 累积确认(ACKn 表示 0~n 全收) | 逐个确认(ACKn 仅确认帧 n) |
| 乱序帧处理 | 不可能出现 | 丢弃 | 缓存,待缺失帧到达后按序交付 |
| 重传粒度 | 单帧 | 从出错帧开始全部重传 | 仅重传出错或超时的帧 |
| 信道利用率 | 很低(尤其在高延迟链路中大量空闲) | 中等 | 很高(避免无效重传) |
| 实现复杂度 | 最简单(无需缓存、单计时器) | 中等(单计时器或逻辑等效,无接收缓存) | 最复杂(需接收缓存、每帧独立计时器、序号管理) |
| 优点 | 实现简单,逻辑清晰,资源开销小 | 比 SW 利用率高,实现相对简单 | 带宽效率最高,适合高误码率环境 |
| 缺点 | 信道利用率极低,不适合高速或长距离链路 | 出错时重传大量正确帧,浪费带宽 | 实现复杂,需更多内存和控制逻辑 |
| 适用场景 | 低速、可靠、短距离链路(如早期串口通信) | 一般网络环境(如 HDLC、部分无线协议) | 高带宽、高误码率链路(如卫星通信、现代 Wi-Fi、TCP 变种) |
5.2 三种协议的信道利用率
5.2.1 信道利用率的定义
定义:
信道利用率是指发送方在一个完整的传输周期内,实际用于发送有效数据的时间 占总时间的比例。
公式表达:
U=发送有效数据的时间 ÷ 一个完整的传输周期
- 分子: 发送方把数据 "推" 到信道上所花费的时间(纯干活的时间)。
- 分母: 从发送第一比特数据开始,到发送方收到确认(或超时重传)为止的总时间(干活 + 等待)。
5.2.2 关键参数设定
| 符号 | 含义 | 单位 |
|---|---|---|
| LLL | 数据帧长度 | bit |
| LackL_{\text{ack}}Lack | 确认帧(ACK)长度 | bit |
| RRR | 链路带宽 | bps |
| dpropd_{\text{prop}}dprop | 单向传播时延 | s |
| Tt=LRT_t = \frac{L}{R}Tt=RL | 数据帧传输时延 | s |
| Tack=LackRT_{\text{ack}} = \frac{L_{\text{ack}}}{R}Tack=RLack | ACK 帧传输时延 | s |
| Tp=dpropT_p = d_{\text{prop}}Tp=dprop | 单向传播时延 | s |
📌 关键比值:
若忽略 ACK 时延,则设 TackT_{\text{ack}}Tack≈0
若考虑 ACK 时延,则保留 TackT_{\text{ack}}Tack
5.2.3 计算公式
| 协议 | 忽略 ACK 时延的利用率 | 考虑 ACK 时延的利用率 | 关键影响 |
|---|---|---|---|
| 停止等待 | TtTt+2Tp\displaystyle \frac{T_t}{T_t + 2T_p}Tt+2TpTt | TtTt+Tack+2Tp\displaystyle \frac{T_t}{T_t + T_{\text{ack}} + 2T_p}Tt+Tack+2TpTt | ACK 时延直接降低效率 |
| GBN / SR (窗口受限) | WTtWTt+2Tp\displaystyle \frac{W T_t}{W T_t + 2T_p}WTt+2TpWTt | WTtWTt+Tack+2Tp\displaystyle \frac{W T_t}{W T_t + T_{\text{ack}} + 2T_p}WTt+Tack+2TpWTt | ACK 时延影响较小(因 W 较大) |
| GBN / SR (窗口 ≥ 所需最小值) | 111 (100%) | WTtWTt+Tack≈1\displaystyle \frac{W T_t}{W T_t + T_{\text{ack}}} \approx 1WTt+TackWTt≈1 | 几乎无影响 |
六 考点跟踪
| 年份 | 题号 | 考查内容 | CSDN 参考链接 | VX参考链接 |
|---|---|---|---|---|
| 2009 | 第 35 题 | GBN 协议超时重传帧数计算 | ||
| 2012 | 第 36 题 | GBN 协议/信道利用率 | ||
| 2015 | 第 35 题 | GBN 协议/信道利用率 | ||
| 2016 | 第 35 题 | 滑动窗口协议 | ||
| 2018 | 第 35 题 | 停止等待协议 | ||
| 2019 | 第 35 题 | 滑动窗口协议 | ||
| 2020 | 第 36题 | 停止等待协议 | ||
| 2023 | 第 35 题 | GBN 协议/停止等待协议/SR | ||
| 2024 | 第 37 题 | SR(滑动窗口协议) |
说明 :本文内容基于公开资料整理,参考了包括但不限于《数据结构》(严蔚敏)、《计算机操作系统》(汤小丹)、《计算机网络》(谢希仁)、《计算机组成原理》(唐朔飞)等国内高校经典教材,以及其他国际权威著作。同时,借鉴了王道、天勤、启航等机构出版的计算机专业考研辅导系列丛书 中的知识体系框架与典型题型分析思路。文中所有观点、例题解析及文字表述均为作者结合自身理解进行的归纳与重述,未直接复制任何出版物原文。内容仅用于学习交流,若有引用不当或疏漏之处,敬请指正。