Appearance
三种ARQ协议对比
考情分析
三种 ARQ 协议的对比是 408 的经典考点,选择题和大题都会出。常见考法包括:给一张对比表填空、给定序号位数求各协议的窗口大小、给定链路参数求信道利用率、分析某场景下各协议的重传帧数。
考频:★★★★
三种协议全面对比
| 对比项 | 停止-等待 | GBN(后退N帧) | SR(选择重传) |
|---|---|---|---|
| 发送窗口 | 1 | ||
| 接收窗口 | 1 | 1 | |
| 确认方式 | 逐帧确认 | 累积确认 | 逐个确认 |
| 重传策略 | 重传当前帧 | 回退到出错帧,重传该帧及后续所有帧 | 只重传出错帧 |
| 序号位数 | 1 | ||
| 接收方对乱序帧 | 不存在乱序问题 | 丢弃 | 缓存 |
| 接收方缓冲区 | 不需要 | 不需要 | 需要(缓存乱序帧) |
| 实现复杂度 | 低 | 中 | 高 |
| 信道利用率 | 低 | 中~高 | 高 |
窗口大小数值对比
给定序号位数
| 序号范围 | 停等 | GBN 最大 | SR 最大 | |
|---|---|---|---|---|
| 1 | 0~1 | 1 | 1 | 1 |
| 2 | 0~3 | 1 | 3 | 2 |
| 3 | 0~7 | 1 | 7 | 4 |
| 4 | 0~15 | 1 | 15 | 8 |
窗口约束条件的统一理解
三种协议的窗口约束本质上都是为了避免序号重叠导致新旧帧混淆:
- 停止-等待:
,天然不会混淆 - GBN:
, ,所以 - SR:
, ,所以
统一公式:
信道利用率
通用公式
设
当
三种协议的利用率对比
| 协议 | 信道利用率 | 条件 |
|---|---|---|
| 停止-等待 | 固定 | |
| GBN | ||
| SR |
GBN 和 SR 的信道利用率公式相同,区别在于
计算例题
已知: 数据率 = 2 Mbps,帧长 = 1000 bit,单程传播时延 = 250 ms,序号位数
基础参数:
停止-等待:
GBN:
SR:
这个例子说明:在高时延链路上,即使用了滑动窗口协议,如果窗口太小(远小于
如何选择协议
| 场景 | 推荐协议 | 理由 |
|---|---|---|
| 低速短距离、实现简单优先 | 停止-等待 | 实现最简单,效率够用 |
| 误码率低、链路质量好 | GBN | 实现比 SR 简单,重传代价不大 |
| 误码率高、带宽珍贵 | SR | 只重传出错帧,带宽浪费最少 |
| 卫星链路、高时延 | SR + 大窗口 | 传播时延大,需要大窗口和精确重传 |
疑难点
数据链路层的流量控制和传输层的流量控制有什么区别?
两层都做流量控制,但作用范围不同。数据链路层的滑动窗口控制的是相邻两个节点之间的帧传输速率,窗口大小通常固定。传输层(TCP)的滑动窗口控制的是端到端的数据传输速率,窗口大小动态调整——受接收窗口(rwnd)和拥塞窗口(cwnd)共同决定,取两者最小值。
数据链路层的可靠传输和传输层的可靠传输有什么区别?
数据链路层在每一跳保证帧的正确交付(检错+重传),传输层在端到端保证报文段的正确交付。两者互不替代——即使每一跳都可靠,路由器内部仍可能丢包(比如缓冲区溢出),这部分不在数据链路层的管辖范围内,所以端到端的可靠传输仍然必要。
易错点
1. GBN 和 SR 的利用率公式形式相同,但窗口上限不同
不能因为公式形式一样就认为两者利用率相同。同样
2. 信道利用率不能超过 1
当
3. "信道利用率"和"有效吞吐率"的区别
信道利用率
4. 别忘了 ACK 传输时间
很多题目会说"忽略 ACK 传输时间"或"ACK 帧长度可忽略",这时候分母就是
高频考点清单
- 三种协议的对比表(窗口大小、确认方式、重传策略)
的统一约束 - 给定
,求各协议的最大窗口 - 信道利用率公式及其分段条件
- 给定链路参数,计算三种协议的利用率
- 分析同一丢帧场景下,三种协议各自需要重传的帧