首页/计算机网络/03-data-link/流量控制 🔗 在 Obsidian 中打开
计算机网络 · 03-data-link

流量控制

重要度 ⭐⭐⭐⭐⭐ 计算机网络/数据链路层流量控制滑动窗口停止等待信道利用率
速查
流量控制避免发送方淹没接收方。两法:停止-等待(Wt=Wr=1)滑动窗口。信道利用率 U = T_D / (T_D + RTT + T_A)。GBN 接收窗口 Wr=1;SR 要求 Wt + Wr ≤ 2ⁿ。考试频率 ⭐⭐⭐⭐。

核心概念

为什么需要流量控制

  • 发送方速率可能超过接收方处理能力
  • 接收方缓冲区可能溢出
  • 需要让发送方感知接收方处理能力

1. 停止-等待(Stop-and-Wait)

发送方: [发送帧1]────等待ACK────[发送帧2]────等待ACK────[发送帧3]
接收方:          [接收帧1,发ACK]          [接收帧2,发ACK]
窗口大小 Wt = 1, Wr = 1

2. 滑动窗口(Sliding Window)⭐

发送窗口 Wt:发送方可连续发送的帧数
接收窗口 Wr:接收方可连续接收的帧数
发送方窗口(Wt=4):
已确认 | 可发送 | 不能发送
[0][1] | [2][3][4][5] | [6][7]...
       ↑ 窗口前沿   ↑ 窗口后沿

窗口大小关系

协议发送窗口 Wt接收窗口 Wr信道利用率
停止-等待11
GBN≥11
SR≥1≥1(Wt+Wr≤2ⁿ)

信道利用率计算

停止-等待:
U = T_D / (T_D + RTT + T_A)
T_D = 发送延迟 = 帧长/带宽;RTT = 往返时延;T_A = ACK 发送延迟(常忽略)
滑动窗口(Wt 足够大): U ≈ 1

示例:帧长 1000B,带宽 1Mbps,RTT=20ms
T_D = 1000×8 / 1×10⁶ = 8ms
停止-等待: U = 8/(8+20) ≈ 28.6%
滑动窗口(Wt≥4): U = 4×8/(4×8+20) = 32/52 ≈ 61.5%

确认机制

累积确认 vs 逐帧确认

累积确认(GBN): 收到 ACKn → n 及之前所有帧都已正确接收
逐帧确认(SR):  每个帧单独确认,ACK2 只确认帧 2
方式说明应用
逐帧确认每收到一帧就发 ACKSR
累积确认ACKn 表示 n 及之前都确认GBN
延迟确认等待一段时间再发 ACK802.11
捎带确认ACK 搭载在数据帧中TCP

常见考法

考点说明
信道利用率计算停止-等待和滑动窗口的利用率
窗口大小与利用率Wt 越大利用率越高
累积确认的含义ACKn 确认 n 及之前所有帧
窗口约束GBN: Wr=1;SR: Wt+Wr≤2ⁿ

易错点

注意
  • 停止-等待的信道利用率通常很低
  • 滑动窗口不是越大越好,受限于序号空间
  • 累积确认中 ACK 丢失不一定导致重传(后续 ACK 可覆盖)
  • 利用率公式中 RTT 是往返时延,不是单程

核心结论

必背
  1. 流量控制通过限制发送窗口大小实现
  2. 滑动窗口协议是主流,GBN 和 SR 是两种变体
  3. 信道利用率 = 发送时间 /(发送时间 + 往返时延)
  4. 窗口越大利用率越高,但受限于序号空间和缓冲区

记忆卡片

停止-等待的窗口大小?
Wt = 1,Wr = 1
GBN 和 SR 接收窗口区别?
GBN 的 Wr = 1;SR 的 Wr > 1
累积确认 ACKn 表示什么?
n 及 n 之前的所有帧都已正确接收。
停止-等待信道利用率公式?
U = T_D / (T_D + RTT),T_D 为发送时延。

图示 · 滑动窗口

发送窗口 Wt=4(帧号 0~7 循环) 0 1 2 3 4 5 6 7 已确认 可发送(窗口内) 不能发送 窗口滑动 收到 ACK2 后:已确认→[0][1][2],窗口前沿右移,帧 6 进入可发送区
图:发送窗口内帧可连续发送;确认后窗口向右滑动,新帧进入发送范围。

交互动画 · 停止等待与滑动窗口

待播放
流量控制: 停止-等待 与 滑动窗口 发送方 S窗口 W 接收方 R按序接收 0 1 2 3 4 5 6 7 等待确认中… 信道空闲 利用率 U = W×T帧 / (T帧 + 2×T传播) 流水线连续发送,吞吐提升约 W 倍 0 1 2 3
演示流量控制的两种方式:停止-等待滑动窗口
窗口越大,流水线越深,利用率越高。

相关知识点

data-link-layer-functions stop-and-wait go-back-n-gbn selective-repeat-sr

↑ 站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。