1 题型 - 三种可靠传输协议
408 学习笔记:1 题型 - 三种可靠传输协议。保留原有知识内容、公式与图示;有对应原件时提供查看和下载入口。
本页目录
描述:停止等待、后退 N 帧和选择重传都是自动重传请求协议。三者的主要差别在于发送/接收窗口大小、确认方式、接收方是否缓存失序帧,以及发生丢帧或超时时需要重传多少帧。
1.1 三种协议对比
| 项目 | 停止等待 SW | 后退 N 帧 GBN | 选择重传 SR |
|---|---|---|---|
| 发送窗口 | $W_S=1$ | $1<W_S\le2^m-1$ | 通常 $W_S\le2^{m-1}$ |
| 接收窗口 | $W_R=1$ | $W_R=1$ | $W_R>1$,可缓存失序帧 |
| 确认方式 | 每帧确认 | 累计确认 | 逐帧/选择确认 |
| 计时器 | 一次只等待一个帧 | 通常为最早未确认帧计时 | 每个未确认帧分别计时 |
| 超时重传 | 重传当前帧 | 从最早未确认帧起,重传其后所有已发送未确认帧 | 只重传超时或被选择拒绝的帧 |
| 失序帧处理 | 不涉及流水失序 | 丢弃失序帧 | 缓存接收窗口内的失序帧 |
其中 $m$ 为帧序号位数,序号空间大小为 $2^m$。
1.1.1 窗口与序号空间
GBN 使用累计确认且接收窗口为 1,为避免新旧帧混淆:
$$W_S\le2^m-1$$
SR 的接收方会缓存失序帧,发送与接收窗口不能在循环序号空间中重叠:
$$W_S+W_R\le2^m$$
若 SR 的发送窗口和接收窗口相等,则:
$$W_S=W_R\le2^{m-1}$$
1.2 判断重传范围
1.2.1 GBN:看最高累计确认
ACK i 的编号语义必须先服从题目约定:有的教材用它表示“帧 $i$ 及以前均已确认”,也有协议用它表示“下一帧期待编号为 $i$”,此时实际累计确认到 $i-1$。本题采用前一种约定,因此 GBN 的 ACK i 表示截至帧 $i$ 的数据均已按序收到。即使发送方没有分别收到较早的 ACK,只要收到了更大的累计 ACK,较早帧也视为已确认。
若最早未确认帧超时,发送方从该帧开始,把其后所有已经发出但未被累计确认的帧全部重传。
1.2.2 SR:看各帧自身状态
SR 的每个帧独立确认、独立计时。某帧超时只重传该帧;其他已经正确到达或仍未超时的帧不随它一起重传。
1.3 历年真题
1.3.1 2009 年:GBN 累计确认
发送方已经发送编号 0-7 的帧。定时器超时时,只收到 0、2、3 号帧的确认。
由于 GBN 使用累计确认,收到 ACK 3 就表示 0-3 均已正确收到。当前未确认的已发送帧是:
4、5、6、7
发送方需从 4 号帧开始后退重传,共 4 帧。
答案:C,4 帧。
1.3.2 2011 年:SR 选择重传
发送方已发送 0-3 号帧,目前只收到 1 号帧的确认,0 号帧和 2 号帧依次超时。
SR 只重传各自超时的帧,因此需要重传:
0、2
共 2 帧;1 号帧已经确认,3 号帧尚未说明超时,均不重传。
答案:B,2 帧。
1.4 易错点
- GBN 的累计确认以收到的最高有效 ACK 为准,不要求每个较小 ACK 都单独到达。
ACK i究竟确认到 $i$ 还是期待 $i$ 并非跨教材统一;先读题目定义,再确定窗口左边界。- GBN 不是只重传丢失的那一帧,而是从最早未确认帧起“后退 N 帧”。
- SR 不使用 GBN 式的累计重传;它可缓存失序帧,只重传具体丢失/超时帧。
- “已发送但未确认”不等于“都要立即重传”,还要看协议和哪些定时器已经超时。
- GBN 的窗口上限是 $2^m-1$,SR 等大收发窗口的上限是 $2^{m-1}$,不要混用。
相关知识
- 科目导航:计算机网络导航
- 阅读顺序:上一篇:数据链路层思维导图 · 下一篇:信道利用率计算
- 关联专题:数据链路层总纲
1.5 本节复盘
- 停止等待协议的发送、接收窗口均为 1,每发一帧必须等待确认。
- GBN 接收窗口为 1、使用累计确认;最早未确认帧超时后重传它及其后的所有未确认帧。
- SR 对帧逐个确认和计时,可缓存失序帧,只重传发生超时的具体帧。
- 2009 年 GBN 题收到最高
ACK 3后重传4-7,共 4 帧;2011 年 SR 题只重传 0、2,共 2 帧。