408计算机网络第3章:滑动窗口与ARQ——错题秒杀 + 真题精讲

复习位置:计算机网络 → 数据链路层 → 流量控制与可靠传输 → 停止-等待、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句话真正分清,这一页大部分滑动窗口选择题都能直接做。

相关推荐
沐苏瑶3 小时前
计算机网络核心笔记:打通 TCP/UDP 与 HTTP/HTTPS 底层逻辑(重点下)
笔记·计算机网络·http
蓝胖的四次元口袋4 小时前
计算机网络基础知识梳理(2)
计算机网络
ZJH__GO16 小时前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
黄俊懿2 天前
【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第三节:CDN扩展-多地址直连
网络·计算机网络·架构·系统架构·cdn·dns·架构设计
程序猿乐锅2 天前
【计算机网络 | 第五章】运输层
网络·计算机网络
程序猿乐锅2 天前
【计算机网络 | 第四章】网络层
网络·计算机网络·智能路由器
程序猿乐锅2 天前
【计算机网络 | 第六章】应用层
计算机网络
00后程序员张3 天前
抓包鹰 电脑本机网络连接表怎么看?哪些程序在联网 进程归属与可疑 IP 追溯
网络协议·计算机网络·网络安全·ios·adb·https·udp
我爱cope3 天前
【计算机网络 | 物理层3:数字编码与调制:比特如何变成可传输的信号?】
网络·学习·计算机网络