可靠传输

滑动窗口机制

类似算法中的滑动窗口,分为发送窗口接收窗口。窗口仅向后滑动,绝不向前后退;窗口滑动完全由接收方返回的确认帧 ACK 控制,接收方通过确认机制限制发送方窗口滑动速度,以此实现流量控制

考研核心考点

  1. 帧序号采用 n 位二进制编号,总序号空间个数:$2^n$
  2. 不同可靠传输协议,发送窗口、接收窗口大小限制各不相同
  3. 只有收到确认帧,发送窗口才会向后滑动

停止-等待协议

基本概念

  • 数据帧:发送方传输数据的基本单元,帧首部携带帧序号。
  • 确认帧(ACK):接收方正确接收数据帧后,返回给发送方的应答帧,帧内携带对应帧序号,用于告知发送方该帧接收无误,可以发送下一帧。
  • 帧序号:用于区分新旧帧、重复帧,本协议仅需 0、1 两个序号循环即可。

超时重传

为解决数据帧丢失问题:发送方每发一帧就启动超时计时器,若长时间未收到对应 ACK,判定帧丢失,超时重传该帧,并重置计时器

  • 确认帧丢失:发送方依旧超时重传该帧;接收方通过帧序号识别出重复帧,直接丢弃重复帧,并重新发送对应 ACK
  • 数据帧出错:接收方检测出差错后,直接丢弃出错帧,不发送任何 ACK,触发发送方超时重传。

窗口大小

$W_T=1,W_R=1$

信道利用率

$U = T_d / (T_d + RTT)$

  • $T_d$:一帧发送时延
  • $RTT$:往返传播时延

优缺点

  • 优点:原理最简单,实现简单,接收端几乎不需要缓存空间
  • 缺点:一次仅发送一帧,等待时间长,信道利用率极低,链路越长效率越差

后退N帧协议(GBN,回退N帧)

工作要求

发送方可以连续发送多个帧,无需逐帧等待确认;采用累积确认机制,接收方仅对按序到达的最后一个正确帧发送 ACK。

例:收到帧1、2、3全部正确,仅回复 ACK3,代表前面所有帧均接收正确。

差错处理

  1. 中间帧出错/丢失
    例如发送 1、2、3 帧,帧2出错。接收方丢弃出错帧以及后续所有乱序帧,仅确认已正确的帧1;发送方超时后回退到出错帧,重传该帧及其之后全部帧(2、3、4)

  2. 确认帧 ACK 丢失
    发送窗口内最早帧计时器先超时,一次性重传该帧以及后续所有未确认帧。

接收方规则

  • 接收窗口大小固定 $W_R=1$
  • 只按序接收,不缓存任何乱序帧,乱序帧全部直接丢弃

窗口大小限制

n 位帧序号:
$W_T \le 2^n - 1$

信道利用率

$U = (W_T * T_d) / (W_T * T_d + RTT)$

发送窗口越大,信道利用率越高,整体效率远优于停止等待协议。

优缺点

  • 优点:支持连续发送,效率提升明显;接收缓存极小
  • 缺点:一错全重传,出错会重传大量原本正确的帧,带宽浪费;若接收速度慢,会频繁重传

选择重传协议(SR)

工作要求

基于连续发送机制改进,不使用累积确认,一帧一单独 ACK 逐个确认;重传机制类似停止等待协议,仅重传出错的单个帧

考研易错纠正

本协议不存在否认帧(NAK),帧出错、帧丢失均依靠超时重传机制解决,无专门的否认应答帧。

接收方接收窗口 $W_R>1$,可以缓存所有正确到达的乱序帧,等到缺失帧补齐后,再按序交付给上层。

差错处理

某一帧出错/丢失,仅该帧超时,只单独重传此出错帧,其余已正确接收的帧全部无需重传。

窗口大小限制

n 位帧序号:
$W_T \le W_R \le 2^{n-1}$

且整体满足约束:
$W_T + W_R \le 2^n$

最优性能:$W_T = W_R$

若不满足该限制,帧序号会循环混淆,无法区分新帧与旧重复帧,可靠性无法保证。

信道利用率

$U = (W_T * T_d) / (W_T * T_d + RTT)$

相同窗口大小下,三者利用率最高。

优缺点

  • 优点:仅重传出错帧,带宽利用率最优,支持乱序接收
  • 缺点:协议实现复杂,接收端需要大量缓存空间,逐帧确认通信开销大

协议完整对比总结(考研背诵版)

1. 窗口大小总表

协议 发送窗口 W_T 接收窗口 W_R n 位序号限制
停止等待 1 1
后退N帧 GBN ≤ 2ⁿ−1 1 W_T ≤ 2ⁿ−1
选择重传 SR ≤ 2ⁿ⁻¹ ≤ 2ⁿ⁻¹ W_T ≤ W_R ≤ 2ⁿ⁻¹

2. 确认机制

  1. 停止等待:发一帧,等一帧 ACK
  2. GBN:累积确认,仅确认最后一个按序正确帧
  3. SR:逐个独立确认,一帧一 ACK

3. 重传规则

  1. 停止等待:仅重传当前出错帧
  2. GBN:出错则回退全重传
  3. SR:仅重传出错帧

4. 接收方处理

  1. 停止等待:按序接收,无缓存
  2. GBN:丢弃乱序帧,不缓存
  3. SR:缓存乱序帧,补齐后上交

5. 信道利用率排序

SR > GBN > 停止等待协议

6. 高频易错点

  1. GBN 接收窗口永远 = 1
  2. SR 没有否认帧 NAK
  3. SR 窗口最大为 2ⁿ⁻¹
  4. 滑动窗口只能向后滑动
  5. 全部协议依靠 帧序号 + 超时计时器 保证可靠
  6. 累积确认仅 GBN 独有