复习位置:计算机网络 → 数据链路层 → 流量控制与可靠传输 → 停止-等待、GBN、SR、滑动窗口、信道利用率
这篇只解决选择题。重点根据你这次的错题整理:GBN累计确认、SR独立确认、超时重传、窗口大小、序号位数、信道利用率。
一、先看你这次最明显的思维漏洞
你这组题不是公式不会,而是几个协议容易串台。
漏洞1:
把 GBN 的 ACK 当成 SR 的独立 ACK。
漏洞2:
看到"某帧没有ACK"就立刻重传,
但很多时候必须等超时。
漏洞3:
只背 2^m,
没有区分 GBN 和 SR 的窗口约束。
漏洞4:
算信道利用率时只看"发送时间",
容易漏掉往返传播时延、ACK发送时间。
漏洞5:
把"流量控制"和"差错控制"混在一起。
下面所有题都围绕这5个坑。
二、三种协议先用一张表分开
| 对比 | 停止-等待 | GBN | SR |
|---|---|---|---|
| 发送窗口 | 1 | 多帧 | 多帧 |
| 接收窗口 | 1 | 1 | 多帧 |
| ACK | 一帧一确认 | 累计确认 | 独立确认 |
| 失序帧 | 不缓存 | 通常丢弃 | 可以缓存 |
| 超时后 | 重传当前帧 | 从最老未确认帧开始全部重传 | 只重传超时帧 |
| 典型特点 | 简单但慢 | 回退重传 | 选择重传 |
最重要的一行:
GBN:一丢丢一串。
SR:谁丢重谁。
三、秒杀1:看到ACK,先判断是"累计"还是"独立"
GBN:累计确认
假设发送:
0 1 2 3 4 5 6
收到:
ACK4
在题目把ACK编号理解为"确认4号帧"的语境下:
ACK4
=
0、1、2、3、4 都已经确认
所以:
没有单独收到ACK0、ACK1、ACK3
不代表这些数据帧没有成功到达。
这就是你在GBN题里最容易错的地方。
SR:独立确认
SR里:
ACK5
只说明:
5号帧确认成功
不能推出:
4号帧也成功
所以:
GBN:
看"最大的累计ACK"
SR:
每个ACK单独记账
四、你的错题:GBN超时到底重传几个
你图中的第10题:
GBN已经发送0~6号帧。
计时器超时前,
收到1、2、4号帧的确认。
问需要重传几帧?
你选了:
D:6
正确是:
B:2
原因:
GBN使用累计确认。
收到ACK4
=> 0~4都已经成功确认。
剩下未确认:
5、6
所以超时后:
重传5、6
共2帧。
秒杀
GBN题出现多个ACK:
不要数"缺了几个ACK"。
只看"最大的累计ACK到哪里"。
五、2009年408真题:GBN累计确认
题目:
发送方已经发送0~7号帧。
超时时,
只收到0、2、3号帧的确认。
需要重传几帧?
最高累计确认:
ACK3
表示:
0~3已确认
未确认:
4、5、6、7
GBN发生超时:
4、5、6、7全部重传
所以:
答案:4帧
这一题与你第10题本质完全一样
GBN:
找到最高累计ACK
-> 后面的未确认帧全部重传
六、秒杀2:SR没有超时,不要乱重传
你的第21题是典型坑。
题意:
SR协议。
发送方已经收到0~3号帧确认,
又收到5号帧确认。
发送窗口中还有帧没发,
而且没有发生超时。
正确处理:
接收ACK5
记录5号帧已经确认
然后继续发送窗口中允许发送的新帧
不要:
因为没看到ACK4
就立刻重传4号帧
因为题目明确:
未发生超时
SR一般等:
对应帧超时
才重传该帧。
秒杀
SR:
缺ACK ≠ 立刻重传
超时谁 -> 重传谁
七、2011年408真题:SR只重传超时帧
题目:
SR已经发送0~3号帧。
已经收到1号帧的ACK。
0号和2号帧依次超时。
问重传几帧。
SR:
0超时 -> 重传0
2超时 -> 重传2
所以:
只重传2帧
不是:
0、1、2全部重发
因为那是GBN思路。
八、秒杀3:序号位数和窗口大小
这是必须分协议背的公式。
假设帧序号字段有:
m位
则序号空间:
0 ~ 2^m-1
一共有2^m个编号
GBN
发送窗口必须满足:
Wt <= 2^m - 1
接收窗口:
Wr = 1
所以:
GBN最大发送窗口
= 2^m - 1
例如:
m=7
则:
最大发送窗口
= 2^7-1
= 127
你的第12题
你虽然旁边已经写了:
2^7-1
但选择时没有落到:
127
这里属于"公式知道,但没有把公式计算结果和选项对应起来"。
九、SR的窗口公式
SR最稳的总约束:
Wt + Wr <= 2^m
如果题目默认:
发送窗口 = 接收窗口 = W
则:
2W <= 2^m
因此:
W <= 2^(m-1)
例:4位序号,接收窗口7
序号空间:
2^4 = 16
若:
Wr = 7
则:
Wt + 7 <= 16
所以:
Wt <= 9
最大:
9
十、2019年408真题:SR接收窗口
题目:
SR采用3位序号。
发送窗口大小为5。
接收窗口最大是多少?
序号空间:
2^3 = 8
SR:
Wt + Wr <= 8
所以:
5 + Wr <= 8
得到:
Wr <= 3
答案:
3
秒杀
SR题给了发送窗口和接收窗口中的一个:
直接用
Wt + Wr <= 2^m
十一、秒杀4:信道利用率统一一个公式
这部分不要分十几个公式背。
先定义:
Td = 数据帧发送时延
Tp = 单向传播时延
Ta = ACK发送时延
其中:
Td = 数据帧长度 / 数据传输速率
一次完整的"发数据 → 收到ACK"的时间:
T周期 = Td + 2Tp + Ta
如果题目说:
忽略ACK发送时延
那么:
T周期 = Td + 2Tp
十二、停止-等待利用率
停止-等待一次只能发一帧。
所以:
U = Td / (Td + 2Tp + Ta)
忽略ACK发送时间:
U = Td / (Td + 2Tp)
如果令:
a = Tp/Td
则:
U = 1/(1+2a)
十三、你的错题:2020年408停止-等待利用率
题目:
数据帧长度 = 1000B
传输速率 = 10kb/s
单向传播时延 = 200ms
忽略ACK发送时延
先算发送时延:
Td
= 1000×8 / 10000
= 0.8s
往返传播:
2Tp
= 0.4s
所以:
U
= 0.8/(0.8+0.4)
= 2/3
≈ 66.7%
答案:
B:66.7%
你的漏洞
你这里很容易把:
单向传播时延200ms
只加一次。
但ACK要回来,所以:
单向200ms
往返就是400ms
十四、滑动窗口利用率
如果发送窗口为:
W
发送方可以连续发送:
W个数据帧
所以理论利用率:
U
=
min(
1,
W×Td / (Td + 2Tp + Ta)
)
如果:
W×Td >= Td+2Tp+Ta
那么:
U = 100%
因此达到满利用率需要:
W >= (Td+2Tp+Ta)/Td
最后向上取整。
十五、2012年408真题:GBN需要几位序号
题目给出:
GBN
数据速率16kb/s
单向传播时延270ms
数据帧长度128~512B
ACK与数据帧等长
要求信道利用率最高
最难满足满利用率的是:
最短数据帧
因为帧越短:
Td越小
单位RTT内需要连续发送的帧越多
取:
128B
计算:
Td
= 128×8 / 16000
= 0.064s
= 64ms
ACK同长:
Ta = 64ms
周期:
T周期
= 64 + 2×270 + 64
= 668ms
要连续覆盖整个周期:
W×64 >= 668
得到:
W >= 10.4375
所以至少:
W = 11
GBN要求:
W <= 2^m-1
于是:
2^m-1 >= 11
最小:
m = 4
答案:
4位
这类题固定三步
1. 算Td
2. 算满利用率所需窗口W
3. 再用协议窗口公式反推m
十六、流量控制不是差错控制
你的第18题属于概念混淆。
流量控制的目的:
让发送方发送速度
与
接收方处理能力
相匹配
防止:
发送方发得太快
接收方来不及处理
所以正确:
控制发送方发送速度
而:
超时
重传
ACK
NAK
这些主要属于:
可靠传输 / 差错控制
秒杀
流量控制:
怕接收方"吃不下"。
差错控制:
怕数据"传错、传丢"。
十七、2023年408真题:三种协议谁的利用率更高
3位序号:
序号空间 = 8
最大窗口:
停止-等待:
W1 = 1
SR:
W3 <= 4
GBN:
W2 <= 7
窗口越大:
越容易把传播等待时间填满
所以最大利用率关系:
U停止等待 <= USR <= UGBN
若题目记作:
U1:停止等待
U2:GBN
U3:SR
则:
U1 <= U3 <= U2
答案:
B
十八、2024年408真题:SR时序图秒杀
题目:
SR
序号3位
发送窗口和接收窗口相等且最大
因此:
W = 2^(3-1) = 4
开始可以发:
F0 F1 F2 F3
图中:
F1丢失
t1时刻
ACK0回来。
SR发送窗口可以向前释放一个位置。
所以新的窗口允许发送:
F4
因此:
t1发送F4
t2时刻
F1超时。
SR:
谁超时重谁
所以:
t2重传F1
答案:
F4,F1
也就是:
D
十九、一张表解决"超时重传"
停止-等待:
F3超时
-> 重传F3
GBN:
F3最老未确认且超时
当前还发过F4、F5、F6
-> 重传
F3 F4 F5 F6
SR:
F3超时
-> 只重传F3
口诀:
停等:就这一帧
GBN:从这里往后一串
SR:精准打击
二十、你这组错题应该怎么归类
不要按题号复习,按错误类型复习。
第一类:GBN累计ACK
你的错题:
第10题
2009真题
以后看到GBN:
先找最高累计ACK。
第二类:SR独立ACK与超时
你的错题:
第21题
以后看到SR:
ACK独立记账
没超时别乱重传
超时谁重谁
第三类:序号空间
你的错题:
第12题
2012真题
先写:
GBN:
W <= 2^m-1
SR:
Wt+Wr <= 2^m
再做题。
第四类:利用率
你的错题:
2020真题
草稿第一行必须写:
Td = L/R
第二行:
一个周期 = Td + 2Tp + Ta
这样最不容易漏项。
第五类:流量控制概念
你的错题:
第18题
只记:
流量控制:
发送速度 ↔ 接收处理能力
二十一、考场30秒总模板
【先识别协议】
停止等待?
GBN?
SR?
【再判断ACK】
GBN:
累计ACK
SR:
独立ACK
【再判断超时】
GBN:
最老未确认帧超时
-> 它以及后面的未确认帧全部重传
SR:
谁超时重谁
【窗口】
GBN:
Wt <= 2^m-1
SR:
Wt+Wr <= 2^m
若Wt=Wr:
W <= 2^(m-1)
【利用率】
Td = L/R
周期:
Td + 2Tp + Ta
停止等待:
U = Td/周期
滑动窗口:
U = min(1, W×Td/周期)
二十二、最后只背这8句话
1. 流量控制解决"发太快"。
2. GBN累计确认。
3. SR独立确认。
4. GBN超时,从最老未确认帧开始全部重传。
5. SR超时,谁超时重谁。
6. GBN:W <= 2^m-1。
7. SR:Wt+Wr <= 2^m。
8. 利用率先算 Td=L/R,再看一个完整往返周期。
把这8句话真正分清,这一页大部分滑动窗口选择题都能直接做。